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メッセージ記述(QCanMessageDescriptionQCanSignalDescription クラスで表される)と一意識別子記述(QCanUniqueIdDescription で表される)を操作します。この記述を使用して、入力されるQCanBusFrame をデコードしたり、ユーザー指定のデータを適切なペイロードにエンコードしたりします。

デコードまたはエンコードを行う前に、QCanFrameProcessor インスタンスを適切に初期化する必要があります。以下のデータを提供する必要があります:

  • valid 一意な識別子の記述。setUniqueIdDescription() メソッドを使用して、適切な記述を提供します。
  • 少なくとも 1 つのメッセージの説明。addMessageDescriptions() メソッドまたはsetMessageDescriptions() メソッドを使用して、メッセー ジの説明を記述する。すべてのメッセージ記述は、明確な一意識別子を持っていなければならない。各メッセージは複数のシグナル記述を含むことができますが、1つのメッセージ内のシグナル名も一意でなければなりません

parseFrame() メソッドは、入力されたQCanBusFrame を処理するために使用できる。このメソッドは、unique identifiersignal values マップを含むParseResult 構造体を返します。マップのキーはsignal names であり、マップの値はシグナルの値である。

prepareFrame() メソッドは、指定されたシグナル名と希望する値を使用して、特定の一意識別子用のQCanBusFrame オブジェクトを生成するために使用できる。

エンコードやデコードの過程でエラーが発生することがある。このような場合、error() およびerrorString() メソッドを使用して、エラーに関する情報を得ることができる。

致命的でない問題が発生することもある。そのような問題はログに記録されるが、プロセスは停止しない。プロセス終了後、warnings() メソッドを使用して、すべての警告のリストにアクセスできる。

注意: 最後のエラーとエラーの説明、および警告は、デコードまたはエンコードが開始されるとリセットされます。

QCanMessageDescription およびQCanSignalDescriptionも参照のこと

メンバ型ドキュメント

enum class QCanFrameProcessor::Error

この列挙型は、QCanBusFrame のエンコードまたはデコード中に発生する可能性のあるエラーを表します。

定数説明
QCanFrameProcessor::Error::None0エラーは発生しませんでした。
QCanFrameProcessor::Error::InvalidFrame1受信フレームが無効であり、解析できない。
QCanFrameProcessor::Error::UnsupportedFrameFormat2受信フレームのフォーマットがサポートされておらず、解析できない。
QCanFrameProcessor::Error::Decoding3デコード中にエラーが発生した。errorString() を使用して、エラーの文字列表現を取得してください。
QCanFrameProcessor::Error::Encoding4エンコード中にエラーが発生しました。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 を解析します。

解析のプロセスは以下のとおりです:

  1. uniqueIdDescription() を使用して、メッセージの一意な識別子を抽出します。
  2. 抽出された一意識別子を使って、利用可能なすべてのmessageDescriptions() の一覧から適切なQCanMessageDescription を検索する。
  3. 一致した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 パラメータには、キーとしてシグナル名、値として期待されるシグナル値を含める必要がある

フレームの作成プロセスは以下のとおり:

  1. uniqueId を使って、適切なメッセージ記述を探す。
  2. メッセージ記述が見つかれば、指定されたサイズのペイロードを持つQCanBusFrame が作成される。ペイロードの全バイトとフレーム ID はゼロに初期化される。
  3. uniqueIdDescription() は、uniqueId をフレームの適切な部分(フレーム ID またはペイロード)にエンコードするために使われる。
  4. 選択されたメッセージ記述は、signalValues を全てフレームにエンコードするために使用される。
  5. 一意な 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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。