QCanDbcFileParser Class

QCanDbcFileParser クラスは、DBC ファイルの解析に使用できます。詳細...

ヘッダー #include <QCanDbcFileParser>
CMake: find_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmake: QT += serialbus
以来:Qt 6.5
ステータス予備

このクラスは開発中であり、変更される可能性があります。

パブリックな型

enum class Error { None, FileReading, Parsing }
MessageValueDescriptions
SignalValueDescriptions
ValueDescriptions

パブリック関数

QCanDbcFileParser()
~QCanDbcFileParser()
QCanDbcFileParser::Error error() const
QString errorString() const
QList<QCanMessageDescription> messageDescriptions() const
QCanDbcFileParser::MessageValueDescriptions messageValueDescriptions() const
bool parse(const QString &fileName)
bool parse(const QStringList &fileNames)
(since 6.7) bool parseData(QStringView data)
QStringList warnings() const

静的パブリックメンバ

QCanUniqueIdDescription uniqueIdDescription()

詳細な説明

CANデータベースまたはCAN DBCファイルは、生のCANバスデータをデコードして解釈する方法に関する情報を含むASCIIテキストファイルです。フォーマットの詳細については、こちらまたはこちらを参照してください。

QCanDbcFileParserクラスは、入力されたDBCファイルを解析し、QCanMessageDescriptionのリストを出力として提供します。これらのメッセージ記述は、QCanFrameProcessor に転送し、後でQCanBusFrameをエンコードまたはデコードするルールとして使用することができます。

処理されるファイルまたはファイルのリストを指定するには、parse() オーバーロードのいずれかを使用する。どちらのオーバーロードも、解析が正常に完了した場合はtrue を返し、そうでない場合はfalse を返します。

解析中に発生したエラーを取得するには、error() メソッドを呼び出します。構文解析が正常に完了した場合、このメソッドはNone を返します。そうでない場合は、errorString() メソッドを使用して、エラーの文字列表現を取得できます。

構文解析中に、重要でない問題が発生することもあります。そのような問題はログに記録されますが、構文解析が中断されることはありません。warnings ()メソッドを使用すると、構文解析が完了した後に、そのような問題の完全なリストを取得できます。

構文解析が正常に完了したら、messageDescriptions() を呼び出して、最後のparse() 呼び出し時に抽出されたメッセージ記述のリストを取得します。messageValueDescriptions() を呼び出して、シグナル生値のテキスト記述があれば、それを取得します。

静的なuniqueIdDescription() 関数を使用して、DBC フォーマットのQCanUniqueIdDescription を取得する。

QCanDbcFileParser fileParser;
const bool result = fileParser.parse(u"path/to/file.dbc"_s);
// Check result, call error() and warnings() if needed

// Prepare a QCanFrameProcessor to decode or encode DBC frames
QCanFrameProcessor frameProcessor;
frameProcessor.setUniqueIdDescription(QCanDbcFileParser::uniqueIdDescription());
frameProcessor.setMessageDescriptions(fileParser.messageDescriptions());

注: パーサーはステートフルであり、すべての結果(抽出されたメッセージ記述、エラー・コード、警告など)は、次のパーシングが開始されるとリセットされる。

サポートされるキーワード

現在の実装では、DBC ファイルで見つけられるキーワードのサブセットのみをサポートしています:

  • BO_ - メッセージの説明
  • SG_ - シグナルの説明
  • SIG_VALTYPE_ - シグナル・タイプの記述
  • SG_MUL_VAL_ - 拡張多重化記述。
  • CM_ - コメント(メッセージとシグナルの記述のみ)。
  • VAL_ - 生のシグナル値のテキスト記述。

他のキーワードで始まる行は単に無視される。

QCanMessageDescription およびQCanFrameProcessorも参照のこと

メンバ型ドキュメント

enum class QCanDbcFileParser::Error

この列挙型は、DBC ファイルの解析中に起こり得るエラーを表します。

定数説明
QCanDbcFileParser::Error::None0エラーは発生しませんでした。
QCanDbcFileParser::Error::FileReading1ファイルのオープンまたは読み込み中にエラーが発生しました。
QCanDbcFileParser::Error::Parsing2ファイルの内容の解析中にエラーが発生しました。

[alias] QCanDbcFileParser::MessageValueDescriptions

これはQHash<QtCanBus::UniqueId, SignalValueDescriptions> の型エイリアスである。

ハッシュのキーはメッセージの一意なIDを表し、ハッシュの値は対応するQCanDbcFileParser::SignalValueDescriptions エントリを含む。

QCanDbcFileParser::SignalValueDescriptionsも参照してください

[alias] QCanDbcFileParser::SignalValueDescriptions

これはQHash<QString, ValueDescriptions> の型エイリアスである。

ハッシュのキーはシグナル名を表し、ハッシュの値は対応するQCanDbcFileParser::ValueDescriptions エントリを含む。

QCanDbcFileParser::ValueDescriptionsも参照してください

[alias] QCanDbcFileParser::ValueDescriptions

これはQHash<quint32, QString> の型エイリアスである。

