Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qnearfieldtarget_pcsc.cpp
Go to the documentation of this file.
1// Copyright (C) 2022 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
5#include "qndefmessage.h"
6#include <QtCore/QLoggingCategory>
7
9
11
12/*
13 Construct QNearFieldTargetPrivateImpl instance.
14
15 This object communicates with a QPcscCard object that lives inside the
16 worker thread via signal-slot mechanism.
17*/
19 const QByteArray &uid, QNearFieldTarget::AccessMethods accessMethods, int maxInputLength,
20 QObject *parent)
22 m_uid(uid),
23 m_accessMethods(accessMethods),
24 m_maxInputLength(maxInputLength)
25{
26 qCDebug(QT_NFC_PCSC) << "New card with UID" << m_uid.toHex(':');
27}
28
30{
31 qCDebug(QT_NFC_PCSC) << Q_FUNC_INFO;
32}
33
35{
36 qCDebug(QT_NFC_PCSC) << Q_FUNC_INFO;
37 return m_uid;
38}
39
41{
42 qCDebug(QT_NFC_PCSC) << Q_FUNC_INFO;
43
44 // Currently NDEF access is only supported for Type 4 tags
45 if (m_accessMethods & QNearFieldTarget::NdefAccess)
47
49}
50
51QNearFieldTarget::AccessMethods QNearFieldTargetPrivateImpl::accessMethods() const
52{
53 qCDebug(QT_NFC_PCSC) << Q_FUNC_INFO;
54 return m_accessMethods;
55}
56
58{
59 qCDebug(QT_NFC_PCSC) << Q_FUNC_INFO;
60
61 if (!m_connected || !m_isValid)
62 return false;
63
65 return true;
66}
67
69{
70 qCDebug(QT_NFC_PCSC) << Q_FUNC_INFO;
71 return m_maxInputLength;
72}
73
85
90
92{
93 qCDebug(QT_NFC_PCSC) << Q_FUNC_INFO;
94
95 if (!m_isValid)
96 return QNearFieldTarget::RequestId(nullptr);
97
98 m_connected = true;
99
101 Q_EMIT sendCommandRequest(reqId, command);
102
103 return reqId;
104}
105
107{
108 qCDebug(QT_NFC_PCSC) << Q_FUNC_INFO;
109
110 if (!m_isValid)
111 return QNearFieldTarget::RequestId(nullptr);
112
113 m_connected = true;
114
117
118 return reqId;
119}
120
122QNearFieldTargetPrivateImpl::writeNdefMessages(const QList<QNdefMessage> &messages)
123{
124 qCDebug(QT_NFC_PCSC) << Q_FUNC_INFO;
125
126 if (!m_isValid)
127 return QNearFieldTarget::RequestId(nullptr);
128
129 m_connected = true;
130
132 Q_EMIT writeNdefMessagesRequest(reqId, messages);
133
134 return reqId;
135}
136
138{
139 qCDebug(QT_NFC_PCSC) << Q_FUNC_INFO;
140
141 if (!m_connected)
142 return;
143
144 m_connected = false;
145
147}
148
150{
151 qCDebug(QT_NFC_PCSC) << Q_FUNC_INFO;
152
153 if (!m_isValid)
154 return;
155
156 m_isValid = false;
157
158 Q_EMIT targetLost(this);
159}
160
\inmodule QtCore
Definition qbytearray.h:57
The QNdefMessage class provides an NFC NDEF message.
void onRequestCompleted(const QNearFieldTarget::RequestId &request, QNearFieldTarget::Error reason, const QVariant &result)
void targetLost(QNearFieldTargetPrivateImpl *target)
QNearFieldTarget::RequestId writeNdefMessages(const QList< QNdefMessage > &messages) override
QNearFieldTarget::RequestId readNdefMessages() override
void onNdefMessageRead(const QNdefMessage &message)
void ndefMessageRead(const QNdefMessage &message, const QNearFieldTarget::RequestId &id)
void writeNdefMessagesRequest(const QNearFieldTarget::RequestId &request, const QList< QNdefMessage > &messages)
QNearFieldTarget::Type type() const override
QNearFieldTarget::RequestId sendCommand(const QByteArray &command) override
QNearFieldTarget::AccessMethods accessMethods() const override
void sendCommandRequest(const QNearFieldTarget::RequestId &request, const QByteArray &command)
void readNdefMessagesRequest(const QNearFieldTarget::RequestId &request)
QByteArray uid() const override
virtual void setResponseForRequest(const QNearFieldTarget::RequestId &id, const QVariant &response, bool emitRequestCompleted=true)
void reportError(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id)
\inmodule QtNfc \inheaderfile QNearFieldTarget
The QNearFieldTarget class provides an interface for communicating with a target device.
Type
This enum describes the type of tag the target is detected as.
Error
This enum describes the error codes that a near field target reports.
\inmodule QtCore
Definition qobject.h:103
\inmodule QtCore
Definition qvariant.h:65
Combined button and popup list for selecting options.
#define Q_FUNC_INFO
#define qCDebug(category,...)
#define Q_DECLARE_LOGGING_CATEGORY(name)
GLuint GLsizei const GLchar * message
GLuint64EXT * result
[6]
#define Q_EMIT
QNetworkRequest request(url)