同一节点不同endpoint问题
想将sample中的samplelight示例改成同一节点中两个endpoint示例(简单的说就是做一个两路开关),但是在控制命令zclGeneral_SendOnOff_CmdToggle()和终端接收的callback函数zclSampleLight_OnOffCB中都没有涉及到区分接收端的endpoint,那我怎么区分 ON OFF TOGGLE 等命令是发送给终端的哪一个endpoint呢,望指点
你可以修改这个函数的接口啊,加个endpoint的参数,这样就可以区分开了
修改API的话那协议就只能自用了吧,别人ON OFF TOGGLE的command不可能加一个endpoint的参数吧
第一,这个函数是应用层的,可以修改,为处理数据方便,添加接口,不影响兼容性.
第二,在发送的 参数中,目的地址结构中就包含了目的ep号,所以,在收到时,只是取出来判断对应处理一下就好了.
谢谢解答
一直把afAddrType_t *destAddr简单的当成了目标地址,没注意结构体里面的数据;
另外在接收端的callback中static void zclSampleLight_OnOffCB( uint8 cmd )只传入了uint8 cmd,没有直接把endpoint参数传进来,意味着需要到传入的数据包里直接提取endpoint?
是滴,这样就可以区别开了
后面试了下但是还是没有很好的办法来区分endpoint,提取endpoint的函数好像也找的不对,在函数static void zclSampleLight_OnOffCB( uint8 cmd )中处理接收到的ON OFF TOGGLE command还是无法具体的指明到不同endpoint,看到的话请帮忙提示一下,谢谢
你好!
这个问题解决了吗?怎么区分区分endpoint呀?
求教!谢谢!
注册两个endpoint,相对应的endpoint函数都是双份,callback也是各是各的