0

我正在使用 SocketCAN 访问 CAN 总线。我已经成功地创建了这样的通过过滤器:

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 的消息。

有人知道怎么做吗?

4

1 回答 1

2

您必须在过滤器中设置该位CAN_INV_FILTER以反转过滤器逻辑。

从您提供的链接后面的文档中:

当在 can_filter 结构的 can_id 元素中设置 CAN_INV_FILTER 位时,可以在此语义中反转过滤器。

于 2019-04-12T13:09:27.230 回答