sm_led_indication

State machine mapping operating and fault states to RGB LED indication states.

Inherited Component

Inherited Requirements

Relationship Diagram

UML class diagram for sm_led_indication

SW Unit Relations

Incoming Relations

Relation

UML Type

Visibility

Source Unit

Description

SWR-006

composition

private

ao_status_indication

Status indication active object embeds LED indication state machine.

Data Types

sm_led_indication_contextstruct

Internal runtime context for sm_led_indication.

Struct Members

Name

Type

Description

sm_state

uint8_t

LED SM current state.

pattern_code

uint8_t

Active pattern code.

blink_enabled

bool

Blink state.

transition_tick

uint32_t

Last transition tick.

sm_led_indication_eventstruct

Event payload handled by sm_led_indication.

Struct Members

Name

Type

Description

signal_id

uint16_t

LED SM event id.

mode_code

uint8_t

Mode code input.

warning_active

bool

Warning input.

fault_active

bool

Fault input.

sm_led_indication_resultenum

Result code for sm_led_indication operations.

Enum Members

Name

Value

Description

OK

0

LED SM transition applied.

INVALID_TRANSITION

1

Transition rejected by guard.

PATTERN_LATCHED

2

Fault pattern latched.

Attributes

Attribute

Type

Visibility

Description

ctx

sm_led_indication_context

private

Runtime context for sm_led_indication state timing and error tracking.

Methods

dispatch

  • Return Type: sm_led_indication_result

  • Visibility: public

  • Description: Process one sm_led_indication event and update runtime outputs.

Parameters

Name

Type

Direction

Description

event

sm_led_indication_event

in

Process one sm_led_indication event and update runtime outputs.

init

  • Return Type: sm_led_indication_result

  • Visibility: public

  • Description: Initialize sm_led_indication runtime state and dependencies.

Dynamic Behaviour

State Machines

sm_led_indication_state

@startuml
hide empty description


[*] --> Led_Off
Led_Off --> Led_Normal : EVT_STATUS_NORMAL

Led_Normal --> Led_Warning : EVT_STATUS_WARNING
Led_Warning --> Led_Normal : EVT_STATUS_NORMAL

Led_Normal --> Led_Protective : EVT_STATUS_PROTECTIVE
Led_Warning --> Led_Protective : EVT_STATUS_PROTECTIVE
Led_Protective --> Led_Normal : EVT_STATUS_NORMAL

Led_Normal --> Led_Fault : EVT_FAULT_SET
Led_Warning --> Led_Fault : EVT_FAULT_SET
Led_Protective --> Led_Fault : EVT_FAULT_SET
Led_Fault --> Led_Normal : EVT_FAULT_CLEAR

Led_Normal : do / set_led(GREEN)
Led_Warning : do / set_led(YELLOW)
Led_Protective : do / set_led(RED_BLINK)
Led_Fault : do / set_led(RED_SOLID)

@enduml

This state machine defines LED priority rules mapping normal warning protective and fault context into deterministic visual indications and ensures fault signaling dominates lower severity status outputs until explicit clear.

Sequence Diagrams

SEQ-003_Status_To_LED_Indication

@startuml

hide footbox
title Diagnostic Status To LED Indication

participant ao_diagnostics
participant ao_status_indication
participant sm_led_indication
participant drv_rgb_led

ao_diagnostics -> ao_status_indication : IF_OperatingStatus(system_status)
ao_status_indication -> sm_led_indication : evaluate indication pattern
sm_led_indication -> ao_status_indication : resolved LED intent
ao_status_indication -> drv_rgb_led : IF_StatusLedCommand(led_command)

@enduml

Diagnostics status outputs are transformed by status indication logic into concrete LED driver commands.