TI中文支持网
TI专业的中文技术问题搜集分享网站

zigbee 恢复到出厂参数

节点有定义:

-DNV_RESTORE
-DNV_INIT

根据设计需要,节点有时需要复位到程序烧录后的首次状态,我是通过这一函数实现的:

zgWriteStartupOptions(ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE);

但是,偶尔发现,执行以上函数后,仍然不能复位到原始状态,必须重新烧录一次程序才可以达到出厂状态,感觉NV中还有数据没被清除,请问还需要复位哪些参数?谢谢!

Susan Yang:

请问您现在使用的是哪款芯片以及协议栈版本?

user3514461:

回复 Susan Yang:

2530/2531 zigbee 1.2.2a  还有NV中什么参数需要擦除呢?谢谢

YiKai Chen:

回复 user3514461:

就是使用 zgWriteStartupOptions(ZG_STARTUP_SET, (ZCD_STARTOPT_DEFAULT_NETWORK_STATE | ZCD_STARTOPT_DEFAULT_CONFIG_STATE) ); 然後要做reset才能生效

user3514461:

回复 YiKai Chen:

在调用zgWriteStartupOptions(ZG_STARTUP_SET, (ZCD_STARTOPT_DEFAULT_NETWORK_STATE | ZCD_STARTOPT_DEFAULT_CONFIG_STATE) );后,我也调用了SystemResetSoft();程序可以看到是重启了

Susan Yang:

回复 user3514461:

zgWriteStartupOptions(ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE);
SystemReset();

就是使用上述的代码

“执行以上函数后,仍然不能复位到原始状态” 有什么具体现象吗?

您现在协调器的permit join是一直开着吗? 您试着disable permit join

user3514461:

回复 Susan Yang:

看到一个vv 2014年回复(e2echina.ti.com/…/67626),有必要吗?谢谢
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 )
// Hold down the SW_BYPASS_NV key (defined in OnBoard.h)
// while booting to skip past NV Restore.
if ( zdappHoldKeys == SW_BYPASS_NV )上电的时候如果某个按键处于按下并且Hold状态的话,会把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

YiKai Chen:

回复 user3514461:

調用
zgWriteStartupOptions(ZG_STARTUP_SET, ZCD_STARTOPT_DEFAULT_NETWORK_STATE);
SystemReset();
後不需要再按任何按鍵了

赞(0)
未经允许不得转载:TI中文支持网 » zigbee 恢复到出厂参数
分享到: 更多 (0)