QCanFrameProcessor Class
QCanFrameProcessor クラスは、QCanBusFrame をデコードしたり、入力データを受信機に送信可能なQCanBusFrame に変換するために使用できます。詳細...
ヘッダー | #include <QCanFrameProcessor> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
qmake: | QT += serialbus |
以来: | Qt 6.5 |
ステータス | 予備 |
このクラスは開発中であり、変更される可能性があります。
パブリックな型
(since 6.5) struct | ParseResult |
enum class | Error { None, InvalidFrame, UnsupportedFrameFormat, Decoding, Encoding } |
パブリック関数
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 |
詳細説明
QCanFrameProcessorクラスは、CANメッセージ記述(QCanMessageDescription とQCanSignalDescription クラスで表される)と一意識別子記述(QCanUniqueIdDescription で表される)を操作します。この記述を使用して、入力されたQCanBusFrame をデコードしたり、ユーザーが指定したデータを適切なペイロードにエンコードしたりします。
デコードまたはエンコードを行う前に、QCanFrameProcessor インスタンスを適切に初期化する必要があります。以下のデータを提供する必要があります:
- valid 一意な識別子の記述。setUniqueIdDescription() メソッドを使用して、適切な記述を提供します。
- 少なくとも 1 つのメッセージの説明。addMessageDescriptions() メソッドまたはsetMessageDescriptions() メソッドを使用して、メッセー ジの説明を記述する。すべてのメッセージ記述は、明確な一意識別子を持っていなければならない。各メッセージは複数のシグナル記述を含むことができますが、1つのメッセージ内のシグナル名も一意でなければなりません。
parseFrame() メソッドは、入力されたQCanBusFrame を処理するために使用できる。このメソッドはunique identifier とsignal values マップを含むParseResult 構造体を返します。マップのキーはsignal names であり、マップの値はシグナルの値である。
prepareFrame() メソッドは、指定されたシグナル名と希望する値を使用して、特定の一意識別子用のQCanBusFrame オブジェクトを生成するために使用できる。
エンコードやデコードの過程でエラーが発生することがある。このような場合、error() およびerrorString() メソッドを使用して、エラーに関する情報を得ることができる。
致命的でない問題が発生することもある。そのような問題はログに記録されるが、プロセスは停止しない。プロセス終了後、warnings() メソッドを使用して、すべての警告のリストにアクセスできる。
注意: 最後のエラーとエラーの説明、および警告は、デコードまたはエンコードが開始されるとリセットされます。
QCanMessageDescription およびQCanSignalDescriptionも参照のこと 。
メンバー型ドキュメント
enum class QCanFrameProcessor::Error
この列挙型は、QCanBusFrame のエンコードまたはデコード中に起こりうるエラーを表します。
定数 | 値 | 説明 |
---|---|---|
QCanFrameProcessor::Error::None | 0 | エラーは発生しませんでした。 |
QCanFrameProcessor::Error::InvalidFrame | 1 | 受信フレームが無効であり、解析できない。 |
QCanFrameProcessor::Error::UnsupportedFrameFormat | 2 | 受信フレームのフォーマットがサポートされておらず、解析できない。 |
QCanFrameProcessor::Error::Decoding | 3 | デコード中にエラーが発生した。errorString() を使用して、エラーの文字列表現を取得してください。 |
QCanFrameProcessor::Error::Encoding | 4 | エンコード中にエラーが発生しました。errorString() を使用して、エラーの文字列表現を取得します。 |
メンバ関数のドキュメント
QCanFrameProcessor::QCanFrameProcessor()
CANフレームプロセッサを作成する。
[noexcept]
QCanFrameProcessor::~QCanFrameProcessor()
このフレームプロセッサを破壊する。
void QCanFrameProcessor::addMessageDescriptions(const QList<QCanMessageDescription> &descriptions)
利用可能なメッセージ記述に新しいメッセージ記述descriptions を追加します。
すべてのメッセージ記述は一意な ID を持つべきです。
いくつかのメッセージ記述が繰り返し一意な ID を持っている場合、最後の記述だけが使われます。
パーサが同じ一意な ID を持つメッセージ記述を持っていた場合、それは上書きされます。
messageDescriptions()、setMessageDescriptions()、clearMessageDescriptions()も参照のこと 。
void QCanFrameProcessor::clearMessageDescriptions()
このフレーム・プロセッサのすべてのメッセージ記述を削除します。
messageDescriptions()、addMessageDescriptions()、setMessageDescriptions()も参照してください 。
QCanFrameProcessor::Error QCanFrameProcessor::error() const
最後のエラーを返す。
errorString()、prepareFrame()、parseFrame()も参照 。
QString QCanFrameProcessor::errorString() const
最後のエラーの説明テキストを返す。
error()、prepareFrame() およびparseFrame()も参照 。
QList<QCanMessageDescription> QCanFrameProcessor::messageDescriptions() const
このフレーム・プロセッサが現在使用しているすべてのメッセージ記述を返します。
addMessageDescriptions()、setMessageDescriptions()、clearMessageDescriptions()も参照してください 。
QCanFrameProcessor::ParseResult QCanFrameProcessor::parseFrame(const QCanBusFrame &frame)
指定されたメッセージ記述を使ってフレームframe を解析する。
解析のプロセスは以下の通り:
- uniqueIdDescription() は、メッセージの一意な識別子を抽出するために使用される。
- 抽出された一意の識別子は、利用可能なすべてのmessageDescriptions() のリストから適切なQCanMessageDescription を検索するために使用される。
- 一致したQCanMessageDescription は、フレームから信号値を抽出するために使用される。
このメソッドは、抽出された一意識別子と、シグナルとその値を含むQVariantMap の両方を含むQCanFrameProcessor::ParseResult を返す。マップのキーはsignal names であり、マップの値は信号値である。
デコード中にエラーが発生した場合、空のsignalValues が返される。このような場合、error() およびerrorString() メソッドを使用して、エラーに関する情報を得ることができる。
注意: このメソッドを呼び出すと、それまでのエラーや警告はすべて消去されます。
addMessageDescriptions()、error()、errorString()、warnings()も参照 。
QCanBusFrame QCanFrameProcessor::prepareFrame(QtCanBus::UniqueId uniqueId, const QVariantMap &signalValues)
uniqueId とsignalValues を使用して CAN データフレームを構築し、構築されたQCanBusFrame を返す。
signalValues パラメータには、キーとして信号名、値として期待される信号値を含める必要がある。
フレームの作成プロセスは以下のとおり:
- uniqueId を使って、適切なメッセージ記述を探す。
- メッセージ記述が見つかれば、指定されたサイズのペイロードを持つQCanBusFrame が作成される。ペイロードの全バイトとフレーム ID はゼロに初期化される。
- uniqueIdDescription() は、uniqueId をフレームの適切な部分(フレーム ID またはペイロード)にエンコードするために使われる。
- 選択されたメッセージ記述は、signalValues を全てフレームにエンコードするために使用される。
- 一意な ID や既存の信号記述でカバーされていないフレームの部分は、そのままです(そのため、まだゼロが含まれています)。
エンコード中にエラーが発生した場合、無効なQCanBusFrame が返されます。このような場合、error() およびerrorString() メソッドを使用して、エラーに関する情報を得ることができる。
注意: このメソッドを呼び出すと、それまでのエラーや警告はすべて消去されます。
addMessageDescriptions()、error()、errorString()、warnings()も参照 。
void QCanFrameProcessor::setMessageDescriptions(const QList<QCanMessageDescription> &descriptions)
このフレーム・プロセッサが使用している現在のメッセージ記述を、新しいメッセージ記述descriptions で置き換えます。
messageDescriptions(),addMessageDescriptions(),clearMessageDescriptions()も参照 。
void QCanFrameProcessor::setUniqueIdDescription(const QCanUniqueIdDescription &description)
一意識別子記述をdescription に設定する。
CAN バスフレームをエンコードまたはデコードするには、一意識別子記述が有効でなければなりません。詳細はQCanUniqueIdDescription クラスのドキュメントを参照してください。
uniqueIdDescription() およびQCanUniqueIdDescriptionも参照してください 。
QCanUniqueIdDescription QCanFrameProcessor::uniqueIdDescription() const
一意識別子の記述を返す。
CANバスフレームをエンコードまたはデコードするためには、一意な識別子の記述が有効でなければなりません。詳細はQCanUniqueIdDescription クラスのドキュメントを参照。
setUniqueIdDescription() およびQCanUniqueIdDescriptionも参照 。
QStringList QCanFrameProcessor::warnings() const
最後のエンコードまたはデコード呼び出しの際に発生した警告のリストを返す。
error()、errorString()、prepareFrame()、parseFrame()も参照 。
© 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.