Класс QNearFieldTarget
Класс QNearFieldTarget предоставляет интерфейс для взаимодействия с целевым устройством. Подробнее...
| Заголовок: | #include <QNearFieldTarget> |
| qmake: | QT += nfc |
| С момента: | Qt 5.2 |
| Наследует: | QObject |
Типы
| класс | RequestId |
| класс | RequestIdPrivate |
| перечисление | AccessMethod { UnknownAccess, NdefAccess, TagTypeSpecificAccess, LlcpAccess } |
| флаги | AccessMethods |
| перечисление | Error { NoError, UnknownError, UnsupportedError, TargetOutOfRangeError, ..., NdefWriteError } |
| перечисление | Type { ProprietaryTag, NfcTagType1, NfcTagType2, NfcTagType3, NfcTagType4, MifareTag } |
Публичные функции
| QNearFieldTarget(QObject *parent = Q_NULLPTR) | |
| виртуальный | ~QNearFieldTarget() |
| виртуальный AccessMethods | accessMethods() const = 0 |
| виртуальный bool | hasNdefMessage() |
| bool | isProcessingCommand() const |
| виртуальный RequestId | readNdefMessages() |
| QVariant | requestResponse(const RequestId &id) |
| виртуальный RequestId | sendCommand(const QByteArray &command) |
| виртуальный RequestId | sendCommands(const QList<QByteArray> &commands) |
| void | setResponseForRequest(const QNearFieldTarget::RequestId &id, const QVariant &response, bool emitRequestCompleted = true) |
| виртуальный Type | type() const = 0 |
| виртуальный QByteArray | uid() const = 0 |
| виртуальный QUrl | url() const |
| виртуальный bool | waitForRequestCompleted(const RequestId &id, int msecs = 5000) |
| виртуальный RequestId | writeNdefMessages(const QList<QNdefMessage> &messages) |
- 31 публичная функция, унаследованная от QObject
Сигналы
| void | disconnected() |
| void | error(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id) |
| void | ndefMessageRead(const QNdefMessage &message) |
| void | ndefMessagesWritten() |
| void | requestCompleted(const QNearFieldTarget::RequestId &id) |
- 2 сигнала, унаследованные от QObject
Защищенные функции
| виртуальный bool | handleResponse(const QNearFieldTarget::RequestId &id, const QByteArray &response) |
- 9 защищенных функций, унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 публичный слот, унаследованный от QObject
- 11 статических публичных членов, унаследованных от QObject
Подробное описание
Класс QNearFieldTarget предоставляет интерфейс для взаимодействия с целевым устройством.
QNearFieldTarget обеспечивает общий интерфейс для взаимодействия с целевым устройством NFC. Данный класс поддерживает как устройства, так и метки NFC Forum. Все классы, специфичные для целевых устройств, наследуются от этого класса.
Функция type() может быть использована для получения типа целевого устройства. Функция uid() возвращает уникальный идентификатор целевого устройства. Флаги AccessMethods, возвращаемые функцией accessMethods(), позволяют определить поддерживаемые методы доступа.
Если целевое устройство поддерживает NdefAccess, hasNdefMessage() может быть вызвана для проверки наличия сохранённого сообщения NDEF, функции readNdefMessages() и writeNdefMessages() могут быть использованы для получения и изменения сообщения NDEF.
Если целевое устройство поддерживает TagTypeSpecificAccess, sendCommand() может быть использована для отправки единственной специфичной для типа метки команды и получения ответа. sendCommands() может быть использована для отправки нескольких специфичных для типа метки команд и получения всех ответов.
Если целевое устройство поддерживает LlcpAccess, класс QLlcpSocket может быть использован для подключения к сервису, предоставляемому целевым устройством.
Документация по типу члена
перечисление QNearFieldTarget::AccessMethodфлаги QNearFieldTarget::AccessMethods
Это перечисление описывает методы доступа, поддерживаемые целевым устройством ближнего поля.
| Константа | Значение | Описание |
|---|---|---|
QNearFieldTarget::UnknownAccess |
0x00 |
Целевое устройство поддерживает неизвестный тип доступа. |
QNearFieldTarget::NdefAccess |
0x01 |
Целевое устройство поддерживает чтение и запись сообщений NDEF с помощью readNdefMessages() и writeNdefMessages(). |
QNearFieldTarget::TagTypeSpecificAccess |
0x02 |
Целевое устройство поддерживает отправку команд, специфичных для типа метки, с помощью sendCommand() и sendCommands(). |
QNearFieldTarget::LlcpAccess |
0x04 |
Целевое устройство поддерживает двустороннюю LLCP-связь. |
Тип 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::NdefReadError |
7 |
Не удалось прочитать сообщения NDEF из целевого устройства. |
QNearFieldTarget::NdefWriteError |
8 |
Не удалось записать сообщения NDEF в целевое устройство. |
enum 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. |
QNearFieldTarget::MifareTag |
5 |
Целевое устройство Mifare. |
Документация по функциям-членам
QNearFieldTarget::QNearFieldTarget(QObject *parent = Q_NULLPTR)
Создаёт новое целевое устройство ближнего поля с parent.
[virtual] QNearFieldTarget::~QNearFieldTarget()
Уничтожает целевое устройство ближнего поля.
[pure virtual] AccessMethods QNearFieldTarget::accessMethods() const
Возвращает методы доступа, поддерживаемые этим целевым устройством ближнего поля.
[signal] void QNearFieldTarget::disconnected()
Этот сигнал подаётся, когда целевое устройство ближнего поля перемещается за пределы зоны действия.
[signal] void QNearFieldTarget::error(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id)
Этот сигнал подаётся, когда при обработке запроса id возникает ошибка. Параметр error описывает ошибку.
[virtual protected] bool QNearFieldTarget::handleResponse(const QNearFieldTarget::RequestId &id, const QByteArray &response)
Обрабатывает полученный ответ response для запроса id. Возвращает true, если ответ обработан, иначе возвращает false.
Классы, переопределяющие эту виртуальную функцию, должны вызывать реализацию базового класса, чтобы гарантировать правильную обработку запросов, инициированных этими классами.
По умолчанию реализация сохраняет ответ, чтобы его можно было получить с помощью requestResponse().
[virtual] bool QNearFieldTarget::hasNdefMessage()
Возвращает true, если на целевом устройстве ближнего поля хранится хотя бы одно сообщение NDEF; в противном случае возвращает false.
bool QNearFieldTarget::isProcessingCommand() const
Возвращает true, если целевое устройство обрабатывает команды; в противном случае возвращает false.
[signal] void QNearFieldTarget::ndefMessageRead(const QNdefMessage &message)
Этот сигнал подаётся, когда полное сообщение NDEF message было прочитано с целевого устройства.
См. также readNdefMessages().
[signal] void QNearFieldTarget::ndefMessagesWritten()
Этот сигнал подаётся, когда сообщения NDEF были успешно записаны в целевое устройство.
См. также writeNdefMessages().
[virtual] RequestId QNearFieldTarget::readNdefMessages()
Начинает чтение сообщений NDEF, хранящихся на целевом устройстве ближнего поля. Возвращает идентификатор запроса, который можно использовать для отслеживания статуса завершения запроса. Недопустимый идентификатор запроса будет возвращён, если целевое устройство не поддерживает чтение сообщений NDEF.
Для каждого сообщения NDEF будет подаваться сигнал ndefMessageRead(). Сигнал requestCompleted() будет подан, когда все сообщения NDEF будут прочитаны. Сигнал error() подаётся, если произошла ошибка.
[signal] void QNearFieldTarget::requestCompleted(const QNearFieldTarget::RequestId &id)
Этот сигнал подаётся, когда запрос id завершается.
См. также sendCommand().
QVariant QNearFieldTarget::requestResponse(const RequestId &id)
Возвращает декодированный ответ для запроса id. Если запрос неизвестен или ещё не завершён, возвращается недействительный QVariant.
[virtual] RequestId QNearFieldTarget::sendCommand(const QByteArray &command)
Отправляет command целевому устройству ближнего поля. Возвращает идентификатор запроса, который можно использовать для отслеживания статуса завершения запроса. Недопустимый идентификатор запроса будет возвращён, если целевое устройство не поддерживает отправку команд, специфичных для типа тега.
Сигнал requestCompleted() будет подан при успешном завершении запроса; в противном случае будет подан сигнал error().
После успешного завершения запроса ответ можно получить из функции requestResponse(). Ответ этого запроса будет QByteArray.
См. также requestCompleted() и waitForRequestCompleted().
[virtual] RequestId QNearFieldTarget::sendCommands(const QList<QByteArray> &commands)
Отправляет несколько commands целевому устройству ближнего поля. Возвращает идентификатор запроса, который можно использовать для отслеживания статуса завершения запроса. Недопустимый идентификатор запроса будет возвращён, если целевое устройство не поддерживает отправку команд, специфичных для типа тега.
Если все команды завершатся успешно, будет подан сигнал requestCompleted(); в противном случае будет подан сигнал error(). Если команда завершится неудачей, последующие команды из этого вызова не будут обработаны.
После завершения запроса ответ для успешно завершённых запросов можно получить из функции requestResponse(). Ответ этого запроса будет QList<QByteArray>.
См. также requestCompleted() и waitForRequestCompleted().
void QNearFieldTarget::setResponseForRequest(const QNearFieldTarget::RequestId &id, const QVariant &response, bool emitRequestCompleted = true)
Устанавливает декодированный ответ для запроса id на response. Если emitRequestCompleted равно true, будет подан сигнал requestCompleted() для id; в противном случае сигнал не будет подан.
См. также requestResponse().
[pure virtual] Type QNearFieldTarget::type() const
Возвращает тип тега данного целевого объекта ближнего поля.
[pure virtual] QByteArray QNearFieldTarget::uid() const
Возвращает UID целевого объекта ближнего поля.
[virtual] QUrl QNearFieldTarget::url() const
Возвращает URL целевого объекта ближнего поля.
[virtual] bool QNearFieldTarget::waitForRequestCompleted(const RequestId &id, int msecs = 5000)
Ожидает завершения запроса id в течение msecs миллисекунд. Возвращает true, если запрос завершился успешно и был выпущен сигнал requestCompeted(); в противном случае возвращает false.
[virtual] RequestId QNearFieldTarget::writeNdefMessages(const QList<QNdefMessage> &messages)
Записывает NDEF-сообщения в messages в целевой объект. Возвращает идентификатор запроса, который может быть использован для отслеживания статуса завершения запроса. Возвращает недопустимый идентификатор запроса, если целевой объект не поддерживает чтение NDEF-сообщений.
Сигнал ndefMessagesWritten() будет выпущен при успешном завершении операции записи; в противном случае выпущен сигнал error().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qnearfieldtarget.html