Filter Struct
struct QCanBusDevice::FilterQCanBusDevice::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::MatchBaseFormat | 0x0001 | CANバスフレームは、ベースフレームフォーマット(11ビット識別子)を使用しなければならない。 |
QCanBusDevice::Filter::MatchExtendedFormat | 0x0002 | CANバスフレームは拡張フレームフォーマット(29ビット識別子)を使用しなければならない。 |
QCanBusDevice::Filter::MatchBaseAndExtendedFormat | 0x0003 | CANバスフレームは、ベースまたは拡張フレームフォーマットを持つことができます。 |
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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。