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() を呼び出して取得します。
DBC フォーマット用の `QCanUniqueIdDescription ` を取得するには、静的関数 `uniqueIdDescription()` を使用してください。
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::None | 0 | エラーは発生しませんでした。 |
QCanDbcFileParser::Error::FileReading | 1 | ファイルのオープンまたは読み取り中にエラーが発生しました。 |
QCanDbcFileParser::Error::Parsing | 2 | ファイルの内容の解析中にエラーが発生しました。 |
[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()` の呼び出し時に抽出されたメッセージ説明のリストを返します。
QCanDbcFileParser::MessageValueDescriptions QCanDbcFileParser::messageValueDescriptions() const
シグナルの生値に対するテキスト説明を返します。
DBC では、シグナルの生データにテキストによる説明を付与する機能をサポートしています。解析された DBC ファイルにそのようなデータが存在する場合、この関数を使用してアクセスすることができます。
テキストによる説明は、特定のメッセージ内の特定の信号に対して一意であるため、返される構造体には、メッセージの一意のIDや信号名に関する情報に加え、実際の値の説明も含まれます。
QCanDbcFileParser::MessageValueDescriptions 、QCanDbcFileParser::SignalValueDescriptions 、およびQCanDbcFileParser::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 が、QStringView に適切に変換された有効な DBC ファイルの内容であることを前提としています。
入力ファイルのエンコーディングが 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
解析中に発生した、重大ではない問題の一覧を返します。
典型的な問題としては、形式不適切なメッセージやシグナルの記述が挙げられます。このような場合、形式不適切なメッセージやシグナルはスキップされますが、ファイルの残りの部分は通常通り処理されます。
© 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.