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