jetlinks-简介(一)

简介

项目需要,需要了解下物联网,参照一下jetlinks设计思路,理解一下各模块功能及部分代码实现,此文仅作为学习笔记,以便加深理解,如有不妥之处,欢迎批评指正 

参照社区版模块,主要理解设备管理,通知管理,规则引擎部分

 用于统一管理设备,设备建模,安全配置等操作

  • 产品管理

      产品是一个JSON格式的文件。它是物理空间中的实体,如传感器、车载装置、楼宇、工厂等在云端的数字化表示,从属性、功能和事件三个维度,分别描述了该实体是什么,能做什么,可以对外提供哪些信息。定义了这三个维度,即完成了产品功能的定义。产品将产品功能类型分为三类:属性、功能、和事件。定义了这三类功能,即完成了产品的定义。

产品定义具体格式如下:

{
    "properties":[
        {
            "id":"标识",
            "name":"属性名称",
            "valueType":{
                "min":"参数最小值(int、float、double类型特有)",
                "max":"参数最大值(int、float、double类型特有)",
                "step":"步长,字符串类型",
                "unit":"属性单位",
                "expands":{},//扩展属性
                "type":"属性类型: int(原生)、float(原生)、double(原生)、text(原生)、date(默认String类型UTC毫秒,可以自定义)、bool(0或1的int类型)、enum(int类型)、object(结构体类型,可包含前面6种类型)、array(数组类型,支持int/double/float/String)、file(文件,支持URL[地址]/base64[base64编码]/binary[二进制])、password(密码)"
            },
            "expands":{
                "readOnly":"是否只读(true/false)",
                "report":"设备是否上报(true/false)"
            },
            "description":"说明"
        }
    ],
    "functions":[
        {
            "id":"标识",
            "name":"功能名称",
            "inputs":[//输入参数
                {
                    "id":"输入参数标识",
                    "name":"输入参数名称",
                    "valueType":{
                        "min":"参数最小值(int、float、double类型特有)",
                        "max":"参数最大值(int、float、double类型特有)",
                        "step":"步长,字符串类型",
                        "unit":"属性单位",
                        "type":"属性类型: int(原生)、float(原生)、double(原生)、text(原生)、date(默认String类型UTC毫秒,可以自定义)、bool(0或1的int类型)、enum(int类型)、object(结构体类型,可包含前面6种类型)、array(数组类型,支持int/double/float/String)、file(文件,支持URL[地址]/base64[base64编码]/binary[二进制])、password(密码)"
                    }
                }
            ],
            "outputs":{//输出参数
                "min":"参数最小值(int、float、double类型特有)",
                "max":"参数最大值(int、float、double类型特有)",
                "step":"步长,字符串类型",
                "unit":"属性单位",
                "type":"属性类型: int(原生)、float(原生)、double(原生)、text(原生)、date(默认String类型UTC毫秒,可以自定义)、bool(0或1的int类型)、enum(int类型)、object(结构体类型,可包含前面6种类型)、array(数组类型,支持int/double/float/String)、file(文件,支持URL[地址]/base64[base64编码]/binary[二进制])、password(密码)"
            },
            "isAsync":"是否异步(true/false)",
            "description":"说明"
        }
    ],
    "events":[
        {
            "id":"标识",
            "name":"事件名称",
            "valueType":{
                "min":"参数最小值(int、float、double类型特有)",
                "max":"参数最大值(int、float、double类型特有)",
                "step":"步长,字符串类型",
                "unit":"属性单位",
                "type":"属性类型: int(原生)、float(原生)、double(原生)、text(原生)、date(默认String类型UTC毫秒,可以自定义)、bool(0或1的int类型)、enum(枚举)、object(结构体类型,可包含前面6种类型)、array(数组类型,支持int/double/float/String)、file(文件,支持URL[地址]/base64[base64编码]/binary[二进制])、password(密码)"
            },
            "expands":{
                "level":"事件级别(普通[ordinary]/警告[warn]/紧急[urgent])",
                "eventType":"事件类型(数据上报[reportData]/事件上报[reportEvent])"
            },
            "description":"说明"
        }
    ]
}

所有数据类型对应的valueType的JSON结构如下:

