diff --git a/src/bluetooth/qbluetooth.h b/src/bluetooth/qbluetooth.h
index ebe546f..f448af0 100644
--- a/src/bluetooth/qbluetooth.h
+++ b/src/bluetooth/qbluetooth.h
@@ -58,6 +58,7 @@ public:
InputOutputError,
PoweredOffError,
InvalidBluetoothAdapterError,
+ UnsupportedPlatformError,
UnknownError = 100 // New errors must be added before Unknown error
};
diff --git a/src/bluetooth/qbluetoothdeviceinfo.h b/src/bluetooth/qbluetoothdeviceinfo.h
index 6e268dc..e543286 100644
--- a/src/bluetooth/qbluetoothdeviceinfo.h
+++ b/src/bluetooth/qbluetoothdeviceinfo.h
@@ -36,7 +36,8 @@
#include <QtBluetooth/qbluetoothglobal.h>
-#include <QtCore/QString>
+#include <QtCore/qstring.h>
+#include <QtCore/qmetatype.h>
QT_BEGIN_NAMESPACE
@@ -199,6 +200,8 @@ public:
QBluetoothDeviceInfo();
QBluetoothDeviceInfo(const QBluetoothAddress &address, const QString &name,
quint32 classOfDevice);
+ QBluetoothDeviceInfo(const QBluetoothUuid &uuid, const QString &name,
+ quint32 classOfDevice);
QBluetoothDeviceInfo(const QBluetoothDeviceInfo &other);
~QBluetoothDeviceInfo();
@@ -228,6 +231,9 @@ public:
void setCoreConfigurations(QBluetoothDeviceInfo::CoreConfigurations coreConfigs);
QBluetoothDeviceInfo::CoreConfigurations coreConfigurations() const;
+ void setDeviceUuid(const QBluetoothUuid &uuid);
+ QBluetoothUuid deviceUuid() const;
+
protected:
QBluetoothDeviceInfoPrivate *d_ptr;
@@ -235,6 +241,11 @@ private:
Q_DECLARE_PRIVATE(QBluetoothDeviceInfo)
};
+Q_DECLARE_OPERATORS_FOR_FLAGS(QBluetoothDeviceInfo::CoreConfigurations)
+Q_DECLARE_OPERATORS_FOR_FLAGS(QBluetoothDeviceInfo::ServiceClasses)
+
QT_END_NAMESPACE
+Q_DECLARE_METATYPE(QBluetoothDeviceInfo)
+
#endif
diff --git a/src/bluetooth/qbluetoothglobal.h b/src/bluetooth/qbluetoothglobal.h
index 9c64e24..830b23a 100644
--- a/src/bluetooth/qbluetoothglobal.h
+++ b/src/bluetooth/qbluetoothglobal.h
@@ -49,6 +49,9 @@ public:
QBluetoothHostInfo &operator=(const QBluetoothHostInfo &other);
+ bool operator==(const QBluetoothHostInfo &other) const;
+ bool operator!=(const QBluetoothHostInfo &other) const;
+
QBluetoothAddress address() const;
void setAddress(const QBluetoothAddress &address);
@@ -62,4 +65,6 @@ private:
QT_END_NAMESPACE
+Q_DECLARE_METATYPE(QBluetoothHostInfo)
+
#endif
diff --git a/src/bluetooth/qbluetoothlocaldevice.h b/src/bluetooth/qbluetoothlocaldevice.h
index 4a70757..bcb39bd 100644
--- a/src/bluetooth/qbluetoothlocaldevice.h
+++ b/src/bluetooth/qbluetoothlocaldevice.h
@@ -103,10 +103,12 @@ Q_SIGNALS:
private:
QBluetoothServiceDiscoveryAgentPrivate *d_ptr;
+
Q_PRIVATE_SLOT(d_func(), void _q_deviceDiscovered(const QBluetoothDeviceInfo &info))
Q_PRIVATE_SLOT(d_func(), void _q_deviceDiscoveryFinished())
Q_PRIVATE_SLOT(d_func(), void _q_deviceDiscoveryError(QBluetoothDeviceDiscoveryAgent::Error))
Q_PRIVATE_SLOT(d_func(), void _q_serviceDiscoveryFinished())
+
#ifdef QT_BLUEZ_BLUETOOTH
Q_PRIVATE_SLOT(d_func(), void _q_discoveredServices(QDBusPendingCallWatcher*))
Q_PRIVATE_SLOT(d_func(), void _q_createdDevice(QDBusPendingCallWatcher*))
@@ -122,4 +124,6 @@ private:
QT_END_NAMESPACE
+Q_DECLARE_METATYPE(QBluetoothServiceDiscoveryAgent::Error)
+
#endif
diff --git a/src/bluetooth/qbluetoothserviceinfo.h b/src/bluetooth/qbluetoothserviceinfo.h
index 1ec1d7d..b52eaf7 100644
--- a/src/bluetooth/qbluetoothserviceinfo.h
+++ b/src/bluetooth/qbluetoothserviceinfo.h
@@ -46,7 +46,6 @@
QT_BEGIN_NAMESPACE
class QBluetoothSocketPrivate;
-class QBluetoothServiceInfo;
class Q_BLUETOOTH_EXPORT QBluetoothSocket : public QIODevice
{
@@ -162,4 +161,7 @@ Q_BLUETOOTH_EXPORT QDebug operator<<(QDebug, QBluetoothSocket::SocketState);
QT_END_NAMESPACE
+Q_DECLARE_METATYPE(QBluetoothSocket::SocketError)
+Q_DECLARE_METATYPE(QBluetoothSocket::SocketState)
+
#endif
diff --git a/src/bluetooth/qbluetoothtransfermanager.h b/src/bluetooth/qbluetoothtransfermanager.h
index f252f97..6d6b031 100644
--- a/src/bluetooth/qbluetoothtransfermanager.h
+++ b/src/bluetooth/qbluetoothtransfermanager.h
@@ -77,7 +77,7 @@ public:
UdiCPlain = 0x001D,
McapControlChannel = 0x001E,
McapDataChannel = 0x001F,
- L2cap = 0x0100,
+ L2cap = 0x0100
};
enum ServiceClassUuid {
@@ -166,6 +166,12 @@ public:
CyclingSpeedAndCadence = 0x1816,
CyclingPower = 0x1818,
LocationAndNavigation = 0x1819,
+ EnvironmentalSensing = 0x181a,
+ BodyComposition = 0x181b,
+ UserData = 0x181c,
+ WeightScale = 0x181d,
+ BondManagement = 0x181e,
+ ContinuousGlucoseMonitoring = 0x181f
};
enum CharacteristicType {
@@ -180,21 +186,28 @@ public:
DateTime = 0x2a08,
DayOfWeek = 0x2a09,
DayDateTime = 0x2a0a,
+ /* 0x2a0b not defined */
ExactTime256 = 0x2a0c,
DSTOffset = 0x2a0d,
TimeZone = 0x2a0e,
LocalTimeInformation = 0x2a0f,
+ /* 0x2a10 not defined */
TimeWithDST = 0x2a11,
TimeAccuracy = 0x2a12,
TimeSource = 0x2a13,
ReferenceTimeInformation = 0x2a14,
+ /* 0x2a15 not defined */
TimeUpdateControlPoint = 0x2a16,
TimeUpdateState = 0x2a17,
GlucoseMeasurement = 0x2a18,
BatteryLevel = 0x2a19,
+ /* 0x2a1a not defined */
+ /* 0x2a1b not defined */
TemperatureMeasurement = 0x2a1c,
TemperatureType = 0x2a1d,
IntermediateTemperature = 0x2a1e,
+ /* 0x2a1f not defined */
+ /* 0x2a20 not defined */
MeasurementInterval = 0x2a21,
BootKeyboardInputReport = 0x2a22,
SystemID = 0x2a23,
@@ -206,6 +219,11 @@ public:
ManufacturerNameString = 0x2a29,
IEEE1107320601RegulatoryCertificationDataList = 0x2a2a,
CurrentTime = 0x2a2b,
+ MagneticDeclination = 0x2a2c,
+ /* 0x2a2d not defined */
+ /* 0x2a2e not defined */
+ /* 0x2a2f not defined */
+ /* 0x2a30 not defined */
ScanRefresh = 0x2a31,
BootKeyboardOutputReport = 0x2a32,
BootMouseInputReport = 0x2a33,
@@ -215,6 +233,11 @@ public:
HeartRateMeasurement = 0x2a37,
BodySensorLocation = 0x2a38,
HeartRateControlPoint = 0x2a39,
+ /* 0x2a3a not defined */
+ /* 0x2a3b not defined */
+ /* 0x2a3c not defined */
+ /* 0x2a3d not defined */
+ /* 0x2a3e not defined */
AlertStatus = 0x2a3f,
RingerControlPoint = 0x2a40,
RingerSetting = 0x2a41,
@@ -238,9 +261,19 @@ public:
RSCMeasurement = 0x2a53,
RSCFeature = 0x2a54,
SCControlPoint = 0x2a55,
+ /* 0x2a56 not defined */
+ /* 0x2a57 not defined */
+ /* 0x2a58 not defined */
+ /* 0x2a59 not defined */
+ /* 0x2a5a not defined */
CSCMeasurement = 0x2a5b,
CSCFeature = 0x2a5c,
SensorLocation = 0x2a5d,
+ /* 0x2a5e not defined */
+ /* 0x2a5f not defined */
+ /* 0x2a60 not defined */
+ /* 0x2a61 not defined */
+ /* 0x2a62 not defined */
CyclingPowerMeasurement = 0x2a63,
CyclingPowerVector = 0x2a64,
CyclingPowerFeature = 0x2a65,
@@ -250,6 +283,62 @@ public:
PositionQuality = 0x2a69,
LNFeature = 0x2a6a,
LNControlPoint = 0x2a6b,
+ Elevation = 0x2a6c,
+ Pressure = 0x2a6d,
+ Temperature = 0x2a6e,
+ Humidity = 0x2a6f,
+ TrueWindSpeed = 0x2a70,
+ TrueWindDirection = 0x2a71,
+ ApparentWindSpeed = 0x2a72,
+ ApparentWindDirection = 0x2a73,
+ GustFactor = 0x2a74,
+ PollenConcentration = 0x2a75,
+ UVIndex = 0x2a76,
+ Irradiance = 0x2a77,
+ Rainfall = 0x2a78,
+ WindChill = 0x2a79,
+ HeatIndex = 0x2a7a,
+ DewPoint = 0x2a7b,
+ /* 0x2a7c not defined */
+ DescriptorValueChanged = 0x2a7d,
+ AerobicHeartRateLowerLimit = 0x2a7e,
+ AerobicThreshold = 0x2a7f,
+ Age = 0x2a80,
+ AnaerobicHeartRateLowerLimit = 0x2a81,
+ AnaerobicHeartRateUpperLimit = 0x2a82,
+ AnaerobicThreshold = 0x2a83,
+ AerobicHeartRateUpperLimit = 0x2a84,
+ DateOfBirth = 0x2a85,
+ DateOfThresholdAssessment = 0x2a86,
+ EmailAddress = 0x2a87,
+ FatBurnHeartRateLowerLimit = 0x2a88,
+ FatBurnHeartRateUpperLimit = 0x2a89,
+ FirstName = 0x2a8a,
+ FiveZoneHeartRateLimits = 0x2a8b,
+ Gender = 0x2a8c,
+ HeartRateMax = 0x2a8d,
+ Height = 0x2a8e,
+ HipCircumference = 0x2a8f,
+ LastName = 0x2a90,
+ MaximumRecommendedHeartRate = 0x2a91,
+ RestingHeartRate = 0x2a92,
+ SportTypeForAerobicAnaerobicThresholds = 0x2a93,
+ ThreeZoneHeartRateLimits = 0x2a94,
+ TwoZoneHeartRateLimits = 0x2a95,
+ VO2Max = 0x2a96,
+ WaistCircumference = 0x2a97,
+ Weight = 0x2a98,
+ DatabaseChangeIncrement = 0x2a99,
+ UserIndex = 0x2a9a,
+ BodyCompositionFeature = 0x2a9b,
+ BodyCompositionMeasurement = 0x2a9c,
+ WeightMeasurement = 0x2a9d,
+ WeightScaleFeature = 0x2a9e,
+ UserControlPoint = 0x2a9f,
+ MagneticFluxDensity2D = 0x2aa0,
+ MagneticFluxDensity3D = 0x2aa1,
+ Language = 0x2aa2,
+ BarometricPressureTrend = 0x2aa3
};
enum DescriptorType {
@@ -262,7 +351,12 @@ public:
CharacteristicAggregateFormat = 0x2905,
ValidRange = 0x2906,
ExternalReportReference = 0x2907,
- ReportReference = 0x2908
+ ReportReference = 0x2908,
+ /* 0x2909 not defined */
+ /* 0x290a not defined */
+ EnvironmentalSensingConfiguration = 0x290b,
+ EnvironmentalSensingMeasurement = 0x290c,
+ EnvironmentalSensingTriggerSetting = 0x290d
};
QBluetoothUuid();
diff --git a/src/bluetooth/qlowenergycharacteristic.h b/src/bluetooth/qlowenergycharacteristic.h
index e0ed297..4d55236 100644
--- a/src/bluetooth/qlowenergycharacteristic.h
+++ b/src/bluetooth/qlowenergycharacteristic.h
@@ -91,6 +91,7 @@ protected:
friend class QLowEnergyService;
friend class QLowEnergyControllerPrivate;
+ friend class QLowEnergyControllerPrivateOSX;
QLowEnergyCharacteristicPrivate *data;
QLowEnergyCharacteristic(QSharedPointer<QLowEnergyServicePrivate> p,
QLowEnergyHandle handle);
diff --git a/src/bluetooth/qlowenergycontroller.h b/src/bluetooth/qlowenergycontroller.h
index 6c4be59..c5a4acd 100644
--- a/src/bluetooth/qlowenergycontroller.h
+++ b/src/bluetooth/qlowenergycontroller.h
@@ -36,6 +36,7 @@
#include <QtCore/QObject>
#include <QtBluetooth/QBluetoothAddress>
+#include <QtBluetooth/QBluetoothDeviceInfo>
#include <QtBluetooth/QBluetoothUuid>
#include <QtBluetooth/QLowEnergyService>
@@ -51,7 +52,8 @@ public:
UnknownError,
UnknownRemoteDeviceError,
NetworkError,
- InvalidBluetoothAdapterError
+ InvalidBluetoothAdapterError,
+ ConnectionError
};
enum ControllerState {
@@ -60,7 +62,7 @@ public:
ConnectedState,
DiscoveringState,
DiscoveredState,
- ClosingState,
+ ClosingState
};
enum RemoteAddressType {
@@ -69,15 +71,19 @@ public:
};
explicit QLowEnergyController(const QBluetoothAddress &remoteDevice,
+ QObject *parent = 0); // TODO Qt 6 remove ctor
+ explicit QLowEnergyController(const QBluetoothDeviceInfo &remoteDevice,
QObject *parent = 0);
explicit QLowEnergyController(const QBluetoothAddress &remoteDevice,
const QBluetoothAddress &localDevice,
- QObject *parent = 0);
+ QObject *parent = 0); // TODO Qt 6 remove ctor
~QLowEnergyController();
QBluetoothAddress localAddress() const;
QBluetoothAddress remoteAddress() const;
+ QString remoteName() const;
+
ControllerState state() const;
RemoteAddressType remoteAddressType() const;
@@ -110,4 +116,7 @@ private:
QT_END_NAMESPACE
+Q_DECLARE_METATYPE(QLowEnergyController::ControllerState)
+Q_DECLARE_METATYPE(QLowEnergyController::Error)
+
#endif // QLOWENERGYCONTROLLER_H
diff --git a/src/bluetooth/qlowenergydescriptor.h b/src/bluetooth/qlowenergydescriptor.h
index edbac25..8692a54 100644
--- a/src/bluetooth/qlowenergydescriptor.h
+++ b/src/bluetooth/qlowenergydescriptor.h
@@ -73,6 +73,7 @@ protected:
friend class QLowEnergyCharacteristic;
friend class QLowEnergyService;
friend class QLowEnergyControllerPrivate;
+ friend class QLowEnergyControllerPrivateOSX;
QLowEnergyDescriptorPrivate *data;
QLowEnergyDescriptor(QSharedPointer<QLowEnergyServicePrivate> p,
diff --git a/src/bluetooth/qlowenergyservice.h b/src/bluetooth/qlowenergyservice.h
index 903b64f..8d7f8a2 100644
--- a/src/bluetooth/qlowenergyservice.h
+++ b/src/bluetooth/qlowenergyservice.h
@@ -56,7 +56,10 @@ public:
NoError = 0,
OperationError,
CharacteristicWriteError,
- DescriptorWriteError
+ DescriptorWriteError,
+ UnknownError,
+ CharacteristicReadError,
+ DescriptorReadError
};
enum ServiceState {
@@ -64,7 +67,7 @@ public:
DiscoveryRequired, // we know start/end handle but nothing more
//TODO Rename DiscoveringServices -> DiscoveringDetails or DiscoveringService
DiscoveringServices,// discoverDetails() called and running
- ServiceDiscovered, // all details have been synchronized
+ ServiceDiscovered // all details have been synchronized
};
enum WriteMode {
@@ -89,11 +92,13 @@ public:
ServiceError error() const;
bool contains(const QLowEnergyCharacteristic &characteristic) const;
+ void readCharacteristic(const QLowEnergyCharacteristic &characteristic);
void writeCharacteristic(const QLowEnergyCharacteristic &characteristic,
const QByteArray &newValue,
WriteMode mode = WriteWithResponse);
bool contains(const QLowEnergyDescriptor &descriptor) const;
+ void readDescriptor(const QLowEnergyDescriptor &descriptor);
void writeDescriptor(const QLowEnergyDescriptor &descriptor,
const QByteArray &newValue);
@@ -101,8 +106,12 @@ Q_SIGNALS:
void stateChanged(QLowEnergyService::ServiceState newState);
void characteristicChanged(const QLowEnergyCharacteristic &info,
const QByteArray &value);
+ void characteristicRead(const QLowEnergyCharacteristic &info,
+ const QByteArray &value);
void characteristicWritten(const QLowEnergyCharacteristic &info,
const QByteArray &value);
+ void descriptorRead(const QLowEnergyDescriptor &info,
+ const QByteArray &value);
void descriptorWritten(const QLowEnergyDescriptor &info,
const QByteArray &value);
void error(QLowEnergyService::ServiceError error);
@@ -117,6 +126,11 @@ private:
QObject *parent = 0);
};
+Q_DECLARE_OPERATORS_FOR_FLAGS(QLowEnergyService::ServiceTypes)
+
QT_END_NAMESPACE
+Q_DECLARE_METATYPE(QLowEnergyService::ServiceState)
+Q_DECLARE_METATYPE(QLowEnergyService::ServiceError)
+
#endif // QLOWENERGYSERVICE_H
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development