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 메시지 설명( QCanMessageDescriptionQCanSignalDescription 클래스로 표시됨)과 고유 식별자 설명( QCanUniqueIdDescription 로 표시됨)에서 작동합니다. 이 설명은 수신되는 QCanBusFrame 을 디코딩하거나 사용자가 지정한 데이터를 적절한 페이로드로 인코딩하는 데 사용됩니다.

디코딩 또는 인코딩을 수행하기 전에 QCanFrameProcessor 인스턴스를 올바르게 초기화해야 합니다. 다음 데이터를 제공해야 합니다:

  • valid 고유 식별자 설명. setUniqueIdDescription () 메서드를 사용하여 적절한 설명을 제공합니다.
  • 하나 이상의 메시지 설명. addMessageDescriptions () 또는 setMessageDescriptions() 메서드를 사용하여 메시지 설명을 제공합니다. 모든 메시지 설명에는 고유 식별자가 있어야 합니다. 각 메시지에는 여러 개의 신호 설명이 포함될 수 있지만 한 메시지 내의 신호 이름도 고유해야 합니다.

parseFrame() 메서드는 들어오는 QCanBusFrame 을 처리하는 데 사용할 수 있습니다. 이 메서드는 unique identifiersignal values 맵을 포함하는 ParseResult 구조를 반환합니다. 맵의 키는 signal names 이며, 맵의 값은 신호 값입니다.

prepareFrame() 메서드는 제공된 신호 이름과 원하는 값을 사용하여 특정 고유 식별자에 대한 QCanBusFrame 객체를 생성하는 데 사용할 수 있습니다.

인코딩 또는 디코딩 프로세스 중에 오류가 발생할 수 있습니다. 이러한 경우 error() 및 errorString() 메서드를 사용하여 오류에 대한 정보를 얻을 수 있습니다.

일부 중요하지 않은 문제도 발생할 수 있습니다. 이러한 문제는 기록되지만 프로세스는 중지되지 않습니다. 프로세스가 완료된 후 warnings() 메서드를 사용하여 모든 경고 목록에 액세스할 수 있습니다.

참고: 디코딩 또는 인코딩이 시작되면 마지막 오류 및 오류 설명과 경고가 재설정됩니다.

QCanMessageDescriptionQCanSignalDescription참조하세요 .

멤버 유형 문서

enum class QCanFrameProcessor::Error

이 열거형은 QCanBusFrame 을 인코딩 또는 디코딩하는 동안 발생할 수 있는 오류를 나타냅니다.

Constant설명
QCanFrameProcessor::Error::None0오류가 발생하지 않았습니다.
QCanFrameProcessor::Error::InvalidFrame1수신된 프레임이 유효하지 않아 구문 분석할 수 없습니다.
QCanFrameProcessor::Error::UnsupportedFrameFormat2수신된 프레임의 형식이 지원되지 않으므로 구문 분석할 수 없습니다.
QCanFrameProcessor::Error::Decoding3디코딩하는 동안 오류가 발생했습니다. errorString ()를 사용하여 오류의 문자열 표현을 가져옵니다.
QCanFrameProcessor::Error::Encoding4인코딩하는 동안 오류가 발생했습니다. errorString ()를 사용하여 오류의 문자열 표현을 가져옵니다.

멤버 함수 문서

QCanFrameProcessor::QCanFrameProcessor()

CAN 프레임 프로세서를 생성합니다.

[noexcept] QCanFrameProcessor::~QCanFrameProcessor()

이 프레임 프로세서를 파괴합니다.

void QCanFrameProcessor::addMessageDescriptions(const QList<QCanMessageDescription> &descriptions)

사용 가능한 메시지 설명에 새 메시지 설명 descriptions 을 추가합니다.

모든 메시지 설명에는 고유한 고유 ID가 있어야 합니다.

일부 메시지 설명에 반복되는 고유 ID가 있는 경우 마지막 설명만 사용됩니다.

구문 분석기에 이미 동일한 고유 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 프레임을 구문 분석합니다.

구문 분석 과정은 다음과 같습니다:

  1. uniqueIdDescription()는 메시지의 고유 식별자를 추출하는 데 사용됩니다.
  2. 추출된 고유 식별자는 사용 가능한 모든 messageDescriptions() 목록에서 적합한 QCanMessageDescription 을 검색하는 데 사용됩니다.
  3. 일치하는 QCanMessageDescription 은 프레임에서 신호 값을 추출하는 데 사용됩니다.

이 메서드는 추출된 고유 식별자와 신호 및 해당 값이 포함된 QVariantMap 을 모두 포함하는 QCanFrameProcessor::ParseResult 을 반환합니다. 맵의 키는 signal names 이며, 맵의 값은 신호 값입니다.

디코딩 중에 오류가 발생하면 signalValues 이 비어 있는 결과가 반환됩니다. 이러한 경우 error() 및 errorString() 메서드를 사용하여 오류에 대한 정보를 얻을 수 있습니다.

참고: 이 메서드를 호출하면 이전의 모든 오류와 경고가 지워집니다.

addMessageDescriptions(), error(), errorString() 및 warnings()도 참조하세요 .

QCanBusFrame QCanFrameProcessor::prepareFrame(QtCanBus::UniqueId uniqueId, const QVariantMap &signalValues)

uniqueIdsignalValues 을 사용하여 CAN 데이터 프레임을 구성하고 구성된 QCanBusFrame 을 반환합니다.

signalValues 매개변수에는 키로 신호 이름과 값으로 예상 신호 값이 포함되어야 합니다.

프레임 생성 과정은 다음과 같습니다:

  1. uniqueId 은 적절한 메시지 설명을 찾는 데 사용됩니다.
  2. 메시지 설명이 발견되면 지정된 크기의 페이로드가 포함된 QCanBusFrame 가 생성됩니다. 프레임 ID뿐만 아니라 페이로드의 모든 바이트는 0으로 초기화됩니다.
  3. uniqueIdDescription()는 uniqueId 을 프레임의 적절한 부분(프레임 ID 또는 페이로드)으로 인코딩하는 데 사용됩니다.
  4. 선택한 메시지 설명은 모든 signalValues 을 프레임에 인코딩하는 데 사용됩니다.
  5. 프레임에서 고유 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()도 참조하세요 .

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