大家好,
我现在正在学习z-stack的相关内容,使用的是cc2538的器件以及相应的开发设备EM。软件用的是z-stack3.0的版本。我现在想在genericapp上头模拟传递信号的内容。刚开始想从最简单的内容开始,所以就先模拟传递command on/off这个指令到另一个点上。
我用两个软件分别写的发送信号和接受信号的内容(几个例子好像都是这样做的),然后在发射端发送
zcl_SendCommand( GENERICAPP_ENDPOINT, &RemoteLightOnDst, ZCL_CLUSTER_ID_GEN_ON_OFF, COMMAND_ON, TRUE, ZCL_FRAME_CLIENT_SERVER_DIR, FALSE, 0, bdb_getZCLFrameCounter(), 0, NULL );
然后在接收端些call back函数。
然后我做实验的时候用Ubiqua进行包分析,发现On/off 的response 显示unsupported cluster command,然后status code显示[0x81]。
我把接收方烧成samplelight的code的话,就可以正常接收也显示success,也能点亮LED。
我想问一下这个问题怎么解决,cluster是在什么地方定义的?
祝好
王霰
VV:
你好,在接收端需要注册了你发送命令的ZCL_CLUSTER_ID_GEN_ON_OFF的cluster,才可以正常接收这个cluster的命令。
你可以看到在Samplelight上面注册了ZCL_CLUSTER_ID_GEN_ON_OFF。请问你们是开发什么应用产品,可以给你推荐选择哪个例程比较合适。
谢谢!
Xian Wang42:
回复 VV:
请问您能具体讲一下么?
我在发送端和接受段都做了genericapp_data.c的定义,但是不知道对不对。
我现在其实是比较想在genericapp里头学一下如何进行指令的传递,现在在练习当中,想要把command on/off 的指令在两个点之间进行传递。但是现在Ubiqua当中显示unsupported cluster command. 我是想问问这种情况的原因是个啥?
祝好
王霰
Susan Yang:
回复 Xian Wang42:
ZCL运转在AF层之上,App层之下。AF层接收到的Message中,包含符合ZCL格式的命令,这些命令不是由非ZCL应用中用户自定义的app_process_event任务所处理的,而是进入ZCL的任务队列(task's queue),由zcl_event_loop()处理。ZCL在此充当了AF层和ZCL应用之间的一个中间层,zcl命令被解析后,由用户定义的cmd callback回调函数对命令做出响应;应用需要向外发出消息时,通过调用zcl层的API实现。
ZCL的API您可以在协议栈的安装文件夹内找到 Z-Stack ZCL API.pdf