微波EDA网,见证研发工程师的成长! 2025婵犵數濮撮惀澶愬级鎼存挸浜炬俊銈勭劍閸欏繘鏌i幋锝嗩棄缁炬儳娼¢弻鐔告綇閸撗呮殸缂備胶濯崹鍫曞蓟閵娾晜鍋嗛柛灞剧☉椤忥拷04闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈡晜閽樺缃曢梻浣虹帛閸旀洟骞栭銈囦笉妞ゆ牜鍋為悡銉╂煟閺囩偛鈧湱鈧熬鎷�22闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈡晝閳ь剛绮eΔ浣虹闁瑰瓨鐟ラ悘鈺冪磼閻欌偓閸ㄥ爼寮婚妸鈺傚亞闁稿本绋戦锟� 闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈠Χ閸屾矮澹曞┑顔结缚閸樠冣枍瀹ュ洠鍋撶憴鍕;闁告濞婇悰顕€宕堕澶嬫櫌婵犵數濮撮幊澶愬磻閹捐閿ゆ俊銈勮兌閸欏棝姊虹紒妯荤闁稿﹤婀遍埀顒佺啲閹凤拷濠电姷鏁告慨鐑藉极閹间礁纾绘繛鎴欏灪閸嬨倝鏌曟繛褍鍟悘濠囨⒑閹稿海绠撴い锔诲灣缁顢涢悙瀵稿弳闂佺粯娲栭崐鍦偓姘炬嫹
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > zigbee协调器移除终端后,在协调器禁止设备加入的情况下,终端设备重新上电后自动加入了协调器,需要协调器允许设备加人的情况下才能加入该怎么办?

zigbee协调器移除终端后,在协调器禁止设备加入的情况下,终端设备重新上电后自动加入了协调器,需要协调器允许设备加人的情况下才能加入该怎么办?

时间:10-02 整理:3721RD 点击:

移除终端设备相关的代码:

if( AddrMgrExtAddrValid( extAddr ) == TRUE )
{
req.extAddr = extAddr;
req.rejoin = FALSE;
req.removeChildren = FALSE;
req.silent = TRUE;

NLME_LeaveReq( &req );

ZDSecMgrDeviceRemoveByExtAddr( extAddr );
ZDSecMgrAddrClear( extAddr );
AssocRemove( extAddr );

ZDApp_NVUpdate( );
}

很抱歉,有些不太明白您的意思。请问能请您再说明下吗?

if( AddrMgrExtAddrValid( extAddr ) == TRUE )
{
req.extAddr = extAddr;
req.rejoin = FALSE;
req.removeChildren = FALSE;
req.silent = TRUE;

NLME_LeaveReq( &req );

ZDSecMgrDeviceRemoveByExtAddr( extAddr );
ZDSecMgrAddrClear( extAddr );
AssocRemove( extAddr );

ZDApp_NVUpdate( );
}

我在协调器里使用以上代码移除了指定ExtAddr的设备;并且协调器启动时我调用了NLME_PermitJoiningRequest(0x00)来禁止设备加入,但是我将被协调器移除的设备重新上电后,设备自动又加入到协调器里来了。此时协调器是禁止任何设备加入的,并且协调器已经移除了设备相关的信息,为什么设备还能加入到协调器的网络中来,是应为设备端有保存协调器的信息,就能直接加入协调器吗?

我在下面描述了,请问能看明白了不?

q请问您现在是否预编译了NV_RESTORE? 若是的话,则需要使用uint8 zgWriteStartupOptions( uint8 action, uint8 bitOptions )  来改动ZCD_NV_STARTUP_OPTION的值以清除NV内的信息,防止其直接加入网络

编译选项中加了NV_RESTORE。不过我是想在不请求终端退网的情况下,协调器直接让终端,比如终端没有处于关机状态,协调器任可以把终端移出网络,在节点开机后就不能加入网络了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top