EC Component Model
A component that implements a specification and depends upon a HAL interface.
flowchart TD
A[Component]
B[Specification Trait]
C[HAL Trait]
A --> B
A --> C
A component is housed within a subsystem, which is controlled by a service. The service orchestrates the component's behavior and manages its lifecycle.
flowchart TD
A[__Controller__ <br/> Implements Service Interface Trait]
B[__Device__ <br/> Implements Component Type Trait]
C[__Component__ <br/> Implements Specification Trait]
A --> B
B --> C
Component interactions are generally initiated in response to message events. The controller receives a message, which it routes to the component. The component then calls into the HAL to perform the requested operation.
flowchart TD
A[__Service Layer__ <br/> e.g. _Controller_]
B[__Device Layer__ <br/> _Wrapped Component_]
C[__Component Layer__ <br/> _Handles Message_]
M["Incoming Message"] --> A
A -->|calls _handle_| B
B -->|calls _handle_| C