diff --git a/src/custom_robot.cpp b/src/custom_robot.cpp index a688632..7f28608 100644 --- a/src/custom_robot.cpp +++ b/src/custom_robot.cpp @@ -704,22 +704,26 @@ bool CustomRobot::processSportCmd(const std::string& cmd, const nlohmann::json& return controller_->WalkUpright(message["param"]["flag"]); } else if (cmd == "CrossStep") { return controller_->CrossStep(message["param"]["flag"]); - } else if (cmd == "StartContinuousMove") { + } else if (cmd == "ContinuousMove") { if (!message.contains("param")) { - LOG_ERROR("StartContinuousMove cmd missing 'param'"); + LOG_ERROR("ContinuousMove cmd missing 'param'"); return false; } auto param = message["param"]; - if (!param.contains("vx") || !param.contains("vy") || !param.contains("vyaw")) { - LOG_ERROR("StartContinuousMove missing vx, vy, or vyaw parameters"); - return false; + if(param.contains("on")){ + if(param["on"]){ + if (!param.contains("vx") || !param.contains("vy") || !param.contains("vyaw")) { + LOG_ERROR("ContinuousMove missing vx, vy, or vyaw parameters"); + return false; + } + float vx = param["vx"]; + float vy = param["vy"]; + float vyaw = param["vyaw"]; + return startContinuousMove(vx, vy, vyaw); + }else if(!param["on"]){ + return stopContinuousMove(); + } } - float vx = param["vx"]; - float vy = param["vy"]; - float vyaw = param["vyaw"]; - return startContinuousMove(vx, vy, vyaw); - } else if (cmd == "StopContinuousMove") { - return stopContinuousMove(); } else { LOG_ERROR("Unknown Sport command: " + cmd);