Sur cette page

QCanFrameProcessor Class

La classe QCanFrameProcessor permet de décoder un flux de données « QCanBusFrame » ou de convertir les données d'entrée en un flux « QCanBusFrame » prêt à être envoyé au destinataire. En savoir plus...

En-tête : #include <QCanFrameProcessor>
CMake : find_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmake : QT += serialbus
Depuis : Qt 6.5
Statut : Aperçu technologique

Cette classe est en préversion technologique et est susceptible d'être modifiée.

Types publics

(since 6.5) struct ParseResult
enum class Error { None, InvalidFrame, UnsupportedFrameFormat, Decoding, Encoding }

Fonctions publiques

QCanFrameProcessor()
~QCanFrameProcessor()
void addMessageDescriptions(const QList<QCanMessageDescription> &descriptions)
void clearMessageDescriptions()
QCanFrameProcessor::Error error() const
QString errorString() const
QList<QCanMessageDescription> messageDescriptions() const
QCanFrameProcessor::ParseResult parseFrame(const QCanBusFrame &frame)
QCanBusFrame prepareFrame(QtCanBus::UniqueId uniqueId, const QVariantMap &signalValues)
void setMessageDescriptions(const QList<QCanMessageDescription> &descriptions)
void setUniqueIdDescription(const QCanUniqueIdDescription &description)
QCanUniqueIdDescription uniqueIdDescription() const
QStringList warnings() const

Description détaillée

La classe QCanFrameProcessor opère sur les descriptions de messages CAN (représentées par les classes QCanMessageDescription et QCanSignalDescription ) et sur une description d’identifiant unique (représentée par QCanUniqueIdDescription). Elle utilise ces descriptions pour décoder l’ QCanBusFrame e entrant ou pour encoder les données spécifiées par l’utilisateur dans la charge utile appropriée.

Avant toute opération de décodage ou d’encodage, l’instance de QCanFrameProcessor doit être correctement initialisée. Les données suivantes doivent être fournies :

  • Une description de l'identifiant unique de l’ valid. Utilisez la méthode setUniqueIdDescription() pour fournir une description appropriée.
  • Au moins une description de message. Utilisez la méthode addMessageDescriptions() ou setMessageDescriptions() pour fournir des descriptions de message. Toutes les descriptions de message doivent posséder des identifiants uniques distincts. Chaque message peut contenir plusieurs descriptions de signal, mais les noms de signal au sein d’un même message doivent également être uniques.

La méthode parseFrame() peut être utilisée pour traiter les objets QCanBusFrame entrants. Cette méthode renvoie une structure ParseResult qui contient les objets unique identifier et la carte signal values. Les clés de cette carte sont les objets signal names, et ses valeurs sont les valeurs des signaux.

La méthode prepareFrame() permet de générer un objet QCanBusFrame pour un identifiant unique spécifique, à partir des noms de signaux fournis et des valeurs souhaitées.

Des erreurs peuvent survenir au cours du processus d’encodage ou de décodage. Dans ce cas, les méthodes ` error()` et ` errorString()` peuvent être utilisées pour obtenir des informations sur l’erreur.

Certains problèmes non critiques peuvent également se produire. Ces problèmes seront consignés dans le journal, mais le processus ne sera pas interrompu. Une fois le processus terminé, la méthode warnings() peut être utilisée pour accéder à la liste de tous les avertissements.

Remarque : la dernière erreur et sa description, ainsi que les avertissements, sont réinitialisés dès le lancement du décodage ou de l’encodage.

Voir également QCanMessageDescription et QCanSignalDescription.

Documentation sur les types de membres

enum class QCanFrameProcessor::Error

Cette énumération représente les erreurs susceptibles de se produire lors de l'encodage ou du décodage de l'QCanBusFrame.

ConstanteValeurDescription
QCanFrameProcessor::Error::None0Aucune erreur ne s’est produite.
QCanFrameProcessor::Error::InvalidFrame1La trame reçue n'est pas valide et ne peut pas être analysée.
QCanFrameProcessor::Error::UnsupportedFrameFormat2Le format de la trame reçue n'est pas pris en charge et ne peut pas être analysé.
QCanFrameProcessor::Error::Decoding3Une erreur s'est produite pendant le décodage. Utilisez errorString() pour obtenir une représentation sous forme de chaîne de caractères de l'erreur.
QCanFrameProcessor::Error::Encoding4Une erreur s'est produite lors de l'encodage. Utilisez errorString() pour obtenir une représentation sous forme de chaîne de caractères de l'erreur.

Documentation des fonctions membres

QCanFrameProcessor::QCanFrameProcessor()

Crée un processeur de trames CAN.

[noexcept] QCanFrameProcessor::~QCanFrameProcessor()

Détruit ce processeur d'images.

void QCanFrameProcessor::addMessageDescriptions(const QList<QCanMessageDescription> &descriptions)

Ajoute de nouvelles descriptions de messages descriptions à la liste des descriptions de messages disponibles.

Toutes les descriptions de messages doivent avoir des identifiants uniques distincts.

Si certaines descriptions de messages ont des identifiants uniques en double, seule la dernière description sera utilisée.

Si l’analyseur disposait déjà d’une description de message portant le même identifiant unique, celle-ci sera écrasée.

