Auf dieser Seite

QCanBusDevice::Filter Struct

struct QCanBusDevice::Filter

Die 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
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 die Filterung zu ermöglichen. Wenn ein empfangener CAN-Frame mit mindestens einem der Filter in der Liste übereinstimmt, akzeptiert „ QCanBusDevice “ diesen.

Das folgende Beispiel veranschaulicht die Verwendung der Struktur:

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));

Dokumentation zu den Elementtypen

enum Filter::FormatFilter
flags Filter::FormatFilters

Diese Enumeration beschreibt das Formatmuster, das zum Filtern eingehender CAN-Bus-Frames verwendet wird.

KonstanteWertBeschreibung
QCanBusDevice::Filter::MatchBaseFormat0x0001Der CAN-Bus-Frame muss das Basis-Frame-Format (11-Bit-Identifier) verwenden.
QCanBusDevice::Filter::MatchExtendedFormat0x0002Der CAN-Bus-Frame muss das erweiterte Frame-Format (29-Bit-Identifier) verwenden.
QCanBusDevice::Filter::MatchBaseAndExtendedFormat0x0003Der 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 zu den Member-Variablen

QCanBusDevice::Filter::FormatFilter Filter::format

Diese Variable enthält das Rahmenformat des entsprechenden CAN-Bus-Rahmens.

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 die folgende Bedingung zu „ true “ führt:

(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 die folgende Bedingung den Wert „ true “ ergibt:

(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-Frame-Typ kann abgeglichen werden, indem diese Variable auf „ QCanBusFrame::InvalidFrame “ gesetzt wird. Das Filterobjekt ist ungültig, wenn der Typ „ 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 mit dem Filter „ b “ übereinstimmt; andernfalls wird „ false “ zurückgegeben.

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

Gibt „ true “ zurück, wenn der Filter „ a “ mit dem Filter „ b “ übereinstimmt; andernfalls wird „ false “ zurückgegeben.

© 2026 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.