@startuml skinparam monochrome true start while () :startRobot?; :err = robot.Open(); if (err) then (robot_ok) :msgSend = new Message(MESSAGE_ANSWER_ACK); :messageToMon!msgSend; if (watchdogMode) then (WITH_WATCHDOG) :msgSend = robot.Write(new Message(MESSAGE_ROBOT_START_WITH_WD)); else (WITHOUT_WATCHDOG) :msgSend = robot.Write(new Message(MESSAGE_ROBOT_START_WITHOUT_WD)); endif :messageToMon!msgSend; if (msgSend->getId()) then (MESSAGE_ANSWER_ACK) :robotStarted = true; :stopRobot?; :robot.Write(new Message(MESSAGE_ROBOT_STOP)); :robot.Close(); endif else :msgSend = new Message(MESSAGE_ANSWER_NACK); :messageToMon!msgSend; endif endwhile stop @enduml