Merge PR #175: Nuimo: Make it work with Bluez 5.48 (except battery service)
commit
33c1180a09
|
|
@ -305,7 +305,13 @@ void Nuimo::onConnectedChanged(bool connected)
|
||||||
if (!connected) {
|
if (!connected) {
|
||||||
// Clean up services
|
// Clean up services
|
||||||
m_deviceInfoService->deleteLater();
|
m_deviceInfoService->deleteLater();
|
||||||
m_batteryService->deleteLater();
|
|
||||||
|
// FIXME: As of BlueZ 5.48, the Battery service isn't expose in the same way any more.
|
||||||
|
// Until that's fixed m_batteryService might never be initialized
|
||||||
|
if (m_batteryService) {
|
||||||
|
m_batteryService->deleteLater();
|
||||||
|
}
|
||||||
|
|
||||||
m_ledMatrixService->deleteLater();
|
m_ledMatrixService->deleteLater();
|
||||||
m_inputService->deleteLater();
|
m_inputService->deleteLater();
|
||||||
|
|
||||||
|
|
@ -327,11 +333,13 @@ void Nuimo::onServiceDiscoveryFinished()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_bluetoothDevice->serviceUuids().contains(QBluetoothUuid::BatteryService)) {
|
// FIXME: As of BlueZ 5.48, the Battery service isn't expose in the same way any more.
|
||||||
qCWarning(dcSenic()) << "Battery service not found for device" << bluetoothDevice()->name() << bluetoothDevice()->address().toString();
|
// For now we're deactivating this check to make the Nuimo still work despite the broken battery info
|
||||||
emit deviceInitializationFinished(false);
|
// if (!m_bluetoothDevice->serviceUuids().contains(QBluetoothUuid::BatteryService)) {
|
||||||
return;
|
// qCWarning(dcSenic()) << "Battery service not found for device" << bluetoothDevice()->name() << bluetoothDevice()->address().toString();
|
||||||
}
|
// emit deviceInitializationFinished(false);
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
if (!m_bluetoothDevice->serviceUuids().contains(ledMatrinxServiceUuid)) {
|
if (!m_bluetoothDevice->serviceUuids().contains(ledMatrinxServiceUuid)) {
|
||||||
qCWarning(dcSenic()) << "Led matrix service not found for device" << bluetoothDevice()->name() << bluetoothDevice()->address().toString();
|
qCWarning(dcSenic()) << "Led matrix service not found for device" << bluetoothDevice()->name() << bluetoothDevice()->address().toString();
|
||||||
|
|
@ -366,15 +374,18 @@ void Nuimo::onServiceDiscoveryFinished()
|
||||||
m_batteryService = m_bluetoothDevice->controller()->createServiceObject(QBluetoothUuid::BatteryService, this);
|
m_batteryService = m_bluetoothDevice->controller()->createServiceObject(QBluetoothUuid::BatteryService, this);
|
||||||
if (!m_batteryService) {
|
if (!m_batteryService) {
|
||||||
qCWarning(dcSenic()) << "Could not create battery service.";
|
qCWarning(dcSenic()) << "Could not create battery service.";
|
||||||
emit deviceInitializationFinished(false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
connect(m_batteryService, &QLowEnergyService::stateChanged, this, &Nuimo::onBatteryServiceStateChanged);
|
// FIXME: As of BlueZ 5.48, the Battery service isn't expose in the same way any more.
|
||||||
connect(m_batteryService, &QLowEnergyService::characteristicChanged, this, &Nuimo::onBatteryCharacteristicChanged);
|
// For now we're deactivating this check to make the Nuimo still work despite the broken battery info
|
||||||
|
// emit deviceInitializationFinished(false);
|
||||||
|
// return;
|
||||||
|
} else {
|
||||||
|
connect(m_batteryService, &QLowEnergyService::stateChanged, this, &Nuimo::onBatteryServiceStateChanged);
|
||||||
|
connect(m_batteryService, &QLowEnergyService::characteristicChanged, this, &Nuimo::onBatteryCharacteristicChanged);
|
||||||
|
|
||||||
if (m_batteryService->state() == QLowEnergyService::DiscoveryRequired) {
|
if (m_batteryService->state() == QLowEnergyService::DiscoveryRequired) {
|
||||||
m_batteryService->discoverDetails();
|
m_batteryService->discoverDetails();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue