数据交互协议
更新时间: 2023-04-13

G+link协议是针对物联网开发设备和应用开发设计的数据交换规范,包含设备与云端、应用与云端进行交互的接口和数据格式规范,极大的简化和规范了物联网设备和业务应用开发过程的数据交互逻辑。

  • 设备端按照G+link规范组织数据上报送给云端,云端工程师遵从同样的规范,获得及处理设备数据。

  • 云端按照G+link组织数据下发给设备,硬件工程师获得标准格式的数据进行逻辑处理,驱动设备完成操作。

  • 设备端、云端开发解耦,解除相互依赖,云端可以按G+link规范模拟数据进行开发测试;设备端可以在云端使用模拟工具下发符合G+link协议的测试数据,而不依赖于应用侧开发完成,效果与应用下发完全一致。

  • 搭配物模型使用,即可轻松构建物联网设备特征,通过功能建模将各类设备统一抽象为云端的资源,并对外暴露相应的接口,以满足不同场景下不同系统的调用和快速集成。

以下为介绍使用G+link协议下,设备的上线流程和数据交互接口。

# 设备接入流程

device-pub.png

  1. 设备向物联网平台请求鉴权,获取设备接入配置

  2. 获取并保存设备接入资源配置信息

  3. 连接平台发送和接收消息

# 设备数据交互接口列表

#

类型 名称 接口类 设备端权限 服务端权限
生命周期状态相关 设备上下线状态变更 thing/{productKey}/{deviceName}/lifecycle/post 发送 接收
上下线状态变更通知 thing/{productKey}/{deviceName}/lifecycle/post - 接收
设备属性上报 属性状态单次上报 thing/{productKey}/{deviceName}/property/post 发送 接收
属性状态批量上报 thing/{productKey}/{deviceName}/property/batch 发送 接收
设备事件上报 事件单次上报 thing/{productKey}/{deviceName}/event/post 发送 接收
事件批量上报 thing/{productKey}/{deviceName}/event/batch 发送 接收
设备服务调用 更新设备可写属性 thing/{productKey}/{deviceName}/property/invoke 接收 发送
云端调用设备端服务 thing/{productKey}/{deviceName}/command/invoke 接收 发送
设备端回复响应消息 thing/{productKey}/{deviceName}/response/d2c 发送 接收
设备请求云端服务 设备端调用云端服务 thing/{productKey}/{deviceName}/service/invoke 发送 接收
服务端回复响应消息 thing/{productKey}/{deviceName}/response/c2d 接收 发送
网关与子设备相关 子设备上下线状态变更 thing/{productKey}/{deviceName}/lifecycle/post 发送 接收
请求网关与子设备拓扑信息 thing/{productKey}/{deviceName}/service/invoke 发送 接收
下发网关与子设备拓扑信息 thing/{productKey}/{deviceName}/response/c2d 接收 发送
子设备消息上下行 thing/{productKey}/{deviceName}/property/post 发送 接收
影子服务相关 更新设备期望属性状态 thing/{productKey}/{deviceName}/property/desired 发送 接收
请求设备影子快照 thing/{productKey}/{deviceName}/property/get 发送 接收
下发设备影子快照 thing/{productKey}/{deviceName}/property/snapshot 接收 发送
清空设备属性状态值 thing/{productKey}/{deviceName}/property/delta 发送 接收
属性状态与期望值的差异通知 thing/{productKey}/{deviceName}/response/c2d 接收 发送
设备影子变更通知 thing/{productKey}/{deviceName}/property/documents 接收 发送
自定义消息透传 消息透传上报 thing/{productKey}/{deviceName}/raw/d2c 发送 接收
消息透传下发 thing/{productKey}/{deviceName}/raw/c2d - 接收