8#include <QtCore/qbytearray.h>
9#include <QtCore/qloggingcategory.h>
10#include <QtCore/qdebug.h>
37
38
39
40
41
42
43
44
45
46
47
48
51QLowEnergyCharacteristicData::QLowEnergyCharacteristicData()
52 : d(
new QLowEnergyCharacteristicDataPrivate)
57QLowEnergyCharacteristicData::QLowEnergyCharacteristicData(
const QLowEnergyCharacteristicData &other)
63QLowEnergyCharacteristicData::~QLowEnergyCharacteristicData()
68QLowEnergyCharacteristicData &QLowEnergyCharacteristicData::operator=(
const QLowEnergyCharacteristicData &other)
75QBluetoothUuid QLowEnergyCharacteristicData::uuid()
const
81void QLowEnergyCharacteristicData::setUuid(
const QBluetoothUuid &uuid)
87QByteArray QLowEnergyCharacteristicData::value()
const
93void QLowEnergyCharacteristicData::setValue(
const QByteArray &value)
99QLowEnergyCharacteristic::PropertyTypes QLowEnergyCharacteristicData::properties()
const
101 return d->properties;
105void QLowEnergyCharacteristicData::setProperties(QLowEnergyCharacteristic::PropertyTypes properties)
107 if ((properties & QLowEnergyCharacteristic::PropertyType::Notify) &&
108 (properties & QLowEnergyCharacteristic::PropertyType::Indicate))
109 qCWarning(QT_BT) <<
"Both NTF and IND properties set for characteristic" << d->uuid;
110 d->properties = properties;
114QList<QLowEnergyDescriptorData> QLowEnergyCharacteristicData::descriptors()
const
116 return d->descriptors;
120
121
122
123
124void QLowEnergyCharacteristicData::setDescriptors(
const QList<QLowEnergyDescriptorData> &descriptors)
126 d->descriptors.clear();
127 for (
const QLowEnergyDescriptorData &desc : descriptors)
132
133
134
135void QLowEnergyCharacteristicData::addDescriptor(
const QLowEnergyDescriptorData &descriptor)
137 if (descriptor.isValid())
138 d->descriptors << descriptor;
140 qCWarning(QT_BT) <<
"not adding invalid descriptor to characteristic";
144
145
146void QLowEnergyCharacteristicData::setReadConstraints(QBluetooth::AttAccessConstraints constraints)
148 d->readConstraints = constraints;
152
153
154
155
156QBluetooth::AttAccessConstraints QLowEnergyCharacteristicData::readConstraints()
const
158 return d->readConstraints;
162
163
164void QLowEnergyCharacteristicData::setWriteConstraints(QBluetooth::AttAccessConstraints constraints)
166 d->writeConstraints = constraints;
170
171
172
173
174
175
176QBluetooth::AttAccessConstraints QLowEnergyCharacteristicData::writeConstraints()
const
178 return d->writeConstraints;
182
183
184
185
186void QLowEnergyCharacteristicData::setValueLength(
int minimum,
int maximum)
188 d->minimumValueLength = minimum;
189 d->maximumValueLength = qMax(minimum, maximum);
193
194
195
196int QLowEnergyCharacteristicData::minimumValueLength()
const
198 return d->minimumValueLength;
202
203
204
205int QLowEnergyCharacteristicData::maximumValueLength()
const
207 return d->maximumValueLength;
211
212
213bool QLowEnergyCharacteristicData::isValid()
const
215 return !uuid().isNull();
219
220
221
224
225
226
227
228bool QLowEnergyCharacteristicData::equals(
const QLowEnergyCharacteristicData &a,
229 const QLowEnergyCharacteristicData &b)
232 || (a.uuid() == b.uuid() && a.properties() == b.properties()
233 && a.descriptors() == b.descriptors() && a.value() == b.value()
234 && a.readConstraints() == b.readConstraints()
235 && a.writeConstraints() == b.writeConstraints()
236 && a.minimumValueLength() == b.maximumValueLength()
237 && a.maximumValueLength() == b.maximumValueLength());
241
242
243
244
245
248
249
250
251
252
QT_BEGIN_NAMESPACE Q_DECLARE_LOGGING_CATEGORY(lcEventDispatcher)
QBluetooth::AttAccessConstraints writeConstraints
QBluetooth::AttAccessConstraints readConstraints
QLowEnergyCharacteristic::PropertyTypes properties
QLowEnergyCharacteristicDataPrivate()
QList< QLowEnergyDescriptorData > descriptors