From 3e959b3bce65b4b01a6499817d3f8f393f4bf836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 28 Nov 2017 18:58:06 +0100 Subject: [PATCH] Add discovery check --- libguh/bluetooth/bluetoothlowenergydevice.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/libguh/bluetooth/bluetoothlowenergydevice.cpp b/libguh/bluetooth/bluetoothlowenergydevice.cpp index f8916e94..f3d56fcc 100644 --- a/libguh/bluetooth/bluetoothlowenergydevice.cpp +++ b/libguh/bluetooth/bluetoothlowenergydevice.cpp @@ -55,6 +55,7 @@ void BluetoothLowEnergyDevice::setConnected(const bool &connected) { if (m_connected != connected) { m_connected = connected; + qCDebug(dcBluetooth()) << "Device" << name() << address().toString() << (connected ? "connected" : "disconnected"); emit connectedChanged(m_connected); } } @@ -74,11 +75,12 @@ void BluetoothLowEnergyDevice::setEnabled(const bool &enabled) void BluetoothLowEnergyDevice::onConnected() { - qCDebug(dcBluetooth()) << "Device connected" << name() << address().toString(); setConnected(true); - qCDebug(dcBluetooth()) << "Discover services on" << name() << address().toString(); - m_controller->discoverServices(); + if (m_controller->state() != QLowEnergyController::DiscoveredState) { + qCDebug(dcBluetooth()) << "Discover services on" << name() << address().toString(); + m_controller->discoverServices(); + } } void BluetoothLowEnergyDevice::onDisconnected() @@ -107,6 +109,10 @@ void BluetoothLowEnergyDevice::connectDevice() if (!m_enabled) return; + // Only connect if not connected + if (m_controller->state() != QLowEnergyController::UnconnectedState) + return; + m_controller->connectToDevice(); }