Filter Struct

struct QCanBusDevice::Filter

QCanBusDevice::Filter 構造体は、CAN バスフレームのフィルターを定義する。詳細...

パブリックタイプ

enum FormatFilter { MatchBaseFormat, MatchExtendedFormat, MatchBaseAndExtendedFormat }
flags FormatFilters

パブリック変数

QCanBusDevice::Filter::FormatFilter format
QCanBusFrame::FrameId frameId
QCanBusFrame::FrameId frameIdMask
QCanBusFrame::FrameType type
bool operator!=(const QCanBusDevice::Filter &a, const QCanBusDevice::Filter &b)
bool operator==(const QCanBusDevice::Filter &a, const QCanBusDevice::Filter &b)

詳細説明

フィルタリングを有効にするために、QCanBusDevice::Filter インスタンスのリストがQCanBusDevice::setConfigurationParameter() に渡される。受信したCANフレームがリスト内のフィルターの少なくとも1つにマッチした場合、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));

メンバ型ドキュメント

enum Filter::FormatFilter
flags Filter::FormatFilters

この enum は、受信 CAN バスフレームをフィルタリングするために使用されるフォーマットパターンを記述します。

定数説明
QCanBusDevice::Filter::MatchBaseFormat0x0001CANバスフレームは、ベースフレームフォーマット(11ビット識別子)を使用しなければならない。
QCanBusDevice::Filter::MatchExtendedFormat0x0002CANバスフレームは拡張フレームフォーマット(29ビット識別子)を使用しなければならない。
QCanBusDevice::Filter::MatchBaseAndExtendedFormat0x0003CANバスフレームは、ベースまたは拡張フレームフォーマットを持つことができます。

FormatFilters型はQFlags<FormatFilter>のtypedefです。これは、FormatFilter値のORの組み合わせを格納します。

メンバ変数ドキュメント

QCanBusDevice::Filter::FormatFilter Filter::format

この変数は、マッチするCANバスフレームのフレームフォーマットを保持する。

デフォルトでは、このフィールドはQCanBusDevice::Filter::MatchBaseAndExtendedFormat に設定されている。

QCanBusFrame::FrameId Filter::frameId

この変数は、受信フレームのフィルタリングに使用されるフレーム ID を保持する。

frameId はframeIdMask と組み合わせて使用されます。以下がtrue と評価されれば、マッチングは成功です:

(receivedFrameId & frameIdMask) == (frameId & frameIdMask)

デフォルトでは、このフィールドは0x0 に設定されています。

frameIdMaskも参照してください

QCanBusFrame::FrameId Filter::frameIdMask

この変数はフィルタのフレームIDと受信フレームに適用されるビットマスクを保持する。

以下がtrue と評価される場合、2つのフレームIDはマッチします:

(receivedFrameId & frameIdMask) == (frameId & frameIdMask)

デフォルトでは、このフィールドは0x0 に設定されています。

frameIdも参照してください

QCanBusFrame::FrameType Filter::type

この変数はフィルタリングされるフレームのタイプを保持する。

この変数をQCanBusFrame::InvalidFrame に設定することで、任意の CAN バス・フレーム・タイプにマッチさせることができます。 type がQCanBusFrame::UnknownFrame に等しい場合、フィルター・オブジェクトは無効です。

デフォルトでは、このフィールドはQCanBusFrame::InvalidFrame に設定されています。

QCanBusFrame::FrameTypeも参照してください

関連する非会員

[constexpr noexcept] bool operator!=(const QCanBusDevice::Filter &a, const QCanBusDevice::Filter &b)

フィルタa がフィルタb と等しくない場合はtrue を返し、そうでない場合はfalse を返します。

[constexpr noexcept] bool operator==(const QCanBusDevice::Filter &a, const QCanBusDevice::Filter &b)

フィルタa がフィルタb と等しい場合はtrue を返し、そうでない場合はfalse を返します。

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。