--- tags: 教育訓練 --- # 啟動/停止按鈕與Server互動流程 ## 伺服器無主動通知功能版本 ```mermaid sequenceDiagram participant human as 人 participant ui as UI participant server as 伺服器 Note over ui : 載入畫面 ui->> server:確認目前是否在紀錄中 alt 伺服器未在記錄 server ->>ui:回傳未紀錄 Note over ui : 將按鈕切換為啟動按鈕 else 伺服器在記錄中 server ->>ui:回傳紀錄中 Note over ui : 將按鈕切換為停止按鈕 end human ->> ui : 按下啟動按鈕 Note over ui : 將按鈕 disable ui ->> server:傳送啟動指令 alt 操作成功 server ->> ui:回傳操作成功 Note over ui: 切換按鈕為停止按鈕, 並解開disable else 操作失敗 server ->> ui:回傳操作失敗 Note over ui: 解開disable end human ->> ui:按下停止按鈕 Note over ui : 將按鈕 disable ui ->> server:傳送停止指令 alt 操作成功 server ->> ui:回傳操作成功 Note over ui: 切換按鈕為啟動按鈕, 並解開disable else 操作失敗 server ->> ui:回傳操作失敗 Note over ui: 解開disable end ``` ## 伺服器有主動通知功能版本 ```mermaid sequenceDiagram participant human as 人 participant ui as UI participant server as 伺服器 Note over ui : 載入畫面 ui->> server:確認目前是否在紀錄中 alt 伺服器未在記錄 server ->>ui:回傳未紀錄 Note over ui : 將按鈕切換為啟動按鈕 else 伺服器在記錄中 server ->>ui:回傳紀錄中 Note over ui : 將按鈕切換為停止按鈕 end human ->> ui : 按下啟動按鈕 Note over ui : 將按鈕 disable ui ->> server:傳送啟動指令 alt 操作成功 server ->> ui:回傳操作成功 Note over ui: 不做操作 else 操作失敗 server ->> ui:回傳操作失敗 Note over ui: 解開disable end human ->> ui:按下停止按鈕 Note over ui : 將按鈕 disable ui ->> server:傳送停止指令 alt 操作成功 server ->> ui:回傳操作成功 Note over ui: 不做操作 else 操作失敗 server ->> ui:回傳操作失敗 Note over ui: 解開disable end note over human, server: 伺服器收到UI呼叫啟動或停止記錄 alt 伺服器切換為停止記錄 server ->>ui:廣播記錄停止訊號 Note over ui : 將按鈕切換為啟動按鈕,並解開disable else 伺服器切換為啟動記錄 server ->>ui:廣播記錄開始訊號 Note over ui : 將按鈕切換為停止按鈕,並解開disable end ```