diff --git a/cmvr-es/config/manager/device_manager.pb.txt b/cmvr-es/config/manager/device_manager.pb.txt index 134e2a9e..dcb2a5cc 100644 --- a/cmvr-es/config/manager/device_manager.pb.txt +++ b/cmvr-es/config/manager/device_manager.pb.txt @@ -93,7 +93,7 @@ device_manager { id: "aubo_arm" type: DEVICE_TYPE_ROBOT_ARM config_file: "devices/arm/aubo_arm.pb.txt" - enable: false + enable: true } devices { diff --git a/cmvr-es/config/manager/task_manager.pb.txt b/cmvr-es/config/manager/task_manager.pb.txt index 223f9873..4d5df7a7 100644 --- a/cmvr-es/config/manager/task_manager.pb.txt +++ b/cmvr-es/config/manager/task_manager.pb.txt @@ -28,7 +28,7 @@ task_manager { run_mode: TASK_RUN_MODE_BLOCKING_SERVICE config_file: "tasks/quic_edge_task/quic_edge_task.pb.txt" # Host-development default: no QUIC Gateway or physical media devices. - enable: false + enable: true } tasks { id: "ume_teleop" diff --git a/cmvr-es/config/tasks/quic_edge_task/quic_edge_task.pb.txt b/cmvr-es/config/tasks/quic_edge_task/quic_edge_task.pb.txt index f850dc00..d502fa57 100644 --- a/cmvr-es/config/tasks/quic_edge_task/quic_edge_task.pb.txt +++ b/cmvr-es/config/tasks/quic_edge_task/quic_edge_task.pb.txt @@ -3,11 +3,11 @@ quic_edge { # Task enablement is controlled by manager/task_manager.pb.txt. Configure a # reachable QUIC Gateway and TLS policy before enabling the task there. - server_host: "quic-gateway.example.com" + server_host: "192.168.0.222" server_port: 4433 alpn: "cmvr-quic-edge/1" node_id: "cmvr-edge" - robot_id: "CN-CMVR-MBLRV1-CHAGAN-20260731-001" + robot_id: "CN-CMVR-MBLRV1-AIMA-20260806-001" software_version: "0.1" # The existing cmvr-es gRPC server remains the robot-control endpoint. "auto" @@ -24,10 +24,8 @@ quic_edge { control_response_timeout_ms: 1000 tls { - ca_file: "certs/quic_gateway_ca.pem" - certificate_file: "certs/cmvr_edge_cert.pem" - private_key_file: "certs/cmvr_edge_key.pem" - server_name: "quic-gateway.example.com" + ca_file: "certs/cmvr-quic-ca.crt" + server_name: "192.168.0.222" allow_insecure: false } diff --git a/cmvr-es/devices/agv/seer_robokit/src/seer_robokit_map.cpp b/cmvr-es/devices/agv/seer_robokit/src/seer_robokit_map.cpp index d520d462..d4b5ce2f 100644 --- a/cmvr-es/devices/agv/seer_robokit/src/seer_robokit_map.cpp +++ b/cmvr-es/devices/agv/seer_robokit/src/seer_robokit_map.cpp @@ -256,17 +256,48 @@ AgvResult SeerRobokitAgv::uploadMap(const std::string& map_name, const std::stri return result.ok() ? resultFromResponse_(response) : result; } -AgvResult SeerRobokitAgv::downloadMap(const std::string& map_name, std::string& content) const +// AgvResult SeerRobokitAgv::downloadMap(const std::string& map_name, std::string& content) const +// { +// Json::Value payload(Json::objectValue); +// jsonMember(payload, "map_name") = map_name; +// Json::Value response; +// auto result = sendCommand_(sock_config_, kRobotConfigDownloadMap, payload, &response); +// if (!result.ok()) return result; +// content = jsonGet(response, "map_content", jsonGet(response, "content", "")).asString(); +// return resultFromResponse_(response); +// } + + AgvResult SeerRobokitAgv::downloadMap( + const std::string& map_name, + std::string& content) const { Json::Value payload(Json::objectValue); jsonMember(payload, "map_name") = map_name; + Json::Value response; - auto result = sendCommand_(sock_config_, kRobotConfigDownloadMap, payload, &response); + auto result = sendCommand_( + sock_config_, + kRobotConfigDownloadMap, + payload, + &response); if (!result.ok()) return result; - content = jsonGet(response, "map_content", jsonGet(response, "content", "")).asString(); - return resultFromResponse_(response); + + // 4011 失败响应包含 ret_code;成功响应本身就是完整地图 JSON。 + if (hasNumericControllerRetCode(response)) { + return resultFromResponse_(response); + } + + content = toJsonString_(response); + if (content.empty()) { + return AgvResult::failure( + AgvErrorCode::CommandFailed, + "SEER Robokit downloaded map content is empty"); + } + + return AgvResult::success(); } + AgvResult SeerRobokitAgv::startMapping(const AgvMappingOptions& options) { auto result = ensureOtherSocket_();