Sur cette page

QCanBusDevice::Filter Struct

struct QCanBusDevice::Filter

La structure QCanBusDevice::Filter définit un filtre pour les trames de bus CAN. Plus d'informations...

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 QCanBusDevice::Filter est transmise à QCanBusDevice::setConfigurationParameter() pour permettre le filtrage. Si une trame CAN reçue correspond à au moins un des filtres de la liste, 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));

Membre Type Documentation

enum Filter::FormatFilter
flags Filter::FormatFilters

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

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

Le type FormatFilters est un 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 du bus CAN correspondant.

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

QCanBusFrame::FrameId Filter::frameId

Cette variable contient l'identifiant du cadre utilisé pour filtrer les cadres entrants.

L'identifiant de trame est utilisé conjointement avec frameIdMask. La correspondance est réussie si ce qui suit est évalué à true:

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

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

Voir aussi frameIdMask.

QCanBusFrame::FrameId Filter::frameIdMask

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

Les deux identifiants de trame correspondent si ce qui suit vaut true:

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

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

Voir aussi frameId.

QCanBusFrame::FrameType Filter::type

Cette variable contient le type de trame à filtrer.

Tout type de trame de bus CAN peut être pris en compte en fixant cette variable à QCanBusFrame::InvalidFrame. L'objet filtre est invalide si le type est égal à QCanBusFrame::UnknownFrame.

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

Voir également QCanBusFrame::FrameType.

Non-membres apparenté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.