이 페이지에서

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::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::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

구문 분석 중에 발생한 비중대한 문제 목록을 반환합니다.

전형적인 문제로는 형식이 잘못된 메시지나 신호 설명이 있습니다. 이러한 경우 형식이 잘못된 메시지나 신호는 건너뛰지만, 파일의 나머지 부분은 평소와 같이 처리할 수 있습니다.

error() 및 parse()도 참조하십시오 .

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