我正在使用SocketCAN来访问CAN总线。我已经成功创建了这样的pass-filters:
struct can_filter m_Filter;
// ... setting up m_Filters
setsockopt(m_CanSockId, SOL_CAN_RAW, CAN_RAW_FILTER, m_Filter,
sizeof(struct can_filter));
这指示在满足过滤器设置时让CAN消息通过。
现在我想创建一个停止过滤器,但我不知道该怎么做。例如:我希望所有CAN消息都通过,但ID为0x18DAF101的消息除外。
有谁知道怎么做?
您必须在过滤器中设置位CAN_INV_FILTER
以反转过滤器逻辑。
从您提供的链接背后的文档:
当在can_filter结构的can_id元素中设置CAN_INV_FILTER位时,可以在此语义中反转过滤器。