抓包zigbee网络不停的发“Match Descriptor Request ”消息,影响zigbee网络正常传输数据,请问怎么关闭这条消息 。
sniferr.zip
Jesse Huang:
协调器是开了 OTA 功能吗?
YiKai Chen:
如果設備回應match descriptor response應該就會停止了
tao zhang25:
回复 Jesse Huang:
有OTA升级功能
tao zhang25:
回复 YiKai Chen:
问题可能出在哪?
tao zhang25:
回复 YiKai Chen:
抓包是有回应的
YiKai Chen:
回复 tao zhang25:
match descriptor request跟OTA沒什麼直接關聯,一般是IAS Zone設備用來主動做binding用的
Jesse Huang:
回复 tao zhang25:
你的 OTA 升级协调器部分不是自己写的吧,应该是这部分代码发出的“ZDP_MatchDescReq”。
void OTA_ProcessZDOMsgs(zdoIncomingMsg_t * pMsg)
{if (pMsg){if (pMsg->clusterID == Match_Desc_rsp){ZDO_ActiveEndpointRsp_t *pRsp = ZDO_ParseEPListRsp( pMsg );
if (pRsp){// Notify the console application of the client device's OTA endpointif (pRsp->cnt)OTA_Send_EndpointInd(pRsp->nwkAddr, pRsp->epList[0]);
osal_mem_free(pRsp);}}else if (pMsg->clusterID == Device_annce){cId_t otaCluster = ZCL_CLUSTER_ID_OTA;zAddrType_t dstAddr;
ZDO_DeviceAnnce_t devAnnce;ZDO_ParseDeviceAnnce(pMsg, &devAnnce);OTA_Send_DeviceInd(devAnnce.nwkAddr);
// Send out a match for the OTA cluster IDdstAddr.addrMode = Addr16Bit;dstAddr.addr.shortAddr = devAnnce.nwkAddr;ZDP_MatchDescReq( &dstAddr, devAnnce.nwkAddr, ZCL_OTA_SAMPLE_PROFILE_ID,0, NULL, 1, &otaCluster, FALSE );}}
}
tao zhang25:
回复 YiKai Chen:
设备发这包消息后,其他设备应该有应答,为啥没应答呢
YiKai Chen:
回复 tao zhang25:
如果沒有任何設備有對應支持的cluster就沒有人会回應哦
Alvin Chen:
回复 tao zhang25:
你的另一个设备也需要支持cId_t otaCluster = ZCL_CLUSTER_ID_OTA; 才会出现match的match descriptor response