From 0720ec8171a2e6e80c173823dc4221375b497982 Mon Sep 17 00:00:00 2001 From: linbo <1034003879@qq.com> Date: Fri, 24 Oct 2025 14:44:45 +0800 Subject: [PATCH] update robot controller --- src/devices/robot/controller/abstractcontroller.h | 2 +- src/devices/robot/controller/cartesiancontroller.cpp | 3 ++- src/devices/robot/controller/cartesiancontroller.h | 4 ++-- src/devices/robot/controller/jointpositioncontroller.cpp | 3 ++- src/devices/robot/controller/jointpositioncontroller.h | 4 ++-- 5 files changed, 9 insertions(+), 7 deletions(-) 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: }; }