Spec-Zone.ru › Qt 5.6

Класс QCanBusDevice

Класс QCanBusDevice является интерфейсным классом для шины CAN. Подробнее...

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

Открытые типы

класс Фильтр
перечисление Состояние устройства шины CAN { Неподключено, Подключение, Подключено, Закрытие }
перечисление Ошибка шины CAN { Без ошибок, Ошибка чтения, Ошибка записи, Ошибка подключения, Ошибка конфигурации, Неизвестная ошибка }
перечисление Ключ конфигурации { Ключ необработанного фильтра, Ключ фильтра ошибок, Ключ обратной связи, Ключ принятия собственных данных, ..., Пользовательский ключ }

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

QCanBusDevice(QObject *parent = nullptr)
QVector<int> configurationKeys() const
QVariant configurationParameter(int key) const
bool подключитьУстройство()
void отключитьУстройство()
CanBusError ошибка() const
QString описаниеОшибки() const
qint64 доступныеКадры() const
qint64 кадрыНаЗапись() const
virtual QString интерпретироватьКадрОшибки(const QCanBusFrame &frame) = 0
QCanBusFrame читатьКадр()
virtual void установитьПараметрКонфигурации(int key, const QVariant &value)
CanBusDeviceState состояние() const
virtual bool записатьКадр(const QCanBusFrame &frame) = 0
  • 31 открытые функции унаследованные от QObject

Сигналы

void произошлаОшибка(QCanBusDevice::CanBusError error)
void кадрыПолучены()
void кадрыЗаписаны(qint64 framesCount)
void состояниеИзменено(QCanBusDevice::CanBusDeviceState state)
  • 2 сигнала унаследованные от QObject

Защищенные функции

virtual void закрыть() = 0
QCanBusFrame извлечьИсходящийКадр()
void добавитьИсходящийКадр(const QCanBusFrame &newFrame)
void добавитьПолученныеКадры(const QVector<QCanBusFrame> &newFrames)
bool имеютсяИсходящиеКадры() const
virtual bool открыть() = 0
void установитьОшибку(const QString &errorText, QCanBusDevice::CanBusError errorId)
void установитьСостояние(QCanBusDevice::CanBusDeviceState newState)
  • 9 защищенных функций унаследованных от QObject

Дополнительные унаследованные члены

  • 1 свойство унаследованное от QObject
  • 1 открытый слот унаследованный от QObject
  • 11 статические открытые члены унаследованные от QObject

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

Класс QCanBusDevice является интерфейсным классом для шины CAN.

QCanBusDevice взаимодействует с бэкэндом CAN, предоставляя пользователям удобный API. Бэкэнд CAN должен быть указан при создании объекта.

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

перечисление QCanBusDevice::Состояние устройства шины CAN

Это перечисление описывает все возможные состояния устройства.

Постоянная Значение Описание
QCanBusDevice::UnconnectedState 0 Устройство отключено.
QCanBusDevice::ConnectingState 1 Устройство подключается.
QCanBusDevice::ConnectedState 2 Устройство подключено к шине CAN.
QCanBusDevice::ClosingState 3 Устройство закрывается.

перечисление QCanBusDevice::Ошибка шины CAN

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

Постоянная Значение Описание
QCanBusDevice::NoError 0 Ошибок не произошло.
QCanBusDevice::ReadError 1 Ошибка произошла во время операции чтения.
QCanBusDevice::WriteError 2 Ошибка произошла во время операции записи.
QCanBusDevice::ConnectionError 3 Ошибка произошла при попытке открыть бэкэнд.
QCanBusDevice::ConfigurationError 4 Ошибка произошла при попытке установить параметр конфигурации.
QCanBusDevice::UnknownError 5 Произошла неизвестная ошибка.

перечисление QCanBusDevice::Ключ конфигурации

Это перечисление описывает возможные параметры конфигурации для подключения шины CAN.

END_OF_DOCUMENT_MARKER
Константа Значение Описание
QCanBusDevice::RawFilterKey 0 Эта настройка определяет тип фреймов CAN-шины, которые принимает текущее устройство. Ожидаемое значение — QList<QCanBusDevice::Filter>. Передача пустого списка очищает все ранее заданные фильтры, включая стандартные. Дополнительные сведения см. в QCanBusDevice::Filter.
QCanBusDevice::ErrorFilterKey 1 Этот ключ определяет тип ошибки, который должен быть передан через текущее соединение. Соответствующее значение должно быть типа QCanBusFrame::FrameErrors.
QCanBusDevice::LoopbackKey 2 Этот ключ определяет, должен ли CAN-устройство работать в режиме петли обратной связи. Ожидаемое значение для этого ключа — bool.
QCanBusDevice::ReceiveOwnKey 3 Этот ключ определяет, может ли это CAN-устройство отправлять сообщения. Ожидаемое значение для этого ключа — bool.
QCanBusDevice::BitRateKey 4 Этот ключ определяет скорость передачи в битах в секунду.
QCanBusDevice::CanFdKey 5 Этот ключ определяет, следует ли разрешить отправку и получение фреймов CAN FD. Ожидаемое значение для этого ключа — bool.
QCanBusDevice::UserKey 30 Этот ключ определяет диапазон, в котором начинаются пользовательские ключи. Его основное назначение — разрешить платформенно-специфические параметры конфигурации.

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

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

QCanBusDevice::QCanBusDevice(QObject *parent = nullptr)

Конструирует устройство последовательной шины с указанным parent.

[pure virtual protected] void QCanBusDevice::close()

Эта функция отвечает за закрытие соединения CAN-шины. Реализация должна гарантировать, что состояние экземпляра state() установлено в QCanBusDevice::UnconnectedState.

Главная задача этой функции — закрыть сокет для CAN-устройства и вызвать QCanBusDevice::setState().

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

QVector<int> QCanBusDevice::configurationKeys() const

Возвращает список ключей, используемых соединением CAN-шины.

Значение ключей эквивалентно ConfigurationKey. Если ключ не указан, используется значение по умолчанию платформы для соответствующего ключа.

QVariant QCanBusDevice::configurationParameter(int key) const

Возвращает текущее значение, назначенное ключу ConfigurationKey key; в противном случае — недействительный QVariant.

См. также setConfigurationParameter() и configurationKeys().

bool QCanBusDevice::connectDevice()

Подключает устройство к CAN-шине. Возвращает true при успехе; в противном случае false.

Эта функция вызывает open() как часть своей реализации.

[protected] QCanBusFrame QCanBusDevice::dequeueOutgoingFrame()

Возвращает следующий QCanBusFrame из внутреннего списка исходящих фреймов; в противном случае возвращает недействительный QCanBusFrame. Возвращаемый фрейм удаляется из внутреннего списка.

void QCanBusDevice::disconnectDevice()

Отключает устройство от CAN-шины.

Эта функция вызывает close() как часть своей реализации.

[protected] void QCanBusDevice::enqueueOutgoingFrame(const QCanBusFrame &newFrame)

Добавляет newFrame во внутренний список исходящих фреймов, к которому можно получить доступ с помощью writeFrame().

Подклассы должны вызывать эту функцию при записи нового фрейма.

[protected] void QCanBusDevice::enqueueReceivedFrames(const QVector<QCanBusFrame> &newFrames)

Добавляет newFrames во внутренний список фреймов, к которому можно получить доступ с помощью readFrame(), и излучает сигнал framesReceived().

Подклассы должны вызывать эту функцию при получении фреймов.

CanBusError QCanBusDevice::error() const

Возвращает последнюю произошедшую ошибку. Значение ошибки всегда устанавливается на последнюю произошедшую ошибку и никогда не сбрасывается.

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

[signal] void QCanBusDevice::errorOccurred(QCanBusDevice::CanBusError error)

Этот сигнал излучается при возникновении ошибки типа error.

QString QCanBusDevice::errorString() const

Возвращает удобочитаемое описание последней произошедшей ошибки устройства.

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

qint64 QCanBusDevice::framesAvailable() const

Возвращает количество доступных фреймов. Если фреймов нет, функция возвращает 0.

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

[signal] void QCanBusDevice::framesReceived()

Этот сигнал излучается, когда получен один или несколько фреймов. Фреймы следует читать с помощью readFrame() и framesAvailable().

qint64 QCanBusDevice::framesToWrite() const

