このページでは

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つのメッセージには複数のシグナル記述を含めることができますが、1つのメッセージ内のシグナル名も一意である必要があります。

parseFrame() メソッドを使用すると、受信したQCanBusFrame を処理できます。このメソッドは、unique identifier およびsignal 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()も参照してください 。

© 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.