@startuml Heat_Disinfect participant DD as DD participant TD as TD participant SW as SW participant UI as UI 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 ' US -> UI: User actions are: ' ENT: User enters a value or string ' TCH: User touches a button (RadioButton, CheckBox, ...) ' SET: User sets/slides a slider ' SCL: User scrolls a flipable area ' 'Messages conventions: '[x \n ,] '[x \n ,# certain amount of parameters according to the content] '[x \n ,X The rest of the parameters do not matter.] == Post Treatment == TD -> SW: MSG: [x12: #1] \n OpMode - Post Treatment SW -> UI: CMD: Post Treatment UI -> US: ACT: Display Post Treatment stack TD -> SW: MSG: [0xDA: #1] Post Treatment State broadcast \ \n\t(U32) state=TD_POST_TREATMENT_DISINFECTION_STATE SW -> UI: CMD: Post Treatment Disinfection UI -> US: ACT: Display Post Treatment Disinfection screen US -> UI: TCH: Heat Disinfection button UI -> SW: ACT: Disinfection Selection - Heat Disinfection SW -> TD: MSG[0xCC: #1] Disinfection Selection Req \ \n\t(U32) state=DISINFECT_SEL_HEAT TD -> SW: MSG[0xCD: #2] Disinfection Selection Rsp \ \n\t(U32) Accept \ \n\t(U32) Reject alt Accept TD -> SW: MSG: [x12: #3,1] Dat \n OpMode - Standby SW -> UI: CMD: Standby UI -> US: ACT: Display Standby screen TD -> DD: ACT: Request Heat Disinfeiton TD -> SW: MSG: [x01: #4] \nTD AlarmStatus : \ \n\t(U32) mState \ \n\t(U32) mTop=HEAT_DISINFECT_IN_PROGRESS \ \n\t(U32) mMuteTimeout \ \n\t(U16) mFlags |= NO_BUTTONS SW -> UI: ACT: Display Alarm Dialog \ \n\t - NO_BUTTONS visible UI -> US: ACT: Display Alarm Dialog \ \n\t - NO_BUTTONS visible DD -> DD: ACT: Perform Heat Disinfection DD -> TD: ACT: Heat Disinfection Completed TD -> SW: MSG: [x01: #4] \nTD AlarmStatus : \ \n\t(U32) mState \ \n\t(U32) mTop=0 \ \n\t(U32) mMuteTimeout \ \n\t(U16) mFlags |= NO_BUTTONS else #Pink Reject SW -> UI: ACT: Send Rejection Reason UI -> US: ACT: SHow Rejection Reason end @enduml