QCanFrameProcessor Class
QCanFrameProcessor クラスは、QCanBusFrame をデコードしたり、入力データを受信機に送信可能なQCanBusFrame に変換するために使用できます。詳細...
Header: | #include <QCanFrameProcessor> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
qmake: | QT += serialbus |
Since: | Qt 6.5 |
Status: | Preliminary |
このクラスは開発中であり、変更される可能性があります。
パブリック型
(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() も参照して ください。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。