各位大侠好,我进入WSN不是很久,因需要,我设计了一个节点上的程序,让其实现路由和终端功能的切换,切换代码是
void ChangeNodeType(uint8 nodeType)
{
uint8 logicalType = nodeType;
zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);
zb_ReadConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
startOptions = ZCD_STARTOPT_AUTO_START;
zb_WriteConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
zb_SystemReset();
}
使用的平台是CC2430, ZStack-CC2430-1.4.3-1.2.1 ,切换好像实现了,但是加大节点数量和测试时间后,发现全负荷工作几个小时后,就有节点掉线,难以入网的情况,检查数据发现,有的节点的网络地址出现了0x FF FE,好像到了最大值,不知道是不是节点网络地址的回收出现问题?另外我想通过程序指定各节点的网络地址,不管节点是路由还是终端,都保持我指定的节点短地址不变(因为我们用的节点数量不是很多,不超过100个,可以人为保证网络地址不冲突),不需要TI的网络地址分配,回收,冲突监测等过程,不知道在哪里去修改?
请指教!谢谢。
Y.SH. Tang:
坐等,自己顶一下。我的问题如果不是网络地址的问题,那节点掉线就一直上不来(肯定有电),是什么原因呢。我就加了个 软重启的函数zb_SystemReset(),但是如果硬件Reset一下后,就可以正常入网通讯了,但是时间长了之后又会出现某个节点掉线上不来。此过程中协调器是一直正常工作的。
Y.SH. Tang:
呼唤达人
VV:
节点在切换以后,有没有重新入网?
Y.SH. Tang:
回复 VV:
感谢VV的回复!
一般情况下应该是重新入网了,因为每次软重启,节点的类型都变了,从理论上说,分配给路由和终端的网络地址应该是不一样的,但是节点在切换类型之后,有时候网络地址变了,有时候没有变,但是采集的数据都发送给协调器了,所以我认为它是入网了,要是没入网怎么会有采集数据来?测试时,我是采用了5个节点,每节点都是半分钟切换一次,像这样大概要6~8小时就会出现有的节点消息了(没数据上来),但是都有电,我认为这时候可能是入网失败了。然后就一直没有,如果硬件Reset一下,马上就又入网了。之后这个问题又会跑到别的节点上,已经测试好久了,每次都会出现,不知道测试现象我说清楚了没?
VV:
回复 Y.SH. Tang:
类型切换,分配的地址一样是正常的,因为父设备是有保存的,而且会根据IEEE做比对的。
没数据上来的时候,网络中节点的状态是什么,能否抓下包看看
Y.SH. Tang:
回复 VV:
好的,我现在正在抓包,现在只设置了一个节点工作,要等到它掉线才能看到需要的东西,但是您说的网络中节点的状态是在哪个字段呢?
Y.SH. Tang:
回复 Y.SH. Tang:
想抓包也不太好弄啊,测试工作太需要耐心了。
因为原实验方案是1协调器+5个节点;经过6~10小时后,每次都会出现某1、2个节点掉线,如果按照这个方案抓包,因为时间长,掉线时间和节点均不能确定,节点掉线之后别的节点还正常工作,所以掉线节点出问题时的包会被后续正常数据包湮没,所以我把实验方案是1协调器+1个节点,专抓这个节点的数据包。可是已经不休不眠的工作了近30小时了,单个节点的话,它工作正常,一直都是半分钟重启变换类型一次,没出问题。
节点多才会出问题,每次测试都会,但是要等6~10小时的样子,出问题的节点也是随机的,造成看目的包困难;只测试单个节点,好像问题不能出现,怎么办?
另一个现象,单个节点测试时,不管是作为路由还是终端,它的网络地址始终都是00 01,如果是多个节点测试的话,有的节点的网络地址有时不会改变,有时候会变。
上次图片不清楚,重新发一次。
Y.SH. Tang:
回复 Y.SH. Tang:
这是测试单个节点工作的抓包截图(帖子中如果看不清,请点击图片一下即可放大显示)
这是串口接收的数据截图:
数据格式为7字节,01(自定义)+51(节点编号)+00 01(节点的网络地址)+01/02(节点类型)+ 11 22 (自定义数据),可以看到,数据都收到13万字节了,基本都在正常工作。
VV:
回复 Y.SH. Tang:
能不能把抓包文件另存为,用附件上传啊,这样图片发送看不到解析的数据的。
谢谢!
Y.SH. Tang:
回复 VV:
VV大侠您好!
这一周都在做测试抓包,测试说明和数据,抓包文件见附件,测试说明里面应该说得比较清楚了,帖子里就不赘述了,真想邀请您来武汉出差^_^,抓包数据文件大小25M,超过允许的20M了,能给我个邮箱或者QQ什么的吗?我的QQ是1553867265,非常感谢。