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