Spec-Zone.ru › Qt 5.6

Класс QCanBusFrame

QCanBusFrame — это контейнерный класс, представляющий собой отдельный кадр CAN. Подробнее...

Заголовок: #include <QCanBusFrame>
qmake: QT += serialbus
С тех пор: Qt 5.6
  • Список всех членов, включая унаследованные

Типы

класс TimeStamp
перечисление FrameError { NoError, TransmissionTimeoutError, LostArbitrationError, ControllerError, ..., AnyError }
флаги FrameErrors
перечисление FrameType { UnknownFrame, DataFrame, ErrorFrame, RemoteRequestFrame, InvalidFrame }

Открытые функции

QCanBusFrame(QCanBusFrame::FrameType type)
QCanBusFrame(quint32 identifier = 0, const QByteArray &data = QByteArray())
QCanBusFrame::FrameErrors error() const
quint32 frameId() const
FrameType frameType() const
bool hasExtendedFrameFormat() const
bool isValid() const
QByteArray payload() const
void setError(QCanBusFrame::FrameErrors error)
void setExtendedFrameFormat(bool isExtended)
void setFrameId(quint32 newFrameId)
void setFrameType(FrameType newType)
void setPayload(const QByteArray &data)
void setTimeStamp(const TimeStamp &ts)
TimeStamp timeStamp() const

Связанные нечлены

QDataStream & operator<<(QDataStream &out, const QCanBusFrame &frame)
QDataStream & operator>>(QDataStream &in, QCanBusFrame &frame)

Подробное описание

QCanBusFrame — это контейнерный класс, представляющий собой отдельный кадр CAN.

QCanBusDevice может использовать QCanBusFrame для операций чтения и записи. Он содержит идентификатор кадра и полезную нагрузку. QCanBusFrame содержит метку времени момента, когда он был прочитан.

См. также QCanBusFrame::TimeStamp.

Документация по типам членов

перечисление QCanBusFrame::FrameErrorфлаги QCanBusFrame::FrameErrors

Это перечисление описывает возможные типы ошибок.

Постоянная Значение Описание
QCanBusFrame::NoError 0 Ошибка не произошла.
QCanBusFrame::TransmissionTimeoutError ( 1<<0 ) Время передачи истекло.
QCanBusFrame::LostArbitrationError ( 1<<1 ) Кадр не смог быть отправлен из-за потери арбитража на шине.
QCanBusFrame::ControllerError ( 1<<2 ) Контроллер столкнулся с ошибкой.
QCanBusFrame::ProtocolViolationError ( 1<<3 ) Произошло нарушение протокола.
QCanBusFrame::TransceiverError ( 1<<4 ) Произошла ошибка трансивера.
QCanBusFrame::MissingAcknowledgmentError ( 1<<5 ) При передаче не поступило подтверждение.
QCanBusFrame::BusOffError ( 1<<6 ) CAN-шина не активна.
QCanBusFrame::BusError ( 1<<7 ) Произошла ошибка CAN-шины.
QCanBusFrame::ControllerRestartError ( 1<<8 ) Контроллер перезапустился.
QCanBusFrame::UnknownError ( 1<<9 ) Произошла неизвестная ошибка.
QCanBusFrame::AnyError 0x1FFFFFFFU Соответствует любому другому типу ошибки.

Тип FrameErrors — это typedef для QFlags<FrameError>. Он хранит логическое ИЛИ комбинацию значений FrameError.

перечисление QCanBusFrame::FrameType

Это перечисление описывает тип кадра CAN.

Постоянная Значение Описание
QCanBusFrame::UnknownFrame 0x0 Тип кадра неизвестен.
QCanBusFrame::DataFrame 0x1 Это значение представляет собой кадр данных.
QCanBusFrame::ErrorFrame 0x2 Это значение представляет собой кадр ошибки.
QCanBusFrame::RemoteRequestFrame 0x3 Это значение представляет собой запрос удаленного устройства.
QCanBusFrame::InvalidFrame 0x4 Это значение представляет собой недействительный кадр. Этот тип используется для сообщения об ошибках.

См. также setFrameType().

Документация по функциям-членам

QCanBusFrame::QCanBusFrame(QCanBusFrame::FrameType type)

Создает кадр CAN указанного типа.

