gpt4 book ai didi

c++ - 读取 CAN 消息时如何创建停止过滤器(而不是通过过滤器)? [C++, Linux]

转载 作者:太空宇宙 更新时间:2023-11-04 11:52:26 26 4
gpt4 key购买 nike

我正在使用 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 的报文。

有人知道怎么做吗?

最佳答案

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

根据您提供的链接背后的文档:

The filter can be inverted in this semantic, when the CAN_INV_FILTER bit is set in can_id element of the can_filter structure.

关于c++ - 读取 CAN 消息时如何创建停止过滤器(而不是通过过滤器)? [C++, Linux],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55636741/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com