This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

终端加不进路由

协议栈:3.0.2

芯片:2530

问题:有一个门磁的终端设备,我想让这个设备加入路由当中,路由已经permit join了,但是门磁设备仍然不能加入路由,求解,抓包文件附上,我在1549行开启了路由的permit join ,谢谢。8月30日16_09_44_门磁无法加入路由.rar

  • 你的ZC之前是不是加入过其他节点。这是正常情况,你目前只有UPDATE DEVICE 缺少了transport key。可以把所有设备Erase 之后再试试看。

  • 我这个门磁已经加过协调器了,然后的门磁用按键触发leave然后SystemResetSoft,然后重加路由,加不进去。难道leave不能触发协调器在它的关联表里面删除这个设备吗。
  • 还有下面的补丁:

    ZDSecMgrUpdateDeviceInd in zd_sec_mgr.c:



    #if (ZG_BUILD_COORDINATOR_TYPE) uint8 found; uint16 keyNvIndex, index; APSME_TCLKDevEntry_t TCLKDevEntry; keyNvIndex = APSME_SearchTCLinkKeyEntry(device.extAddr,&found, &TCLKDevEntry); //If found and it was verified, then allow it to join in a fresh state by erasing the key entry if((found == TRUE) && (TCLKDevEntry.keyAttributes == ZG_VERIFIED_KEY)) { TCLKDevEntry.keyAttributes = ZG_DEFAULT_KEY; //Increase the shift by one. Validate the maximum shift of the seed which is 15 TCLKDevEntry.SeedShift_IcIndex++; TCLKDevEntry.SeedShift_IcIndex &= 0x0F; TCLKDevEntry.rxFrmCntr = 0; TCLKDevEntry.txFrmCntr = 0; index = keyNvIndex - ZCD_NV_TCLK_TABLE_START; TCLinkKeyFrmCntr[index].rxFrmCntr = 0; TCLinkKeyFrmCntr[index].txFrmCntr = 0; //Update the entry osal_nv_write(keyNvIndex,0,sizeof(APSME_TCLKDevEntry_t), &TCLKDevEntry ); } bdb_TCAddJoiningDevice(device.parentAddr,device.extAddr); #endif } ZDSecMgrDeviceJoin( &device ); } else { // remove the TCLK NV entry for a device which has left the network #if (ZG_BUILD_COORDINATOR_TYPE) uint8 found; uint16 keyNvIndex, index; APSME_TCLKDevEntry_t TCLKDevEntry; keyNvIndex = APSME_SearchTCLinkKeyEntry(device.extAddr,&found, &TCLKDevEntry); //If found and it was verified, erase the key entry if((found == TRUE) && (TCLKDevEntry.keyAttributes == ZG_VERIFIED_KEY)) { MAP_osal_memset(&TCLKDevEntry,0,sizeof(APSME_TCLKDevEntry_t)); TCLKDevEntry.keyAttributes = ZG_DEFAULT_KEY; index = keyNvIndex - ZCD_NV_TCLK_TABLE_START; TCLinkKeyFrmCntr[index].rxFrmCntr = 0; TCLinkKeyFrmCntr[index].txFrmCntr = 0; //Update the entry osal_nv_write(keyNvIndex,0,sizeof(APSME_TCLKDevEntry_t), &TCLKDevEntry ); } #endif } }

  • 你好,我按照你说的方法加入了代码,然后编译出现Error[e46]: Undefined external "MAP_osal_memset::?relay" referred in ZDSecMgr,全局查找没有找到MAP_osal_memset这个函数,不知道是否为void *osal_memset( void *dest, uint8 value, int len );这个函数呢,谢谢。