Spec-Zone.ru › Qt

Класс QNearFieldTarget

Класс QNearFieldTarget предоставляет интерфейс для взаимодействия с целевым устройством. Подробнее...

Заголовок: #include <QNearFieldTarget>
CMake: find_package(Qt6 COMPONENTS Nfc REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Nfc)
qmake: QT += nfc
С момента: Qt 5.2
Наследует: QObject
  • Список всех членов, включая унаследованные

Типы

класс RequestId
перечисление AccessMethod { UnknownAccess, NdefAccess, TagTypeSpecificAccess, AnyAccess }
флаги AccessMethods
перечисление Error { NoError, UnknownError, UnsupportedError, TargetOutOfRangeError, NoResponseError, …, TimeoutError }
перечисление Type { ProprietaryTag, NfcTagType1, NfcTagType2, NfcTagType3, NfcTagType4, …, MifareTag }

Публичные функции

QNearFieldTarget(QObject *parent = nullptr)
виртуальный ~QNearFieldTarget()
QNearFieldTarget::AccessMethods accessMethods() const
bool disconnect()
bool hasNdefMessage()
int maxCommandLength() const
QNearFieldTarget::RequestId readNdefMessages()
QVariant requestResponse(const QNearFieldTarget::RequestId &id) const
QNearFieldTarget::RequestId sendCommand(const QByteArray &command)
QNearFieldTarget::Type type() const
QByteArray uid() const
bool waitForRequestCompleted(const QNearFieldTarget::RequestId &id, int msecs = 5000)
QNearFieldTarget::RequestId writeNdefMessages(const QList<QNdefMessage> &messages)

Сигналы

void disconnected()
void error(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id)
void ndefMessageRead(const QNdefMessage &message)
void requestCompleted(const QNearFieldTarget::RequestId &id)

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

QNearFieldTarget предоставляет общий интерфейс для взаимодействия с целевым устройством NFC. Данный класс поддерживает как устройства, так и метки NFC Forum. Все классы, специфичные для целевых устройств, являются подклассами этого класса.

Функция type() может быть использована для получения типа целевого устройства. Функция uid() возвращает уникальный идентификатор целевого устройства. Флаги AccessMethods, возвращаемые функцией accessMethods(), могут быть проверены для определения поддерживаемых целевым устройством методов доступа.

Если целевое устройство поддерживает NdefAccess, можно вызвать hasNdefMessage() для проверки наличия сохранённого сообщения NDEF, а функции readNdefMessages() и writeNdefMessages() могут быть использованы для получения и установки сообщения NDEF.

Если целевое устройство поддерживает TagTypeSpecificAccess, функция sendCommand() может быть использована для отправки одного специального командного запроса целевому устройству и получения ответа.

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

перечисление QNearFieldTarget::AccessMethodфлаги QNearFieldTarget::AccessMethods

Это перечисление описывает методы доступа, поддерживаемые целевым устройством.

Константа Значение Описание
QNearFieldTarget::UnknownAccess 0x00 Целевое устройство поддерживает неизвестный тип доступа.
QNearFieldTarget::NdefAccess 0x01 Целевое устройство поддерживает чтение и запись сообщений NDEF с помощью readNdefMessages() и writeNdefMessages().
QNearFieldTarget::TagTypeSpecificAccess 0x02 Целевое устройство поддерживает отправку команд, специфичных для типа метки, с помощью sendCommand().
QNearFieldTarget::AnyAccess 0xff Целевое устройство поддерживает любой из известных типов доступа.

Тип AccessMethods является псевдонимом для QFlags<AccessMethod>. Он хранит логическое ИЛИ значений AccessMethod.

перечисление QNearFieldTarget::Error

Это перечисление описывает коды ошибок, сообщаемые целевым устройством.

Константа Значение Описание
QNearFieldTarget::NoError 0 Ошибка не произошла.
QNearFieldTarget::UnknownError 1 Произошла неопределённая ошибка.
QNearFieldTarget::UnsupportedError 2 Запрошенная операция не поддерживается этим целевым устройством.
QNearFieldTarget::TargetOutOfRangeError 3 Целевое устройство больше не находится в зоне действия.
QNearFieldTarget::NoResponseError 4 Целевое устройство не ответило.
QNearFieldTarget::ChecksumMismatchError 5 Контрольная сумма обнаружила повреждённый ответ.
QNearFieldTarget::InvalidParametersError 6 Неверные параметры были переданы в функцию, специфичную для типа метки.
QNearFieldTarget::ConnectionError 7 Не удалось подключиться к целевому устройству.
QNearFieldTarget::NdefReadError 8 Не удалось прочитать сообщения NDEF с целевого устройства.
QNearFieldTarget::NdefWriteError 9 Не удалось записать сообщения NDEF в целевое устройство.
QNearFieldTarget::CommandError 10 Не удалось отправить команду целевому устройству.
QNearFieldTarget::TimeoutError 11 Запрос не был выполнен в течение времени, указанного в waitForRequestCompleted().

перечисление QNearFieldTarget::Type

Это перечисление описывает тип метки, распознанный целевым устройством.

