Sur cette page

QCanBusDevice::Filter Struct

struct QCanBusDevice::Filter

La structure ` QCanBusDevice::Filter ` définit un filtre pour les trames du bus CAN. En savoir plus...

Types publics

enum FormatFilter { MatchBaseFormat, MatchExtendedFormat, MatchBaseAndExtendedFormat }
flags FormatFilters

Variables publiques

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)

Description détaillée

Une liste d’instances de ` QCanBusDevice::Filter ` est transmise à ` QCanBusDevice::setConfigurationParameter()` pour permettre le filtrage. Si une trame CAN reçue correspond à au moins l’un des filtres de la liste, l’ QCanBusDevice l’acceptera.

L'exemple ci-dessous montre comment utiliser la structure :

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

Documentation sur les types de membres

enum Filter::FormatFilter
flags Filter::FormatFilters

Cette énumération décrit le modèle de format utilisé pour filtrer les trames entrantes du bus CAN.

ConstanteValeurDescription
QCanBusDevice::Filter::MatchBaseFormat0x0001La trame du bus CAN doit utiliser le format de trame de base (identifiant de 11 bits).
QCanBusDevice::Filter::MatchExtendedFormat0x0002La trame du bus CAN doit utiliser le format de trame étendu (identifiant de 29 bits).
QCanBusDevice::Filter::MatchBaseAndExtendedFormat0x0003La trame du bus CAN peut avoir un format de trame de base ou étendu.

Le type FormatFilters est une définition de type (typedef) pour QFlags<FormatFilter>. Il stocke une combinaison OR de valeurs FormatFilter.

Documentation des variables membres

QCanBusDevice::Filter::FormatFilter Filter::format

Cette variable contient le format de la trame CAN correspondante.

Par défaut, ce champ est défini sur « QCanBusDevice::Filter::MatchBaseAndExtendedFormat ».

QCanBusFrame::FrameId Filter::frameId

Cette variable contient l'identifiant de trame utilisé pour filtrer les trames entrantes.

L’identifiant de trame (frameId) est utilisé conjointement avec la variable « frameIdMask ». La correspondance est réussie si l’expression suivante évalue à « true » :

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

Par défaut, ce champ est défini sur 0x0.

Voir également frameIdMask.

QCanBusFrame::FrameId Filter::frameIdMask

Cette variable contient le masque de bits appliqué à l'identifiant de trame du filtre et à celui de la trame reçue.

Les deux identifiants de trame correspondent si l'expression suivante donne le résultat « true » :

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

Par défaut, ce champ est défini sur 0x0.

Voir également frameId.

QCanBusFrame::FrameType Filter::type

Cette variable contient le type de trame à filtrer.

Il est possible de faire correspondre n'importe quel type de trame de bus CAN en définissant cette variable sur QCanBusFrame::InvalidFrame. L'objet filtre n'est pas valide si le type est égal à QCanBusFrame::UnknownFrame.

Par défaut, ce champ est défini sur « QCanBusFrame::InvalidFrame ».

Voir également « QCanBusFrame::FrameType ».

Éléments non membres associés

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

Renvoie « true » si le filtre a n'est pas égal au filtre b; sinon, renvoie « false ».

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

Renvoie ` true` si le filtre ` a ` est égal au filtre ` b` ; sinon, renvoie ` false`.

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