osal_start_timerEx();函数不执行
我在串口接受回调中,串口接受指定字符后,
if(afStatus_SUCCESS==AF_DataRequest())
{
osal_start_timerEx();//事件是5s后,重启
}
广播发送给节点,
在UINT16 SerialApp_ProcessEvent( uint8 task_id, UINT16 events )中事件没触发。
然后我随便把这个重启事件发在哪里都没法执行的。
当我注释掉一个事件(随便一个,算重启,一共三个事件)时候,就可以执行了。好奇怪。
难道是一个任务只能处理指定多个事件吗?但是之前也是三个事件都可以触发的。
协议版本zstack-cc2530-2.3.0-1.4.0.
调用这个osal_start_timerEx的参数有设置多吧,task,eventID
osal_start_timerEx( SampleApp_TaskID,
SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT );没错,我是从以前三个事件都能执行的模版拷贝过来的,只是把里面的事件给改了就出问题了。
我注释一个事件就能触发。例如:
/*
if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT )
{
SerialApp_SendPeriodicMessage();
osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT,SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT+(osal_rand() & 0x00FF) );
return (events ^ SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
}
*/
我不注释事件,只是事件里面什么都不执行,还是不触发。
if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT )
{
//SerialApp_SendPeriodicMessage();
//osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT,SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT+(osal_rand() & 0x00FF) );
return (events ^ SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
}
好奇怪。我在研究研究。