QCanBusDevice::Filter Struct
struct QCanBusDevice::FilterLa 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 |
Non-membres apparenté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 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.
| Constante | Valeur | Description de la constante |
|---|---|---|
QCanBusDevice::Filter::MatchBaseFormat | 0x0001 | La trame de bus CAN doit utiliser le format de trame de base (identificateur 11 bits). |
QCanBusDevice::Filter::MatchExtendedFormat | 0x0002 | La trame du bus CAN doit utiliser le format de trame étendu (identificateur de 29 bits). |
QCanBusDevice::Filter::MatchBaseAndExtendedFormat | 0x0003 | La 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.