(分布式联动动作通知)0xC3中的具体含义?
尊敬的涂鸦工程师:
你好!涂鸦提供的分布式联动开发说明中,动作通知(分布式联动动作通知) 0xC3中的具体含义是什么? 自动化ID,DPID,DP类型的值要去哪里获取,在哪里可以查看。
尊敬的涂鸦工程师:
你好!涂鸦提供的分布式联动开发说明中,动作通知(分布式联动动作通知) 0xC3中的具体含义是什么? 自动化ID,DPID,DP类型的值要去哪里获取,在哪里可以查看。
一个联动中有两种设备:条件设备和动作设备
例如1:亮度传感器设备检测到亮度大于 80%,让灯设备关闭。其中亮度传感器是条件设备,灯是动作设备。
涂鸦体系中设备上报、发布自己的信息,是通过 dpid 物模型实现的。
关于dp的说明,请参考:《蓝牙 Mesh 通用串口协议》中的名词解释和DP 格式说明。
例如2:亮度传感器的亮度值使用 dpid = 1, 类型为 value 类型, 取值范围为 0~100 来表示; 灯的开关使用 dpid = 2, 类型为 bool 类型,取值 0/1。则例子1中的联动可表达为: if(亮度传感器的 dpid = 1 的 value > 80) 设置灯的 dpid=2的值为0.
涂鸦的分布式联动的模型存储在动作设备中。
因此,例子2中的联动规则存储在动作设备(灯)中:
1)当条件设备(亮度传感器向外发出自己的亮度值具体数值时,
2)由于灯存储了关于亮度传感器联动灯的联动配置,会对亮度传感器的这个信息感兴趣
3)当收到传感的 dpid = 1 的数据时,拿出 if(亮度传感器的 dpid = 1 的 value > 80) 设置灯的 dpid=2的值为0.
进行匹配
4)匹配成功,会将灯自己的 dpid = 2 的 value 设置为 0
5)进一步,对于MCU对接的方式,模块会通过串口协议将 dpid = 2, value 设置为 0 这件事通知到 MCU。通知的方法就是 0xC3(其中自动化ID字段信息可以不使用,某些特殊应用才会需要用到)
6)MCU 收到 0xC3 的串口命令,解出来其中的 dpid 数据,进行控制设备的外设(就像收到命令下发(CMD-0x06)的处理一样)