微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > 各种问题求救

各种问题求救

时间:10-02 整理:3721RD 点击:
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。这样当协调器第一次组网后,每个设备随机加入网络,网络确定后,下一次掉电重启后,每个网络都能重新恢复到原来的网络。不知道这种方案可不可靠。

http://e2e.ti.com/support/wirele ... f/158/p/17435/67525

1.怎么在应用层查找网络的PANID、信道等信息,在网上看到有说直接读_NIB中的信息就行了,但是我在程序中写的是:Channel_Value = _NIB.nwkLogicalChannel;但发现这一句连断点都加不了,个人感觉是这一句根本没编译。想问问这个是怎么回事?还有就是怎么在应用层查找网络的PANID、信道等信息?
对于第一条:因为 _NIB.nwkLogicalChannel;是库函数封装了,打断点没什么用,你可以参考下/******************************************************************************
* @fn zb_GetDeviceInfo
*
* @brief The zb_GetDeviceInfo function retrieves a Device Information
* Property.
*
* @param param - The identifier for the device information
* pValue - A buffer to hold the device information
*
* @return none
*/
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;
}
}

2.我配置DZDAPP_CONFIG_PAN_ID为0xFFFF,也就是组网后会随机选一个PANID作为网络ID,然后预编译NV_INIT和NV_RESTORE,这个理论上掉电重启后PANID应该不会变的吧?但是我调试时发现,每次RESET后,组网成功后_NIB中的nwkPanId会变。这个是怎么回事
对于这个问题,如果你协调器和其他设备之间建立了网络,如果加了你所说的应该是不会自动+1,你在检查你的代码是不是哪里没有写好
3.我是这样想的(这里我打算组多个网,每个网有50-90个节点):网络中的每个设备的DZDAPP_CONFIG_PAN_ID设置为0xFFFF,默认的信道都打开,也就是第11-26个信道都作为默认信道,每个网络都预编译NV_INIT和NV_RESTORE。这样当协调器第一次组网后,每个设备随机加入网络,网络确定后,下一次掉电重启后,每个网络都能重新恢复到原来的网络。不知道这种方案可不可靠。
你说的方案没有试过,不过我觉得即使行也没有项目实用性,因为建立网络往往需要可控的,也就是你可以人为的指定哪些设备入哪些网络。

那版主能说一下怎么才能人为的选择加入某个网络和信道呢??

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

网站地图

Top