QCanDbcFileParser Class
QCanDbcFileParser 클래스는 DBC 파일을 구문 분석하는 데 사용할 수 있습니다. 더 보기...
Header: | #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 파일을 구문 분석하는 동안 발생할 수 있는 오류를 나타냅니다.
Constant | 값 | 설명 |
---|---|---|
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
구문 분석 중에 발생한 중요하지 않은 문제 목록을 반환합니다.
일반적인 문제는 잘못된 메시지나 신호 설명일 수 있습니다. 이러한 경우 잘못된 메시지나 신호는 건너뛰지만 나머지 파일은 정상적으로 처리할 수 있습니다.
© 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.