static void zclSampleLight_OnOffCB( uint8 cmd ) 中处理不同endpoint问题
由于之前使用的ember的协议栈,所以思路可能还是按之前的套路,可能钻牛角尖了,望大神牵出来,下面入正题
做一个两路的开关控制,每一个endpoint控制一路开关,协调器那边通过zclGeneral_SendOnOff_CmdToggle(ON or OFF)来发送命令,对应的终端这边就是static void zclSampleLight_OnOffCB( uint8 cmd )来处理接收的command了,但是在这边的callback函数中只传入了CMD,无法直接得知协调器的ON OFF TOGGLE 等command是具体发给哪一个endpoint的,(之前用的ember协议栈是直接有的,所以跳不出来了)进而不能准确的去通过I/O口控制外接设备,大体思路就是如此,1、希望帮忙验证思路是否有误,多路开关应该是使用ON/OFF cluster 来处理吧?
2、如果流程无误的话,是否是我的处理方式有问题,例如可以直接提取消息发送给那个节点的函数
3,如果大神有更好的处理方式的话,请不吝指教,感激不敬啊
两个个端点都要注册,每个端点使用不同的回调函数。
// Register the ZCL General Cluster Library callback functions zclGeneral_RegisterCmdCallbacks( SAMPLELIGHT_ENDPOINT, &zclSampleLight_CmdCallbacks );
谢谢答复,两个端点都要注册这我是知道的,使用不同的回调函数是否意味着
也需要声明和注册两次,每一个endpoint都需要一次?
这个也需要多声明一次吧,你和楼上的思路应该是对的,谢谢