LED Display Service
This service is responsible for sending characters to the LED display matrix based on inputs from the state machine.
Constants and Module Variables
Module Defines
LEDServiceState_t CurrentState, static uint8_t MyPriority
Module Functions
QueryLEDServiceFSM
No input
Return CurrentState
PostDoorSensorService
Input: ES_Event_t
Post to service(priority, event)
Service Initialization
InitLEDServiceFSM
Inputs: priority
Initialize SPI, DM_Display
Set CurrentState to Idle
Post initial ES_INITÂ
Service Run
RunDoorSensorService
Input: Event ThisEvent
Declare ReturnEvent to be ES_NO_EVENT
Declare PostEvent to be ES_NO_EVENT
Switch statement for CurrentState
Case InitPState:
If CurrentEvent is ES_INIT:
Set CurrentState to Idle
Break;
Case Idle:
Switch statement for CurrentEvent
Case ES_CHAR_PRESS:
Declare ES_Event_t newEvent, set EventType to ES_UPDATING
Call DM_AddChar2DisplayBuffer(CurrentEvent.EventParam)
Scroll the display buffer
Post an event to LEDServiceFSM
Set CurrentState to Writing
Break;
Break;
Case Writing:
Switch statement for CurrentEvent
Case ES_UPDATING:
If Display is not Updated:
Declare ES_Event_t newEvent
set EventType to ES_UPDATING
Post an event to LEDServiceFSM
Else:
Set CurrentState to Idle
Break;
Case ES_CHAR_PRESS:
Declare ES_Event_t newEvent
set EventType to ES_UPDATING
Post an event to LEDServiceFSM
Break;
Break;
Return ReturnEvent