' リモートコマンド R 書込開始 例

@startuml

' participant 外部システム as Ext
' participant I.S.P as Isp

' Ext -> Isp : ""#R<CR>""\n表示しているページを書込開始

' alt 正常
'     Isp -> Isp : 書込開始
'     Ext <- Isp : ""#R<CR>""
' else 異常（書込み動作中など）
'     Ext <- Isp : ""#NG<CR>""
' else 異常（表示されているページにデータなしなど）
'     Ext <- Isp : ""#ERR<CR>""
' end

' note over Ext, Isp
'     書込開始失敗の場合、通信はここまで
' end note

' alt 正常終了
'     Isp -> Isp : 書込処理
'     Ext <- Isp : ""#END<CR>""
' else 異常終了
'     Ext <- Isp : ""#ERR<CR>""
' end


participant "External Systems" as Ext
participant "I.S.P" as Isp

Ext -> Isp : ""#R<CR>""\nStart programming the selected page

alt success
    Isp -> Isp : Start programming
    Ext <- Isp : ""#R<CR>""
else fail (In programming state, etc.)
    Ext <- Isp : ""#NG<CR>""
else fail (No data in selected page, etc.)
    Ext <- Isp : ""#ERR<CR>""
end

note over Ext, Isp
    If programming fails to start, communication ends here
end note

alt success
    Isp -> Isp : programming
    Ext <- Isp : ""#END<CR>""
else fail
    Ext <- Isp : ""#ERR<CR>""
end
@enduml