在stack协议栈,我知道可以在烧录程序之前在f8wConfig.cfg中修改-DDEFAULT_CHANLIST、-DZDAPP_CONFIG_PAN_ID来修改信道和网络PANID,不过现在我想让终端节点上电后可以由人的操作来选择一个信道和网络PANID,请问在哪个位置修改和使用哪些函数?谢谢(问题的由来:为了较好的互换性,在终端节点坏了之后可以直接拿过来一个好的终端节点,并手动在终端节点选择一个信道和PANID入网,这就避免了重新烧录程序的麻烦)
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.
在stack协议栈,我知道可以在烧录程序之前在f8wConfig.cfg中修改-DDEFAULT_CHANLIST、-DZDAPP_CONFIG_PAN_ID来修改信道和网络PANID,不过现在我想让终端节点上电后可以由人的操作来选择一个信道和网络PANID,请问在哪个位置修改和使用哪些函数?谢谢(问题的由来:为了较好的互换性,在终端节点坏了之后可以直接拿过来一个好的终端节点,并手动在终端节点选择一个信道和PANID入网,这就避免了重新烧录程序的麻烦)
可以尝试使用
void zb_WriteConfiguration( uint8 configId, uint8 len, void *pValue ) // The zb_WriteConfiguration function is used to write a Configuration Property to nonvolatile memory.
第一个参数configId在OSAL下的ZComDef.h文件中定义。
其中有一条:
#define ZCD_NV_PANID 0x0083
可尝试如下语句
zb_WriteConfiguration(ZCD_NV_PANID, sizeof(uint16), &pan_id) ;
zb_SystemReset();
你好,我一直看到ZDO_StartDevice()函数,它分别调用了NLME_NetworkFormationRequest、NLME_NetworkDiscoveryRequest和NLME_OrphanJoinRequest函数来建立、发现加入网络,但是我发现NLME_NetworkFormationRequest()函数第一个、第三个形参分别来源于ZDAPP_CONFIG_PAN_ID、DEFAULT_CHANLIST,再往下我就看不到了,这里我认为这个形参调用了f8wConfig.cfg里面的配置参数,这样还是使
用了事先配置好的参数,不知道对不对?问题是,我不知道下面
zb_WriteConfiguration(ZCD_NV_PANID, sizeof(uint16), &pan_id) ;
zb_WriteConfiguration(ZCD_NV_CHANLIST , sizeof(uint16), &channel_id;) ;
zb_SystemReset();
在哪里的文件或是函数位置添加才能修改PANID和信道?否则的话只能在f8wConfig.cfg里面事先配置好了