From ad47895b1cb779472b459972cd9a36f36ea1e8e7 Mon Sep 17 00:00:00 2001 From: Alvin-lyq Date: Wed, 6 May 2026 15:17:22 +0800 Subject: [PATCH] filters --- src/perception/uss/src/uss.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/perception/uss/src/uss.cpp b/src/perception/uss/src/uss.cpp index 0115228..c21ec82 100644 --- a/src/perception/uss/src/uss.cpp +++ b/src/perception/uss/src/uss.cpp @@ -2,9 +2,9 @@ #include -// 超声波传感器的CAN ID定义 (J1939格式: 0x18EC5700) 18EC0057 -// Priority: 0x18, PGN: 0xEC00 (60416), Device ID: 0x57 (87) -constexpr uint32_t USS_CAN_ID = 0x18EC0057; +// 超声波传感器的CAN ID定义 (J1939格式: 0x18EC5700) +// Priority: 6(0x18), PF: 0xEC, PS: 0x57, SA: 0x00, PGN: 60416(0xEC00) +constexpr uint32_t USS_CAN_ID = 0x18EC5700; constexpr uint32_t USS_CAN_MASK = 0xFFFFFFFF; // 精确匹配 UssDriver::UssDriver() : print_debug_(false), initialized_(false) { @@ -39,18 +39,18 @@ bool UssDriver::init(const std::string& can_interface) } // 设置CAN过滤器,只接收超声波的CAN数据 - // struct can_filter filter; - // filter.can_id = USS_CAN_ID | CAN_EFF_FLAG; - // filter.can_mask = USS_CAN_MASK; - // std::vector filters; - // filters.push_back(filter); + struct can_filter filter; + filter.can_id = USS_CAN_ID | CAN_EFF_FLAG; + filter.can_mask = USS_CAN_MASK; + std::vector filters; + filters.push_back(filter); - // if (!can_driver_.setFilter(filters)) - // { - // std::cerr << "Failed to set CAN filter for USS" << std::endl; - // can_driver_.close(); - // return false; - // } + if (!can_driver_.setFilter(filters)) + { + std::cerr << "Failed to set CAN filter for USS" << std::endl; + can_driver_.close(); + return false; + } can_driver_.setReceiveCallback(canReceiveCallback, this); initialized_ = true; @@ -58,7 +58,7 @@ bool UssDriver::init(const std::string& can_interface) if (print_debug_) { std::cout << "USS driver initialized successfully on " << can_interface << std::endl; - // std::cout << "CAN filter set for ID: 0x" << std::hex << USS_CAN_ID << std::dec << std::endl; + std::cout << "CAN filter set for ID: 0x" << std::hex << USS_CAN_ID << std::dec << std::endl; } return true;