이 페이지에서

QCanBusDevice::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 프레임이 목록에 있는 필터 중 적어도 하나와 일치하면, 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

이 열거형은 수신되는 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와 수신된 프레임의 프레임 ID에 적용되는 비트 마스크를 저장합니다.

다음 조건이 ` true`로 평가되면 두 프레임 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 를 반환합니다.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.