QCanBusFrame::QCanBusFrame(quint32 identifier = 0, const QByteArray &data = QByteArray())

Создает кадр CAN, используя identifier в качестве идентификатора кадра и data в качестве полезной нагрузки.

QCanBusFrame::FrameErrors QCanBusFrame::error() const

Возвращает ошибку текущего кадра ошибки. Если кадр не является ErrorFrame, эта функция возвращает NoError.

См. также setError().

quint32 QCanBusFrame::frameId() const

Возвращает идентификатор кадра CAN. Если кадр CAN использует расширенный формат кадра, идентификатор имеет максимальную длину 29 бит; в противном случае 11 бит.

Если кадр имеет тип ErrorFrame, этот ID всегда равен 0.

См. также setFrameId() и hasExtendedFrameFormat().

FrameType QCanBusFrame::frameType() const

Возвращает тип кадра.

См. также setFrameType().

END_OF_DOCUMENT_MARKER

bool QCanBusFrame::hasExtendedFrameFormat() const

Возвращает true если в формате кадра CAN используется 29-битный идентификатор; в противном случае false, подразумевая 11-битный идентификатор.

См. также setExtendedFrameFormat() и frameId().

bool QCanBusFrame::isValid() const

Возвращает false если тип кадра frameType() равен InvalidFrame, hasExtendedFrameFormat() не установлен, хотя frameId() длиннее 11 бит или размер полезной нагрузки превышает максимальную разрешенную длину в 64 байта.

В противном случае эта функция возвращает true.

QByteArray QCanBusFrame::payload() const

Возвращает полезную нагрузку кадра.

См. также setPayload().

void QCanBusFrame::setError(QCanBusFrame::FrameErrors error)

Устанавливает тип ошибки кадра error. Эта функция ничего не делает, если frameType() не является ErrorFrame.

См. также error().

void QCanBusFrame::setExtendedFrameFormat(bool isExtended)

Устанавливает флаг расширенного формата кадра в значение isExtended.

См. также hasExtendedFrameFormat().

void QCanBusFrame::setFrameId(quint32 newFrameId)

Устанавливает идентификатор кадра CAN в значение newFrameId. Максимальный размер идентификатора кадра CAN составляет 11 бит, который может быть расширен до 29 бит, поддерживая расширенный формат кадра CAN. Настройка расширенного формата кадра CAN автоматически адаптируется для соответствия newFrameId.

См. также frameId() и hasExtendedFrameFormat().

void QCanBusFrame::setFrameType(FrameType newType)

Устанавливает тип кадра в значение newType.

См. также frameType().

void QCanBusFrame::setPayload(const QByteArray &data)

Устанавливает data в качестве полезной нагрузки для кадра CAN. Максимальный размер полезной нагрузки составляет 8 байт, который может быть расширен до 64 байт при поддержке Flexible Data-Rate. Flexible Data-Rate должен быть включен в QCanBusDevice, установив значение QCanBusDevice::CanFdKey.

Кадры типа RemoteRequestFrame (RTR) не имеют полезной нагрузки. Однако они должны указать ожидаемый размер полезной нагрузки ответов. Чтобы установить ожидаемую длину, необходимо установить фиктивную полезную нагрузку, длина которой соответствует ожидаемой длине полезной нагрузки ответа. Один из способов сделать это показан ниже:

QCanBusFrame frame(QCanBusFrame::RemoteRequestFrame);
int expectedResponseLength = ...;
frame.setPayload(QByteArray(expectedResponseLength, 0));

См. также payload().

void QCanBusFrame::setTimeStamp(const TimeStamp &ts)

Устанавливает ts в качестве метки времени для кадра CAN. Как правило, эта функция не требуется, поскольку метка времени создается во время операции чтения, а не во время операции записи.

См. также timeStamp() и QCanBusFrame::TimeStamp.

TimeStamp QCanBusFrame::timeStamp() const

Возвращает метку времени кадра.

См. также QCanBusFrame::TimeStamp и QCanBusFrame::setTimeStamp().

Связанные нечленённые члены

QDataStream &operator<<(QDataStream &out, const QCanBusFrame &frame)

Записывает frame в поток (out) и возвращает ссылку на него.

QDataStream &operator>>(QDataStream &in, QCanBusFrame &frame)

Считывает frame из потока (in) и возвращает ссылку на него.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qcanbusframe.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API