Bluetooth: Make the bluetooth server work with Qt6 bluez5 backend

update-to-qt6-bluez-backend-changes
Simon Stürz 2026-03-09 21:16:32 +01:00
parent 81fc582087
commit 07d7479240
3 changed files with 14 additions and 6 deletions

View File

@ -511,8 +511,10 @@ void BluetoothServer::start()
// Note: https://www.bluetooth.com/specifications/gatt/services
m_deviceInfoService = m_controller->addService(deviceInformationServiceData(), m_controller);
#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
m_genericAccessService = m_controller->addService(genericAccessServiceData(), m_controller);
m_genericAttributeService = m_controller->addService(genericAttributeServiceData(), m_controller);
#endif
// Create custom services
m_networkService = new NetworkService(m_controller->addService(NetworkService::serviceData(m_networkManager), m_controller),

View File

@ -72,9 +72,7 @@ QLowEnergyServiceData NetworkService::serviceData(NetworkManager *networkManager
serviceData.setType(QLowEnergyServiceData::ServiceTypePrimary);
serviceData.setUuid(networkServiceUuid);
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
QLowEnergyDescriptorData clientConfigDescriptorData(QBluetoothUuid::DescriptorType::ClientCharacteristicConfiguration, QByteArray(2, 0));
#else
#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
QLowEnergyDescriptorData clientConfigDescriptorData(QBluetoothUuid::ClientCharacteristicConfiguration, QByteArray(2, 0));
#endif
@ -83,7 +81,9 @@ QLowEnergyServiceData NetworkService::serviceData(NetworkManager *networkManager
networkStatusData.setUuid(networkStatusCharacteristicUuid);
networkStatusData.setValue(QByteArray(1, 0));
networkStatusData.setProperties(QLowEnergyCharacteristic::Read | QLowEnergyCharacteristic::Notify);
#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
networkStatusData.addDescriptor(clientConfigDescriptorData);
#endif
networkStatusData.setValue(NetworkService::getNetworkManagerStateByteArray(networkManager->state()));
serviceData.addCharacteristic(networkStatusData);
@ -98,7 +98,9 @@ QLowEnergyServiceData NetworkService::serviceData(NetworkManager *networkManager
QLowEnergyCharacteristicData networkResponseCharacteristicData;
networkResponseCharacteristicData.setUuid(networkResponseCharacteristicUuid);
networkResponseCharacteristicData.setProperties(QLowEnergyCharacteristic::Notify);
#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
networkResponseCharacteristicData.addDescriptor(clientConfigDescriptorData);
#endif
networkResponseCharacteristicData.setValueLength(1, 1);
serviceData.addCharacteristic(networkResponseCharacteristicData);

View File

@ -80,9 +80,7 @@ QLowEnergyServiceData WirelessService::serviceData(NetworkManager *networkManage
serviceData.setType(QLowEnergyServiceData::ServiceTypePrimary);
serviceData.setUuid(wirelessServiceUuid);
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
QLowEnergyDescriptorData clientConfigDescriptorData(QBluetoothUuid::DescriptorType::ClientCharacteristicConfiguration, QByteArray(2, 0));
#else
#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
QLowEnergyDescriptorData clientConfigDescriptorData(QBluetoothUuid::ClientCharacteristicConfiguration, QByteArray(2, 0));
#endif
@ -104,7 +102,9 @@ QLowEnergyServiceData WirelessService::serviceData(NetworkManager *networkManage
QLowEnergyCharacteristicData wirelessResponseCharacteristicData;
wirelessResponseCharacteristicData.setUuid(wirelessResponseCharacteristicUuid);
wirelessResponseCharacteristicData.setProperties(QLowEnergyCharacteristic::Notify);
#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
wirelessResponseCharacteristicData.addDescriptor(clientConfigDescriptorData);
#endif
wirelessResponseCharacteristicData.setValueLength(0, 20);
serviceData.addCharacteristic(wirelessResponseCharacteristicData);
@ -112,7 +112,9 @@ QLowEnergyServiceData WirelessService::serviceData(NetworkManager *networkManage
QLowEnergyCharacteristicData wirelessStatusCharacteristicData;
wirelessStatusCharacteristicData.setUuid(wirelessStateCharacteristicUuid);
wirelessStatusCharacteristicData.setProperties(QLowEnergyCharacteristic::Read | QLowEnergyCharacteristic::Notify);
#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
wirelessStatusCharacteristicData.addDescriptor(clientConfigDescriptorData);
#endif
wirelessStatusCharacteristicData.setValueLength(1, 1);
if (networkManager->wirelessNetworkDevices().isEmpty()) {
wirelessStatusCharacteristicData.setValue(WirelessService::getWirelessNetworkDeviceState(NetworkDevice::NetworkDeviceStateUnknown));
@ -125,7 +127,9 @@ QLowEnergyServiceData WirelessService::serviceData(NetworkManager *networkManage
QLowEnergyCharacteristicData wirelessModeCharacteristicData;
wirelessModeCharacteristicData.setUuid(wirelessModeCharacteristicUuid);
wirelessModeCharacteristicData.setProperties(QLowEnergyCharacteristic::Read | QLowEnergyCharacteristic::Notify);
#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
wirelessModeCharacteristicData.addDescriptor(clientConfigDescriptorData);
#endif
wirelessModeCharacteristicData.setValueLength(1, 1);
if (networkManager->wirelessNetworkDevices().isEmpty()) {
wirelessModeCharacteristicData.setValue(WirelessService::getWirelessMode(WirelessNetworkDevice::WirelessModeUnknown));