edge-subdevice-sdk-go sdk
# edge-subdevice-sdk-go sdk
# 1、功能介绍:
子设备管理,包括:子设备上下线、属性上报、命令上报、子设备拓扑管理、命令执行等。
# 2、开发者接入方式:
目前暂支持 golang 开发的服务接入。在服务中导入 sdk,执行以下步骤:
# 2.1、new 设备struct
根据子设备特点新建子设备的 struct, 比如
type Bluetooth struct {
}
1
2
3
2
3
# 2.2、struct实现接口
新的 struct 需要实现 DeviceOperator interface{} 的方法:
type DeviceOperator interface {
PropertiesSet(models.Props) // 属性配置
DeviceConfig([]models.DeviceConfig) // 设备配置
CommandExec(cmd models.CmdReq) (models.CmdResponse, error) // 处理云端的命令请求
DeviceTopChange([]models.Topo) // 修改拓扑关系
}
1
2
3
4
5
6
2
3
4
5
6
# 2.3 、new sdk
new 一个本 sdk 提供的 struct SubDeviceHandler:
h, err := handler.New(deviceOperator DeviceOperator, mqUrl string)
1
第一个参数为第一步新建的子设备 struct 类型的实例; mqUrl 为 nats 服务的连接信息,使用边缘计算方案部署的服务
默认为nats://127.0.0.1:4222
,
# 2.4、请求子设备拓扑关系,获取子设备的id slice
h.GetTopos()
1
# 2.5、请求子设备的配置信息:
h.GetConfig(deviceIds []string)
1
# 2.6、设备上线:
调用上线方法
h.Online()
1
# 2.7、业务逻辑处理
h.ReportProperties // 属性上报
h.ReportEvent(msg []models.Event) // 时间上报
h.Offline(msg []string) // 设备离线
1
2
3
2
3
# 3、注意事项:
(1). 多条数据上报,单次默认限制最大100条 (2). sdk example/bluetooth 目录提供了一个简单的例子。
上次更新: 2021-12-01 16:48:01