1.2530串口测试几天后出现终端死机,此时终端就无法收到协调器的数据了,
该协调器下的其他终端可以正常接收数据,说明协调器是正常的,
串口工作几天就死了,不知道是啥原因,重新上电该终端能恢复,但是这不是解决办法,
是不是串口处理机制的问题?
串口只发不收,是否要使能ZTOOL_P1和MT_TASK,
以及下面的函数?
case CMD_SERIAL_MSG:
SampleApp_SerialCMD((mtOSALSerialData_t *)MSGpkt);
break;
串口既发又收都要的吧
2.协调器和终端都开启NV,终端正常入网之后,再把终端程序擦除,重新下载程序,
此时测试发现,终端也能入网,只是入了马上就掉了,一直无限循环,
怀疑是终端入网之后,协调器对比NV里存的该终端之前的信息和现在的信息不一样,又把该终端踢了,
我把协调器清除NV后,终端加入之后就不会再掉线了,但是这个方法会影响其他已入网的终端,
请问是否可以在协调器端把所有不在线的终端全部剔除?有什么方法?
Alvin Chen:
1.你自己要去debug看一下你的处理逻辑以及内存使用情况
2.倾听抓包文件,你如果想短时间剔除不在线设备,建议你设备想擦除NV就直接bdb_resetLocalAction去重置。如果你把childaging 的时间改的太短会有出现很多意外掉线设备无法rejoin。
Viki Shi:
1、排查下缓存问题,软件配置请参考右边文档: www.ti.com/…/swra222b.pdf
2、删除掉线节点请参考这边: blog.csdn.net/…/12190895
user5367314:
回复 Viki Shi:
也没做处理啊,就串口收到数据就存到数组里,10秒收一帧数据(长度20字节),
这会导致缓存满了吗?
static void SampleApp_SerialCMD(mtOSALSerialData_t *cmdMsg)
{uint8 *str=NULL;str=cmdMsg->msg;if((str[0]==0x13)&&(str[1]==0x01)&&(str[2]==0x03)&&(str[3]==0x0E))//有效数据{HalLedSet( HAL_LED_2, HAL_LED_MODE_BLINK );//灯闪烁 osal_memcpy(&zclSampleSw_SensorData,str,20);}
}
user5367314:
回复 Alvin Chen:
串口只发送,不接收,是否要使能ZTOOL_P1和MT_TASK
Alvin Chen:
回复 user5367314:
UART使用使用和你这两个宏定义无关,只不过是ZTOOL_P1使用了UART,你可以自己调hal_uart.h的接口、
user5367314:
回复 Viki Shi:
排查下缓存问题,你说的这个缓存是指128字节那个Buf吗?
这个我没有超啊,我每次接收也就20字节,10秒一次,请问你说的是什么缓存?