mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
core/bluetooth: stop discovery once the dive computer has been found
There is no need to continue to look, and at least with the Shearwater Peregrine having the scan run while we are trying to discover characteristics appeared to cause issues. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
ba3efae6e8
commit
c87e028602
2 changed files with 15 additions and 2 deletions
|
@ -404,6 +404,14 @@ void BTDiscovery::discoverAddress(QString address)
|
|||
}
|
||||
}
|
||||
|
||||
void BTDiscovery::stopAgent()
|
||||
{
|
||||
if (!discoveryAgent)
|
||||
return;
|
||||
qDebug() << "---> stopping the discovery agent";
|
||||
discoveryAgent->stop();
|
||||
}
|
||||
|
||||
bool isBluetoothAddress(const QString &address)
|
||||
{
|
||||
return extractBluetoothAddress(address) != QString();
|
||||
|
@ -442,8 +450,10 @@ void saveBtDeviceInfo(const QString &devaddr, QBluetoothDeviceInfo deviceInfo)
|
|||
|
||||
QBluetoothDeviceInfo getBtDeviceInfo(const QString &devaddr)
|
||||
{
|
||||
if (btDeviceInfo.contains(devaddr))
|
||||
if (btDeviceInfo.contains(devaddr)) {
|
||||
BTDiscovery::instance()->stopAgent();
|
||||
return btDeviceInfo[devaddr];
|
||||
}
|
||||
if(!btDeviceInfo.keys().contains(devaddr)) {
|
||||
qDebug() << "still looking scan is still running, we should just wait for a few moments";
|
||||
// wait for a maximum of 30 more seconds
|
||||
|
@ -451,8 +461,10 @@ QBluetoothDeviceInfo getBtDeviceInfo(const QString &devaddr)
|
|||
QElapsedTimer timer;
|
||||
timer.start();
|
||||
do {
|
||||
if (btDeviceInfo.keys().contains(devaddr))
|
||||
if (btDeviceInfo.keys().contains(devaddr)) {
|
||||
BTDiscovery::instance()->stopAgent();
|
||||
return btDeviceInfo[devaddr];
|
||||
}
|
||||
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
|
||||
QThread::msleep(100);
|
||||
} while (timer.elapsed() < 30000);
|
||||
|
|
|
@ -47,6 +47,7 @@ public:
|
|||
void btDeviceDiscoveredMain(const btPairedDevice &device);
|
||||
bool btAvailable() const;
|
||||
void showNonDiveComputers(bool show);
|
||||
void stopAgent();
|
||||
|
||||
#if defined(Q_OS_ANDROID)
|
||||
void getBluetoothDevices();
|
||||
|
|
Loading…
Add table
Reference in a new issue