Index: sources/bluetooth/BLEScanner.cpp =================================================================== diff -u -r9efb7cf51c882dc1f374df0b2a8b8c20efafaa4e -r7249125bb71e6fab4139590ee777c64ece9cf3be --- sources/bluetooth/BLEScanner.cpp (.../BLEScanner.cpp) (revision 9efb7cf51c882dc1f374df0b2a8b8c20efafaa4e) +++ sources/bluetooth/BLEScanner.cpp (.../BLEScanner.cpp) (revision 7249125bb71e6fab4139590ee777c64ece9cf3be) @@ -87,9 +87,15 @@ */ void BLEScanner::doSelectDevice(const QString &addr) { - onSetMacAddress(addr); + if (addr != macAddress) + onSetMacAddress(addr); + + discoveryAgent->stop(); + emit didFinishScan(); + for (const QBluetoothDeviceInfo &deviceInfo : devices) { if (deviceInfo.address().toString() == addr) { + selectedDeviceInfo = deviceInfo; onConnectToDevice(deviceInfo); return; } @@ -103,9 +109,13 @@ */ void BLEScanner::onDeviceDiscovered(const QBluetoothDeviceInfo& deviceInfo) { - qDebug() << __FUNCTION__ << deviceInfo.address(); - devices.append(deviceInfo); - emit didDiscoverDevice(deviceInfo); + for (const QString &prefix : omronDeviceNamesPrefixes) { + if (deviceInfo.name().toLower().contains(prefix.toLower())) + { + devices.append(deviceInfo); + emit didDiscoverDevice(deviceInfo); + } + } } /*! @@ -253,10 +263,7 @@ qDebug() << "Invalid service state"; break; } - } - - } /*! @@ -268,17 +275,14 @@ */ void BLEScanner::onCharacteristicChanged(const QLowEnergyCharacteristic &c, const QByteArray &byteArray) { - qDebug() << "@@@@@@@@ Data Read @@@@@@@@@@: " << c.name() << byteArray; if (c.uuid() != QBluetoothUuid(QBluetoothUuid::BloodPressureMeasurement)) { qDebug() << "Ignoring data read for " << c.uuid(); return; } - doParseMeasurement(byteArray); - } /*! @@ -328,7 +332,6 @@ qDebug() << "measurement_status: " << measurement.measurement_status; emit didReceiveBPMeasurement(measurement); - } /*! @@ -347,7 +350,7 @@ delete omronBloodPressureService; omronBloodPressureService = nullptr; } - + emit didConnectToDevice(selectedDeviceInfo); } /*! @@ -359,7 +362,6 @@ void BLEScanner::onServiceCharacteristicsRead(const QLowEnergyCharacteristic &c,const QByteArray &byteArray) { qDebug() << __FUNCTION__ << c.name() << " data: " << byteArray; - } /*! @@ -389,7 +391,6 @@ connect(service, SIGNAL(descriptorWritten(QLowEnergyDescriptor, QByteArray)), this, SLOT(onConfirmedDescriptorWrite(QLowEnergyDescriptor, QByteArray))); } - } /*! @@ -400,6 +401,7 @@ void BLEScanner::onControllerError(const QLowEnergyController::Error &error) { qDebug() << __FUNCTION__ << "LE controller error: " << error; + emit didReceiveControllerError(error); } /*! @@ -451,5 +453,6 @@ connect(lowEnergyController, SIGNAL(disconnected()), this, SLOT(onDeviceDisconnected())); + emit didStartConnectingToDevice(); lowEnergyController->connectToDevice(); }