Message Service
This service is responsible for changing the message string that is sent to the LED display service based on the state machine.
Constants and Module Variables
Module Defines
static uint8_t MyPriority, HALF_SEC 200
Module Functions
PostMessageService
Input: ES_Event_t
Post to service(priority, event)
Service Initialization
InitMessageService
Inputs: priority
Post initial ES_INIT
Service Run
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