QCanFrameProcessor Class
Die Klasse „QCanFrameProcessor“ kann verwendet werden, um einen „ QCanBusFrame “ zu dekodieren oder die Eingabedaten in einen „ QCanBusFrame “ umzuwandeln, der bereit ist, an den Empfänger gesendet zu werden. Mehr...
| Header: | #include <QCanFrameProcessor> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
| qmake: | QT += serialbus |
| Seit: | Qt 6.5 |
| Status: | Technologievorschau |
Diese Klasse befindet sich in der Technologievorschau und kann sich noch ändern.
Öffentliche Typen
(since 6.5) struct | ParseResult |
| enum class | Error { None, InvalidFrame, UnsupportedFrameFormat, Decoding, Encoding } |
Öffentliche Funktionen
| 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 |
Ausführliche Beschreibung
Die Klasse „QCanFrameProcessor“ verarbeitet CAN-Nachrichtenbeschreibungen (dargestellt durch die Klassen „ QCanMessageDescription “ und „ QCanSignalDescription “) sowie eine eindeutige Identifikatorbeschreibung (dargestellt durch „ QCanUniqueIdDescription “). Sie nutzt diese Beschreibungen, um eingehende „ QCanBusFrame “ zu dekodieren oder benutzerdefinierte Daten in die entsprechende Nutzlast zu kodieren.
Vor jeder Dekodierung oder Kodierung muss die QCanFrameProcessor-Instanz ordnungsgemäß initialisiert werden. Dazu müssen folgende Daten bereitgestellt werden:
- Eine Beschreibung der eindeutigen Kennung für „ valid “. Verwenden Sie die Methode „ setUniqueIdDescription()“, um eine korrekte Beschreibung bereitzustellen.
- Mindestens eine Nachrichtenbeschreibung. Verwenden Sie die Methode „ addMessageDescriptions()“ oder „ setMessageDescriptions()“, um Nachrichtenbeschreibungen bereitzustellen. Alle Nachrichtenbeschreibungen müssen eindeutige Identifikatoren aufweisen. Jede Nachricht kann mehrere Signalbeschreibungen enthalten, jedoch müssen auch die Signalnamen innerhalb einer Nachricht eindeutig sein.
Die Methode „ parseFrame()“ kann verwendet werden, um das eingehende „ QCanBusFrame “ zu verarbeiten. Die Methode gibt eine „ ParseResult “-Struktur zurück, die die „ unique identifier “- und die „ signal values “-Map enthält. Die Schlüssel der Map sind die „ signal names “, und die Werte der Map sind Signalwerte.
Mit der Methode „ prepareFrame()“ kann anhand der angegebenen Signalnamen und der gewünschten Werte ein „ QCanBusFrame “-Objekt für eine bestimmte eindeutige Kennung generiert werden.
Während des Kodierungs- oder Dekodierungsprozesses können Fehler auftreten. In solchen Fällen können die Methoden ` error()` und ` errorString()` verwendet werden, um Informationen zum Fehler abzurufen.
Es können auch einige nicht kritische Probleme auftreten. Solche Probleme werden protokolliert, der Vorgang wird jedoch nicht abgebrochen. Nach Abschluss des Vorgangs kann die Methode ` warnings()` verwendet werden, um auf die Liste aller Warnungen zuzugreifen.
Hinweis: Der letzte Fehler und die Fehlerbeschreibung sowie die Warnungen werden zurückgesetzt, sobald die Dekodierung oder Kodierung gestartet wird.
Siehe auch „ QCanMessageDescription “ und „ QCanSignalDescription “.
Dokumentation zu Mitgliedstypen
enum class QCanFrameProcessor::Error
Diese Enumeration stellt die möglichen Fehler dar, die beim Kodieren oder Dekodieren des „ QCanBusFrame “ auftreten können.
| Konstante | Wert | Beschreibung |
|---|---|---|
QCanFrameProcessor::Error::None | 0 | Es ist kein Fehler aufgetreten. |
QCanFrameProcessor::Error::InvalidFrame | 1 | Der empfangene Frame ist ungültig und kann nicht analysiert werden. |
QCanFrameProcessor::Error::UnsupportedFrameFormat | 2 | Das Format des empfangenen Frames wird nicht unterstützt und kann nicht analysiert werden. |
QCanFrameProcessor::Error::Decoding | 3 | Bei der Dekodierung ist ein Fehler aufgetreten. Verwenden Sie ` errorString()`, um eine Zeichenfolgendarstellung des Fehlers abzurufen. |
QCanFrameProcessor::Error::Encoding | 4 | Während der Kodierung ist ein Fehler aufgetreten. Verwenden Sie ` errorString()` (), um eine Zeichenfolgendarstellung des Fehlers abzurufen. |
Dokumentation der Member-Funktionen
QCanFrameProcessor::QCanFrameProcessor()
Erstellt einen CAN-Frame-Prozessor.
[noexcept] QCanFrameProcessor::~QCanFrameProcessor()
Löscht diesen Frame-Prozessor.
void QCanFrameProcessor::addMessageDescriptions(const QList<QCanMessageDescription> &descriptions)
Fügt den verfügbaren Nachrichtenbeschreibungen neue Nachrichtenbeschreibungen „ descriptions “ hinzu.
Alle Nachrichtenbeschreibungen sollten eindeutige IDs haben.
Sollten einige Meldungsbeschreibungen doppelte eindeutige IDs aufweisen, wird nur die letzte Beschreibung verwendet.
Falls der Parser bereits eine Nachrichtenbeschreibung mit derselben eindeutigen ID enthält, wird diese überschrieben.
Siehe auch messageDescriptions(), setMessageDescriptions() und clearMessageDescriptions().
void QCanFrameProcessor::clearMessageDescriptions()
Entfernt alle Meldungsbeschreibungen für diesen Frame-Prozessor.
Siehe auch messageDescriptions(), addMessageDescriptions() und setMessageDescriptions().
QCanFrameProcessor::Error QCanFrameProcessor::error() const
Gibt den letzten Fehler zurück.
Siehe auch errorString(), prepareFrame() und parseFrame().
QString QCanFrameProcessor::errorString() const
Gibt die Textbeschreibung des letzten Fehlers zurück.
Siehe auch error(), prepareFrame() und parseFrame().
QList<QCanMessageDescription> QCanFrameProcessor::messageDescriptions() const
Gibt alle Meldungsbeschreibungen zurück, die derzeit von diesem Frame-Prozessor verwendet werden.
Siehe auch addMessageDescriptions(), setMessageDescriptions() und clearMessageDescriptions().
QCanFrameProcessor::ParseResult QCanFrameProcessor::parseFrame(const QCanBusFrame &frame)
Analysiert den Frame- frame anhand der angegebenen Nachrichtenbeschreibungen.
Der Analysevorgang läuft wie folgt ab:
- Mit der Funktion „ uniqueIdDescription()“ wird die eindeutige Kennung der Nachricht extrahiert.
- Die extrahierte eindeutige Kennung wird verwendet, um aus der Liste aller verfügbaren „ messageDescriptions “ () eine passende „ QCanMessageDescription “ zu suchen.
- Die passende „ QCanMessageDescription “ wird verwendet, um die Signalwerte aus dem Frame zu extrahieren.
Diese Methode gibt ein ` QCanFrameProcessor::ParseResult` zurück, das sowohl die extrahierte eindeutige Kennung als auch ein ` QVariantMap ` mit den Signalen und ihren Werten enthält. Die Schlüssel des Maps sind die ` signal names`, und die Werte des Maps sind Signalwerte.
Wenn während der Dekodierung ein Fehler aufgetreten ist, wird ein Ergebnis mit einem leeren „ signalValues “ zurückgegeben. In solchen Fällen können die Methoden „ error()“ und „ errorString()“ verwendet werden, um Informationen zu den Fehlern abzurufen.
Hinweis: Der Aufruf dieser Methode löscht alle bisherigen Fehler und Warnungen.
Siehe auch addMessageDescriptions(), error(), errorString() und warnings().
QCanBusFrame QCanFrameProcessor::prepareFrame(QtCanBus::UniqueId uniqueId, const QVariantMap &signalValues)
Erstellt einen CAN-Datenrahmen unter Verwendung von „ uniqueId “ und „ signalValues “ und gibt den erstellten „ QCanBusFrame “ zurück.
Der Parameter „ signalValues “ muss Signalnamen als Schlüssel und erwartete Signalwerte als Werte enthalten.
Der Vorgang zum Erstellen des Rahmens läuft wie folgt ab:
- Anhand des „ uniqueId “ wird eine passende Nachrichtenbeschreibung gesucht.
- Wird die Nachrichtenbeschreibung gefunden, wird ein „ QCanBusFrame “ mit einer Nutzlast der angegebenen Größe erstellt. Alle Bytes der Nutzlast sowie die Frame-ID werden auf Null gesetzt.
- Mit der Funktion ` uniqueIdDescription()` wird die ` uniqueId ` in den entsprechenden Teil des Frames (Frame-ID oder Nutzdaten) kodiert.
- Die ausgewählte Nachrichtenbeschreibung wird verwendet, um die gesamte „ signalValues “ in den Frame zu kodieren.
- Die Teile des Frames, die nicht durch eine eindeutige ID oder vorhandene Signalbeschreibungen abgedeckt sind, bleiben unverändert (und enthalten somit weiterhin Nullen).
Wenn während der Kodierung ein Fehler aufgetreten ist, wird ein ungültiges „ QCanBusFrame “ zurückgegeben. In solchen Fällen können die Methoden „ error()“ und „ errorString()“ verwendet werden, um Informationen zu den Fehlern abzurufen.
Hinweis: Der Aufruf dieser Methode löscht alle bisherigen Fehler und Warnungen.
Siehe auch addMessageDescriptions(), error(), errorString() und warnings().
void QCanFrameProcessor::setMessageDescriptions(const QList<QCanMessageDescription> &descriptions)
Ersetzt die derzeit von diesem Frame-Prozessor verwendeten Nachrichtenbeschreibungen durch die neuen Nachrichtenbeschreibungen unter descriptions.
Siehe auch messageDescriptions(), addMessageDescriptions() und clearMessageDescriptions().
void QCanFrameProcessor::setUniqueIdDescription(const QCanUniqueIdDescription &description)
Setzt die Beschreibung der eindeutigen Kennung auf „ description “.
Die Beschreibung der eindeutigen Kennung muss gültig sein, damit die CAN-Bus-Frames kodiert oder dekodiert werden können. Weitere Informationen finden Sie in der Dokumentation zur Klasse „ QCanUniqueIdDescription “.
Siehe auch „ uniqueIdDescription()“ und „ QCanUniqueIdDescription “.
QCanUniqueIdDescription QCanFrameProcessor::uniqueIdDescription() const
Gibt die Beschreibung der eindeutigen Kennung zurück.
Die Beschreibung der eindeutigen Kennung muss gültig sein, damit die CAN-Bus-Frames kodiert oder dekodiert werden können. Weitere Details finden Sie in der Dokumentation zur Klasse „ QCanUniqueIdDescription “.
Siehe auch „ setUniqueIdDescription()“ und „ QCanUniqueIdDescription “.
QStringList QCanFrameProcessor::warnings() const
Gibt die Liste der Warnungen zurück, die beim letzten Aufruf der Kodierung oder Dekodierung generiert wurden.
Siehe auch error(), errorString(), prepareFrame() und 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.