@startuml Wifi participant TD as TD participant UI as UI participant SW as SW participant Script as Script participant Operating_System as OS control Wait_Retry as Wait_Retry actor USER as US 'Possible actions and interaction tuypes ' TD -> SW: MSG: Message ' SW -> TD: MSG: Message ' SW -> UI: CMD: command ' UI -> SW: ACT: Action ' SW -> Script: RUN: Run script ' Script -> OS: CMD: command ' Script -> SW: MSG: Message ' US -> UI: User actions are: ' ENT: User enters a value or string ' TCH: User touches a button (RadioButton, CheckBox, ...) ' SCL: User scrolls a flipable area == Normal Bootup == TD -> SW: MSG: [x12: 3,1] \n OpMode - Standby Dat SW -> UI: CMD: MainHome Screen UI ->o Wait_Retry: ⟲: MainHome Screen == Wi-Fi Settings Page == US -> UI: TCH: Settings Button UI -> SW: CMD: Device Settings Screen US -> UI: TCH: Wi-Fi Button UI -> SW: CMD: Wi-Fi Settings Screen SW -> Script: RUN: wifi_scan.sh activate Script Script -> OS: CMD: 'nmcli dev wifi list' Script -> SW: MSG: List of available Wi-Fi networks deactivate Script SW -> UI: ACT: Process and display available networks UI ->o Wait_Retry: ⟲: Wi-Fi Screen alt Connect Wi-Fi US -> UI: SCL: Scroll through available networks US -> UI: TCH: Select desired network US -> UI: ENT: Enter password alt Confirm US -> UI: TCH: Confirm Button UI -> SW: ACT: Connect Wi-Fi by SSID and password SW -> Script: RUN: wifi_connect.sh activate Script Script -> OS: CMD: 'nmcli dev wifi connect password ' deactivate Script SW -> UI: CMD: Wi-Fi Settings Screen SW -> Script: RUN: wifi_scan.sh activate Script Script -> OS: CMD: 'nmcli dev wifi list' Script --> SW: MSG: Provide list of available Wi-Fi networks deactivate Script alt Connection Successful SW -> Script: RUN: wifi_info.sh activate Script Script -> OS: CMD: 'nmcli commands to retrieve desired parameters' Script --> SW: MSG: Provide Wi-Fi info deactivate Script SW -> UI: CMD: Update all UI fields (IP, Gateway, Subnet, DNS, SSID) end else Back US -> UI: TCH: Back Button UI ->o Wait_Retry: ⟲: Wi-Fi Screen end else Disconnect Wi-Fi US -> UI: TCH: Select connected network alt Confirm US -> UI: TCH: Confirm Button UI -> SW: ACT: Disconnect Wi-Fi by SSID SW -> Script: RUN: wifi_disconnect.sh activate Script Script -> OS: CMD: 'nmcli nmcli connection delete ' deactivate Script SW -> UI: CMD: Clear all UI fields (IP, Gateway, Subnet, DNS, SSID) else Back US -> UI: TCH: Back Button UI ->o Wait_Retry: ⟲: Wi-Fi Screen end end @enduml