过滤器结构
struct QCanBusDevice::FilterQCanBusDevice::Filter 结构定义了CAN总线帧的过滤器。更多...
公共类型
枚举 | FormatFilter { MatchBaseFormat, MatchExtendedFormat, MatchBaseAndExtendedFormat } |
标志 | FormatFilters |
公共变量
QCanBusDevice::Filter::FormatFilter | format |
QCanBusFrame::FrameId | frameId |
QCanBusFrame::FrameId | frameIdMask |
QCanBusFrame::FrameType | type |
相关非成员
布尔型 | 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::MatchBaseFormat | 0x0001 | CAN总线帧必须使用基本帧格式(11位标识符)。 |
QCanBusDevice::Filter::MatchExtendedFormat | 0x0002 | CAN总线帧必须使用扩展帧格式(29位标识符)。 |
QCanBusDevice::Filter::MatchBaseAndExtendedFormat | 0x0003 | CAN总线帧可以使用基本或扩展帧格式。 |
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公司的商标。所有其他商标都属于其各自所有者。