@startuml Wifi participant TD as TD participant SW as SW participant UI as UI 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 ' UI -> UI: ACT: Action ' SW -> Script: ACT: Action ' Script -> OS: CMD: command ' Script -> SW: MSG: Message ' OS -> Script: 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 Menu UI -> UI: ACT: Device Settings Screen US -> UI: TCH: Wi-Fi Button UI -> UI: ACT: Wi-Fi Settings Screen UI -> SW: ACT: Request Wi-Fi Scan SW -> Script: ACT: wifi_scan.sh activate Script Script -> OS: CMD: Send 'nmcli' command to get wifi networks OS -> Script: MSG: Show list of Wi-Fi networks Script -> SW: MSG: Return list of available Wi-Fi networks deactivate Script SW -> UI: ACT: Display available networks and highlight connected network UI ->o Wait_Retry: ⟲: Wi-Fi Screen alt Wi-Fi Scan US -> UI: TCH: Scan Button UI -> SW: ACT: Request Wi-Fi Scan SW -> Script: ACT: wifi_scan.sh activate Script Script -> OS: CMD: Send 'nmcli' command to get wifi networks OS -> Script: MSG: Show list of Wi-Fi networks Script -> SW: MSG: Return list of available Wi-Fi networks deactivate Script SW -> UI: ACT: Display available networks and highlight connected network UI ->o Wait_Retry: ⟲: Wi-Fi Screen end 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: ACT: wifi_connect.sh activate Script Script -> OS: CMD: Send 'nmcli' command with SSID and password OS -> Script: MSG: Result of Wi-Fi connect command deactivate Script UI -> UI: ACT: Wi-Fi Settings Screen UI -> SW: ACT: Request Wi-Fi Scan SW -> Script: ACT: wifi_scan.sh activate Script Script -> OS: CMD: Send 'nmcli' command to get wifi networks OS -> Script: MSG: Show list of Wi-Fi networks Script -> SW: MSG: Return list of available Wi-Fi networks deactivate Script SW -> UI: ACT: Display available networks and highlight connected network UI ->o Wait_Retry: ⟲: Wi-Fi Screen alt Connection Successful SW -> SW: ACT: Request connected Wi-Fi information SW -> Script: ACT: 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 UI ->o Wait_Retry: ⟲: Wi-Fi Screen 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: Request disconnect Wi-Fi by SSID SW -> Script: ACT: wifi_disconnect.sh activate Script Script -> OS: CMD: 'nmcli' command to disconnect from Wi-Fi network by SSID OS -> Script: MSG: Result of Wi-Fi disconnect command 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