Simple example of the use of mail_driven_task library

Dependencies:   mail-driven-task mbed-rtos mbed-src

Committer:
mzta
Date:
Mon Dec 22 04:02:35 2014 +0000
Revision:
0:7e8dc6570c55
Initial commit.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mzta 0:7e8dc6570c55 1 #include "Task.h"
mzta 0:7e8dc6570c55 2 #include "taskdef.h"
mzta 0:7e8dc6570c55 3 #include "adc_task.h"
mzta 0:7e8dc6570c55 4
mzta 0:7e8dc6570c55 5 void kickTaskMain(void const *argument)
mzta 0:7e8dc6570c55 6 {
mzta 0:7e8dc6570c55 7 MailPacket *mail;
mzta 0:7e8dc6570c55 8 Task *self = (Task *)argument;
mzta 0:7e8dc6570c55 9
mzta 0:7e8dc6570c55 10 while (true) {
mzta 0:7e8dc6570c55 11 mail = self->waitMail();
mzta 0:7e8dc6570c55 12 switch(mail->messageId) {
mzta 0:7e8dc6570c55 13 case TMSG_ADC_DATA_NOTIFY:
mzta 0:7e8dc6570c55 14 case TMSG_ADC_AVEDATA_NOTIFY:
mzta 0:7e8dc6570c55 15 {
mzta 0:7e8dc6570c55 16 AdcData *data = (AdcData *)mail->packet;
mzta 0:7e8dc6570c55 17 if (mail->messageId == TMSG_ADC_DATA_NOTIFY) {
mzta 0:7e8dc6570c55 18 self->log(LOG_INFO,
mzta 0:7e8dc6570c55 19 "recieve ADC_DATA_NOTIFY <a0=%.2f, a1=%.2f>",
mzta 0:7e8dc6570c55 20 data->a0, data->a1);
mzta 0:7e8dc6570c55 21 } else {
mzta 0:7e8dc6570c55 22 self->log(LOG_INFO,
mzta 0:7e8dc6570c55 23 "recieve ADC_AVEDATA_NOTIFY <a0=%.2f, a1=%.2f>",
mzta 0:7e8dc6570c55 24 data->a0, data->a1);
mzta 0:7e8dc6570c55 25 Task::sendMail(TID_LED, TMSG_LED_STOP_BLINK, NULL);
mzta 0:7e8dc6570c55 26 }
mzta 0:7e8dc6570c55 27 delete data;
mzta 0:7e8dc6570c55 28 break;
mzta 0:7e8dc6570c55 29 }
mzta 0:7e8dc6570c55 30 case TMSG_KICK_TEST1:
mzta 0:7e8dc6570c55 31 self->log(LOG_INFO, "recieve KICK_TEST1");
mzta 0:7e8dc6570c55 32 Task::sendMail(TID_ADC, TMSG_ADC_DATA_REQ, NULL);
mzta 0:7e8dc6570c55 33 break;
mzta 0:7e8dc6570c55 34 case TMSG_KICK_TEST2: {
mzta 0:7e8dc6570c55 35 self->log(LOG_INFO, "recieve KICK_TEST2");
mzta 0:7e8dc6570c55 36 int *i = new int;
mzta 0:7e8dc6570c55 37 *i = 10;
mzta 0:7e8dc6570c55 38 Task::sendMail(TID_LED, TMSG_LED_START_BLINK, NULL);
mzta 0:7e8dc6570c55 39 Task::sendMail(TID_ADC, TMSG_ADC_AVEDATA_REQ, i);
mzta 0:7e8dc6570c55 40 break;
mzta 0:7e8dc6570c55 41 }
mzta 0:7e8dc6570c55 42 default:
mzta 0:7e8dc6570c55 43 break;
mzta 0:7e8dc6570c55 44 }
mzta 0:7e8dc6570c55 45 self->deleteMail(mail);
mzta 0:7e8dc6570c55 46 }
mzta 0:7e8dc6570c55 47 }