Commit 90ae5766 authored by Alex Blasche's avatar Alex Blasche
Browse files

Fix failing restart of HeartRateServer example


Disconnecting from central devices invalidates the peripheral's service.
The change ensures that the service is recreated upon disconnection.

Change-Id: I2defc6ffb4c9f23d70b6f181c25f47746b3859a4
Reviewed-by: default avatarOliver Wolff <oliver.wolff@qt.io>
parent 9004e89b
No related merge requests found
Showing with 7 additions and 4 deletions
...@@ -93,7 +93,7 @@ int main(int argc, char *argv[]) ...@@ -93,7 +93,7 @@ int main(int argc, char *argv[])
//! [Start Advertising] //! [Start Advertising]
const QScopedPointer<QLowEnergyController> leController(QLowEnergyController::createPeripheral()); const QScopedPointer<QLowEnergyController> leController(QLowEnergyController::createPeripheral());
const QScopedPointer<QLowEnergyService> service(leController->addService(serviceData)); QScopedPointer<QLowEnergyService> service(leController->addService(serviceData));
leController->startAdvertising(QLowEnergyAdvertisingParameters(), advertisingData, leController->startAdvertising(QLowEnergyAdvertisingParameters(), advertisingData,
advertisingData); advertisingData);
//! [Start Advertising] //! [Start Advertising]
...@@ -123,9 +123,12 @@ int main(int argc, char *argv[]) ...@@ -123,9 +123,12 @@ int main(int argc, char *argv[])
heartbeatTimer.start(1000); heartbeatTimer.start(1000);
//! [Provide Heartbeat] //! [Provide Heartbeat]
auto reconnect = [&leController, advertisingData]() { auto reconnect = [&leController, advertisingData, &service, serviceData]()
leController->startAdvertising(QLowEnergyAdvertisingParameters(), advertisingData, {
advertisingData); service.reset(leController->addService(serviceData));
if (!service.isNull())
leController->startAdvertising(QLowEnergyAdvertisingParameters(),
advertisingData, advertisingData);
}; };
QObject::connect(leController.data(), &QLowEnergyController::disconnected, reconnect); QObject::connect(leController.data(), &QLowEnergyController::disconnected, reconnect);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment