This service is responsible for changing the message string that is sent to the LED display service based on the state machine.
Module Defines
static uint8_t MyPriority, HALF_SEC 200
PostMessageService
Input: ES_Event_t
Post to service(priority, event)
InitMessageService
Inputs: priority
Post initial ES_INIT
RunMessageService
Input: Event ThisEvent
Declare ReturnEvent to be ES_NO_EVENT
Declare PostEvent to be ES_NO_EVENT
Declare buf[] as starting message string
Declare static int messageIndex, maxIndex
Set maxIndex as number of characters in message string
Switch statement for CurrentEvent
Case ES_IDLE:
Print message to TeraTerm
Break;
Case ES_INIT:
Init Timer for HALF_SEC
Break;
Case ES_TIMEOUT:
Declare ES_Event_t postEvent, EventParam as buf[messageIndex], EventType as ES_CHAR_PRESS
post event to LEDServiceFSM
increment messageIndex
if messageIndex exceeds maxIndex
reset messageIndex to 0
Declare ES_Event_t postEvent, EventType as ES_FinishedDisplay
Post event to SpiceRackFSM
Declare ES_Event_t postEvent, EventType as ES_INIT
Post event to PostMessageService
Break;
Case ES_STARTING:
Change buf[] to new string “STARTING”
Reset messageIndex to 0
Declare ES_Event_t postEvent, EventType as ES_INIT
Post event to PostMessageService
Break;
Case ES_STOPPING:
Change buf[] to new string “STOPPING”
Reset messageIndex to 0
Declare ES_Event_t postEvent, EventType as ES_INIT
Post event to PostMessageService
Break;
Case ES_NEW_SPICE:
Change buf[] to new string “NEW SPICE”
Reset messageIndex to 0
Declare ES_Event_t postEvent, EventType as ES_INIT
Post event to PostMessageService
Break;
Case ES_ADJUSTED:
Change buf[] to new string “CHANGING SPEED”
Reset messageIndex to 0
Declare ES_Event_t postEvent, EventType as ES_INIT
Post event to PostMessageService
Break;
Case ES_CLR_SCRN:
Clear DM_DisplayBuffer
Change buf[] to new string “\0”
Reset messageIndex to 0
Declare ES_Event_t postEvent, EventType as ES_INIT
Post event to PostMessageService
Break;
Case ES_RESTARTING:
Change buf[] to new string “RESTARTING”
Reset messageIndex to 0
Declare ES_Event_t postEvent, EventType as ES_INIT
Post event to PostMessageService
Break;
Case ES_BEGIN:
Change buf[] to new string “BEGIN”
Reset messageIndex to 0
Declare ES_Event_t postEvent, EventType as ES_INIT
Post event to PostMessageService
Break;
Return ReturnEvent