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() 메서드를 사용하여 적절한 설명을 제공하십시오.
- 최소 하나의 메시지 설명. addMessageDescriptions() 또는 setMessageDescriptions() 메서드를 사용하여 메시지 설명을 제공하십시오. 모든 메시지 설명은 서로 다른 고유 식별자를 가져야 합니다. 각 메시지는 여러 신호 설명을 포함할 수 있지만, 하나의 메시지 내의 신호 이름도 고유해야 합니다.
parseFrame() 메서드를 사용하여 수신된 QCanBusFrame 를 처리할 수 있습니다. 이 메서드는 unique identifier 와 signal values 맵을 포함하는 ParseResult 구조체를 반환합니다. 맵의 키는 signal names 이며, 맵의 값은 신호 값입니다.
prepareFrame() 메서드를 사용하면 제공된 신호 이름과 원하는 값을 활용하여 특정 고유 식별자에 대한 QCanBusFrame 객체를 생성할 수 있습니다.
인코딩 또는 디코딩 과정에서 오류가 발생할 수 있습니다. 이러한 경우 error() 및 errorString() 메서드를 사용하여 오류에 대한 정보를 얻을 수 있습니다.
비중요 문제도 발생할 수 있습니다. 이러한 문제는 로그에 기록되지만, 프로세스는 중단되지 않습니다. 프로세스가 완료된 후 warnings() 메서드를 사용하여 모든 경고 목록을 확인할 수 있습니다.
참고: 디코딩 또는 인코딩이 시작되면 마지막 오류 및 오류 설명과 경고는 초기화됩니다.
QCanMessageDescription 및 QCanSignalDescription도 참조하십시오 .
멤버 유형 문서
enum class QCanFrameProcessor::Error
이 열거형은 QCanBusFrame 을 인코딩하거나 디코딩하는 과정에서 발생할 수 있는 오류를 나타냅니다.
| 상수 | 값 | 설명 |
|---|---|---|
QCanFrameProcessor::Error::None | 0 | 오류가 발생하지 않았습니다. |
QCanFrameProcessor::Error::InvalidFrame | 1 | 수신된 프레임이 유효하지 않아 구문 분석할 수 없습니다. |
QCanFrameProcessor::Error::UnsupportedFrameFormat | 2 | 수신된 프레임의 형식이 지원되지 않아 구문 분석할 수 없습니다. |
QCanFrameProcessor::Error::Decoding | 3 | 디코딩 중에 오류가 발생했습니다. errorString()를 사용하여 오류의 문자열 표현을 가져오십시오. |
QCanFrameProcessor::Error::Encoding | 4 | 인코딩 중에 오류가 발생했습니다. errorString()를 사용하여 오류의 문자열 표현을 가져오십시오. |
멤버 함수 설명서
QCanFrameProcessor::QCanFrameProcessor()
CAN 프레임 프로세서를 생성합니다.
[noexcept] QCanFrameProcessor::~QCanFrameProcessor()
이 프레임 프로세서를 파괴합니다.
void QCanFrameProcessor::addMessageDescriptions(const QList<QCanMessageDescription> &descriptions)
사용 가능한 메시지 설명에 새로운 메시지 설명 descriptions 을 추가합니다.
모든 메시지 설명에는 고유한 ID가 있어야 합니다.
일부 메시지 설명의 고유 ID가 중복될 경우, 마지막 설명만 사용됩니다.
파서(parser)에 이미 동일한 고유 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 을 구문 분석합니다.
구문 분석 과정은 다음과 같습니다:
- uniqueIdDescription() 함수를 사용하여 메시지의 고유 식별자를 추출합니다.
- 추출된 고유 식별자를 사용하여 사용 가능한 모든 messageDescriptions() 목록에서 적합한 QCanMessageDescription 를 검색합니다.
- 일치하는 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 매개변수에는 키로 신호 이름이, 값으로 예상 신호 값이 포함되어야 합니다.
프레임을 생성하는 과정은 다음과 같습니다:
- uniqueId 는 적절한 메시지 설명을 찾는 데 사용됩니다.
- 메시지 설명이 발견되면, 지정된 크기의 페이로드를 가진 QCanBusFrame 가 생성됩니다. 페이로드의 모든 바이트와 프레임 ID는 0으로 초기화됩니다.
- uniqueIdDescription() 함수를 사용하여 메시지 데이터( uniqueId )를 프레임의 적절한 부분(프레임 ID 또는 페이로드)에 인코딩합니다.
- 선택된 메시지 설명을 사용하여 모든 메시지 데이터( signalValues )를 프레임에 인코딩합니다.
- 고유 ID나 기존 신호 설명에 포함되지 않는 프레임의 부분은 변경되지 않습니다(따라서 여전히 0을 포함합니다).
인코딩 중에 오류가 발생한 경우, 유효하지 않은 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.