ハッシュのキーは生の信号値を表し、ハッシュの値は対応する文字列の説明を表す。

メンバ関数ドキュメント

QCanDbcFileParser::QCanDbcFileParser()

DBCファイル・パーサーを構築する。

[noexcept] QCanDbcFileParser::~QCanDbcFileParser()

この DBC ファイル・パーサーを破棄する。

QCanDbcFileParser::Error QCanDbcFileParser::error() const

パース中に発生した最後のエラーを返します。

errorString() およびparse()も参照

QString QCanDbcFileParser::errorString() const

パース中に発生した最後のエラーのテキスト表現か、エラーがない場合は空文字列を返します。

error()も参照ください

QList<QCanMessageDescription> QCanDbcFileParser::messageDescriptions() const

最後のparse() 呼び出し時に抽出されたメッセージ記述のリストを返す。

parse() およびerror()も参照

QCanDbcFileParser::MessageValueDescriptions QCanDbcFileParser::messageValueDescriptions() const

シグナル生値のテキスト記述を返します。

DBCは、シグナル生値にテキスト記述を提供する可能性をサポートしている。そのようなデータがパースされたDBCファイルに存在する場合、この関数を使用してアクセスすることができます。

テキスト記述は、特定のメッセージ内の特定のシグナルに対して一意であるため、返される構造体には、実際の値の記述と同様に、メッセージの一意 ID とシグナル名に関する情報が含まれる。

QCanDbcFileParser::MessageValueDescriptionsQCanDbcFileParser::SignalValueDescriptionsQCanDbcFileParser::ValueDescriptionsも参照

bool QCanDbcFileParser::parse(const QString &fileName)

ファイルfileName を解析する。解析が正常に完了した場合はtrue を返し、そうでない場合はfalse を返す。

解析が正常に完了した場合は、messageDescriptions() メソッドを呼び出して、抽出されたすべてのメッセージ記述のリストを取得します。

解析に失敗した場合は、error() およびerrorString() メソッドを呼び出して、エラーに関する情報を取得します。

warnings() メソッドを呼び出して、解析中にログに記録された警告のリストを取得します。

注釈 このメソッドは、ファイルの内容が UTF-8 でエンコードされていることを想定しています。ファイルのエンコードが異なる場合は、まずそれをデコードし、parseData() を使用して DBC 情報を抽出します。

messageDescriptions()、error()、warnings()、parseData()も参照の こと。

bool QCanDbcFileParser::parse(const QStringList &fileNames)

これはオーバーロードされた関数である。

ファイルのリストfileNames を解析する。解析が正常に完了した場合はtrue を、そうでない場合はfalse を返します。

解析が正常に完了した場合は、messageDescriptions() メソッドを呼び出して、抽出されたすべてのメッセージ記述のリストを取得します。

解析は最初のエラーで停止します。error() およびerrorString() メソッドを呼び出して、エラーに関する情報を取得します。

warnings() メソッドを呼び出して、解析中にログに記録された警告のリストを取得します。

注釈 このメソッドは、ファイルの内容が UTF-8 でエンコードされていることを想定しています。ファイルのエンコードが異なる場合は、まずそれをデコードし、parseData() を使用して DBC 情報を抽出します。

messageDescriptions()、error()、warnings()、parseData()も参照の こと。

[since 6.7] bool QCanDbcFileParser::parseData(QStringView data)

入力データdata を解析し、解析に成功した場合はtrue を、そうでない場合はfalse を返す。

解析が正常に完了した場合は、messageDescriptions() メソッドを呼び出して、抽出されたすべてのメッセージ記述のリストを取得します。

構文解析に失敗した場合は、error() およびerrorString() メソッドを呼び出して、エラーに関する情報を取得します。

warnings() メソッドを呼び出して、解析中にログに記録された警告のリストを取得します。

このメソッドは、data が有効な DBC ファイルの内容であり、QStringView に適切に変換されていることを想定しています。

入力ファイルのエンコーディングが UTF-8 と異なる場合は、このメソッドを使用してください。

// Read the data from a DBC file with custom encoding
const QByteArray initialData = ...;
// Convert to UTF-16 using QStringDecoder or some other way
const QString decodedData = ...;
QCanDbcFileParser parser;
const bool result = parser.parseData(decodedData);

この関数は Qt 6.7 で導入されました。

messageDescriptions(),error(),warnings(),parse()も参照してください

[static] QCanUniqueIdDescription QCanDbcFileParser::uniqueIdDescription()

一意な識別子の説明を返す。DBC プロトコルは常にフレーム ID を識別子として使用するため、一意な識別子の記述は常に同じである。

このメソッドを使用してQCanUniqueIdDescription のインスタンスを取得し、それをQCanFrameProcessor に渡す。

QCanFrameProcessor::setUniqueIdDescription()も参照

QStringList QCanDbcFileParser::warnings() const

パース中に発生したクリティカルでない問題のリストを返す。

典型的な問題は、不正なメッセージやシグナルの記述である。このような場合、不正なメッセージやシグナルはスキップされますが、ファイルの残りの部分は通常通り処理することができます。

error() およびparse()も参照の こと。

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