@startuml skinparam monochrome true start while () :openComRobot?; :err = robot.Open(); if (err) then (robot_ok) :msgSend = new Message(MESSAGE_ANSWER_ACK); :messageToMon!msgSend; :startRobot?; 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(); :robotStarted = false; endif else :msgSend = new Message(MESSAGE_ANSWER_NACK); :messageToMon!msgSend; endif endwhile stop @enduml