From e42764371df7a0d120cbe7fa69403c3937c44f2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 17 Nov 2020 11:31:02 +0100 Subject: [PATCH 1/4] Rename company name to nymea --- libnymea-networkmanager/bluetooth/bluetoothserver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libnymea-networkmanager/bluetooth/bluetoothserver.cpp b/libnymea-networkmanager/bluetooth/bluetoothserver.cpp index a20649c..07684b4 100644 --- a/libnymea-networkmanager/bluetooth/bluetoothserver.cpp +++ b/libnymea-networkmanager/bluetooth/bluetoothserver.cpp @@ -175,7 +175,7 @@ QLowEnergyServiceData BluetoothServer::deviceInformationServiceData() // Manufacturer name string 0x2a29 QLowEnergyCharacteristicData manufacturerNameCharData; manufacturerNameCharData.setUuid(QBluetoothUuid::ManufacturerNameString); - manufacturerNameCharData.setValue(QString("guh GmbH").toUtf8()); + manufacturerNameCharData.setValue(QString("nymea GmbH").toUtf8()); manufacturerNameCharData.setProperties(QLowEnergyCharacteristic::Read); serviceData.addCharacteristic(manufacturerNameCharData); From 06cc9774420449040e30e9cf00f7d2b82699d3ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 17 Nov 2020 12:45:27 +0100 Subject: [PATCH 2/4] Change sshudown order of bluetooth server and delete the objects later --- .../bluetooth/bluetoothserver.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libnymea-networkmanager/bluetooth/bluetoothserver.cpp b/libnymea-networkmanager/bluetooth/bluetoothserver.cpp index 07684b4..bc357ab 100644 --- a/libnymea-networkmanager/bluetooth/bluetoothserver.cpp +++ b/libnymea-networkmanager/bluetooth/bluetoothserver.cpp @@ -462,7 +462,7 @@ void BluetoothServer::start() advertisingData.setDiscoverability(QLowEnergyAdvertisingData::DiscoverabilityGeneral); advertisingData.setIncludePowerLevel(true); advertisingData.setLocalName(m_advertiseName); - // FIXME: set guh manufacturer SIG data once available + // FIXME: set manufacturer SIG data once available // Note: start advertising in 100 ms interval, this makes the device better discoverable on certain phones QLowEnergyAdvertisingParameters advertisingParameters; @@ -479,20 +479,20 @@ void BluetoothServer::stop() qCDebug(dcNetworkManagerBluetoothServer()) << "Stopping bluetooth server."; qCDebug(dcNetworkManagerBluetoothServer()) << "-------------------------------------"; - if (m_localDevice) { - qCDebug(dcNetworkManagerBluetoothServer()) << "Set host mode to connectable."; - m_localDevice->setHostMode(QBluetoothLocalDevice::HostConnectable); - delete m_localDevice; - m_localDevice = nullptr; - } - if (m_controller) { qCDebug(dcNetworkManagerBluetoothServer()) << "Stop advertising."; m_controller->stopAdvertising(); - delete m_controller; + m_controller->deleteLater(); m_controller = nullptr; } + if (m_localDevice) { + qCDebug(dcNetworkManagerBluetoothServer()) << "Set host mode to connectable."; + m_localDevice->setHostMode(QBluetoothLocalDevice::HostConnectable); + m_localDevice->deleteLater(); + m_localDevice = nullptr; + } + setConnected(false); setRunning(false); } From 6cc5735000d5012aad3e9d678dd4496a76555365 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 17 Nov 2020 15:44:03 +0100 Subject: [PATCH 3/4] Change states for bluetooth server --- libnymea-networkmanager/bluetooth/bluetoothserver.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libnymea-networkmanager/bluetooth/bluetoothserver.cpp b/libnymea-networkmanager/bluetooth/bluetoothserver.cpp index bc357ab..6b3315f 100644 --- a/libnymea-networkmanager/bluetooth/bluetoothserver.cpp +++ b/libnymea-networkmanager/bluetooth/bluetoothserver.cpp @@ -242,7 +242,7 @@ void BluetoothServer::setRunning(bool running) { if (m_running == running) return; - + qCDebug(dcNetworkManagerBluetoothServer()) << "Set running" << running; m_running = running; emit runningChanged(m_running); } @@ -252,6 +252,7 @@ void BluetoothServer::setConnected(bool connected) if (m_connected == connected) return; + qCDebug(dcNetworkManagerBluetoothServer()) << "Set connected" << connected; m_connected = connected; emit connectedChanged(m_connected); } @@ -301,6 +302,7 @@ void BluetoothServer::onDeviceConnected(const QBluetoothAddress &address) void BluetoothServer::onDeviceDisconnected(const QBluetoothAddress &address) { qCDebug(dcNetworkManagerBluetoothServer()) << "Device disconnected" << address.toString(); + setConnected(false); } void BluetoothServer::onError(QLowEnergyController::Error error) @@ -317,7 +319,6 @@ void BluetoothServer::onConnected() void BluetoothServer::onDisconnected() { qCDebug(dcNetworkManagerBluetoothServer()) << "Client disconnected"; - setConnected(false); stop(); } @@ -326,7 +327,7 @@ void BluetoothServer::onControllerStateChanged(QLowEnergyController::ControllerS switch (state) { case QLowEnergyController::UnconnectedState: qCDebug(dcNetworkManagerBluetoothServer()) << "Controller state disonnected."; - setConnected(false); + setRunning(false); break; case QLowEnergyController::ConnectingState: qCDebug(dcNetworkManagerBluetoothServer()) << "Controller state connecting..."; @@ -493,6 +494,5 @@ void BluetoothServer::stop() m_localDevice = nullptr; } - setConnected(false); - setRunning(false); + // Let the events set the state connected and running } From 999be7b73ad1b9b5df02760f1f51b6d36e554ae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Tue, 17 Nov 2020 18:08:17 +0100 Subject: [PATCH 4/4] Prevent double printing of stop message --- libnymea-networkmanager/bluetooth/bluetoothserver.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libnymea-networkmanager/bluetooth/bluetoothserver.cpp b/libnymea-networkmanager/bluetooth/bluetoothserver.cpp index 6b3315f..daf2a60 100644 --- a/libnymea-networkmanager/bluetooth/bluetoothserver.cpp +++ b/libnymea-networkmanager/bluetooth/bluetoothserver.cpp @@ -476,6 +476,10 @@ void BluetoothServer::start() void BluetoothServer::stop() { + // Prevent printing the stop message twice in case of different shutdown reasons + if (!m_controller && !m_localDevice) + return; + qCDebug(dcNetworkManagerBluetoothServer()) << "-------------------------------------"; qCDebug(dcNetworkManagerBluetoothServer()) << "Stopping bluetooth server."; qCDebug(dcNetworkManagerBluetoothServer()) << "-------------------------------------";