底层协议绑定
底层协议绑定
底层协议绑定
Forms - 基本属性
NAME | TYPE | DEFAULT | NOTE |
---|---|---|---|
href | string | - | URL 地址 |
contentType | string | json | 数据内容类型 |
response | object | - | 应答消息定义 |
op | array | - | 交互方法类型 |
subprotocol | string | - | 子协议 |
security | string | - | 安全信息 |
scopes | string | - | 认证范围 |
modbus | object | - | Modbus 协议 |
交互方法
NAME | NOTE |
---|---|
readproperty | 读属性值 |
writeproperty | 修改属性值 |
observeproperty | 观察属性 |
unobserveproperty | 取消观察属性 |
invokeaction | 调用操作 |
subscribeevent | 订阅事件 |
unsubscribeevent | 取消订阅事件 |
readallproperties | 读所有属性值 |
writeallproperties | 修改所有属性值 |
readmultipleproperties | 读多个属性值 |
writemultipleproperties | 修改多个属性值 |
数据格式
JSON
, application/jsonXML
, application/xmlCBOR
, application/cbor
MQTT
使用 MQTT 时暂无限制,使用 JSON 数据格式
HTTP
使用 HTTP 协议时,云端不能主动向设备下发数据,使用 JSON 数据格式
method
HTTP 方法
CoAP
使用 CoAP 协议时,最大消息长度不能超过 1KB,使用 JSON 数据格式
code
CoAP 代码
Bluetooth
mac
从机地址
Modbus
使用 Modbus 协议时设备必须通过网关接入平台,且需要配置事物属性的 Modbus 参数
- modbus Modbus 公共属性
- properties 事物属性
- actions 事物操作
- events 事物事件
具体请参考
核心产品实现参考
一文中Modbus 设备
一节
参考
TLV 编码介绍
TLV 是指由数据的类型 Tag,数据的长度 Length,数据的值 Value 组成的结构体,几乎可以描任意数据类型,TLV的 Value 也可以是一个 TLV 结构,正因为这种嵌套的特性,可以让我们用来包装协议的实现。
TAG | LENGTH | VALUE |
---|---|---|
类型 | 长度 | 值 |
Tag
NO. | TYPE | SIZE |
---|---|---|
bit6~7 | 类型, 0 表示基本数据类型 | |
bit5 | 编码, 0 表示基本数据类型, 1 表示组合数据类型 | |
bit0~4 | Tag value1 | 类型值 |
bit7 | Tag flag | 1 表示还有更多字节 |
bit0~6 | Tag value2 | 类型值 |
Tag value1:
0~30:可以表示 30 种类型的值,如果 Tag value1 为 31 则将通过更多字节来表示 Tag
Length
NO. | TYPE | NOTE |
---|---|---|
bit7 | Flag | 保留,总是为 0 |
bit0~6 | Length | 长度值 |
bit7 | Length flag | 1 表示还有更多字节 |
bit0~6 | Length value2 | 长度值 |
Length:
0~128: 表示值的长度为 0 到 128, 如果值的长度超过 128,则需要将 bit7 置 1,并用更多字节表示长度
常用数据类型定义
串口参数 (Tag 类型为 1)
串口参数类型
TAG | LENGTH | VALUE | NOTE |
---|---|---|---|
0 | 1 | 0~255 | 串口 ID |
1 | 2 | 9600 | 波特率 |
2 | 1 | 'N', 'E', 'O' | 校验方式 |
3 | 1 | 8,7 | 数据位 |
4 | 1 | 1,2 | 停止位 |
5 | 1 | - | 流控 |