物模型说明

    设备模型使用场景:

    1. 前端通过模型定义动态展示设备运行状态或者设备操作界面
    2. 服务端可通过统一的API获取设备模型并进行相关操作,如: 在发送设备消息时进行参数校验, 在收到设备消息进行类型转换处理.

    数据结构:

    用于定义设备属性,运行状态等如: 设备SN,当前CPU使用率等. 平台可主动下发消息获取设备属性,设备也通过事件上报属性.

    数据结构:

    1. "id": "cpu_usage", //属性标识
    2. "name": "CPU使用率",
    3. "valueType": { //值类型
    4. "type": "double", //类型标识,见类型表
    5. "maxValue":100,
    6. "minValue":0,
    7. "unit":"percent", //单位
    8. "expands":{"key1":"value1"} //其他自定义拓展定义
    9. },
    10. "expands":{"key1":"value1"} //其他自定义拓展定义
    11. }

    数据结构:

    1. {
    2. "id": "playVoice", //功能标识
    3. "name": "播放声音", //名称
    4. "inputs": [ //输入参数
    5. {
    6. "id": "text",
    7. "name": "文字内容",
    8. "valueType": { //参数类型
    9. "type": "string"
    10. },
    11. "expands":{"key1":"value1"} //其他自定义拓展定义
    12. }
    13. ],
    14. "output": { //输出
    15. "type": "boolean" //输出类型
    16. },
    17. "expands":{"key1":"value1"} //其他自定义拓展定义
    18. }

    用于定义设备事件, 如: 定时上报设备属性, 设备报警等.

    数据结构:

    1. {
    2. "id": "fire_alarm", //事件标识
    3. "name": "火警",
    4. "valueType": {
    5. "type": "object", //对象(结构体)类型
    6. {
    7. "id": "location",
    8. "name": "地点",
    9. "valueType": {
    10. "type": "string"
    11. }
    12. },
    13. "id": "lng",
    14. "name": "经度",
    15. "valueType": {
    16. "type": "double"
    17. },
    18. "expands":{"gis":"lng"} //其他自定义拓展定义
    19. },
    20. {
    21. "id": "lat",
    22. "name": "纬度",
    23. "valueType": {
    24. "type": "double"
    25. },
    26. "expands":{"gis":"lat"} //其他自定义拓展定义
    27. }
    28. ]
    29. },
    30. "expands":{"key1":"value1"} //其他自定义拓展定义
    31. }

    所有类型共有属性:

    • id 唯一标识
    • name 名称
    • description 描述
    • expands 自定义配置
    1. long 长整型

    2. float 单精度浮点型

    3. double 双精度浮点型

      以上均为数字类型,共有属性:

      • max 最大值
      • min 最小值
      • unit 单位

    boolean 布尔类型

    1. 属性
    2. - trueText true时的文本,默认为`是`
    3. - falseText false时的文本,默认为`否`
    4. - trueValue true时的值,默认为`true`
    5. - falseValue false时的值,默认为`false`
    6. 例:
    7. {
    8. "type":"boolean",
    9. "trueText":"开启",
    10. "falseText":"关闭",
    11. "trueValue":"1",
    12. }

    string 字符类型

    1. 例:
    2. {
    3. "type":"string",
    4. "expands":{"maxLen":"255"}
    5. }
    1. 属性:
    2. - elements (Element)枚举中的元素
    3. Element:
    4. - value 枚举值
    5. - text 枚举文本
    6. - description 说明
    7. 例:
    8. {
    9. "type":"enum",
    10. "elements":[
    11. {"value":"1","text":"正常"},
    12. {"value":"-1","text":"警告"},
    13. {"value":"0","text":"未知"}
    14. ]
    15. }

    date 时间类型

    password 密码类型

    1. string类型相同
    1. 属性:
    2. - bodyType 类型: url,base64,binary
    3. 例:
    4. {
    5. "type":"file",
    6. "bodyType":"url"
    7. }

    array 数组(集合)类型

    1. 属性:
    2. - elementType 元素类型
    3. 例:
    4. {
    5. "type":"array",
    6. "elementType":{
    7. "type":"string"
    8. }
    9. }

    object 对象(结构体)类型

    支持以逗号分割的经纬度字符串以及map类型. 默认支持3种格式转换: 逗号分割字符:145.1214,126.123 ,json格式:{"lat":145.1214,"lon":126.123}.

    1. 例:
    2. {
    3. "type":"geoPoint"