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"]);
|
return controller_->WalkUpright(message["param"]["flag"]);
|
||||||
} else if (cmd == "CrossStep") {
|
} else if (cmd == "CrossStep") {
|
||||||
return controller_->CrossStep(message["param"]["flag"]);
|
return controller_->CrossStep(message["param"]["flag"]);
|
||||||
} else if (cmd == "StartContinuousMove") {
|
} else if (cmd == "ContinuousMove") {
|
||||||
if (!message.contains("param")) {
|
if (!message.contains("param")) {
|
||||||
LOG_ERROR("StartContinuousMove cmd missing 'param'");
|
LOG_ERROR("ContinuousMove cmd missing 'param'");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
auto param = message["param"];
|
auto param = message["param"];
|
||||||
|
if(param.contains("on")){
|
||||||
|
if(param["on"]){
|
||||||
if (!param.contains("vx") || !param.contains("vy") || !param.contains("vyaw")) {
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
float vx = param["vx"];
|
float vx = param["vx"];
|
||||||
float vy = param["vy"];
|
float vy = param["vy"];
|
||||||
float vyaw = param["vyaw"];
|
float vyaw = param["vyaw"];
|
||||||
return startContinuousMove(vx, vy, vyaw);
|
return startContinuousMove(vx, vy, vyaw);
|
||||||
} else if (cmd == "StopContinuousMove") {
|
}else if(!param["on"]){
|
||||||
return stopContinuousMove();
|
return stopContinuousMove();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
LOG_ERROR("Unknown Sport command: " + cmd);
|
LOG_ERROR("Unknown Sport command: " + cmd);
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
Reference in New Issue
Block a user