TI论坛
直播中

周颂焱

7年用户 150经验值
私信 关注
[问答]

请问ZIGBEE怎么在应用层查找网络的PANID、信道等信息

1.怎么在应用层查找网络的PANID、信道等信息,在网上看到有说直接读_NIB中的信息就行了,但是我在程序中写的是:Channel_Value = _NIB.nwkLogicalChannel;但发现这一句连断点都加不了,个人感觉是这一句根本没编译。想问问这个是怎么回事?还有就是怎么在应用层查找网络的PANID、信道等信息?

2.我配置DZDAPP_CONFIG_PAN_ID为0xFFFF,也就是组网后会随机选一个PANID作为网络ID,然后预编译NV_INIT和NV_RESTORE,这个理论上掉电重启后PANID应该不会变的吧?但是我调试时发现,每次RESET后,组网成功后_NIB中的nwkPanId会变。这个是怎么回事

3.我是这样想的(这里我打算组多个网,每个网有50-90个节点):网络中的每个设备的DZDAPP_CONFIG_PAN_ID设置为0xFFFF,默认的信道都打开,也就是第11-26个信道都作为默认信道,每个网络都预编译NV_INIT和NV_RESTORE。这样当协调器第一次组网后,每个设备随机加入网络,网络确定后,下一次掉电重启后,每个网络都能重新恢复到原来的网络。不知道这种方案可不可靠。

回帖(4)

庄当甜

2018-8-17 07:57:24
您可以利用zb_GetDeviceInfo()函数在应用层获取PANID及信道等信息

查看该函数定义即可知用法:
void zb_GetDeviceInfo ( uint8 param, void *pValue )
[
switch(param)
[
    case ZB_INFO_DEV_STATE:
      osal_memcpy(pValue, &devState, sizeof(uint8));
      break;
    case ZB_INFO_IEEE_ADDR:
      osal_memcpy(pValue, &aExtendedAddress, Z_EXTADDR_LEN);
      break;
    case ZB_INFO_SHORT_ADDR:
      osal_memcpy(pValue, &_NIB.nwkDevAddress, sizeof(uint16));
      break;
    case ZB_INFO_PARENT_SHORT_ADDR:
      osal_memcpy(pValue, &_NIB.nwkCoordAddress, sizeof(uint16));
      break;
    case ZB_INFO_PARENT_IEEE_ADDR:
      osal_memcpy(pValue, &_NIB.nwkCoordExtAddress, Z_EXTADDR_LEN);
      break;
    case ZB_INFO_CHANNEL:
      osal_memcpy(pValue, &_NIB.nwkLogicalChannel, sizeof(uint8));
      break;
    case ZB_INFO_PAN_ID:
      osal_memcpy(pValue, &_NIB.nwkPanId, sizeof(uint16));
      break;
    case ZB_INFO_EXT_PAN_ID:
      osal_memcpy(pValue, &_NIB.extendedPANID, Z_EXTADDR_LEN);
      break;
]
]
例如要获取设备短地址,可以这样:
uint16 my_panid;
zb_GetDeviceInfo(ZB_INFO_PAN_ID,my_panid);
举报

周颂焱

2018-8-17 08:05:36
引用: 小Qhhui 发表于 2018-8-17 07:57
您可以利用zb_GetDeviceInfo()函数在应用层获取PANID及信道等信息
<span/>
查看该函数定义即可知用法:

谢谢,我还想请问一下,我预编译了NV_INIT和NV_RESTORE,组网后发现每次复位后PANID都会变,难道不会把PANID存在非易失寄存器里面吗?
举报

周颂焱

2018-8-17 08:25:30
引用: 小Qhhui 发表于 2018-8-17 07:57
您可以利用zb_GetDeviceInfo()函数在应用层获取PANID及信道等信息
<span/>
查看该函数定义即可知用法:

对了,我还想问一下,有没Z-Stack协议栈里面的所有函数手册啊?这样查找起来方便点。
举报

庄当甜

2018-8-17 08:41:24
引用: sosolala 发表于 2018-8-17 08:25
对了,我还想问一下,有没Z-Stack协议栈里面的所有函数手册啊?这样查找起来方便点。

您可以参考协议栈安装文件夹内的C:Texas InstrumentsZStack-CC2530-2.5.1aDocuments
里面有API的相关文档
举报

更多回帖

发帖
×
20
完善资料,
赚取积分