Структура фильтра
структура QCanBusDevice::FilterСтруктура QCanBusDevice::Filter определяет фильтр для кадров CAN-шины. Подробнее...
Эта структура была добавлена в Qt 5.8.
Типы публичного доступа
| перечисление | FormatFilter { MatchBaseFormat, MatchExtendedFormat, MatchBaseAndExtendedFormat } |
| флаги | FormatFilters |
Публичные переменные
| QCanBusDevice::Filter::FormatFilter | format |
| QCanBusFrame::FrameId | frameId |
| QCanBusFrame::FrameId | frameIdMask |
| QCanBusFrame::FrameType | type |
Связанные нечлены
| bool | operator!=(const Filter &a, const Filter &b) |
| bool | operator==(const Filter &a, const Filter &b) |
Подробное описание
Список экземпляров QCanBusDevice::Filter передается в QCanBusDevice::setConfigurationParameter() для включения фильтрации. Если полученный кадр CAN соответствует хотя бы одному из фильтров в списке, QCanBusDevice его примет.
Пример использования структуры:
QCanBusDevice::Filter filter; QList<QCanBusDevice::Filter> filterList; // filter all CAN bus packages with id 0x444 (base) or 0xXXXXX444 (extended) filter.frameId = 0x444u; filter.frameIdMask = 0x7FFu; filter.format = QCanBusDevice::Filter::MatchBaseAndExtendedFormat; filter.type = QCanBusFrame::InvalidFrame; filterList.append(filter); // filter all DataFrames with extended CAN bus package format filter.frameId = 0x0; filter.frameIdMask = 0x0; filter.format = QCanBusDevice::Filter::MatchExtendedFormat; filter.type = QCanBusFrame::DataFrame; filterList.append(filter); // apply filter device->setConfigurationParameter(QCanBusDevice::RawFilterKey, QVariant::fromValue(filterList));
Документация по типам членов
перечисление Filter::FormatFilterфлаги Filter::FormatFilters
Это перечисление описывает шаблон формата, используемый для фильтрации входящих кадров CAN-шины.
| Константа | Значение | Описание |
|---|---|---|
QCanBusDevice::Filter::MatchBaseFormat |
0x0001 |
Кадр CAN-шины должен использовать базовый формат кадра (11-битовый идентификатор). |
QCanBusDevice::Filter::MatchExtendedFormat |
0x0002 |
Кадр CAN-шины должен использовать расширенный формат кадра (29-битовый идентификатор). |
QCanBusDevice::Filter::MatchBaseAndExtendedFormat |
0x0003 |
Кадр CAN-шины может иметь базовый или расширенный формат кадра. |
Тип FormatFilters является псевдонимом для QFlags<FormatFilter>. Он хранит результат побитового ИЛИ комбинации значений FormatFilter.
Документация по переменным-членам
QCanBusDevice::Filter::FormatFilter Filter::format
Эта переменная хранит формат кадра соответствующего кадра CAN-шины.
По умолчанию это поле установлено в QCanBusDevice::Filter::MatchBaseAndExtendedFormat.
QCanBusFrame::FrameId Filter::frameId
Эта переменная хранит идентификатор кадра, используемый для фильтрации входящих кадров.
frameId используется совместно с frameIdMask. Совпадение происходит, если следующее выражение равно true:
(receivedFrameId & frameIdMask) == (frameId & frameIdMask)
По умолчанию это поле установлено в 0x0.
См. также frameIdMask.
QCanBusFrame::FrameId Filter::frameIdMask
Эта переменная хранит битовую маску, которая применяется к идентификатору кадра фильтра и полученного кадра.
Два идентификатора кадров совпадают, если следующее выражение равно true:
(receivedFrameId & frameIdMask) == (frameId & frameIdMask)
По умолчанию это поле установлено в 0x0.
См. также frameId.
QCanBusFrame::FrameType Filter::type
Эта переменная хранит тип кадра для фильтрации.
Любой тип кадра CAN-шины может быть сопоставлен, установив эту переменную в QCanBusFrame::InvalidFrame. Объект фильтра недействителен, если тип равен QCanBusFrame::UnknownFrame.
По умолчанию это поле установлено в QCanBusFrame::InvalidFrame.
См. также QCanBusFrame::FrameType.
Связанные нечлены
bool operator!=(const Filter &a, const Filter &b)
Возвращает true, если фильтр a не равен фильтру b, в противном случае возвращает false.
bool operator==(const Filter &a, const Filter &b)
Возвращает true, если фильтр a равен фильтру b, в противном случае возвращает false.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qcanbusdevice-filter.html