Возвращает количество фреймов, ожидающих записи.

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

[signal] void QCanBusDevice::framesWritten(qint64 framesCount)

Этот сигнал излучается каждый раз, когда пакет фреймов был записан в CAN-шину. Аргумент framesCount устанавливается в количество фреймов, записанных в этом пакете.

[protected] bool QCanBusDevice::hasOutgoingFrames() const

Возвращает true если внутренний список исходящих фреймов не пуст; в противном случае возвращает false.

[pure virtual] QString QCanBusDevice::interpretErrorFrame(const QCanBusFrame &frame)

Интерпретирует frame как фрейм ошибки и возвращает удобочитаемое описание ошибки.

Если frame не является фреймом ошибки, возвращаемая строка пуста.

[pure virtual protected] bool QCanBusDevice::open()

Эта функция вызывается connectDevice(). Подклассы должны предоставить реализацию, которая возвращает true если соединение CAN-шины можно установить; в противном случае false. Реализация QCanBusDevice гарантирует, что при входе в эту функцию состояние устройства state() уже установлено в QCanBusDevice::ConnectingState.

Реализация должна гарантировать, что при успехе состояние экземпляра state() установлено в QCanBusDevice::ConnectedState; в противном случае QCanBusDevice::UnconnectedState. Для установки нового состояния устройства должен использоваться setState().

Пользовательская реализация отвечает за открытие сокета, создание потенциально необходимого QSocketNotifier и применение пользовательских и стандартных QCanBusDevice::configurationParameter().

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

QCanBusFrame QCanBusDevice::readFrame()

Возвращает следующий QCanBusFrame из очереди; в противном случае возвращает пустой QCanBusFrame. Возвращаемый фрейм удаляется из очереди.

Очередь работает по принципу FIFO.

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

[virtual] void QCanBusDevice::setConfigurationParameter(int key, const QVariant &value)

Устанавливает параметр конфигурации key для подключения к шине CAN в значение value. Возможные значения ключей представлены в ConfigurationKey.

Параметр можно сбросить, установив некорректное значение QVariant. Сброс параметра означает, что конфигурация сброшена к своему значению по умолчанию.

Примечание: В большинстве случаев изменения конфигурации вступают в силу только после повторного подключения.

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

[protected] void QCanBusDevice::setError(const QString &errorText, QCanBusDevice::CanBusError errorId)

Устанавливает удобочитаемое описание последней ошибки устройства в errorText. errorId классифицирует тип ошибки.

Реализации шины CAN должны использовать эту функцию для обновления состояния ошибки устройства.

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

[protected] void QCanBusDevice::setState(QCanBusDevice::CanBusDeviceState newState)

Устанавливает состояние устройства в newState. Реализации шины CAN должны использовать эту функцию для обновления состояния устройства.

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

CanBusDeviceState QCanBusDevice::state() const

Возвращает текущее состояние устройства.

См. также setState() и stateChanged().

[signal] void QCanBusDevice::stateChanged(QCanBusDevice::CanBusDeviceState state)

Этот сигнал испускается каждый раз, когда состояние устройства изменяется. Новое состояние представлено в state.

См. также setState() и state().

[pure virtual] bool QCanBusDevice::writeFrame(const QCanBusFrame &frame)

Записывает frame в шину CAN и возвращает true при успехе; в противном случае false.

На некоторых платформах кадр может быть помещен в очередь, и возвращаемое значение может указывать только успешную вставку в очередь. Фактический кадр будет отправлен позже. Поэтому сигнал framesWritten() является окончательным подтверждением того, что кадр был передан транспортному уровню. Если произошла ошибка, испускается errorOccurred().

В соответствии со спецификацией шины CAN, кадрам типа запрос удаленного передачи (RTR) нет полезной нагрузки, но требуется размер больше нуля. Этот размер указывает ожидаемый размер полезной нагрузки ответа от удалённой стороны. Поэтому при отправке кадра RTR с помощью этой функции все еще может потребоваться установить произвольную полезную нагрузку на frame. Длина произвольной полезной нагрузки устанавливается как ожидаемый размер полезной нагрузки для кадра RTR.

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

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

Spec-Zone.ru

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