对接ZHA终端的问题
对接其他厂商标准ZHA终端,遇到一些问题协调器不能回复终端match descriptor response,找不到原因了,请大神帮忙看看。
抓包的数据跟手册的是一致的,(如图)到第5步,协调器就不能发出response了,终端一直的在request,调试跟踪发现,ZDObject.c中ZDO_ProcessMatchDescReq()
......
epDece = epList;
while(epDesc)
.....
if(sDesc&&sDesc->AppProfId == profileID) ////////////////////此处AppProfId =0x0109而不等与0x0104
{}
我的协议栈是2.5.1a。我对比了一下1.2.2里面的samplelight的初始化init,应该没有什么错误啊。看了手册都是一笔带过如果匹配则应答,那什么情况才能匹配啊。
开发ZHA产品不要使用2.5.1a,请使用Z-Stack Home 1.2.2a的例程。
你的程序有没有对match descriptor request进行处理的call back函数注册?
Match_Desc_req, ZDO_ProcessMatchDescReq
单步调试下
我需要在2.5.1a上修改啊,不行吗?
注册了。ZDO_ProcessMatchDescReq可以进来,不知道为什么找不到prolieid 0x0104,而是0x0109
后来注销了两处profileID 都等于0x0104了。对接的ZHA设备是一个门磁传感器
1.f8wzcl.cfg中的-DZCL_KEY_ESTABLISH,这个用在系统任务初始化里面的一个任务,不知道是做什么的
2.f8wconfig.cfg中的-DSE_PROFILE,也不知道是什么加密关系
注销这2处后profile都等于0x0104了,但下一步的match input/output clusters 没有匹配的?
抓包看到终端发出的match request信息。
1, ZHA产品不需要关心这个,这个主要用在Smart Energy Profile的产品上的
2,SE_Profile是一个profile,和HA是一样的,加密的要求会更高