@startuml Settings_Popup participant TD as TD participant OS as OS participant Script as Script participant SW as SW participant UI as UI actor USER as US 'Possible actions and interaction types ' External on CANBus ' TD -> SW: MSG: Message ' SW -> TD: MSG: Message ' Internal to the application ' XX -> YY: CMD: Command ' XX -> XX: ACT: Action ' External on OS/FS ' SW -> Script: ACT: Command ' Script -> OS: CMD: Command ' Script -> SW: MSG: Message ' OS -> Script: MSG: Message ' US -> UI: User actions are: ' ASK: Display a ' ENT: User enters a value or string ' TCH: User touches a button (RadioButton, CheckBox, ...) ' SCL: User scrolls a flip-able area == Navigate to popup == US -> UI: TCH: Press settings headerbar icon button UI -> UI: ACT: Settings Popup is displayed == Brightness == US -> UI: SCL: Brightness Slider UI -> SW: ACT: Request Brightness Update \ \n\tonReleased: send slider value SW -> Script: ACT: brightness.sh ( ) activate Script Script -> OS: CMD: set BRIGHTNESS SYSFS with updated brightness value OS -> Script: MSG: Current or updated brightness value Script -> SW: MSG: \ \n - echo $BRIGHTNESS_VALUE \ \n - exit # deactivate Script alt successful ( exit == 0 ) SW -> UI: ACT: Send current brightness value set in BRIGHTNESS SYSFS UI -> UI: ACT: \ \n - Brightness value text updated \ \n - Current slider position verified else failed SW -> UI: ACT: Script Error UI -> UI: ACT: Undefined brightness value\n\tSlider Reverts or previous position UI -> US: ACT: Notify user end == Alarm Volume == US -> UI: SCL: Alarm Volume Slider UI -> SW: ACT: Request Volume Adjustment \ \n\tonReleased: send slider value SW -> TD: MSG: [xB: #1] \ \n\tRequest: \ \n\t(U32) volume TD -> SW: MSG: [xC: #1] \ \n\tResponse: \ \n\t(BOOL) accepted \ \n\t(U32) RR alt successful ( exit == 0 ) SW -> UI: ACT: Send accepted volume value UI -> UI: ACT: Update Volume Text and slider position else failed SW -> UI: ACT: Send error message UI -> US: ACT: Notify user end @enduml