diff --git a/src/devices/robot/controller/abstractcontroller.h b/src/devices/robot/controller/abstractcontroller.h index 5c671fdf..56037883 100644 --- a/src/devices/robot/controller/abstractcontroller.h +++ b/src/devices/robot/controller/abstractcontroller.h @@ -29,7 +29,7 @@ namespace cmvr::device virtual void stop() = 0; - private: + protected: ControllerState state_; }; } diff --git a/src/devices/robot/controller/cartesiancontroller.cpp b/src/devices/robot/controller/cartesiancontroller.cpp index 918cdd83..aa53c7c5 100644 --- a/src/devices/robot/controller/cartesiancontroller.cpp +++ b/src/devices/robot/controller/cartesiancontroller.cpp @@ -14,7 +14,8 @@ CartesianController::CartesianController(const XmlNode& cfg):AbstractController( void CartesianController::call(std::string json) { - + if (state_ != ControllerState_Idle) + return; } void CartesianController::stop() { diff --git a/src/devices/robot/controller/cartesiancontroller.h b/src/devices/robot/controller/cartesiancontroller.h index 26560c9e..328f8ab2 100644 --- a/src/devices/robot/controller/cartesiancontroller.h +++ b/src/devices/robot/controller/cartesiancontroller.h @@ -12,8 +12,8 @@ namespace cmvr::device { public: explicit CartesianController(const XmlNode& cfg); - virtual void call(std::string json) override; - virtual void stop() override; + void call(std::string json) override; + void stop() override; private: }; } diff --git a/src/devices/robot/controller/jointpositioncontroller.cpp b/src/devices/robot/controller/jointpositioncontroller.cpp index 8b5dd998..45947f3f 100644 --- a/src/devices/robot/controller/jointpositioncontroller.cpp +++ b/src/devices/robot/controller/jointpositioncontroller.cpp @@ -13,7 +13,8 @@ JointPositionController::JointPositionController(const XmlNode& cfg):AbstractCon void JointPositionController::call(std::string json) { - + if (state_ != ControllerState_Idle) + return; } void JointPositionController::stop() { diff --git a/src/devices/robot/controller/jointpositioncontroller.h b/src/devices/robot/controller/jointpositioncontroller.h index 979826ac..8a2c28c0 100644 --- a/src/devices/robot/controller/jointpositioncontroller.h +++ b/src/devices/robot/controller/jointpositioncontroller.h @@ -12,8 +12,8 @@ namespace cmvr::device { public: explicit JointPositionController(const XmlNode& cfg); - virtual void call(std::string json) override; - virtual void stop() override; + void call(std::string json) override; + void stop() override; private: }; }