From e455e2e9da3ea656346b612cc846a0f1fee94722 Mon Sep 17 00:00:00 2001 From: zjk <1553836110@qq.com> Date: Wed, 19 Aug 2026 21:52:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E5=91=8A=E8=AD=A6=EF=BC=88=E6=A0=BC=E5=BC=8F=E4=B8=B2=E4=B8=8D?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E3=80=81=E9=9D=9E=20void=20=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E7=BC=BA=E8=BF=94=E5=9B=9E=E5=80=BC=E3=80=81C++17=20?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E5=8C=96=E7=BB=91=E5=AE=9A=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复 LOG_F 格式串与参数类型/数量不匹配(udpComm.h、uPlan_taskStart.h、httpserver.cpp、PowerManagerFsm.cpp、WaterBasedReady.cpp、LowerCommManager.cpp) - httpserver.cpp 中 mg_connection::fd 为 void*,打印时强转为 int - uExternComm_setOpCondition.h / uPower_sysState.h 补齐返回值,消除 -Wreturn-type - driver.cpp 移除结构化绑定(C++17),保持 -std=c++11 - PowerManagerFsm.hpp 为 class Lifting 补充 react(DevCmdExt) 声明,消除死代码编译错误 --- src/pPowerManger/LowerCommManager.cpp | 4 ++-- src/pPowerManger/driver.cpp | 4 +++- src/pPowerManger/fsm/PowerManagerFsm.cpp | 4 ++-- src/pPowerManger/fsm/PowerManagerFsm.hpp | 1 + src/pPowerManger/fsm/WaterBasedReady.cpp | 2 +- src/pPowerManger/httpserver/httpserver.cpp | 18 +++++++++--------- src/pPowerManger/udpcomm/udpComm.h | 2 +- .../upmsg/uExternComm_setOpCondition.h | 2 +- src/pPowerManger/upmsg/uPlan_taskStart.h | 2 +- src/pPowerManger/upmsg/uPower_sysState.h | 1 + 10 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/pPowerManger/LowerCommManager.cpp b/src/pPowerManger/LowerCommManager.cpp index 84ed20c..a1b1935 100644 --- a/src/pPowerManger/LowerCommManager.cpp +++ b/src/pPowerManger/LowerCommManager.cpp @@ -657,7 +657,7 @@ bool LowerCommManager::operate_HV_dcDc5_Breaker(char opt) disHighVolBusCmd cmd{}; // 默认全零 double t0 = MOOSTime(); bool ok = false; - string name = "DCDC Module"; + const char* name = "DCDC Module"; LOG_F(INFO, "operate %s: opt=%d", name, opt); cmd.dcdc5Module = getBreakerOption(opt); @@ -709,7 +709,7 @@ bool LowerCommManager::operate_HV_coolingSystem_Breaker(char opt) disHighVolBusCmd cmd{}; // 默认全零 double t0 = MOOSTime(); bool ok = false; - string name = "CoolingSystem"; + const char* name = "CoolingSystem"; LOG_F(INFO, "operate %s: opt=%d", name, opt); cmd.coolingSystem = getBreakerOption(opt); diff --git a/src/pPowerManger/driver.cpp b/src/pPowerManger/driver.cpp index f1ff3d3..c0ee8c4 100644 --- a/src/pPowerManger/driver.cpp +++ b/src/pPowerManger/driver.cpp @@ -929,7 +929,9 @@ vector Driver::loadDriverIdFromJson(const std::string &strJson) { {"launchControler_uint8", 37}, {"sideSonar_uint8", 35}, {"buoyage_uint8", 56} }; - for (const auto& [field, id] : fieldToId) { + for (const auto& entry : fieldToId) { + const std::string& field = entry.first; + int id = entry.second; if (root.isMember(field)) { unsigned char newValue = root[field].asUInt(); DriverCommand cmd; diff --git a/src/pPowerManger/fsm/PowerManagerFsm.cpp b/src/pPowerManger/fsm/PowerManagerFsm.cpp index ec37632..08a0068 100644 --- a/src/pPowerManger/fsm/PowerManagerFsm.cpp +++ b/src/pPowerManger/fsm/PowerManagerFsm.cpp @@ -170,7 +170,7 @@ void PowerManagerFsm::handleNoPowerDeviceCmd(int id , int cmd){ if(noPowerDevices.find(id) != noPowerDevices.end()) { pm->m_driver.setDeviceState(pm->m_subDisSysCmd, (DeviceId::Type)id, (unsigned char)cmd); - LOG_F(INFO, "无动力电设备操作: %d, %d", DeviceId::toString((DeviceId::Type)id),id, cmd); + LOG_F(INFO, "无动力电设备操作: %s, %d, %d", DeviceId::toString((DeviceId::Type)id).c_str(), id, cmd); } } void PowerManagerFsm::handleHydroacousticDeviceCmd(int id , int cmd) @@ -198,7 +198,7 @@ void PowerManagerFsm::handleHydroacousticDeviceCmd(int id , int cmd) MOOSPause(10000); } } - LOG_F(INFO, "水声设备操作: %d, %d", DeviceId::toString((DeviceId::Type)id), id, cmd); + LOG_F(INFO, "水声设备操作: %s, %d, %d", DeviceId::toString((DeviceId::Type)id).c_str(), id, cmd); pm->m_driver.setDeviceState(pm->m_subDisSysCmd, (DeviceId::Type)id, (unsigned char)cmd); } diff --git a/src/pPowerManger/fsm/PowerManagerFsm.hpp b/src/pPowerManger/fsm/PowerManagerFsm.hpp index d9cd729..2960638 100644 --- a/src/pPowerManger/fsm/PowerManagerFsm.hpp +++ b/src/pPowerManger/fsm/PowerManagerFsm.hpp @@ -295,6 +295,7 @@ class Lifting : public PowerManagerFsm { public: void entry() override; void react(MasterCommandEvent const &) override; + void react(DevCmdExt const &e) override; }; #endif // POWER_MANAGER_FSM_HPP \ No newline at end of file diff --git a/src/pPowerManger/fsm/WaterBasedReady.cpp b/src/pPowerManger/fsm/WaterBasedReady.cpp index 4b71b17..bc45163 100644 --- a/src/pPowerManger/fsm/WaterBasedReady.cpp +++ b/src/pPowerManger/fsm/WaterBasedReady.cpp @@ -50,7 +50,7 @@ void WaterBasedReady::react(DevCmdExt const &e) MOOSPause(10000); } } - LOG_F(INFO, "水声设备操作: %s,%d, %d", DeviceId::toString((DeviceId::Type)id), id, cmd); + LOG_F(INFO, "水声设备操作: %s,%d, %d", DeviceId::toString((DeviceId::Type)id).c_str(), id, cmd); string info = "INFO:水声设备操作: " + DeviceId::toString((DeviceId::Type)id) + ", " + std::to_string(id) + ", " + std::to_string(cmd); pm->m_systemData->setSystemInfo(info); pm->m_driver.setDeviceState(pm->m_subDisSysCmd, (DeviceId::Type)id, (unsigned char)cmd); diff --git a/src/pPowerManger/httpserver/httpserver.cpp b/src/pPowerManger/httpserver/httpserver.cpp index 0a466dc..0ee59dd 100644 --- a/src/pPowerManger/httpserver/httpserver.cpp +++ b/src/pPowerManger/httpserver/httpserver.cpp @@ -22,7 +22,7 @@ void HttpServer::handleWebSocketEvent(struct mg_connection* c, int ev, void* ev_ // WebSocket连接成功建立 std::lock_guard lock(server->ws_connections_mutex_); server->ws_connections_.push_back(c); - LOG_F(INFO, "WebSocket connection established: id=%lu fd=%d", c->id, c->fd); + LOG_F(INFO, "WebSocket connection established: id=%lu fd=%d", c->id, (int)(intptr_t)c->fd); } else if (ev == MG_EV_CLOSE || ev == MG_EV_ERROR) { // 连接关闭或错误 std::lock_guard lock(server->ws_connections_mutex_); @@ -32,17 +32,17 @@ void HttpServer::handleWebSocketEvent(struct mg_connection* c, int ev, void* ev_ struct mg_http_message *hm = (struct mg_http_message *) ev_data; if (errno != 0) { LOG_F(ERROR, "WebSocket error: id=%lu fd=%d, errno=%d", - c->id, c->fd, errno); + c->id, (int)(intptr_t)c->fd, errno); // 打印socket错误信息 char buf[256]; strerror_r(errno, buf, sizeof(buf)); LOG_F(ERROR, "Socket error: %s", buf); } else { LOG_F(ERROR, "WebSocket connection closed abnormally: id=%lu fd=%d", - c->id, c->fd); + c->id, (int)(intptr_t)c->fd); } } else { - LOG_F(INFO, "WebSocket closed: id=%lu fd=%d", c->id, c->fd); + LOG_F(INFO, "WebSocket closed: id=%lu fd=%d", c->id, (int)(intptr_t)c->fd); } server->ws_connections_.erase(it); @@ -67,9 +67,9 @@ void HttpServer::handleWebSocketEvent(struct mg_connection* c, int ev, void* ev_ struct mg_http_message *hm = (struct mg_http_message *) ev_data; if (mg_match(hm->uri, mg_str("/ws"), NULL)) { // 升级到WebSocket连接 - LOG_F(INFO, "Upgrading to WebSocket: id=%lu fd=%d", c->id, c->fd); + LOG_F(INFO, "Upgrading to WebSocket: id=%lu fd=%d", c->id, (int)(intptr_t)c->fd); mg_ws_upgrade(c, hm, nullptr); - LOG_F(INFO, "WebSocket upgrade completed: id=%lu fd=%d", c->id, c->fd); + LOG_F(INFO, "WebSocket upgrade completed: id=%lu fd=%d", c->id, (int)(intptr_t)c->fd); } else if (mg_match(hm->uri, mg_str("/dashboard"), NULL)) { // 返回仪表盘HTML mg_http_reply(c, 200, "Content-Type: text/html; charset=utf-8\r\n", DASHBOARD_HTML.c_str()); @@ -151,9 +151,9 @@ void HttpServer::handleWebSocketEvent(struct mg_connection* c, int ev, void* ev_ } } else if (mg_match(hm->uri, mg_str("/ws/debug"), NULL)) { // 升级到调试WebSocket连接 - LOG_F(INFO, "Upgrading to Debug WebSocket: id=%lu fd=%d", c->id, c->fd); + LOG_F(INFO, "Upgrading to Debug WebSocket: id=%lu fd=%d", c->id, (int)(intptr_t)c->fd); mg_ws_upgrade(c, hm, nullptr); - LOG_F(INFO, "Debug WebSocket upgrade completed: id=%lu fd=%d", c->id, c->fd); + LOG_F(INFO, "Debug WebSocket upgrade completed: id=%lu fd=%d", c->id, (int)(intptr_t)c->fd); } else if (mg_match(hm->uri, mg_str("/moosdb_test"), NULL)) { if (mg_strcmp(hm->method, mg_str("POST")) == 0) { // 解析JSON请求 @@ -201,7 +201,7 @@ void HttpServer::handleWebSocketEvent(struct mg_connection* c, int ev, void* ev_ if (device_type && device_id && action) { //TODO: 处理断路器控制逻辑 LOG_F(INFO, "Received control request: device_type=%s, device_id=%s, action=%s ,from Net DashBoard id=%lu fd=%d", - device_type, device_id, action, c->id, c->fd); + device_type, device_id, action, c->id, (int)(intptr_t)c->fd); char opt = (action_str == "open") ? 0 : 1; if(device_type_str == "meter_bus") { diff --git a/src/pPowerManger/udpcomm/udpComm.h b/src/pPowerManger/udpcomm/udpComm.h index 6b2df28..62247c6 100644 --- a/src/pPowerManger/udpcomm/udpComm.h +++ b/src/pPowerManger/udpcomm/udpComm.h @@ -61,7 +61,7 @@ public: return false; } if (ccuHost.empty() || ccuPort <= 0) { - LOG_F(ERROR, "Invalid CCU address: %s:%d", ccuHost.c_str(), ccuPort); + LOG_F(ERROR, "Invalid CCU address: %s:%ld", ccuHost.c_str(), ccuPort); return false; } diff --git a/src/pPowerManger/upmsg/uExternComm_setOpCondition.h b/src/pPowerManger/upmsg/uExternComm_setOpCondition.h index dc17045..abf2a80 100644 --- a/src/pPowerManger/upmsg/uExternComm_setOpCondition.h +++ b/src/pPowerManger/upmsg/uExternComm_setOpCondition.h @@ -30,8 +30,8 @@ public: // 检查并读取操作条件 if (root.isMember("state_uint8") && root["state_uint8"].isUInt()) { - return root["state_uint8"].asUInt(); LOG_F(INFO, "上位机指令:opCondition: %d", root["state_uint8"].asUInt()); + return root["state_uint8"].asUInt(); } else { LOG_F(WARNING, "缺少或类型不匹配: opCondition"); return -1; diff --git a/src/pPowerManger/upmsg/uPlan_taskStart.h b/src/pPowerManger/upmsg/uPlan_taskStart.h index 164fa3a..fcd0e21 100644 --- a/src/pPowerManger/upmsg/uPlan_taskStart.h +++ b/src/pPowerManger/upmsg/uPlan_taskStart.h @@ -32,7 +32,7 @@ public: // 提取taskType_str if (root.isMember("taskType_str") && root["taskType_str"].isString()) { mission.type = TaskType::fromString(root["taskType_str"].asString()); - LOG_F(INFO, "taskType: %d", mission.type, root["taskType_str"].asString()); + LOG_F(INFO, "taskType: %d (%s)", mission.type, root["taskType_str"].asString().c_str()); } // 提取balanceEnabled_bool diff --git a/src/pPowerManger/upmsg/uPower_sysState.h b/src/pPowerManger/upmsg/uPower_sysState.h index 4b8ff8d..883ccfa 100644 --- a/src/pPowerManger/upmsg/uPower_sysState.h +++ b/src/pPowerManger/upmsg/uPower_sysState.h @@ -25,6 +25,7 @@ public: { LOG_F(WARNING, "get master control cmd error:%s", msg.c_str()); } + return cmd; }; bool parseControlCmdFromJson(MSControlCmd &cmd, const std::string &strJson) {