完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
1. 终端ZE使用了NV_RESTORE,加入了协调器ZR,协调器也开了NV_RESTORE;
2. 若协调器掉电,重新上电协调器,协调器可以正常与ZE通信; 3. 若[size=1em]ZE掉电,然后[size=1em]重新上电,[size=1em]协调器可以正常与ZE通信; 4.[size=1em]若[size=1em]ZE掉电,协调器断电,[size=1em]ZE[size=1em]重新上电,[size=1em]抓包狗捕捉到ZE发出 orphan notification ,然后就开始发出 Beacon Request信号;[size=1em]然后开启另一个协调器,ZE无法加入新的协调器; 请问有前辈可以指教吗? 终端使用了NV_RESTORE要如何才能加入新网络? |
|
相关推荐
8 个讨论
|
|
|
你需要加入 reset 功能
你看一下 ZDApp.c 的 ZDOInitDevice() 去執行這段 #if defined ( NV_RESTORE ) // Hold down the SW_BYPASS_NV key (defined in OnBoard.h) // while booting to skip past NV Restore. if ( zdappHoldKeys == SW_BYPASS_NV ) [ zdappHoldKeys = 0; // Only once networkStateNV = ZDO_INITDEV_NEW_NETWORK_STATE; ] else [ // Determine if NV should be restored networkStateNV = ZDApp_ReadNetworkRestoreState(); ] if ( networkStateNV == ZDO_INITDEV_RESTORED_NETWORK_STATE ) [ networkStateNV = ZDApp_RestoreNetworkState(); ] else [ // Wipe out the network state in NV NLME_InitNV(); NLME_SetDefaultNV(); // clear NWK key values ZDSecMgrClearNVKeyValues(); ] #endif |
|
|
|
|
|
|
|
|
hi felix shih, 感谢回复,我使用的是Version 2.5.1a 版本,这一段代码有点区别,ZDOInitDevice()原来的代码是这样的: uint8 ZDOInitDevice( uint16 startDelay )[ uint8 networkStateNV = ZDO_INITDEV_NEW_NETWORK_STATE; uint16 extendedDelay = 0; if ( devState == DEV_HOLD ) [ // Initialize the RAM items table, in case an NV item has been updated. zgInitItems( FALSE ); ] ZDConfig_InitDescriptors(); //devtag.071807.todo - fix this temporary solution _NIB.CapabilityFlags = ZDO_Config_Node_Descriptor.CapabilityFlags;#if defined ( NV_RESTORE ) // Get Keypad directly to see if a reset nv is needed. // Hold down the SW_BYPASS_NV key (defined in OnBoard.h) // while booting to skip past NV Restore. if ( HalKeyRead() == SW_BYPASS_NV ) networkStateNV = ZDO_INITDEV_NEW_NETWORK_STATE; else [ // Determine if NV should be restored networkStateNV = ZDApp_ReadNetworkRestoreState(); /*读取NV网络状态的状态*/ ] if ( networkStateNV == ZDO_INITDEV_RESTORED_NETWORK_STATE ) [ networkStateNV = ZDApp_RestoreNetworkState(); ] else [ // Wipe out the network state in NV NLME_InitNV(); NLME_SetDefaultNV(); // clear NWK key values ZDSecMgrClearNVKeyValues(); ]#endif这段代码是通过按键来绕过NV数据恢复,功能与你贴出的版本应该无异。 请问您说的 reset功能是? |
|
|
|
|
|
|
|
jsjdfsdf 发表于 2018-8-18 07:12 基本上, reset 就是重開機後,去 erase flash Aries Lord 的方法你也可以試看看 我是定義一個自己的按鍵為 SW_BYPASS_NV #define SW_BYPASS_NV HAL_KEY_SW_5 // Bypass Network layer NV restore 在按住按鍵重新上電後,讓它去執行 // Wipe out the network state in NV NLME_InitNV(); NLME_SetDefaultNV(); // clear NWK key values ZDSecMgrClearNVKeyValues(); |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
584 浏览 0 评论
1641 浏览 0 评论
2080 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1533 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1372 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1782浏览 29评论
2810浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1742浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1654浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1671浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 22:37 , Processed in 1.060759 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1490