{
    " int(原生)、float(原生)、double(原生)":{
          "min":"参数最小值(int、float、double类型特有)",
          "max":"参数最大值(int、float、double类型特有)",
          "step":"步长,字符串类型",
          "unit":"属性单位",
          "type":"属性类型: int(原生)、float(原生)、double(原生)、text(原生)"
    },
    "date":{
    	"dateFormat":"时间格式",
    	"type":"date"
    },
	"bool":{
		"trueValue":"true值,可自定义",
		"trueText":"trueText值,可自定义",
		"falseValue":"false值,可自定义",
		"falseText":"falseText值,可自定义",
		"type":"boolean"
	},
	"enum":{
        "elements":[
            {
                "value":"1",
                "key":"在线"
            },{
                "value":"0",
                "key":"离线"
            }
        ],
        "type":"enum"
    },
    "text":{
        "expands":{
            "maxLength":"最大长度"
        },
        "type":"string"
    },
    "object":{
        "properties":[//其它类型结构跟类型结构与外部属性的结构一致
        {
            "id":"标识",
            "name":"名称",
            "valueType":{
                "min":"最小值",
                "max":"最大值",
                "step":"步长",
                "unit":"单位",
                "type":"数据类型"
            },
                "description":"备注"
            }
        ],
        "type":"object"
    },
    "array":{
        "elementType":{
            "type":"object",
            "properties":[//其它类型结构跟类型结构与外部属性的结构一致
                {
                    "id":"标识",
                    "name":"名称",
                    "valueType":{
                        "min":"最小值",
                        "max":"最大值",
                        "step":"步长",
                        "unit":"单位",
                        "type":"类型"
                    },
                    "description":"备注"
                }
            ]
        },
        "expands":{
            "elementNumber":"元素个数"
        },
        "type":"array"
    },
    "file":{
        "bodyType":"文件元素类型",
        "type":"file"
    },
    "password":{
        "type":"password"
    }
}

产品具体详情如下:

产品详情描述

 产品属性信息2产品属性信息1

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: JetLinks Pro是一个开源的物联网平台解决方案,它提供了完整的设备管理、数据采集、规则计算和可视化等功能。JetLinks Pro源码是开源的,是其核心部分,支持用户自行扩展和定制,适用于各种规模大小的物联网应用场景。JetLinks Pro源码提供了丰富的API和插件架构,能够与其他应用程序完美集成,方便用户快速构建自己的物联网解决方案。 JetLinks Pro支持多种物联网协议,包括MQTT、CoAP、LwM2M等,提供了完整的设备模型和数据上报流程,支持远程配置和固件升级。同时,JetLinks Pro还提供了规则引擎和工作流引擎,以帮助用户对设备产生的数据进行分析和处理,并提供了可视化的用户界面,以便用户能够更加方便地操作。 JetLinks Pro的源码是基于Java语言开发,采用了Spring Boot和Vert.x框架,具备高性能和可扩展性,能够支持高并发的数据处理和流量管理。此外,JetLinks Pro还支持多种数据库,包括MySQL、PostgreSQL、MongoDB等,方便用户根据自己的需求选择。 总之,JetLinks Pro源码是一个强大的物联网平台解决方案,能够满足用户对于设备管理、数据采集、规则计算和可视化的各种需求,方便用户在物联网应用场景下快速构建自己的解决方案。 ### 回答2: JetLinks Pro源码是一个开源的物联网平台,它提供了极其灵活的设备管理、数据分析、规则引擎和远程控制等功能,可以帮助开发者快速实现物联网设备的数据获取、处理、存储及展示。该平台的源码完全开放,允许用户在源码基础上进行二次开发和定制,以满足各种不同的需求。 JetLinks Pro源码的主要特点包括: 1. 高可扩展性:该平台可以轻松支持海量设备信息和数据处理,可通过配置和定制实现弹性扩展。 2. 通用性:支持300多个物联网设备协议,并支持自定义协议。 3. 强大的规则引擎:基于易用的可视化界面,可以自定义各种规则,例如报警、自动化任务等。 4. 安全性:该平台提供多种安全机制,包括加密、认证和授权等,以确保数据的安全性和隐私性。 总之,JetLinks Pro源码是一个功能强大、可靠性高、易于扩展和定制的物联网平台,是一个优秀的开源项目。如果你是一名物联网开发者和爱好者,这是一个很好的学习和实践的机会。 ### 回答3: JetLinks-pro是一款基于Java开发的物联网平台框架,它的主要特点是高性能、可扩展性和开放性。JetLinks-pro的源码包含了平台核心模块和插件模块,主要通过基于事件驱动的架构来实现设备管理、数据采集、业务逻辑处理和可视化展示等功能。 在JetLinks-pro的源码中,平台核心模块主要包含了设备管理、数据采集、业务逻辑处理和接口管理等组件,其中设备管理组件负责管理设备的注册、绑定、查询和控制等操作;数据采集组件负责将设备上传的数据进行解析、存储和分发;业务逻辑处理组件负责根据业务需求对采集的数据进行处理、计算和分析;接口管理组件负责对外提供RESTful API接口。 另外,JetLinks-pro的源码还包含了插件模块,通过插件模块可以扩展平台的功能和业务,例如通过添加新的设备驱动插件可以支持更多类型的设备接入;通过添加新的数据分析插件可以支持更多的数据计算和分析功能。插件模块的开发和安装都很方便,可以大大简化平台定制和扩展的流程。 总之,JetLinks-pro的源码是一款功能强大、可扩展、易开发、易维护的物联网平台框架,可以为开发者提供更快速、更灵活、更高效的物联网应用开发和部署方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值