@startuml Export_Log participant OS as OS participant Script as Script participant USB as USB 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 -> USB: ACT: Command ' 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 == Export Logs Selection == group Export Logs Selection US -> UI: TCH: Settings Menu UI -> UI: ACT: Device Settings Screen US -> UI: TCH: Export Log Menu UI -> UI: ACT: Export Log Settings Screen US -> UI: TCH: Log Type ComboBox US -> UI: SCL: User scrolls list and select log type alt Select individual Files US -> UI: SCL: User scrolls flip-able area for SD-Card file US -> UI: TCH: User selects which file(s) to export end US -> UI: TCH: Export Button UI -> UI: ACT: Export Status Indicator (in progress): \ \n\tNotification bar: \ \n\t\t + "log export to USB in progress ... " \ \n\tExport Button disabled \ \n\tEject Button disabled UI -> SW: ACT: Export selected log type\n(Application, Service, Treatment) files alt Export Application, Service, Treatment Log(s) SW -> USB: Copy file by file to external storage SW -> SW: ACT: Log status of export result: SW -> UI: ACT: Notify UI that export process has completed UI -> UI: ACT: Notification bar: \ \n\t\t + "log export to USB is complete" \ \n\tExport Button enabled \ \n\tEject Button enabled end end == Eject USB == group Eject USB US -> UI: TCH: Eject USB Button UI -> SW: ACT: Request Unmount USB SW -> Script: ACT: usb_unmount.sh ( ) activate Script Script -> OS: CMD: sudo umount "$USB_FOLDER" Script -> SW: MSG: exit # deactivate Script end @enduml