Filter Struct
struct QCanBusDevice::FilterDie Struktur QCanBusDevice::Filter definiert einen Filter für CAN-Bus-Frames. Mehr...
Öffentliche Typen
enum | FormatFilter { MatchBaseFormat, MatchExtendedFormat, MatchBaseAndExtendedFormat } |
flags | FormatFilters |
Öffentliche Variablen
QCanBusDevice::Filter::FormatFilter | format |
QCanBusFrame::FrameId | frameId |
QCanBusFrame::FrameId | frameIdMask |
QCanBusFrame::FrameType | type |
Verwandte Nicht-Mitglieder
bool | operator!=(const QCanBusDevice::Filter &a, const QCanBusDevice::Filter &b) |
bool | operator==(const QCanBusDevice::Filter &a, const QCanBusDevice::Filter &b) |
Detaillierte Beschreibung
Eine Liste von QCanBusDevice::Filter Instanzen wird an QCanBusDevice::setConfigurationParameter() übergeben, um eine Filterung zu ermöglichen. Wenn ein empfangener CAN-Frame mindestens einem der Filter in der Liste entspricht, wird er von QCanBusDevice akzeptiert.
Das folgende Beispiel zeigt, wie die Struktur verwendet wird:
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));
Member Type Dokumentation
enum Filter::FormatFilter
flags Filter::FormatFilters
Dieses Enum beschreibt das Formatmuster, das zum Filtern eingehender CAN-Bus-Frames verwendet wird.
Konstante | Wert | Beschreibung |
---|---|---|
QCanBusDevice::Filter::MatchBaseFormat | 0x0001 | Der CAN-Bus-Frame muss das Basis-Frame-Format (11-Bit-Identifier) verwenden. |
QCanBusDevice::Filter::MatchExtendedFormat | 0x0002 | Der CAN-Bus-Frame muss das erweiterte Frame-Format (29-Bit-Identifier) verwenden. |
QCanBusDevice::Filter::MatchBaseAndExtendedFormat | 0x0003 | Der CAN-Bus-Frame kann ein Basis- oder ein erweitertes Frame-Format haben. |
Der Typ FormatFilters ist ein Typedef für QFlags<FormatFilter>. Er speichert eine ODER-Kombination von FormatFilter-Werten.
Dokumentation der Mitgliedsvariablen
QCanBusDevice::Filter::FormatFilter Filter::format
Diese Variable enthält das Frame-Format des entsprechenden CAN-Bus-Frames.
Standardmäßig ist dieses Feld auf QCanBusDevice::Filter::MatchBaseAndExtendedFormat gesetzt.
QCanBusFrame::FrameId Filter::frameId
Diese Variable enthält die Frame-ID, die zum Filtern der eingehenden Frames verwendet wird.
Die frameId wird in Verbindung mit frameIdMask verwendet. Der Abgleich ist erfolgreich, wenn der folgende Wert true
lautet:
(receivedFrameId & frameIdMask) == (frameId & frameIdMask)
Standardmäßig ist dieses Feld auf 0x0
gesetzt.
Siehe auch frameIdMask.
QCanBusFrame::FrameId Filter::frameIdMask
Diese Variable enthält die Bitmaske, die auf die Frame-ID des Filters und des empfangenen Frames angewendet wird.
Die beiden Frame-IDs stimmen überein, wenn der folgende Wert true
lautet:
(receivedFrameId & frameIdMask) == (frameId & frameIdMask)
Standardmäßig ist dieses Feld auf 0x0
gesetzt.
Siehe auch frameId.
QCanBusFrame::FrameType Filter::type
Diese Variable enthält den Typ des zu filternden Frames.
Jeder CAN-Bus-Frametyp kann angepasst werden, indem diese Variable auf QCanBusFrame::InvalidFrame gesetzt wird. Das Filterobjekt ist ungültig, wenn type gleich QCanBusFrame::UnknownFrame ist.
Standardmäßig ist dieses Feld auf QCanBusFrame::InvalidFrame gesetzt.
Siehe auch QCanBusFrame::FrameType.
Verwandte Nicht-Mitglieder
[constexpr noexcept]
bool operator!=(const QCanBusDevice::Filter &a, const QCanBusDevice::Filter &b)
Gibt true
zurück, wenn der Filter a nicht gleich dem Filter b ist, andernfalls gibt er false
zurück.
[constexpr noexcept]
bool operator==(const QCanBusDevice::Filter &a, const QCanBusDevice::Filter &b)
Gibt true
zurück, wenn der Filter a gleich dem Filter b ist, andernfalls gibt er false
zurück.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.