fix(custom_robot): 修复ContinuousMove命令参数检查逻辑

重构ContinuousMove命令处理逻辑,合并Start/Stop功能
添加对'on'参数的检查,根据其值决定启动或停止连续移动
修复参数缺失时的错误处理逻辑
This commit is contained in:
2025-10-09 19:32:44 +08:00
parent 827ccdb438
commit 73ce74ab04

View File

@@ -704,23 +704,27 @@ 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("on")){
if(param["on"]){
if (!param.contains("vx") || !param.contains("vy") || !param.contains("vyaw")) {
LOG_ERROR("StartContinuousMove missing vx, vy, or vyaw parameters");
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 (cmd == "StopContinuousMove") {
}else if(!param["on"]){
return stopContinuousMove();
}
}
}
else {
LOG_ERROR("Unknown Sport command: " + cmd);
return false;