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>
// 超声波传感器的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<struct can_filter> 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<struct can_filter> 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;