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
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值