From b4dfdf17984816f65937bef1f557f082c6508a41 Mon Sep 17 00:00:00 2001 From: Alvin-lyq Date: Wed, 29 Apr 2026 10:32:04 +0800 Subject: [PATCH] debug-3 --- .../rtk_asensing/asensing_protocol.hpp | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/perception/rtk_asensing/include/rtk_asensing/asensing_protocol.hpp b/src/perception/rtk_asensing/include/rtk_asensing/asensing_protocol.hpp index 6ab377d..79d47ff 100644 --- a/src/perception/rtk_asensing/include/rtk_asensing/asensing_protocol.hpp +++ b/src/perception/rtk_asensing/include/rtk_asensing/asensing_protocol.hpp @@ -4,6 +4,7 @@ #include #include #include + #include "logger/logger.h" // Asensing协议4数据帧定义 @@ -118,11 +119,24 @@ class AsensingProtocol // 所以完整帧长 = 63字节 if (frame_index_ >= 63) { + // 打印完整帧数据用于调试 + LOG_INFO("[DEBUG-PROTO] 完整帧数据(%d字节):", frame_index_); + std::string frame_hex; + for (int j = 0; j < 63 && j < frame_index_; j++) + { + char hex[4]; + snprintf(hex, sizeof(hex), "%02X ", frame_buf_[j]); + frame_hex += hex; + if ((j + 1) % 16 == 0) frame_hex += "\n"; + } + LOG_INFO("[DEBUG-PROTO] HEX:\n%s", frame_hex.c_str()); + // 检查帧类型 if (frame_buf_[2] != 0x0B) { total_frame_type_fail++; - LOG_INFO("[DEBUG-PROTO] 帧类型不匹配: 0x%02X (期望 0x0B), 累计失败: %d", frame_buf_[2], total_frame_type_fail); + LOG_INFO("[DEBUG-PROTO] 帧类型不匹配: 0x%02X (期望 0x0B), 累计失败: %d", frame_buf_[2], + total_frame_type_fail); // 帧类型不匹配,重新同步 is_synced_ = false; frame_index_ = 0; @@ -139,8 +153,8 @@ class AsensingProtocol if (xor_check1 != frame_buf_[57]) { total_checksum1_fail++; - LOG_INFO("[DEBUG-PROTO] 校验位1失败: 计算=0x%02X, 接收=0x%02X, 累计失败: %d", - xor_check1, frame_buf_[57], total_checksum1_fail); + LOG_INFO("[DEBUG-PROTO] 校验位1失败: 计算=0x%02X, 接收=0x%02X, 累计失败: %d", xor_check1, + frame_buf_[57], total_checksum1_fail); // 校验失败,重新同步 is_synced_ = false; frame_index_ = 0; @@ -157,16 +171,16 @@ class AsensingProtocol if (xor_check2 != frame_buf_[62]) { total_checksum2_fail++; - LOG_INFO("[DEBUG-PROTO] 校验位2失败: 计算=0x%02X, 接收=0x%02X, 累计失败: %d", - xor_check2, frame_buf_[62], total_checksum2_fail); + LOG_INFO("[DEBUG-PROTO] 校验位2失败: 计算=0x%02X, 接收=0x%02X, 累计失败: %d", xor_check2, + frame_buf_[62], total_checksum2_fail); // 校验失败,重新同步 is_synced_ = false; frame_index_ = 0; continue; } - LOG_INFO("[DEBUG-PROTO] 解析成功! 帧头: %02X %02X, 类型: %02X", - frame_buf_[0], frame_buf_[1], frame_buf_[2]); + LOG_INFO("[DEBUG-PROTO] 解析成功! 帧头: %02X %02X, 类型: %02X", frame_buf_[0], frame_buf_[1], + frame_buf_[2]); // 校验通过,复制数据到结构体 memcpy(&raw_data_, frame_buf_, sizeof(AsensingInsData));