Contiki系统代码分析(三)

//注:新手刚学习,如有错误,欢迎指正。

//饮水不忘挖井人,感谢带我入行的前辈。

 

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);

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章