1、已经实现属性的读写与应答,在空中可以看到操作的结果。
2、怎么能在zclapp_event_loop中来获取这个结果?
3、在zclapp_ProcessInReadRspCmd和zclapp_ProcessInWriteRspCmd中数据都不会进入。
4、需要怎么配置,才能在 _event_loop中可以获取这个信息?
Viki Shi:
请问所使用的协议栈版本及芯片分别是什么?
YiKai Chen:
project有沒有加上defined symbols: ZCL_READ跟ZCL_WRITE,如果有,先去查看看你的zclapp_ProcessIncomingMsg有沒有加上"case ZCL_CMD_READ_RSP:"和ase ZCL_CMD_WRITE_RSP:去調用zclapp_ProcessInReadRspCmd和zclapp_ProcessInWriteRspCmd
Joel Cao:
回复 Viki Shi:
Z-stack 3.0.2 芯片CC2530
Joel Cao:
回复 YiKai Chen:
ZCL_READ和ZCL_WRITE都有定义了,zclapp_ProcessIncomingMsg中也有二个case,关键是其读写属性操作都是在底层直接完成了,在zcl.c中有定义 static CONST zclCmdItems_t zclCmdTable[],不会返回应用层去处理。所以在zclapp_event_loop根本就没有操作处理的反馈,已经在这里跟过了,相应信息。
YiKai Chen:
回复 Joel Cao:
ZCL_CMD_READ_RSP/ZCL_CMD_WRITE_RSP會透過zcl_HandleExternal去送給zclapp_ProcessIncomingMsg才對,你可以設置斷點在zcl_HandleExternal里頭去調試看看
Joel Cao:
回复 YiKai Chen:
zcl_HandleExternal在接受到ZCL_CMD_READ_RSP或ZCL_CMD_WRITE_RSP指令时才会操作。我这里本身是收到ZCL_CMD_READ或ZCL_CMD_WRITE指令,只会执行zclProcessInReadCmd或zclProcessInWriteCmd(在执行中返回ZCL_CMD_READ_RSP或ZCL_CMD_WRITE_RSP指令),所以应用层无法知道属性被写过了。除非只有修改协议层的函数了。
YiKai Chen:
回复 Joel Cao:
如果是要處理ZCL_CMD_READ或ZCL_CMD_WRITE指令,只能修改协议层的函数