fix(custom_robot): 修复ContinuousMove命令参数检查逻辑
重构ContinuousMove命令处理逻辑,合并Start/Stop功能 添加对'on'参数的检查,根据其值决定启动或停止连续移动 修复参数缺失时的错误处理逻辑
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user