请教个问题(基于3.0.2)
2530终端每10S会收到传感器的串口数据,收到后发给协调器
有两种方法:
1.串口收到后立即发给协调器
大致代码如下
case CMD_SERIAL_MSG:
SampleApp_SerialCMD((mtOSALSerialData_t *)MSGpkt);
break;
//收到后发给协调器
static void SampleApp_SerialCMD(mtOSALSerialData_t *cmdMsg)
{
zcl_SendReportCmd;//用该函数发给协调器
osal_mem_free( pReportData ); //释放空间
}
2.类似1,把收到的数据缓存到一个数组,然后在定时器里面调用zcl_SendReportCmd发给协调器
方式1有没有什么问题?我之前测了方式了发了几个小时就不再发了,必须重启才行,
空间我也释放了,不知什么原因会死机
Alvin Chen:
debug一下是整体都不工作了,还是单纯的不不发送了。 如果是整体不都不工作了,加上看门狗。
user5367314:
回复 Alvin Chen:
只是发送不工作了,因为终端收到串口数据时,LED会闪烁一下,
LED是正常闪烁的,但是协调器收不到了,必须终端重启才行,
我把发送给协调器的代码放在SampleApp_SerialCMD函数里是否有问题?
case CMD_SERIAL_MSG:
SampleApp_SerialCMD((mtOSALSerialData_t *)MSGpkt);
break;
//收到后发给协调器
static void SampleApp_SerialCMD(mtOSALSerialData_t *cmdMsg)
{
zcl_SendReportCmd;//用该函数发给协调器
osal_mem_free( pReportData ); //释放空间
}
Alvin Chen:
回复 user5367314:
你去debug一下,以及抓包看一下。zcl_SendReportCmd是否报错。
Alvin Chen:
回复 user5367314:
你去debug一下,以及抓包看一下。zcl_SendReportCmd是否报错。