From 8dd991b6777754ce6ffb6956c72d00fdebb988df Mon Sep 17 00:00:00 2001 From: cxh Date: Sat, 17 May 2025 15:18:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B6=B2=E4=BD=8D=E7=9A=84?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mqtt_report/src/mqtt_report.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mqtt_report/src/mqtt_report.cpp b/src/mqtt_report/src/mqtt_report.cpp index 427dec0..5e5d8eb 100644 --- a/src/mqtt_report/src/mqtt_report.cpp +++ b/src/mqtt_report/src/mqtt_report.cpp @@ -44,7 +44,9 @@ void Msg_Handler(const mc::msg::CanFrame::SharedPtr msg) case 0x18FF0121: { - const uint16_t WaterValue = (uint16_t)(((msg->data[3] & 0x3F) << 4) | ((msg->data[2] & 0xF0) >> 4)); + uint8_t WaterValue_h = (msg->data[2]); + uint8_t WaterValue_l = (msg->data[1]); + uint16_t WaterValue = (WaterValue_h & 0x3f) * 16 + (WaterValue_l & 0x0f); float WaterLevel = WaterValue * (-0.235) + 199.75; info_report.waterLevel = static_cast(std::round(WaterLevel / 1.8f)); // 液位百分比 break; @@ -219,7 +221,7 @@ public: private: void topic_callback(const mc::msg::CanFrame::SharedPtr msg) { - RCLCPP_INFO(this->get_logger(), "Received CAN frame ID: %u, DLC: %u", msg->id, msg->dlc); + // RCLCPP_INFO(this->get_logger(), "Received CAN frame ID: %u, DLC: %u", msg->id, msg->dlc); Msg_Handler(msg); }