过滤器结构

struct QCanBusDevice::Filter

QCanBusDevice::Filter 结构定义了CAN总线帧的过滤器。更多...

公共类型

枚举FormatFilter { MatchBaseFormat, MatchExtendedFormat, MatchBaseAndExtendedFormat }
标志FormatFilters

公共变量

QCanBusDevice::Filter::FormatFilterformat
QCanBusFrame::FrameIdframeId
QCanBusFrame::FrameIdframeIdMask
QCanBusFrame::FrameTypetype
布尔型operator!=(const QCanBusDevice::Filter &a, const QCanBusDevice::Filter &b)
布尔型operator==(const QCanBusDevice::Filter &a, const QCanBusDevice::Filter &b)

详细描述

QCanBusDevice::Filter 实例列表传递给QCanBusDevice::setConfigurationParameter() 以启用过滤。如果一个接收到的CAN帧与列表中的任何一个过滤器匹配,则QCanBusDevice 将接受它。

下面的示例演示了如何使用该结构

QCanBusDevice::Filter filter;
QList<QCanBusDevice::Filter> filterList;

// filter all CAN bus packages with id 0x444 (base) or 0xXXXXX444 (extended)
filter.frameId = 0x444u;
filter.frameIdMask = 0x7FFu;
filter.format = QCanBusDevice::Filter::MatchBaseAndExtendedFormat;
filter.type = QCanBusFrame::InvalidFrame;
filterList.append(filter);

// filter all DataFrames with extended CAN bus package format
filter.frameId = 0x0;
filter.frameIdMask = 0x0;
filter.format = QCanBusDevice::Filter::MatchExtendedFormat;
filter.type = QCanBusFrame::DataFrame;
filterList.append(filter);

// apply filter
device->setConfigurationParameter(QCanBusDevice::RawFilterKey, QVariant::fromValue(filterList));

成员类型文档

枚举 Filter::FormatFilter
标志 Filter::FormatFilters

此枚举描述了格式模式,用于过滤传入的CAN总线帧。

常量描述
QCanBusDevice::Filter::MatchBaseFormat0x0001CAN总线帧必须使用基本帧格式(11位标识符)。
QCanBusDevice::Filter::MatchExtendedFormat0x0002CAN总线帧必须使用扩展帧格式(29位标识符)。
QCanBusDevice::Filter::MatchBaseAndExtendedFormat0x0003CAN总线帧可以使用基本或扩展帧格式。

FormatFilters类型是QFlags<FormatFilter>的别名。它存储FormatFilter值的或组合。

成员变量文档

QCanBusDevice::Filter::FormatFilter Filter::format

此变量保留匹配的CAN总线帧的帧格式。

默认情况下,此字段设置为QCanBusDevice::Filter::MatchBaseAndExtendedFormat

QCanBusFrame::FrameId Filter::frameId

此变量存储用于过滤接收帧的帧ID。

frameId 与 frameIdMask 结合使用。当以下条件评估为 true 时匹配成功

(receivedFrameId & frameIdMask) == (frameId & frameIdMask)

默认将此字段设置为 0x0

另请参阅 frameIdMask

QCanBusFrame::FrameId Filter::frameIdMask

此变量存储应用于过滤器和接收到的帧的帧ID的位掩码。

如果以下条件评估为 true,则两个帧ID匹配。

(receivedFrameId & frameIdMask) == (frameId & frameIdMask)

默认将此字段设置为 0x0

另请参阅 frameId

QCanBusFrame::FrameType Filter::type

此变量存储要过滤的帧的类型。

通过将此变量设置为 QCanBusFrame::InvalidFrame,可以匹配任何CAN总线帧类型。如果类型等于 QCanBusFrame::UnknownFrame,则过滤器对象无效。

默认将此字段设置为 QCanBusFrame::InvalidFrame

另请参阅 QCanBusFrame::FrameType

相关非成员

[constexpr noexcept] bool operator!=(const QCanBusDevice::Filter &a, const QCanBusDevice::Filter &b)

如果过滤器 a 与过滤器 b 不相等,则返回 true,否则返回 false

[constexpr noexcept] bool operator==(const QCanBusDevice::Filter &a, const QCanBusDevice::Filter &b)

如果过滤器 a 与过滤器 b 相等,则返回 true,否则返回 false

© 2024 Qt公司。此处包含的文档贡献是各自所有者的版权。本文件提供的文档是根据自由软件基金会发布的 GNU自由文档许可证版本1.3 许可的。Qt及其标志是芬兰以及世界其他国家的Qt公司的商标。所有其他商标都属于其各自所有者。