QCanDbcFileParser Class
La classe QCanDbcFileParser peut être utilisée pour analyser les fichiers DBC. Plus d'informations...
| En-tête : | #include <QCanDbcFileParser> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS SerialBus)target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
| qmake : | QT += serialbus |
| Depuis : | Qt 6.5 |
| Statut : | Préliminaire |
Cette classe est en cours de développement et peut être modifiée.
Types publics
| enum class | Error { None, FileReading, Parsing } |
| MessageValueDescriptions | |
| SignalValueDescriptions | |
| ValueDescriptions |
Fonctions publiques
| QCanDbcFileParser() | |
| ~QCanDbcFileParser() | |
| QCanDbcFileParser::Error | error() const |
| QString | errorString() const |
| QList<QCanMessageDescription> | messageDescriptions() const |
| QCanDbcFileParser::MessageValueDescriptions | messageValueDescriptions() const |
| bool | parse(const QString &fileName) |
| bool | parse(const QStringList &fileNames) |
(since 6.7) bool | parseData(QStringView data) |
| QStringList | warnings() const |
Membres publics statiques
| QCanUniqueIdDescription | uniqueIdDescription() |
Description détaillée
Une base de données CAN ou un fichier CAN DBC est un fichier texte ASCII qui contient des informations sur la manière de décoder et d'interpréter les données brutes du bus CAN. Plus de détails sur le format peuvent être trouvés ici ou ici.
La classe QCanDbcFileParser prend le fichier DBC en entrée, l'analyse et fournit une liste de QCanMessageDescriptions en sortie. Ces descriptions de messages peuvent être transmises à QCanFrameProcessor, puis utilisées comme règles pour coder ou décoder QCanBusFrames.
Utilisez l'une des surcharges de parse() pour spécifier un fichier ou une liste de fichiers à traiter. Les deux surcharges renvoient true si l'analyse est réussie et false dans le cas contraire.
Appelez la méthode error() pour obtenir l'erreur qui s'est produite pendant l'analyse. Si l'analyse se termine avec succès, cette méthode renvoie None. Dans le cas contraire, vous pouvez utiliser une méthode errorString() pour obtenir la représentation sous forme de chaîne de caractères d'une erreur.
Au cours de l'analyse syntaxique, certains problèmes non critiques peuvent également survenir. Ces problèmes seront enregistrés, mais le processus d'analyse ne sera pas interrompu. Vous pouvez utiliser la méthode warnings() pour obtenir la liste complète de ces problèmes une fois l'analyse terminée.
Si l'analyse se termine avec succès, appelez messageDescriptions() pour obtenir une liste des descriptions de messages qui ont été extraites lors du dernier appel à parse(). Appelez messageValueDescriptions() pour obtenir les descriptions textuelles des valeurs brutes des signaux, si elles sont disponibles.
Utilisez la fonction statique uniqueIdDescription() pour obtenir un QCanUniqueIdDescription pour le format DBC.
QCanDbcFileParser fileParser; const bool result = fileParser.parse(u"path/to/file.dbc"_s); // Check result, call error() and warnings() if needed // Prepare a QCanFrameProcessor to decode or encode DBC frames QCanFrameProcessor frameProcessor; frameProcessor.setUniqueIdDescription(QCanDbcFileParser::uniqueIdDescription()); frameProcessor.setMessageDescriptions(fileParser.messageDescriptions());
Remarque : l'analyseur est à état constant, ce qui signifie que tous les résultats (comme les descriptions de messages extraits, les codes d'erreur ou les avertissements) sont réinitialisés au début de l'analyse suivante.
Mots-clés pris en charge
L'implémentation actuelle ne prend en charge qu'un sous-ensemble de mots-clés que l'on peut trouver dans un fichier DBC :
BO_- description du message.SG_- description du signal.SIG_VALTYPE_- description du type de signal.SG_MUL_VAL_- description du multiplexage étenduCM_- commentaires (uniquement pour les descriptions de messages et de signaux)VAL_- descriptions textuelles des valeurs brutes des signaux.
Les lignes commençant par d'autres mots-clés sont simplement ignorées.
Voir également QCanMessageDescription et QCanFrameProcessor.
Documentation des types de membres
enum class QCanDbcFileParser::Error
Cette énumération représente les erreurs possibles lors de l'analyse d'un fichier DBC.
| Constante | Valeur | Description de l'erreur |
|---|---|---|
QCanDbcFileParser::Error::None | 0 | Aucune erreur n'est survenue. |
QCanDbcFileParser::Error::FileReading | 1 | Une erreur s'est produite lors de l'ouverture ou de la lecture du fichier. |
QCanDbcFileParser::Error::Parsing | 2 | Une erreur s'est produite lors de l'analyse du contenu du fichier. |
[alias] QCanDbcFileParser::MessageValueDescriptions
Il s'agit d'un alias de type pour QHash<QtCanBus::UniqueId, SignalValueDescriptions>.
Les clés du hachage représentent les identifiants uniques des messages, et les valeurs du hachage contiennent les entrées QCanDbcFileParser::SignalValueDescriptions correspondantes.
Voir également QCanDbcFileParser::SignalValueDescriptions.
[alias] QCanDbcFileParser::SignalValueDescriptions
Il s'agit d'un alias de type pour QHash<QString, ValueDescriptions>.
Les clés du hachage représentent les noms des signaux et les valeurs du hachage contiennent les entrées QCanDbcFileParser::ValueDescriptions correspondantes.
Voir également QCanDbcFileParser::ValueDescriptions.
[alias] QCanDbcFileParser::ValueDescriptions
Il s'agit d'un alias de type pour QHash<quint32, QString>.
Les clés du hachage représentent les valeurs brutes des signaux, et les valeurs du hachage représentent les chaînes de description correspondantes.
Documentation des fonctions membres
QCanDbcFileParser::QCanDbcFileParser()
Construit un analyseur de fichiers DBC.
[noexcept] QCanDbcFileParser::~QCanDbcFileParser()
Détruit cet analyseur de fichiers DBC.
QCanDbcFileParser::Error QCanDbcFileParser::error() const
Renvoie la dernière erreur survenue lors de l'analyse.
Voir aussi errorString() et parse().
QString QCanDbcFileParser::errorString() const
Renvoie la représentation textuelle de la dernière erreur survenue pendant l'analyse ou une chaîne vide s'il n'y a pas eu d'erreur.
Voir aussi error().
QList<QCanMessageDescription> QCanDbcFileParser::messageDescriptions() const
Renvoie la liste des descriptions de messages qui ont été extraites lors du dernier appel à parse().
Voir aussi parse() et error().
QCanDbcFileParser::MessageValueDescriptions QCanDbcFileParser::messageValueDescriptions() const
Renvoie les descriptions textuelles des valeurs brutes des signaux.
DBC offre la possibilité de fournir des descriptions textuelles pour les valeurs brutes des signaux. Si de telles données existent dans le(s) fichier(s) DBC analysé(s), il est possible d'y accéder à l'aide de cette fonction.
Les descriptions textuelles sont uniques pour un certain signal dans un message spécifique, de sorte que la structure renvoyée contient des informations sur l'identifiant unique du message et le nom du signal, ainsi que les descriptions des valeurs réelles.
Voir aussi QCanDbcFileParser::MessageValueDescriptions, QCanDbcFileParser::SignalValueDescriptions, et QCanDbcFileParser::ValueDescriptions.
bool QCanDbcFileParser::parse(const QString &fileName)
Analyse le fichier fileName. Retourne true si l'analyse s'est terminée avec succès ou false dans le cas contraire.
Si l'analyse s'est déroulée correctement, la méthode messageDescriptions() permet d'obtenir la liste de toutes les descriptions de messages extraites.
Si l'analyse a échoué, appelez les méthodes error() et errorString() pour obtenir des informations sur l'erreur.
Appelez la méthode warnings() pour obtenir la liste des avertissements enregistrés pendant l'analyse.
Remarque : cette méthode s'attend à ce que le contenu du fichier soit codé en UTF-8. Si le fichier a un encodage différent, décodez-le d'abord, et utilisez parseData() pour extraire les informations DBC.
Voir aussi messageDescriptions(), error(), warnings(), et parseData().
bool QCanDbcFileParser::parse(const QStringList &fileNames)
Analyse une liste de fichiers fileNames. Renvoie true si l'analyse s'est terminée avec succès ou false dans le cas contraire.
Si l'analyse s'est terminée avec succès, la méthode messageDescriptions() est appelée pour obtenir la liste de toutes les descriptions de messages extraites.
L'analyse s'arrête à la première erreur. Appelez les méthodes error() et errorString() pour obtenir des informations sur l'erreur.
Appelez la méthode warnings() pour obtenir la liste des avertissements enregistrés pendant l'analyse.
Remarque : cette méthode s'attend à ce que le contenu du fichier soit codé en UTF-8. Si le fichier a un encodage différent, décodez-le d'abord et utilisez parseData() pour extraire les informations DBC.
Il s'agit d'une fonction surchargée.
Voir aussi messageDescriptions(), error(), warnings() et parseData().
[since 6.7] bool QCanDbcFileParser::parseData(QStringView data)
Analyse les données d'entrée data et renvoie true si l'analyse s'est terminée avec succès ou false dans le cas contraire.
Si l'analyse s'est terminée avec succès, la méthode messageDescriptions() est appelée pour obtenir la liste de toutes les descriptions de messages extraites.
Si l'analyse a échoué, appelez les méthodes error() et errorString() pour obtenir des informations sur l'erreur.
Appelez la méthode warnings() pour obtenir la liste des avertissements enregistrés pendant l'analyse.
La méthode s'attend à ce que data soit le contenu d'un fichier DBC valide, correctement converti en QStringView.
Utilisez cette méthode lorsque le fichier d'entrée a un encodage différent de UTF-8.
// Read the data from a DBC file with custom encoding const QByteArray initialData = ...; // Convert to UTF-16 using QStringDecoder or some other way const QString decodedData = ...; QCanDbcFileParser parser; const bool result = parser.parseData(decodedData);
Cette fonction a été introduite dans Qt 6.7.
Voir aussi messageDescriptions(), error(), warnings(), et parse().
[static] QCanUniqueIdDescription QCanDbcFileParser::uniqueIdDescription()
Renvoie une description de l'identifiant unique. Le protocole DBC utilise toujours le Frame Id comme identifiant, et la description de l'identifiant unique est donc toujours la même.
Utilisez cette méthode pour obtenir une instance de QCanUniqueIdDescription et la transmettre à QCanFrameProcessor.
Voir aussi QCanFrameProcessor::setUniqueIdDescription().
QStringList QCanDbcFileParser::warnings() const
Renvoie la liste des problèmes non critiques survenus au cours de l'analyse.
Un problème typique peut être une description de message ou de signal malformée. Dans ce cas, le message ou le signal malformé est ignoré, mais le reste du fichier peut être traité comme d'habitude.
© 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.