QCanBusDevice::Filter Struct
struct QCanBusDevice::FilterLa 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 |
Éléments non membres associés
| 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.
| Constante | Valeur | Description |
|---|---|---|
QCanBusDevice::Filter::MatchBaseFormat | 0x0001 | La trame du bus CAN doit utiliser le format de trame de base (identifiant de 11 bits). |
QCanBusDevice::Filter::MatchExtendedFormat | 0x0002 | La trame du bus CAN doit utiliser le format de trame étendu (identifiant de 29 bits). |
QCanBusDevice::Filter::MatchBaseAndExtendedFormat | 0x0003 | La 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.