diff options
-rw-r--r-- | examples/bluetooth/heartlistener/heartrate.cpp | 10 | ||||
-rw-r--r-- | examples/bluetooth/lowenergyscanner/device.cpp | 11 | ||||
-rw-r--r-- | src/bluetooth/doc/snippets/doc_src_qtbluetooth.cpp | 4 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycontroller.cpp | 4 | ||||
-rw-r--r-- | src/bluetooth/qlowenergycontroller.h | 4 | ||||
-rw-r--r-- | tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp | 13 | ||||
-rw-r--r-- | tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp | 98 |
7 files changed, 57 insertions, 87 deletions
diff --git a/examples/bluetooth/heartlistener/heartrate.cpp b/examples/bluetooth/heartlistener/heartrate.cpp index b4496925..fe53a740 100644 --- a/examples/bluetooth/heartlistener/heartrate.cpp +++ b/examples/bluetooth/heartlistener/heartrate.cpp @@ -152,15 +152,7 @@ void HeartRate::connectToService(const QString &address) } //! [Connect signals] -#ifdef Q_OS_MAC - // with CoreBluetooth controller requires QBluetoothDeviceInfo to connect: - m_control = new QLowEnergyController(m_currentDevice.getDevice(), - this); - -#else - m_control = new QLowEnergyController(m_currentDevice.getDevice().address(), - this); -#endif + m_control = new QLowEnergyController(m_currentDevice.getDevice(), this); connect(m_control, SIGNAL(serviceDiscovered(QBluetoothUuid)), this, SLOT(serviceDiscovered(QBluetoothUuid))); connect(m_control, SIGNAL(discoveryFinished()), diff --git a/examples/bluetooth/lowenergyscanner/device.cpp b/examples/bluetooth/lowenergyscanner/device.cpp index a95bc48b..5ef2cf76 100644 --- a/examples/bluetooth/lowenergyscanner/device.cpp +++ b/examples/bluetooth/lowenergyscanner/device.cpp @@ -158,12 +158,7 @@ void Device::scanServices(const QString &address) setUpdate("Back\n(Connecting to device...)"); -#ifdef Q_OS_MAC if (controller && m_previousAddress != currentDevice.getAddress()) { - m_previousAddress = currentDevice.getAddress(); -#else - if (controller && controller->remoteAddress() != currentDevice.getDevice().address()) { -#endif controller->disconnectFromDevice(); delete controller; controller = 0; @@ -172,11 +167,7 @@ void Device::scanServices(const QString &address) //! [les-controller-1] if (!controller) { // Connecting signals and slots for connecting to LE services. -#ifdef Q_OS_MAC controller = new QLowEnergyController(currentDevice.getDevice()); -#else - controller = new QLowEnergyController(currentDevice.getDevice().address()); -#endif connect(controller, SIGNAL(connected()), this, SLOT(deviceConnected())); connect(controller, SIGNAL(error(QLowEnergyController::Error)), @@ -195,6 +186,8 @@ void Device::scanServices(const QString &address) controller->setRemoteAddressType(QLowEnergyController::PublicAddress); controller->connectToDevice(); //! [les-controller-1] + + m_previousAddress = currentDevice.getAddress(); } void Device::addLowEnergyService(const QBluetoothUuid &serviceUuid) diff --git a/src/bluetooth/doc/snippets/doc_src_qtbluetooth.cpp b/src/bluetooth/doc/snippets/doc_src_qtbluetooth.cpp index 0c017e45..1eec9206 100644 --- a/src/bluetooth/doc/snippets/doc_src_qtbluetooth.cpp +++ b/src/bluetooth/doc/snippets/doc_src_qtbluetooth.cpp @@ -190,7 +190,7 @@ void MyClass::characteristicChanged(const QLowEnergyCharacteristic &, const QByt void MyClass::btleSharedData() { - QBluetoothAddress remoteDevice; + QBluetoothDeviceInfo remoteDevice; //! [data_share_qlowenergyservice] QLowEnergyService *first, *second; @@ -213,7 +213,7 @@ void MyClass::btleSharedData() void MyClass::enableCharNotifications() { - QBluetoothAddress remoteDevice; + QBluetoothDeviceInfo remoteDevice; QLowEnergyService *service; QLowEnergyController *control = new QLowEnergyController(remoteDevice, this); control->connectToDevice(); diff --git a/src/bluetooth/qlowenergycontroller.cpp b/src/bluetooth/qlowenergycontroller.cpp index 0953ad5d..ee8ff180 100644 --- a/src/bluetooth/qlowenergycontroller.cpp +++ b/src/bluetooth/qlowenergycontroller.cpp @@ -385,6 +385,8 @@ quint16 QLowEnergyControllerPrivate::updateValueOfDescriptor( The controller uses the local default Bluetooth adapter for the connection management. + + \obsolete */ QLowEnergyController::QLowEnergyController( const QBluetoothAddress &remoteDevice, @@ -435,6 +437,8 @@ QLowEnergyController::QLowEnergyController( \a localDevice specifies a local device that is not a local Bluetooth adapter, \l error() is set to \l InvalidBluetoothAdapterError once \l connectToDevice() is called. + + \obsolete */ QLowEnergyController::QLowEnergyController( const QBluetoothAddress &remoteDevice, diff --git a/src/bluetooth/qlowenergycontroller.h b/src/bluetooth/qlowenergycontroller.h index f3a6603e..c5a4acd3 100644 --- a/src/bluetooth/qlowenergycontroller.h +++ b/src/bluetooth/qlowenergycontroller.h @@ -71,12 +71,12 @@ public: }; explicit QLowEnergyController(const QBluetoothAddress &remoteDevice, - QObject *parent = 0); + 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; diff --git a/tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp b/tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp index ffed9f6f..de77046e 100644 --- a/tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp +++ b/tests/auto/qlowenergycharacteristic/tst_qlowenergycharacteristic.cpp @@ -75,7 +75,7 @@ private slots: void tst_assignCompare(); private: - QSet<QString> remoteLeDevices; + QList<QBluetoothDeviceInfo> remoteLeDevices; QLowEnergyController *globalControl; QLowEnergyService *globalService; }; @@ -121,9 +121,10 @@ void tst_QLowEnergyCharacteristic::initTestCase() // find first service with descriptor QLowEnergyController *controller = 0; - foreach (const QString &remoteDevice, remoteLeDevices.toList()) { - controller = new QLowEnergyController(QBluetoothAddress(remoteDevice), this); - qDebug() << "Connecting to" << remoteDevice; + foreach (const QBluetoothDeviceInfo &remoteDevice, remoteLeDevices) { + controller = new QLowEnergyController(remoteDevice, this); + qDebug() << "Connecting to" << remoteDevice.name() + << remoteDevice.address() << remoteDevice.deviceUuid(); controller->connectToDevice(); QTRY_IMPL(controller->state() != QLowEnergyController::ConnectingState, 20000); @@ -158,7 +159,7 @@ void tst_QLowEnergyCharacteristic::initTestCase() if (!ch.descriptors().isEmpty()) { globalService = leService; globalControl = controller; - qWarning() << "Found service with descriptor" << remoteDevice + qWarning() << "Found service with descriptor" << remoteDevice.address() << globalService->serviceName() << globalService->serviceUuid(); break; } @@ -191,7 +192,7 @@ void tst_QLowEnergyCharacteristic::cleanupTestCase() void tst_QLowEnergyCharacteristic::deviceDiscovered(const QBluetoothDeviceInfo &info) { if (info.coreConfigurations() & QBluetoothDeviceInfo::LowEnergyCoreConfiguration) - remoteLeDevices.insert(info.address().toString()); + remoteLeDevices.append(info); } void tst_QLowEnergyCharacteristic::tst_constructionDefault() diff --git a/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp b/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp index 5faf5fee..50ecc099 100644 --- a/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp +++ b/tests/auto/qlowenergycontroller/tst_qlowenergycontroller.cpp @@ -156,8 +156,8 @@ void tst_QLowEnergyController::initTestCase() // On OS X/iOS the only way to find the device we are // interested in - is to use device's name. if (info.name().contains("Sensor") && info.name().contains("Tag")) { - remoteDeviceInfo = info; #endif + remoteDeviceInfo = info; deviceFound = true; break; } @@ -249,31 +249,23 @@ void tst_QLowEnergyController::tst_connect() { QList<QBluetoothHostInfo> localAdapters = QBluetoothLocalDevice::allDevices(); -#ifndef Q_OS_MAC - if (localAdapters.isEmpty() || remoteDevice.isNull()) -#elif defined(Q_OS_OSX) - if (localAdapters.isEmpty() || remoteDeviceInfo.deviceUuid().isNull()) -#elif defined (Q_OS_IOS) - if (remoteDeviceInfo.deviceUuid().isNull()) +#ifdef Q_OS_IOS + if (remoteDeviceInfo.isValid()) +#else + if (localAdapters.isEmpty() || !remoteDeviceInfo.isValid()) #endif QSKIP("No local Bluetooth or remote BTLE device found. Skipping test."); -#ifndef Q_OS_IOS - const QBluetoothAddress localAdapter = localAdapters.at(0).address(); -#endif - -#ifndef Q_OS_MAC - QLowEnergyController control(remoteDevice); -#else - // Create a low energy controller using Apple's - // uuid (NSUUID). QLowEnergyController control(remoteDeviceInfo); -#endif - QSignalSpy connectedSpy(&control, SIGNAL(connected())); QSignalSpy disconnectedSpy(&control, SIGNAL(disconnected())); + if (remoteDeviceInfo.name().isEmpty()) + QVERIFY(control.remoteName().isEmpty()); + else + QCOMPARE(control.remoteName(), remoteDeviceInfo.name()); #ifndef Q_OS_IOS + const QBluetoothAddress localAdapter = localAdapters.at(0).address(); QCOMPARE(control.localAddress(), localAdapter); QVERIFY(!control.localAddress().isNull()); #endif @@ -417,16 +409,14 @@ void tst_QLowEnergyController::tst_concurrentDiscovery() { #ifndef Q_OS_MAC QList<QBluetoothHostInfo> localAdapters = QBluetoothLocalDevice::allDevices(); - if (localAdapters.isEmpty() || remoteDevice.isNull()) - QSKIP("No local Bluetooth or remote BTLE device found. Skipping test."); + if (localAdapters.isEmpty()) + QSKIP("No local Bluetooth device found. Skipping test."); +#endif - // quick setup - more elaborate test is done by connectNew() - QLowEnergyController control(remoteDevice); -#else - if (remoteDeviceInfo.deviceUuid().isNull()) - QSKIP("No local Bluetooth or remote BTLE device found. Skipping test."); + if (!remoteDeviceInfo.isValid()) + QSKIP("No remote BTLE device found. Skipping test."); QLowEnergyController control(remoteDeviceInfo); -#endif + QCOMPARE(control.state(), QLowEnergyController::UnconnectedState); QCOMPARE(control.error(), QLowEnergyController::NoError); @@ -1659,16 +1649,13 @@ void tst_QLowEnergyController::tst_writeCharacteristic() { #ifndef Q_OS_MAC QList<QBluetoothHostInfo> localAdapters = QBluetoothLocalDevice::allDevices(); - if (localAdapters.isEmpty() || remoteDevice.isNull()) - QSKIP("No local Bluetooth or remote BTLE device found. Skipping test."); + if (localAdapters.isEmpty()) + QSKIP("No local Bluetooth device found. Skipping test."); +#endif - // quick setup - more elaborate test is done by connect() - QLowEnergyController control(remoteDevice); -#else - if (remoteDeviceInfo.deviceUuid().isNull()) - QSKIP("No local Bluetooth or remote BTLE device found. Skipping test."); + if (!remoteDeviceInfo.isValid()) + QSKIP("No remote BTLE device found. Skipping test."); QLowEnergyController control(remoteDeviceInfo); -#endif QCOMPARE(control.error(), QLowEnergyController::NoError); @@ -1836,14 +1823,14 @@ void tst_QLowEnergyController::tst_readWriteDescriptor() { #ifndef Q_OS_MAC QList<QBluetoothHostInfo> localAdapters = QBluetoothLocalDevice::allDevices(); - if (localAdapters.isEmpty() || remoteDevice.isNull()) - QSKIP("No local Bluetooth or remote BTLE device found. Skipping test."); - QLowEnergyController control(remoteDevice); -#else - if (remoteDeviceInfo.deviceUuid().isNull()) - QSKIP("No local Bluetooth or remote BTLE device found. Skipping test."); - QLowEnergyController control(remoteDeviceInfo); + if (localAdapters.isEmpty()) + QSKIP("No local Bluetooth device found. Skipping test."); #endif + + if (!remoteDeviceInfo.isValid()) + QSKIP("No remote BTLE device found. Skipping test."); + QLowEnergyController control(remoteDeviceInfo); + // quick setup - more elaborate test is done by connect() control.connectToDevice(); { @@ -2259,17 +2246,13 @@ void tst_QLowEnergyController::tst_errorCases() { #ifndef Q_OS_MAC QList<QBluetoothHostInfo> localAdapters = QBluetoothLocalDevice::allDevices(); - if (localAdapters.isEmpty() || remoteDevice.isNull()) - QSKIP("No local Bluetooth or remote BTLE device found. Skipping test."); - - // quick setup - more elaborate test is done by connect() - QLowEnergyController control(remoteDevice); -#else - if (remoteDeviceInfo.deviceUuid().isNull()) - QSKIP("No local Bluetooth or remote BTLE device found. Skipping test."); + if (localAdapters.isEmpty()) + QSKIP("No local Bluetooth device found. Skipping test."); +#endif + if (!remoteDeviceInfo.isValid()) + QSKIP("No remote BTLE device found. Skipping test."); QLowEnergyController control(remoteDeviceInfo); -#endif QCOMPARE(control.error(), QLowEnergyController::NoError); control.connectToDevice(); @@ -2485,17 +2468,14 @@ void tst_QLowEnergyController::tst_writeCharacteristicNoResponse() { #ifndef Q_OS_MAC QList<QBluetoothHostInfo> localAdapters = QBluetoothLocalDevice::allDevices(); - if (localAdapters.isEmpty() || remoteDevice.isNull()) - QSKIP("No local Bluetooth or remote BTLE device found. Skipping test."); - - // quick setup - more elaborate test is done by connect() - QLowEnergyController control(remoteDevice); -#else - if (remoteDeviceInfo.deviceUuid().isNull()) - QSKIP("No local Bluetooth or remote BTLE device found. Skipping test."); + if (localAdapters.isEmpty()) + QSKIP("No local Bluetooth device found. Skipping test."); +#endif + if (!remoteDeviceInfo.isValid()) + QSKIP("No remote BTLE device found. Skipping test."); QLowEnergyController control(remoteDeviceInfo); -#endif + QCOMPARE(control.error(), QLowEnergyController::NoError); control.connectToDevice(); |