Platform Service Channels
This shows an overview of how the CarPlatform uses some global channels to communicate with the serial port as well as pieces of the HMI
flowchart TD
serialPort@{shape: flag, label: "Serial Port" }
subgraph GlobalScope
messageIngress[("`**IbusMessage**
Message Ingress`")]
messageOutput[("`**IbusMessage**
Message Output`")]
commsDebug[("` **CommsDebugMessage**
Comms Debug`")]
inputEvents[("` **InputEvent**
Input Event`")]
inputEventsWriter[("` **InputEvent**
Input Event Writer`")]
inputEventParser[Input Event Parser]
messageIngress --> inputEventParser
inputEventParser --> inputEventsWriter
inputEventsWriter -->|MutableSharedFlow
to SharedFlow| inputEvents
picoCommsDebugWindow["Pico Comms Debug Window"]
commsDebug --> picoCommsDebugWindow
knobListenerService["Knob Listener Service"]
inputEvents --> knobListenerService
AudioFocusWriter
AudioFocusWriter --> messageOutput
ScreenTrackInfoPrinter --> messageOutput
end
subgraph ConfiguredCarScope
SerialListenerService --> messageIngress
messageOutput --> SerialWriterService
SerialWriterService --> serialPort
serialPort --> SerialListenerService
otherServices@{ shape: processes, label: "Other Services"}
messageIngress --> otherServices
otherServices --> messageOutput
subgraph PicoToPiParsers
logMessageParser
messageIngress ---> logMessageParser
logMessageParser --> commsDebug
end
end
Return to Top