Voir également messageDescriptions(), setMessageDescriptions() et clearMessageDescriptions().

void QCanFrameProcessor::clearMessageDescriptions()

Supprime toutes les descriptions de messages pour ce processeur de trames.

Voir également messageDescriptions(), addMessageDescriptions() et setMessageDescriptions().

QCanFrameProcessor::Error QCanFrameProcessor::error() const

Renvoie la dernière erreur.

Voir également errorString(), prepareFrame() et parseFrame().

QString QCanFrameProcessor::errorString() const

Renvoie la description textuelle de la dernière erreur.

Voir également error(), prepareFrame() et parseFrame().

QList<QCanMessageDescription> QCanFrameProcessor::messageDescriptions() const

Renvoie toutes les descriptions de messages actuellement utilisées par ce processeur de trames.

Voir également addMessageDescriptions(), setMessageDescriptions() et clearMessageDescriptions().

QCanFrameProcessor::ParseResult QCanFrameProcessor::parseFrame(const QCanBusFrame &frame)

Analyse la trame frame à l'aide des descriptions de messages spécifiées.

Le processus d'analyse se déroule comme suit :

  1. La fonction ` uniqueIdDescription()` est utilisée pour extraire l'identifiant unique du message.
  2. L’identifiant unique extrait est utilisé pour rechercher une QCanMessageDescription appropriée dans la liste de toutes les messageDescriptions() disponibles.
  3. L’ QCanMessageDescription correspondante est utilisée pour extraire les valeurs des signaux de la trame.

Cette méthode renvoie un objet ` QCanFrameProcessor::ParseResult`, qui contient à la fois l’identifiant unique extrait et une ` QVariantMap ` contenant les signaux et leurs valeurs. Les clés de la table sont les ` signal names`, et les valeurs de la table sont les valeurs des signaux.

Si une erreur s'est produite pendant le décodage, un résultat avec une ` signalValues ` vide est renvoyé. Dans ce cas, les méthodes ` error()` et ` errorString()` peuvent être utilisées pour obtenir des informations sur les erreurs.

Remarque : l'appel de cette méthode efface toutes les erreurs et tous les avertissements précédents.

Voir également addMessageDescriptions(), error(), errorString() et warnings().

QCanBusFrame QCanFrameProcessor::prepareFrame(QtCanBus::UniqueId uniqueId, const QVariantMap &signalValues)

Crée un cadre de données CAN à l'aide de ` uniqueId ` et ` signalValues `, puis renvoie le cadre ainsi créé, ` QCanBusFrame`.

Le paramètre signalValues doit contenir les noms des signaux comme clés et les valeurs attendues des signaux comme valeurs.

Le processus de création de la trame est le suivant :

  1. L’ uniqueId est utilisé pour trouver une description de message appropriée.
  2. Si la description du message est trouvée, une QCanBusFrame avec une charge utile de la taille spécifiée est créée. Tous les octets de la charge utile, ainsi que l’identifiant de la trame, sont initialisés à zéro.
  3. La fonction ` uniqueIdDescription()` est utilisée pour encoder l’ uniqueId dans la partie appropriée de la trame (identifiant de trame ou charge utile).
  4. La description du message sélectionnée est utilisée pour encoder l’ensemble de l’ signalValues dans la trame.
  5. Les parties de la trame qui ne sont pas couvertes par un identifiant unique ou par des descriptions de signaux existantes ne sont pas modifiées (et contiennent donc toujours des zéros).

Si une erreur s’est produite pendant l’encodage, une QCanBusFrame invalide est renvoyée. Dans ce cas, les méthodes error() et errorString() peuvent être utilisées pour obtenir des informations sur les erreurs.

Remarque : l’appel de cette méthode efface toutes les erreurs et tous les avertissements précédents.

Voir également addMessageDescriptions(), error(), errorString() et warnings().

void QCanFrameProcessor::setMessageDescriptions(const QList<QCanMessageDescription> &descriptions)

Remplace les descriptions de messages actuellement utilisées par ce processeur de trames par les nouvelles descriptions de messages disponibles à l'adresse descriptions.

Voir également messageDescriptions(), addMessageDescriptions() et clearMessageDescriptions().

void QCanFrameProcessor::setUniqueIdDescription(const QCanUniqueIdDescription &description)

Définit la description de l'identifiant unique sur « description ».

La description de l’identifiant unique doit être valide pour pouvoir encoder ou décoder les trames du bus CAN. Pour plus de détails, consultez la documentation de la classe ` QCanUniqueIdDescription `.

Voir également uniqueIdDescription() et QCanUniqueIdDescription.

QCanUniqueIdDescription QCanFrameProcessor::uniqueIdDescription() const

Renvoie la description de l'identifiant unique.

La description de l'identifiant unique doit être valide pour pouvoir encoder ou décoder les trames du bus CAN. Pour plus de détails, consultez la documentation de la classe QCanUniqueIdDescription.

Voir également setUniqueIdDescription() et QCanUniqueIdDescription.

QStringList QCanFrameProcessor::warnings() const

Renvoie la liste des avertissements générés lors du dernier appel d'encodage ou de décodage.

Voir également error(), errorString(), prepareFrame() et parseFrame().

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