//注:新手刚学习,如有错误,欢迎指正。
//饮水不忘挖井人,感谢带我入行的前辈。
1、简介
使用contiki操作系统,开始一个进程之后,进程会进行等待一些事件或者超时消息等。
列如:
(1)可以用在某些周期性的应用,比如周期的读取温度湿度传感器信息,周期性的采样的行为。
(2)等待某一个事件,比如等待加速度信息。
2、逻辑简介
(1)开始这个进程
process_start(&adc_sensor_process, NULL);
(2)向这个进程post事件信息
process_post(&adc_sensor_process, at_cmd_event, &cmd_type);
3、代码实现
(1)先初始化进程
void gsm_process_init(void)
{
gsm_cmd = fifo_create(&fifo_ram, sizeof(uint8_t), 16);
at_cmd_event = process_alloc_event();
process_start(&adc_sensor_process, NULL);
}
(2)进程的具体实现
PROCESS(adc_sensor_process, " adc_sensor_process ");
/*---------------------------------------------------------------------------*/
PROCESS_THREAD(adc_sensor_process, ev, data)
{
PROCESS_BEGIN();
While(1)
{
PROCESS_WAIT_EVENT_UNTIL((ev == cmd_ack_event)||(ev == ack_timeout_event));
If(ev == cmd_ack_event)
{
Printf(“ cmd_ack_event \n”);
}
If (ev == ack_timeout_event)
{
printf("Hello, world\n");
}
}
PROCESS_END();
}
(3)在某处post这个事件
process_post(&adc_sensor_process, NULL, NULL);