From 64237aebe754c3f0e083238840544c893e205422 Mon Sep 17 00:00:00 2001 From: Alvin-lyq Date: Wed, 29 Apr 2026 13:09:30 +0800 Subject: [PATCH] debug-7 --- .../src/pbox_node/src/protocol/decode_04.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/perception/pbox_node_dirve/src/pbox_node/src/protocol/decode_04.cpp b/src/perception/pbox_node_dirve/src/pbox_node/src/protocol/decode_04.cpp index 0438472..a1d676f 100644 --- a/src/perception/pbox_node_dirve/src/pbox_node/src/protocol/decode_04.cpp +++ b/src/perception/pbox_node_dirve/src/pbox_node/src/protocol/decode_04.cpp @@ -27,10 +27,16 @@ public: void subData(const uint8_t* sub_address, int& index) { + int dataLength = getLength(m_type); - uint32_t dataSize = getDataSize() - index; - uint32_t protocolSize = checkXor(&sub_address[index] , dataSize); - if(protocolSize == 44) + // 简单的XOR校验 + uint8_t check_sum = 0; + for (int i = 0; i < dataLength - 1; ++i) + { + check_sum ^= sub_address[i]; + } + + if (check_sum == sub_address[dataLength - 1]) { int16_t middle; uint32_t tmpU32; @@ -49,9 +55,7 @@ public: m_pubAsensingMsg.temperature = middle * 200.0 / 32768; // time tmpU32 = toValue(sub_address, sub_index); - m_pubAsensingMsg.imu_time_stamp = (double)tmpU32 / 4000; - // status - m_pubAsensingMsg.status = toValue(sub_address, sub_index); + m_pubAsensingMsg.time = (double)tmpU32 / 4000; /* msg header */ m_pubAsensingMsg.header.frame_id = m_frameId; @@ -102,7 +106,7 @@ public: isPrint = true; } } - index += protocolSize; + index += dataLength; } else {