void vTask2(void *pvParameters) {
const char *pcTaskName = "Task 2 is running\n";
int *pxPedestrianMessage;
int pedestrianVal;
current_state = STATE_0;
/* As per most tasks, this task is implemented in an infinite loop. */
for (;;) {
/* Print out the name of this task. */
vPrintString(pcTaskName);
/* here we are in STATE_0 */
long_delay();
FSM(EVENT_FOR_STATE_1);
short_delay();
FSM(EVENT_FOR_STATE_2);
short_delay();
FSM(EVENT_FOR_STATE_3);
short_delay();
FSM(EVENT_FOR_STATE_4);
long_delay();
FSM(EVENT_FOR_STATE_5);
short_delay();
FSM(EVENT_FOR_STATE_6);
short_delay();
/* don't block on message */
if (xQueueReceive( xQPedestrian, &( pxPedestrianMessage ), ( portTickType ) 0 )) {
/* pxPedestrianMessage either enables or disables
* the pedestrian functionality
*/
if ((int) pxPedestrianMessage == 1) {
FSM(EVENT_FOR_STATE_8);
long_delay();
FSM(EVENT_FOR_STATE_9);
short_delay();
}
}
FSM(EVENT_FOR_STATE_7);
short_delay();
FSM(EVENT_FOR_STATE_0);
/* here we are back to STATE_0
* let's re-enable the shell in case it was disabled before
*/
if (GetUseInputVal() == 0) {
SetUseInputVal(1);
}
}
}
Comments