This commit is contained in:
Alvin-lyq 2026-05-06 15:17:22 +08:00
parent 5ec44173c6
commit ad47895b1c

View File

@ -2,9 +2,9 @@
#include <iostream> #include <iostream>
// 超声波传感器的CAN ID定义 (J1939格式: 0x18EC5700) 18EC0057 // 超声波传感器的CAN ID定义 (J1939格式: 0x18EC5700)
// Priority: 0x18, PGN: 0xEC00 (60416), Device ID: 0x57 (87) // Priority: 6(0x18), PF: 0xEC, PS: 0x57, SA: 0x00, PGN: 60416(0xEC00)
constexpr uint32_t USS_CAN_ID = 0x18EC0057; constexpr uint32_t USS_CAN_ID = 0x18EC5700;
constexpr uint32_t USS_CAN_MASK = 0xFFFFFFFF; // 精确匹配 constexpr uint32_t USS_CAN_MASK = 0xFFFFFFFF; // 精确匹配
UssDriver::UssDriver() : print_debug_(false), initialized_(false) UssDriver::UssDriver() : print_debug_(false), initialized_(false)
{ {
@ -39,18 +39,18 @@ bool UssDriver::init(const std::string& can_interface)
} }
// 设置CAN过滤器只接收超声波的CAN数据 // 设置CAN过滤器只接收超声波的CAN数据
// struct can_filter filter; struct can_filter filter;
// filter.can_id = USS_CAN_ID | CAN_EFF_FLAG; filter.can_id = USS_CAN_ID | CAN_EFF_FLAG;
// filter.can_mask = USS_CAN_MASK; filter.can_mask = USS_CAN_MASK;
// std::vector<struct can_filter> filters; std::vector<struct can_filter> filters;
// filters.push_back(filter); filters.push_back(filter);
// if (!can_driver_.setFilter(filters)) if (!can_driver_.setFilter(filters))
// { {
// std::cerr << "Failed to set CAN filter for USS" << std::endl; std::cerr << "Failed to set CAN filter for USS" << std::endl;
// can_driver_.close(); can_driver_.close();
// return false; return false;
// } }
can_driver_.setReceiveCallback(canReceiveCallback, this); can_driver_.setReceiveCallback(canReceiveCallback, this);
initialized_ = true; initialized_ = true;
@ -58,7 +58,7 @@ bool UssDriver::init(const std::string& can_interface)
if (print_debug_) if (print_debug_)
{ {
std::cout << "USS driver initialized successfully on " << can_interface << std::endl; 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; return true;