Константа Значение Описание
QNearFieldTarget::ProprietaryTag 0 Неизвестный проприетарный тэг назначения.
QNearFieldTarget::NfcTagType1 1 Тэг NFC типа 1.
QNearFieldTarget::NfcTagType2 2 Тэг NFC типа 2.
QNearFieldTarget::NfcTagType3 3 Тэг NFC типа 3.
QNearFieldTarget::NfcTagType4 4 Тэг NFC типа 4. Это значение используется, если тип NfcTagType4 не может быть уточнён значениями NfcTagType4A или NfcTagType4B ниже.
QNearFieldTarget::NfcTagType4A 5 Тэг NFC типа 4, основанный на ISO/IEC 14443-3A.
QNearFieldTarget::NfcTagType4B 6 Тэг NFC типа 4, основанный на ISO/IEC 14443-3B.
QNearFieldTarget::MifareTag 7 Тэг Mifare.

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

QNearFieldTarget::QNearFieldTarget(QObject *parent = nullptr)

Создаёт новый целевой объект ближнего поля с parent.

[signal] void QNearFieldTarget::disconnected()

Этот сигнал излучается, когда целевой объект ближнего поля выходит из зоны действия.

[signal] void QNearFieldTarget::error(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id)

Этот сигнал излучается, когда при обработке запроса id произошла ошибка. Параметр error описывает ошибку.

[signal] void QNearFieldTarget::ndefMessageRead(const QNdefMessage &message)

Этот сигнал излучается, когда из целевого объекта был полностью прочитан NDEF-message.

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

[signal] void QNearFieldTarget::requestCompleted(const QNearFieldTarget::RequestId &id)

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

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

[virtual] QNearFieldTarget::~QNearFieldTarget()

Уничтожает целевой объект ближнего поля.

QNearFieldTarget::AccessMethods QNearFieldTarget::accessMethods() const

Возвращает методы доступа, поддерживаемые этим целевым объектом ближнего поля.

[since 5.9] bool QNearFieldTarget::disconnect()

Закрывает подключение к целевому объекту, чтобы разрешить общение с целевым объектом из другого экземпляра. Подключение также будет закрыто при уничтожении QNearFieldTarget. Подключение к устройству-цели (пере)создаётся для обработки команды или чтения/записи NDEF-сообщений.

Возвращает true только в том случае, если существующее подключение было успешно закрыто; в противном случае возвращает false.

Эта функция была добавлена в Qt 5.9.

bool QNearFieldTarget::hasNdefMessage()

Возвращает true если в целевом объекте ближнего поля хранится хотя бы одно NDEF-сообщение; в противном случае возвращает false.

[since 5.9] int QNearFieldTarget::maxCommandLength() const

Возвращает максимальное количество байтов, которые могут быть отправлены с помощью sendCommand. 0 будет возвращено, если целевой объект не поддерживает отправку команд, специфичных для типа тэга.

Эта функция была добавлена в Qt 5.9.

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

QNearFieldTarget::RequestId QNearFieldTarget::readNdefMessages()

Начинает чтение NDEF-сообщений, хранящихся в целевом объекте ближнего поля. Возвращает идентификатор запроса, который можно использовать для отслеживания состояния завершения запроса. Некорректный идентификатор запроса будет возвращен, если целевой объект не поддерживает чтение NDEF-сообщений.

Для каждого NDEF-сообщения будет излучаться сигнал ndefMessageRead(). Когда все NDEF-сообщения будут считаны, будет излучен сигнал requestCompleted(). Сигнал error() излучается, если произошла ошибка.

Примечание: Попытка чтения NDEF-сообщения от тэга, находящегося в состоянии INITIALIZED (как определено NFC Forum), завершится ошибкой NdefReadError, так как тэг отформатирован для поддержки NDEF, но ещё не содержит сообщений.

QVariant QNearFieldTarget::requestResponse(const QNearFieldTarget::RequestId &id) const

Возвращает декодированный ответ для запроса id. Если запрос неизвестен или ещё не завершён, возвращается недействительный QVariant.

QNearFieldTarget::RequestId QNearFieldTarget::sendCommand(const QByteArray &command)

Отправляет command целевому объекту ближнего поля. Возвращает идентификатор запроса, который можно использовать для отслеживания состояния завершения запроса. Некорректный идентификатор запроса будет возвращён, если целевой объект не поддерживает отправку команд, специфичных для типа тэга.

Сигнал requestCompleted() будет излучен при успешном завершении запроса; в противном случае излучается сигнал error().

После успешного завершения запроса ответ можно получить из функции requestResponse(). Ответом на этот запрос будет QByteArray.

См. также requestCompleted() и waitForRequestCompleted().

QNearFieldTarget::Type QNearFieldTarget::type() const

Возвращает тип тэга этого целевого объекта ближнего поля.

QByteArray QNearFieldTarget::uid() const

Возвращает UID целевого объекта ближнего поля.

bool QNearFieldTarget::waitForRequestCompleted(const QNearFieldTarget::RequestId &id, int msecs = 5000)

Ожидает завершения запроса id в течение msecs миллисекунд. Возвращает true если запрос завершается успешно и излучается сигнал requestCompeted(); в противном случае возвращает false.

QNearFieldTarget::RequestId QNearFieldTarget::writeNdefMessages(const QList<QNdefMessage> &messages)

Записывает NDEF-сообщения в messages в целевой объект. Возвращает идентификатор запроса, который можно использовать для отслеживания состояния завершения запроса. Некорректный идентификатор запроса будет возвращен, если целевой объект не поддерживает чтение NDEF-сообщений.

Сигнал requestCompleted() будет излучен, когда операция записи завершится успешно; в противном случае излучается сигнал error().

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

Spec-Zone.ru

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