QCanBusDevice Class
Die Klasse QCanBusDevice ist die Schnittstellenklasse für den CAN-Bus. Mehr...
Kopfzeile: | #include <QCanBusDevice> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
qmake: | QT += serialbus |
Vererbungen: | QObject |
Öffentliche Typen
struct | Filter |
enum | CanBusDeviceState { UnconnectedState, ConnectingState, ConnectedState, ClosingState } |
enum | CanBusError { NoError, ReadError, WriteError, ConnectionError, ConfigurationError, …, TimeoutError } |
enum class | CanBusStatus { Unknown, Good, Warning, Error, BusOff } |
enum | ConfigurationKey { RawFilterKey, ErrorFilterKey, LoopbackKey, ReceiveOwnKey, BitRateKey, …, UserKey } |
enum | Direction { Input, Output, AllDirections } |
flags | Directions |
Öffentliche Funktionen
QCanBusDevice(QObject *parent = nullptr) | |
virtual QCanBusDevice::CanBusStatus | busStatus() |
void | clear(QCanBusDevice::Directions direction = Direction::AllDirections) |
QList<QCanBusDevice::ConfigurationKey> | configurationKeys() const |
QVariant | configurationParameter(QCanBusDevice::ConfigurationKey key) const |
bool | connectDevice() |
(since 6.2) virtual QCanBusDeviceInfo | deviceInfo() const |
void | disconnectDevice() |
QCanBusDevice::CanBusError | error() const |
QString | errorString() const |
qint64 | framesAvailable() const |
qint64 | framesToWrite() const |
virtual bool | hasBusStatus() const |
virtual QString | interpretErrorFrame(const QCanBusFrame &frame) = 0 |
QList<QCanBusFrame> | readAllFrames() |
QCanBusFrame | readFrame() |
virtual void | resetController() |
virtual void | setConfigurationParameter(QCanBusDevice::ConfigurationKey key, const QVariant &value) |
QCanBusDevice::CanBusDeviceState | state() const |
virtual bool | waitForFramesReceived(int msecs) |
virtual bool | waitForFramesWritten(int msecs) |
virtual bool | writeFrame(const QCanBusFrame &frame) = 0 |
Signale
void | errorOccurred(QCanBusDevice::CanBusError) |
void | framesReceived() |
void | framesWritten(qint64 framesCount) |
void | stateChanged(QCanBusDevice::CanBusDeviceState state) |
Geschützte Funktionen
void | clearError() |
virtual void | close() = 0 |
QCanBusFrame | dequeueOutgoingFrame() |
void | enqueueOutgoingFrame(const QCanBusFrame &newFrame) |
void | enqueueReceivedFrames(const QList<QCanBusFrame> &newFrames) |
bool | hasOutgoingFrames() const |
virtual bool | open() = 0 |
void | setError(const QString &errorText, QCanBusDevice::CanBusError errorId) |
void | setState(QCanBusDevice::CanBusDeviceState newState) |
Detaillierte Beschreibung
QCanBusDevice kommuniziert mit einem CAN-Plugin, das dem Benutzer eine komfortable API zur Verfügung stellt. Das CAN-Plugin muss bei der Objekterstellung angegeben werden.
Member Typ Dokumentation
enum QCanBusDevice::CanBusDeviceState
Diese Aufzählung beschreibt alle möglichen Gerätezustände.
Konstante | Wert | Beschreibung |
---|---|---|
QCanBusDevice::UnconnectedState | 0 | Das Gerät ist nicht angeschlossen. |
QCanBusDevice::ConnectingState | 1 | Das Gerät wird gerade angeschlossen. |
QCanBusDevice::ConnectedState | 2 | Das Gerät ist mit dem CAN-Bus verbunden. |
QCanBusDevice::ClosingState | 3 | Das Gerät wird gerade geschlossen. |
enum QCanBusDevice::CanBusError
Diese Aufzählung beschreibt alle möglichen Fehlerzustände.
Konstante | Wert | Beschreibung |
---|---|---|
QCanBusDevice::NoError | 0 | Es sind keine Fehler aufgetreten. |
QCanBusDevice::ReadError | 1 | Während eines Lesevorgangs ist ein Fehler aufgetreten. |
QCanBusDevice::WriteError | 2 | Während eines Schreibvorgangs ist ein Fehler aufgetreten. |
QCanBusDevice::ConnectionError | 3 | Beim Versuch, das Plugin zu öffnen, ist ein Fehler aufgetreten. |
QCanBusDevice::ConfigurationError | 4 | Beim Versuch, einen Konfigurationsparameter zu setzen, ist ein Fehler aufgetreten. |
QCanBusDevice::UnknownError | 5 | Ein unbekannter Fehler ist aufgetreten. |
QCanBusDevice::OperationError | 6 | Eine Operation wurde versucht, während sich das Gerät in einem Zustand befand, der sie nicht zuließ. Dieses Enum wurde in Qt 5.14 eingeführt. |
QCanBusDevice::TimeoutError | 7 | Beim Warten auf geschriebene oder empfangene Frames ist eine Zeitüberschreitung aufgetreten. Diese Aufzählung wurde in Qt 5.14 eingeführt. |
enum class QCanBusDevice::CanBusStatus
Dieses Enum beschreibt mögliche CAN-Bus-Statuswerte.
Konstante | Wert | Beschreibung |
---|---|---|
QCanBusDevice::CanBusStatus::Unknown | 0 | Der CAN-Bus-Status ist unbekannt (z.B. nicht vom CAN-Plugin unterstützt). |
QCanBusDevice::CanBusStatus::Good | 1 | Der CAN-Controller ist voll funktionsfähig |
QCanBusDevice::CanBusStatus::Warning | 2 | Der CAN-Controller befindet sich im Warnstatus |
QCanBusDevice::CanBusStatus::Error | 3 | Der CAN-Controller befindet sich im Fehlerstatus (sendet keine CAN-Frames mehr) |
QCanBusDevice::CanBusStatus::BusOff | 4 | Der CAN-Controller befindet sich im Bus-Off-Status (vom CAN-Bus abgekoppelt) |
enum QCanBusDevice::ConfigurationKey
Dieses Enum beschreibt die möglichen Konfigurationsoptionen für den CAN-Bus-Anschluss.
Konstante | Wert | Beschreibung |
---|---|---|
QCanBusDevice::RawFilterKey | 0 | Diese Konfiguration bestimmt den Typ der CAN-Bus-Frames, die das aktuelle Gerät akzeptiert. Der erwartete Wert ist QList<QCanBusDevice::Filter> . Die Übergabe einer leeren Liste löscht alle zuvor gesetzten Filter einschließlich der Standardfilter. Für weitere Details siehe QCanBusDevice::Filter. |
QCanBusDevice::ErrorFilterKey | 1 | Dieser Schlüssel definiert die Art des Fehlers, der über die aktuelle Verbindung weitergeleitet werden soll. Der zugehörige Wert sollte vom Typ QCanBusFrame::FrameErrors sein. |
QCanBusDevice::LoopbackKey | 2 | Dieser Schlüssel legt fest, ob das CAN-Bus-Gerät im Loopback-Modus arbeiten soll. Loopback bedeutet, dass jedes Mal, wenn ein CAN-Frame auf dem CAN-Bus gesendet wird, ein lokales Echo dieses Frames an alle mit diesem CAN-Gerät verbundenen Anwendungen gesendet wird. Der erwartete Wert für diesen Schlüssel ist bool . |
QCanBusDevice::ReceiveOwnKey | 3 | Dieser Schlüssel legt fest, ob dieses CAN-Gerät seine eigenen Sende-Frames empfängt. Dies kann verwendet werden, um zu überprüfen, ob die Übertragung erfolgreich war. Der erwartete Wert für diesen Schlüssel ist bool . |
QCanBusDevice::BitRateKey | 4 | Dieser Schlüssel definiert die CAN-Bitrate in Bits pro Sekunde. Bei CAN FD kann die Nutzlast mit einer höheren Datenbitrate übertragen werden, wenn QCanBusFrame::hasBitrateSwitch() gesetzt ist. In diesem Fall wird QCanBusDevice::BitRateKey nur für die CAN-ID-Arbitrierungsphase verwendet. Siehe auch QCanBusDevice::DataBitRateKey |
QCanBusDevice::CanFdKey | 5 | Dieser Schlüssel legt fest, ob das Senden und Empfangen von CAN FD-Frames aktiviert werden soll. Der erwartete Wert für diesen Schlüssel ist bool . |
QCanBusDevice::DataBitRateKey | 6 | Dieser Schlüssel definiert die CAN FD Nutzlast-Bitrate in Bits pro Sekunde. CAN FD erlaubt es, die Nutzdaten von Frames mit QCanBusFrame::hasBitrateSwitch() Flag mit einer höheren Datenbitrate zu übertragen, nachdem die Arbitrierungsphase mit der nominalen Bitrate beendet ist. Dieser Enum-Wert wurde in Qt 5.9 eingeführt. Siehe auch QCanBusDevice::BitRateKey |
QCanBusDevice::ProtocolKey | 7 | Dieser Schlüssel erlaubt die Angabe eines anderen Protokolls. Im Moment kann dieser Parameter nur im SocketCAN-Plugin gesetzt und verwendet werden. Dieser Enum-Wert wurde in Qt 5.14 eingeführt. |
QCanBusDevice::UserKey | 30 | Dieser Schlüssel definiert den Bereich, in dem benutzerdefinierte Schlüssel beginnen. Sein häufigster Zweck ist es, plattformspezifische Konfigurationsoptionen zu ermöglichen. |
Siehe auch configurationParameter().
enum QCanBusDevice::Direction
flags QCanBusDevice::Directions
Dieses Enum beschreibt die möglichen Datenübertragungsrichtungen.
Konstante | Wert | Beschreibung |
---|---|---|
QCanBusDevice::Input | 1 | Eingangsrichtung. |
QCanBusDevice::Output | 2 | Ausgangsrichtung. |
QCanBusDevice::AllDirections | Input | Output | Beide Richtungen, Eingabe und Ausgabe. |
Der Typ Directions ist ein Typedef für QFlags<Direction>. Er speichert eine ODER-Kombination von Direction-Werten.
Dokumentation der Mitgliedsfunktionen
[explicit]
QCanBusDevice::QCanBusDevice(QObject *parent = nullptr)
Konstruiert ein serielles Busgerät mit dem angegebenen parent.
[virtual]
QCanBusDevice::CanBusStatus QCanBusDevice::busStatus()
Gibt den aktuellen CAN-Bus-Status zurück. Wenn der Status nicht abgefragt werden kann, wird QCanBusDevice::UnknownStatus zurückgegeben.
Hinweis: Diese Funktion ist möglicherweise nicht in allen CAN-Plugins implementiert. Bitte lesen Sie die Hilfeseiten der Plugins für weitere Informationen. Die Funktion hasBusStatus() kann zur Laufzeit verwendet werden, um zu prüfen, ob das verwendete CAN-Plugin die Abfrage des CAN-Bus-Status unterstützt.
Siehe auch hasBusStatus() und resetController().
void QCanBusDevice::clear(QCanBusDevice::Directions direction = Direction::AllDirections)
Löscht die Eingangs- oder Ausgangspuffer des Geräts, abhängig von direction.
Diese Funktion wirkt nur auf QCanBusDevice Puffer. Frames, die bereits in den CAN-Treiber oder die CAN-Hardwareschicht geschrieben wurden oder die noch nicht von diesen Schichten gelesen wurden, werden von dieser Funktion nicht gelöscht.
Hinweis: Das Löschen von Ausgangspuffern ist nur bei gepufferten Geräten möglich.
Siehe auch framesAvailable(), readFrame(), framesToWrite(), und writeFrame().
[protected]
void QCanBusDevice::clearError()
Löscht die Fehler-ID und die menschenlesbare Beschreibung des letzten Gerätefehlers.
CAN-Bus-Implementierungen müssen diese Funktion verwenden, um den Fehlerstatus des Geräts zu aktualisieren.
Siehe auch error(), errorOccurred(), und setError().
[pure virtual protected]
void QCanBusDevice::close()
Diese Funktion ist für das Schließen der CAN-Bus-Verbindung verantwortlich. Die Implementierung muss sicherstellen, dass state() der Instanz auf QCanBusDevice::UnconnectedState gesetzt ist.
Die wichtigste Aufgabe dieser Funktion ist es, den Socket zum CAN-Gerät zu schließen und QCanBusDevice::setState() aufzurufen.
Siehe auch disconnectDevice().
QList<QCanBusDevice::ConfigurationKey> QCanBusDevice::configurationKeys() const
Gibt die Liste der von der CAN-Bus-Verbindung verwendeten Schlüssel zurück.
Die Bedeutung der Schlüssel entspricht ConfigurationKey. Wenn ein Schlüssel nicht explizit erwähnt wird, wird die Standardeinstellung der Plattform für den betreffenden Schlüssel verwendet.
QVariant QCanBusDevice::configurationParameter(QCanBusDevice::ConfigurationKey key) const
Gibt den aktuellen Wert zurück, der dem ConfigurationKey key zugewiesen ist; andernfalls einen ungültigen QVariant.
Siehe auch setConfigurationParameter() und configurationKeys().
bool QCanBusDevice::connectDevice()
Verbindet das Gerät mit dem CAN-Bus. Gibt bei Erfolg true
zurück, andernfalls false
.
Diese Funktion ruft open() als Teil ihrer Implementierung auf.
Siehe auch disconnectDevice().
[protected]
QCanBusFrame QCanBusDevice::dequeueOutgoingFrame()
Gibt den nächsten QCanBusFrame aus der internen Liste der ausgehenden Rahmen zurück; andernfalls einen ungültigen QCanBusFrame. Der zurückgegebene Rahmen wird aus der internen Liste entfernt.
[virtual, since 6.2]
QCanBusDeviceInfo QCanBusDevice::deviceInfo() const
Gibt ein QCanBusDeviceInfo für die aktuelle QCanBusDevice zurück. Wenn die Funktion nicht von einer Unterklasse von QCanBusDevice implementiert ist, wird ein standardmäßig konstruiertes Objekt zurückgegeben.
Diese Funktion wurde in Qt 6.2 eingeführt.
void QCanBusDevice::disconnectDevice()
Trennt das Gerät vom CAN-Bus.
Diese Funktion ruft close() als Teil ihrer Implementierung auf.
Hinweis: Diese Funktion sollte nur aufgerufen werden, wenn connectDevice() true
zurückgegeben hat.
Siehe auch connectDevice().
[protected]
void QCanBusDevice::enqueueOutgoingFrame(const QCanBusFrame &newFrame)
Hängt newFrame an die interne Liste der ausgehenden Rahmen an, auf die mit writeFrame() zugegriffen werden kann.
Unterklassen müssen diese Funktion aufrufen, wenn sie einen neuen Rahmen schreiben.
[protected]
void QCanBusDevice::enqueueReceivedFrames(const QList<QCanBusFrame> &newFrames)
Hängt newFrames an die interne Liste der Rahmen an, auf die mit readFrame() zugegriffen werden kann, und gibt das Signal framesReceived() aus.
Unterklassen müssen diese Funktion aufrufen, wenn sie Frames empfangen.
QCanBusDevice::CanBusError QCanBusDevice::error() const
Gibt den zuletzt aufgetretenen Fehler zurück. Der Fehlerwert wird immer auf den zuletzt aufgetretenen Fehler gesetzt und wird nie zurückgesetzt.
Siehe auch setError() und errorString().
[signal]
void QCanBusDevice::errorOccurred(QCanBusDevice::CanBusError)
Dieses Signal wird ausgegeben, wenn ein Fehler auftritt.
QString QCanBusDevice::errorString() const
Gibt eine von Menschen lesbare Beschreibung des letzten aufgetretenen Gerätefehlers zurück.
Siehe auch error().
qint64 QCanBusDevice::framesAvailable() const
Gibt die Anzahl der verfügbaren Bilder zurück. Wenn keine Bilder verfügbar sind, gibt diese Funktion 0 zurück.
Siehe auch clear(), readFrame(), und readAllFrames().
[signal]
void QCanBusDevice::framesReceived()
Dieses Signal wird ausgesendet, wenn ein oder mehrere Frames empfangen wurden. Die Frames sollten mit readFrame() und framesAvailable() gelesen werden.
qint64 QCanBusDevice::framesToWrite() const
Bei gepufferten Geräten gibt diese Funktion die Anzahl der Frames zurück, die darauf warten, geschrieben zu werden. Für ungepufferte Geräte gibt diese Funktion immer Null zurück.
Hinweis: Es kann zusätzliche Pufferung im CAN-Treiber und in der CAN-Hardwareschicht geben. Wenn diese Funktion den Wert Null zurückgibt, bedeutet dies daher nicht, dass alle CAN-Frames bereits auf den CAN-Bus geschrieben wurden.
Siehe auch clear() und writeFrame().
[signal]
void QCanBusDevice::framesWritten(qint64 framesCount)
Dieses Signal wird jedes Mal ausgegeben, wenn eine Nutzlast von Frames auf den CAN-Bus geschrieben wurde. Das Argument framesCount wird auf die Anzahl der Frames gesetzt, die in diese Nutzlast geschrieben wurden.
[virtual]
bool QCanBusDevice::hasBusStatus() const
Gibt true zurück, wenn das CAN-Plugin die Abfrage des CAN-Bus-Status unterstützt.
Siehe auch busStatus().
[protected]
bool QCanBusDevice::hasOutgoingFrames() const
Gibt true
zurück, wenn die interne Liste der ausgehenden Frames nicht leer ist; andernfalls wird false
zurückgegeben.
[pure virtual]
QString QCanBusDevice::interpretErrorFrame(const QCanBusFrame &frame)
Interpretiert frame als Fehlerrahmen und gibt eine menschenlesbare Beschreibung des Fehlers zurück.
Wenn frame kein Fehlerrahmen ist, ist die zurückgegebene Zeichenfolge leer.
[pure virtual protected]
bool QCanBusDevice::open()
Diese Funktion wird von connectDevice() aufgerufen. Unterklassen müssen eine Implementierung bereitstellen, die true
zurückgibt, wenn die CAN-Bus-Verbindung hergestellt werden konnte; andernfalls false
. Die Implementierung von QCanBusDevice stellt sicher, dass beim Aufruf dieser Funktion state() des Geräts bereits auf QCanBusDevice::ConnectingState gesetzt ist.
Die Implementierung muss sicherstellen, dass bei Erfolg die state() der Instanz auf QCanBusDevice::ConnectedState gesetzt wird; andernfalls QCanBusDevice::UnconnectedState. setState() verwendet werden, um den neuen Gerätezustand zu setzen.
Die benutzerdefinierte Implementierung ist verantwortlich für das Öffnen des Sockets, die Instanzierung eines möglicherweise erforderlichen QSocketNotifier und die Anwendung von benutzerdefinierten und Standard QCanBusDevice::configurationParameter().
Siehe auch connectDevice().
QList<QCanBusFrame> QCanBusDevice::readAllFrames()
Gibt alle QCanBusFrames aus der Warteschlange zurück; andernfalls wird ein leeres QList zurückgegeben. Die zurückgegebenen Rahmen werden aus der Warteschlange entfernt.
Die Warteschlange arbeitet nach dem FIFO-Prinzip.
Siehe auch clear(), framesAvailable(), und readFrame().
QCanBusFrame QCanBusDevice::readFrame()
Gibt den nächsten QCanBusFrame aus der Warteschlange zurück, andernfalls einen leeren QCanBusFrame. Der zurückgegebene Frame wird aus der Warteschlange entfernt.
Die Warteschlange arbeitet nach dem FIFO-Prinzip.
Siehe auch clear(), framesAvailable(), und readAllFrames().
[virtual]
void QCanBusDevice::resetController()
Führt einen CAN-Controller-Reset durch, um den CAN-Controller aus dem Bus-Off-Zustand zu befreien, falls möglich.
Hinweis: CAN-Controller-Resets stören die laufende Kommunikation und können bis zu einer Sekunde dauern. Rufen Sie diese Funktion nur zur Behebung von Busfehlern auf.
Hinweis: Diese Funktion ist möglicherweise nicht in allen CAN-Plugins implementiert. Bitte lesen Sie die Hilfeseiten der Plugins für weitere Informationen.
Siehe auch busStatus().
[virtual]
void QCanBusDevice::setConfigurationParameter(QCanBusDevice::ConfigurationKey key, const QVariant &value)
Setzt den Konfigurationsparameter key für die CAN-Bus-Anbindung auf value. Die möglichen Tasten werden durch ConfigurationKey dargestellt.
Ein Parameter kann durch Setzen eines ungültigen QVariant zurückgesetzt werden. Das Zurücksetzen eines Parameters bedeutet, dass die Konfiguration auf ihre Standardeinstellung zurückgesetzt wird.
Hinweis: In den meisten Fällen werden Konfigurationsänderungen erst nach einem erneuten Verbindungsaufbau wirksam.
Siehe auch configurationParameter().
[protected]
void QCanBusDevice::setError(const QString &errorText, QCanBusDevice::CanBusError errorId)
Setzt die menschenlesbare Beschreibung des letzten Gerätefehlers auf errorText. errorId kategorisiert die Art des Fehlers.
CAN-Bus-Implementierungen müssen diese Funktion verwenden, um den Fehlerstatus des Geräts zu aktualisieren.
Siehe auch error(), errorOccurred(), und clearError().
[protected]
void QCanBusDevice::setState(QCanBusDevice::CanBusDeviceState newState)
Setzt den Zustand des Geräts auf newState. CAN-Bus-Implementierungen müssen diese Funktion zur Aktualisierung des Gerätezustands verwenden.
Siehe auch state().
QCanBusDevice::CanBusDeviceState QCanBusDevice::state() const
Gibt den aktuellen Zustand des Geräts zurück.
Siehe auch setState() und stateChanged().
[signal]
void QCanBusDevice::stateChanged(QCanBusDevice::CanBusDeviceState state)
Dieses Signal wird jedes Mal ausgesendet, wenn sich der Zustand des Geräts ändert. Der neue Zustand wird durch state dargestellt.
Siehe auch setState() und state().
[virtual]
bool QCanBusDevice::waitForFramesReceived(int msecs)
Blockiert, bis neue Bilder zum Lesen verfügbar sind und das Signal framesReceived() ausgegeben wurde, oder bis msecs Millisekunden vergangen sind. Wenn msecs gleich -1
ist, wird diese Funktion nicht abgebrochen.
Gibt true
zurück, wenn neue Frames zum Lesen verfügbar sind und das Signal framesReceived() ausgegeben wurde; andernfalls wird false
zurückgegeben (wenn die Zeit für den Vorgang abgelaufen ist oder ein Fehler aufgetreten ist).
Hinweis: Diese Funktion startet eine lokale Ereignisschleife. Dies kann zu Szenarien führen, in denen andere Anwendungsslots aufgerufen werden, während die Ausführung dieses Funktionsbereichs blockiert ist. Um Probleme zu vermeiden, sollten die Signale für diese Klasse nicht mit Slots verbunden werden. Ebenso darf diese Funktion niemals als Reaktion auf die Signale framesReceived() oder errorOccurred() aufgerufen werden.
Siehe auch waitForFramesWritten().
[virtual]
bool QCanBusDevice::waitForFramesWritten(int msecs)
Bei gepufferten Geräten wartet diese Funktion, bis alle gepufferten Bilder in das Gerät geschrieben wurden und das Signal framesWritten() ausgegeben wurde oder bis msecs Millisekunden vergangen sind. Wenn msecs gleich -1 ist, wird diese Funktion keine Zeitüberschreitung verursachen. Bei ungepufferten Geräten kehrt sie sofort mit false
zurück, da writeFrame() keinen Schreibpuffer benötigt.
Gibt true
zurück, wenn das Signal framesWritten() ausgegeben wird; andernfalls gibt sie false
zurück (d. h. wenn die Operation eine Zeitüberschreitung hatte oder ein Fehler auftrat).
Hinweis: Diese Funktion startet eine lokale Ereignisschleife. Dies kann zu Szenarien führen, in denen andere Anwendungsslots aufgerufen werden, während die Ausführung dieses Funktionsbereichs blockiert ist. Um Probleme zu vermeiden, sollten die Signale für diese Klasse nicht mit Slots verbunden werden. Ebenso darf diese Funktion niemals als Reaktion auf die Signale framesWritten() oder errorOccurred() aufgerufen werden.
Siehe auch waitForFramesReceived().
[pure virtual]
bool QCanBusDevice::writeFrame(const QCanBusFrame &frame)
Schreibt frame auf den CAN-Bus und gibt bei Erfolg true
zurück, andernfalls false
.
Auf einigen Plattformen kann das Telegramm in eine Warteschlange gestellt werden, und der Rückgabewert kann nur ein erfolgreiches Einfügen in die Warteschlange anzeigen. Der eigentliche Frame wird später gesendet. Daher ist das Signal framesWritten() die endgültige Bestätigung, dass der Rahmen an die Transportschicht weitergegeben wurde. Tritt ein Fehler auf, wird das Signal errorOccurred() ausgegeben.
Wie in der CAN-Bus-Spezifikation festgelegt, haben Frames vom Typ remote transfer request (RTR) keine Nutzlast, sondern eine Länge von 0 bis 8 (einschließlich). Diese Länge gibt die erwartete Länge der Antwort-Nutzlast von der Gegenstelle an. Daher kann es beim Senden eines RTR-Frames mit dieser Funktion erforderlich sein, eine beliebige Nutzlast auf frame zu setzen. Die Länge der Arbitrary Payload ist das, was als Größenerwartung für den RTR-Frame festgelegt wird.
Siehe auch QCanBusFrame::setPayload().
© 2025 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.