Merge PR #29: Add Qt6 support
This commit is contained in:
commit
364da1f62a
@ -1,7 +1,7 @@
|
|||||||
Source: libnymea-networkmanager
|
Source: libnymea-networkmanager
|
||||||
Section: utils
|
Section: utils
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: Simon Stürz <simon.stuerz@nymea.io>
|
Maintainer: nymea GmbH <developer@nymea.io>
|
||||||
Standards-Version: 4.6.0
|
Standards-Version: 4.6.0
|
||||||
Build-Depends: debhelper,
|
Build-Depends: debhelper,
|
||||||
dpkg-dev,
|
dpkg-dev,
|
||||||
@ -18,8 +18,8 @@ Section: libs
|
|||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends},
|
Depends: ${shlibs:Depends},
|
||||||
${misc:Depends},
|
${misc:Depends},
|
||||||
Description: Qt 5 based library for the network-manager DBus API.
|
Description: Qt based library for the network-manager DBus API.
|
||||||
Qt 5 based library for the network-manager DBus API.
|
Qt based library for the network-manager DBus API.
|
||||||
|
|
||||||
|
|
||||||
Package: libnymea-networkmanager-dev
|
Package: libnymea-networkmanager-dev
|
||||||
@ -29,5 +29,5 @@ Depends: ${shlibs:Depends},
|
|||||||
${misc:Depends},
|
${misc:Depends},
|
||||||
pkg-config,
|
pkg-config,
|
||||||
libnymea-networkmanager (= ${binary:Version}),
|
libnymea-networkmanager (= ${binary:Version}),
|
||||||
Description: Qt 5 based library for the network-manager DBus API - development files
|
Description: Qt based library for the network-manager DBus API - development files
|
||||||
Development files for Qt 5 based network-manager DBus API.
|
Development files for Qt based network-manager DBus API.
|
||||||
@ -7,5 +7,5 @@ License: LGPL-3
|
|||||||
Public License can be found in `/usr/share/common-licenses/LGPL-3'.
|
Public License can be found in `/usr/share/common-licenses/LGPL-3'.
|
||||||
|
|
||||||
Files: *
|
Files: *
|
||||||
Copyright: (C) 2018 - 2024 nymea GmbH <contact@nymea.io>
|
Copyright: (C) 2018 - 2025 nymea GmbH <contact@nymea.io>
|
||||||
License: LGPL-3
|
License: LGPL-3
|
||||||
1
debian-qt6/changelog
Symbolic link
1
debian-qt6/changelog
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../debian-qt5/changelog
|
||||||
1
debian-qt6/compat
Normal file
1
debian-qt6/compat
Normal file
@ -0,0 +1 @@
|
|||||||
|
11
|
||||||
32
debian-qt6/control
Normal file
32
debian-qt6/control
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
Source: libnymea-networkmanager
|
||||||
|
Section: utils
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: nymea GmbH <developer@nymea.io>
|
||||||
|
Standards-Version: 4.7.2
|
||||||
|
Build-Depends: debhelper,
|
||||||
|
dpkg-dev,
|
||||||
|
pkg-config,
|
||||||
|
qt6-base-dev,
|
||||||
|
qt6-base-dev-tools,
|
||||||
|
qt6-connectivity-dev,
|
||||||
|
libbluetooth-dev
|
||||||
|
|
||||||
|
|
||||||
|
Package: libnymea-networkmanager
|
||||||
|
Section: libs
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${shlibs:Depends},
|
||||||
|
${misc:Depends},
|
||||||
|
Description: Qt based library for the network-manager DBus API.
|
||||||
|
Qt based library for the network-manager DBus API.
|
||||||
|
|
||||||
|
|
||||||
|
Package: libnymea-networkmanager-dev
|
||||||
|
Section: libdevel
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${shlibs:Depends},
|
||||||
|
${misc:Depends},
|
||||||
|
pkg-config,
|
||||||
|
libnymea-networkmanager (= ${binary:Version}),
|
||||||
|
Description: Qt based library for the network-manager DBus API - development files
|
||||||
|
Development files for Qt based network-manager DBus API.
|
||||||
1
debian-qt6/copyright
Symbolic link
1
debian-qt6/copyright
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../debian-qt5/copyright
|
||||||
1
debian-qt6/libnymea-networkmanager-dev.install.in
Symbolic link
1
debian-qt6/libnymea-networkmanager-dev.install.in
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../debian-qt5/libnymea-networkmanager-dev.install.in
|
||||||
1
debian-qt6/libnymea-networkmanager.install.in
Symbolic link
1
debian-qt6/libnymea-networkmanager.install.in
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../debian-qt5/libnymea-networkmanager.install.in
|
||||||
20
debian-qt6/rules
Executable file
20
debian-qt6/rules
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/make -f
|
||||||
|
|
||||||
|
export DH_VERBOSE=1
|
||||||
|
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
|
||||||
|
|
||||||
|
PREPROCESS_FILES := $(wildcard debian/*.in)
|
||||||
|
|
||||||
|
$(PREPROCESS_FILES:.in=): %: %.in
|
||||||
|
sed 's,/@DEB_HOST_MULTIARCH@,$(DEB_HOST_MULTIARCH:%=/%),g' $< > $@
|
||||||
|
|
||||||
|
override_dh_install: $(PREPROCESS_FILES:.in=)
|
||||||
|
dh_install
|
||||||
|
|
||||||
|
override_dh_auto_clean:
|
||||||
|
dh_auto_clean
|
||||||
|
rm -rf $(PREPROCESS_FILES:.in=)
|
||||||
|
|
||||||
|
%:
|
||||||
|
dh $@ --buildsystem=qmake6 --parallel
|
||||||
|
|
||||||
1
debian-qt6/source
Symbolic link
1
debian-qt6/source
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../debian-qt5/source
|
||||||
@ -128,11 +128,19 @@ QLowEnergyServiceData BluetoothServer::deviceInformationServiceData()
|
|||||||
{
|
{
|
||||||
QLowEnergyServiceData serviceData;
|
QLowEnergyServiceData serviceData;
|
||||||
serviceData.setType(QLowEnergyServiceData::ServiceTypePrimary);
|
serviceData.setType(QLowEnergyServiceData::ServiceTypePrimary);
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
serviceData.setUuid(QBluetoothUuid::ServiceClassUuid::DeviceInformation);
|
||||||
|
#else
|
||||||
serviceData.setUuid(QBluetoothUuid::DeviceInformation);
|
serviceData.setUuid(QBluetoothUuid::DeviceInformation);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Model number string 0x2a24
|
// Model number string 0x2a24
|
||||||
QLowEnergyCharacteristicData modelNumberCharData;
|
QLowEnergyCharacteristicData modelNumberCharData;
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
modelNumberCharData.setUuid(QBluetoothUuid::CharacteristicType::ModelNumberString);
|
||||||
|
#else
|
||||||
modelNumberCharData.setUuid(QBluetoothUuid::ModelNumberString);
|
modelNumberCharData.setUuid(QBluetoothUuid::ModelNumberString);
|
||||||
|
#endif
|
||||||
if (m_modelName.isEmpty()) {
|
if (m_modelName.isEmpty()) {
|
||||||
modelNumberCharData.setValue(QString("N.A.").toUtf8());
|
modelNumberCharData.setValue(QString("N.A.").toUtf8());
|
||||||
} else {
|
} else {
|
||||||
@ -144,7 +152,11 @@ QLowEnergyServiceData BluetoothServer::deviceInformationServiceData()
|
|||||||
|
|
||||||
// Serial number string 0x2a25
|
// Serial number string 0x2a25
|
||||||
QLowEnergyCharacteristicData serialNumberCharData;
|
QLowEnergyCharacteristicData serialNumberCharData;
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
serialNumberCharData.setUuid(QBluetoothUuid::CharacteristicType::SerialNumberString);
|
||||||
|
#else
|
||||||
serialNumberCharData.setUuid(QBluetoothUuid::SerialNumberString);
|
serialNumberCharData.setUuid(QBluetoothUuid::SerialNumberString);
|
||||||
|
#endif
|
||||||
if (m_serialNumber.isNull()) {
|
if (m_serialNumber.isNull()) {
|
||||||
// Note: if no serialnumber specified use the system uuid from /etc/machine-id
|
// Note: if no serialnumber specified use the system uuid from /etc/machine-id
|
||||||
qCDebug(dcNetworkManagerBluetoothServer()) << "Serial number not specified. Using system uuid from /etc/machine-id as serialnumber.";
|
qCDebug(dcNetworkManagerBluetoothServer()) << "Serial number not specified. Using system uuid from /etc/machine-id as serialnumber.";
|
||||||
@ -156,28 +168,44 @@ QLowEnergyServiceData BluetoothServer::deviceInformationServiceData()
|
|||||||
|
|
||||||
// Firmware revision string 0x2a26
|
// Firmware revision string 0x2a26
|
||||||
QLowEnergyCharacteristicData firmwareRevisionCharData;
|
QLowEnergyCharacteristicData firmwareRevisionCharData;
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
firmwareRevisionCharData.setUuid(QBluetoothUuid::CharacteristicType::FirmwareRevisionString);
|
||||||
|
#else
|
||||||
firmwareRevisionCharData.setUuid(QBluetoothUuid::FirmwareRevisionString);
|
firmwareRevisionCharData.setUuid(QBluetoothUuid::FirmwareRevisionString);
|
||||||
|
#endif
|
||||||
firmwareRevisionCharData.setValue(QString(VERSION_STRING).toUtf8());
|
firmwareRevisionCharData.setValue(QString(VERSION_STRING).toUtf8());
|
||||||
firmwareRevisionCharData.setProperties(QLowEnergyCharacteristic::Read);
|
firmwareRevisionCharData.setProperties(QLowEnergyCharacteristic::Read);
|
||||||
serviceData.addCharacteristic(firmwareRevisionCharData);
|
serviceData.addCharacteristic(firmwareRevisionCharData);
|
||||||
|
|
||||||
// Hardware revision string 0x2a27
|
// Hardware revision string 0x2a27
|
||||||
QLowEnergyCharacteristicData hardwareRevisionCharData;
|
QLowEnergyCharacteristicData hardwareRevisionCharData;
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
hardwareRevisionCharData.setUuid(QBluetoothUuid::CharacteristicType::HardwareRevisionString);
|
||||||
|
#else
|
||||||
hardwareRevisionCharData.setUuid(QBluetoothUuid::HardwareRevisionString);
|
hardwareRevisionCharData.setUuid(QBluetoothUuid::HardwareRevisionString);
|
||||||
|
#endif
|
||||||
hardwareRevisionCharData.setValue(m_hardwareVersion.toUtf8());
|
hardwareRevisionCharData.setValue(m_hardwareVersion.toUtf8());
|
||||||
hardwareRevisionCharData.setProperties(QLowEnergyCharacteristic::Read);
|
hardwareRevisionCharData.setProperties(QLowEnergyCharacteristic::Read);
|
||||||
serviceData.addCharacteristic(hardwareRevisionCharData);
|
serviceData.addCharacteristic(hardwareRevisionCharData);
|
||||||
|
|
||||||
// Software revision string 0x2a28
|
// Software revision string 0x2a28
|
||||||
QLowEnergyCharacteristicData softwareRevisionCharData;
|
QLowEnergyCharacteristicData softwareRevisionCharData;
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
softwareRevisionCharData.setUuid(QBluetoothUuid::CharacteristicType::SoftwareRevisionString);
|
||||||
|
#else
|
||||||
softwareRevisionCharData.setUuid(QBluetoothUuid::SoftwareRevisionString);
|
softwareRevisionCharData.setUuid(QBluetoothUuid::SoftwareRevisionString);
|
||||||
|
#endif
|
||||||
softwareRevisionCharData.setValue(m_softwareVersion.toUtf8());
|
softwareRevisionCharData.setValue(m_softwareVersion.toUtf8());
|
||||||
softwareRevisionCharData.setProperties(QLowEnergyCharacteristic::Read);
|
softwareRevisionCharData.setProperties(QLowEnergyCharacteristic::Read);
|
||||||
serviceData.addCharacteristic(softwareRevisionCharData);
|
serviceData.addCharacteristic(softwareRevisionCharData);
|
||||||
|
|
||||||
// Manufacturer name string 0x2a29
|
// Manufacturer name string 0x2a29
|
||||||
QLowEnergyCharacteristicData manufacturerNameCharData;
|
QLowEnergyCharacteristicData manufacturerNameCharData;
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
manufacturerNameCharData.setUuid(QBluetoothUuid::CharacteristicType::ManufacturerNameString);
|
||||||
|
#else
|
||||||
manufacturerNameCharData.setUuid(QBluetoothUuid::ManufacturerNameString);
|
manufacturerNameCharData.setUuid(QBluetoothUuid::ManufacturerNameString);
|
||||||
|
#endif
|
||||||
manufacturerNameCharData.setValue(QString("nymea GmbH").toUtf8());
|
manufacturerNameCharData.setValue(QString("nymea GmbH").toUtf8());
|
||||||
manufacturerNameCharData.setProperties(QLowEnergyCharacteristic::Read);
|
manufacturerNameCharData.setProperties(QLowEnergyCharacteristic::Read);
|
||||||
serviceData.addCharacteristic(manufacturerNameCharData);
|
serviceData.addCharacteristic(manufacturerNameCharData);
|
||||||
@ -189,11 +217,19 @@ QLowEnergyServiceData BluetoothServer::genericAccessServiceData()
|
|||||||
{
|
{
|
||||||
QLowEnergyServiceData serviceData;
|
QLowEnergyServiceData serviceData;
|
||||||
serviceData.setType(QLowEnergyServiceData::ServiceTypePrimary);
|
serviceData.setType(QLowEnergyServiceData::ServiceTypePrimary);
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
serviceData.setUuid(QBluetoothUuid::ServiceClassUuid::GenericAccess);
|
||||||
|
#else
|
||||||
serviceData.setUuid(QBluetoothUuid::GenericAccess);
|
serviceData.setUuid(QBluetoothUuid::GenericAccess);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Device name 0x2a00
|
// Device name 0x2a00
|
||||||
QLowEnergyCharacteristicData nameCharData;
|
QLowEnergyCharacteristicData nameCharData;
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
nameCharData.setUuid(QBluetoothUuid::CharacteristicType::DeviceName);
|
||||||
|
#else
|
||||||
nameCharData.setUuid(QBluetoothUuid::DeviceName);
|
nameCharData.setUuid(QBluetoothUuid::DeviceName);
|
||||||
|
#endif
|
||||||
if (m_advertiseName.isNull()) {
|
if (m_advertiseName.isNull()) {
|
||||||
qCWarning(dcNetworkManagerBluetoothServer()) << "Advertise name not specified. Using system host name as device name.";
|
qCWarning(dcNetworkManagerBluetoothServer()) << "Advertise name not specified. Using system host name as device name.";
|
||||||
m_advertiseName = QSysInfo::machineHostName();
|
m_advertiseName = QSysInfo::machineHostName();
|
||||||
@ -204,21 +240,33 @@ QLowEnergyServiceData BluetoothServer::genericAccessServiceData()
|
|||||||
|
|
||||||
// Appearance 0x2a01
|
// Appearance 0x2a01
|
||||||
QLowEnergyCharacteristicData appearanceCharData;
|
QLowEnergyCharacteristicData appearanceCharData;
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
appearanceCharData.setUuid(QBluetoothUuid::CharacteristicType::Appearance);
|
||||||
|
#else
|
||||||
appearanceCharData.setUuid(QBluetoothUuid::Appearance);
|
appearanceCharData.setUuid(QBluetoothUuid::Appearance);
|
||||||
|
#endif
|
||||||
appearanceCharData.setValue(QByteArray(4, 0));
|
appearanceCharData.setValue(QByteArray(4, 0));
|
||||||
appearanceCharData.setProperties(QLowEnergyCharacteristic::Read);
|
appearanceCharData.setProperties(QLowEnergyCharacteristic::Read);
|
||||||
serviceData.addCharacteristic(appearanceCharData);
|
serviceData.addCharacteristic(appearanceCharData);
|
||||||
|
|
||||||
// Peripheral Privacy Flag 0x2a02
|
// Peripheral Privacy Flag 0x2a02
|
||||||
QLowEnergyCharacteristicData privacyFlagCharData;
|
QLowEnergyCharacteristicData privacyFlagCharData;
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
privacyFlagCharData.setUuid(QBluetoothUuid::CharacteristicType::PeripheralPrivacyFlag);
|
||||||
|
#else
|
||||||
privacyFlagCharData.setUuid(QBluetoothUuid::PeripheralPrivacyFlag);
|
privacyFlagCharData.setUuid(QBluetoothUuid::PeripheralPrivacyFlag);
|
||||||
|
#endif
|
||||||
privacyFlagCharData.setValue(QByteArray(2, 0));
|
privacyFlagCharData.setValue(QByteArray(2, 0));
|
||||||
privacyFlagCharData.setProperties(QLowEnergyCharacteristic::Read | QLowEnergyCharacteristic::Write);
|
privacyFlagCharData.setProperties(QLowEnergyCharacteristic::Read | QLowEnergyCharacteristic::Write);
|
||||||
serviceData.addCharacteristic(privacyFlagCharData);
|
serviceData.addCharacteristic(privacyFlagCharData);
|
||||||
|
|
||||||
// Reconnection Address 0x2a03
|
// Reconnection Address 0x2a03
|
||||||
QLowEnergyCharacteristicData reconnectionAddressCharData;
|
QLowEnergyCharacteristicData reconnectionAddressCharData;
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
reconnectionAddressCharData.setUuid(QBluetoothUuid::CharacteristicType::ReconnectionAddress);
|
||||||
|
#else
|
||||||
reconnectionAddressCharData.setUuid(QBluetoothUuid::ReconnectionAddress);
|
reconnectionAddressCharData.setUuid(QBluetoothUuid::ReconnectionAddress);
|
||||||
|
#endif
|
||||||
reconnectionAddressCharData.setValue(QByteArray());
|
reconnectionAddressCharData.setValue(QByteArray());
|
||||||
reconnectionAddressCharData.setProperties(QLowEnergyCharacteristic::Write);
|
reconnectionAddressCharData.setProperties(QLowEnergyCharacteristic::Write);
|
||||||
serviceData.addCharacteristic(reconnectionAddressCharData);
|
serviceData.addCharacteristic(reconnectionAddressCharData);
|
||||||
@ -230,10 +278,18 @@ QLowEnergyServiceData BluetoothServer::genericAttributeServiceData()
|
|||||||
{
|
{
|
||||||
QLowEnergyServiceData serviceData;
|
QLowEnergyServiceData serviceData;
|
||||||
serviceData.setType(QLowEnergyServiceData::ServiceTypePrimary);
|
serviceData.setType(QLowEnergyServiceData::ServiceTypePrimary);
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
serviceData.setUuid(QBluetoothUuid::ServiceClassUuid::GenericAttribute);
|
||||||
|
#else
|
||||||
serviceData.setUuid(QBluetoothUuid::GenericAttribute);
|
serviceData.setUuid(QBluetoothUuid::GenericAttribute);
|
||||||
|
#endif
|
||||||
|
|
||||||
QLowEnergyCharacteristicData charData;
|
QLowEnergyCharacteristicData charData;
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
charData.setUuid(QBluetoothUuid::CharacteristicType::ServiceChanged);
|
||||||
|
#else
|
||||||
charData.setUuid(QBluetoothUuid::ServiceChanged);
|
charData.setUuid(QBluetoothUuid::ServiceChanged);
|
||||||
|
#endif
|
||||||
charData.setProperties(QLowEnergyCharacteristic::Indicate);
|
charData.setProperties(QLowEnergyCharacteristic::Indicate);
|
||||||
|
|
||||||
serviceData.addCharacteristic(charData);
|
serviceData.addCharacteristic(charData);
|
||||||
@ -452,8 +508,13 @@ void BluetoothServer::start()
|
|||||||
connect(m_controller, &QLowEnergyController::stateChanged, this, &BluetoothServer::onControllerStateChanged);
|
connect(m_controller, &QLowEnergyController::stateChanged, this, &BluetoothServer::onControllerStateChanged);
|
||||||
connect(m_controller, &QLowEnergyController::connected, this, &BluetoothServer::onConnected);
|
connect(m_controller, &QLowEnergyController::connected, this, &BluetoothServer::onConnected);
|
||||||
connect(m_controller, &QLowEnergyController::disconnected, this, &BluetoothServer::onDisconnected);
|
connect(m_controller, &QLowEnergyController::disconnected, this, &BluetoothServer::onDisconnected);
|
||||||
|
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
connect(m_controller, &QLowEnergyController::errorOccurred, this, &BluetoothServer::onError);
|
||||||
|
#else
|
||||||
connect(m_controller, static_cast<void(QLowEnergyController::*)(QLowEnergyController::Error)>
|
connect(m_controller, static_cast<void(QLowEnergyController::*)(QLowEnergyController::Error)>
|
||||||
(&QLowEnergyController::error), this, &BluetoothServer::onError);
|
(&QLowEnergyController::error), this, &BluetoothServer::onError);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Note: https://www.bluetooth.com/specifications/gatt/services
|
// Note: https://www.bluetooth.com/specifications/gatt/services
|
||||||
m_deviceInfoService = m_controller->addService(deviceInformationServiceData(), m_controller);
|
m_deviceInfoService = m_controller->addService(deviceInformationServiceData(), m_controller);
|
||||||
|
|||||||
@ -54,8 +54,13 @@ NetworkService::NetworkService(QLowEnergyService *service, NetworkManager *netwo
|
|||||||
connect(m_service, &QLowEnergyService::characteristicRead, this, &NetworkService::characteristicRead);
|
connect(m_service, &QLowEnergyService::characteristicRead, this, &NetworkService::characteristicRead);
|
||||||
connect(m_service, &QLowEnergyService::characteristicWritten, this, &NetworkService::characteristicWritten);
|
connect(m_service, &QLowEnergyService::characteristicWritten, this, &NetworkService::characteristicWritten);
|
||||||
connect(m_service, &QLowEnergyService::descriptorWritten, this, &NetworkService::descriptorWritten);
|
connect(m_service, &QLowEnergyService::descriptorWritten, this, &NetworkService::descriptorWritten);
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
connect(m_service, &QLowEnergyService::errorOccurred, this, &NetworkService::serviceError);
|
||||||
|
#else
|
||||||
connect(m_service, static_cast<void(QLowEnergyService::*)(QLowEnergyService::ServiceError)>
|
connect(m_service, static_cast<void(QLowEnergyService::*)(QLowEnergyService::ServiceError)>
|
||||||
(&QLowEnergyService::error), this, &NetworkService::serviceError);
|
(&QLowEnergyService::error), this, &NetworkService::serviceError);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
// NetworkManager
|
// NetworkManager
|
||||||
connect(m_networkManager, &NetworkManager::stateChanged, this, &NetworkService::onNetworkManagerStateChanged);
|
connect(m_networkManager, &NetworkManager::stateChanged, this, &NetworkService::onNetworkManagerStateChanged);
|
||||||
@ -74,7 +79,11 @@ QLowEnergyServiceData NetworkService::serviceData(NetworkManager *networkManager
|
|||||||
serviceData.setType(QLowEnergyServiceData::ServiceTypePrimary);
|
serviceData.setType(QLowEnergyServiceData::ServiceTypePrimary);
|
||||||
serviceData.setUuid(networkServiceUuid);
|
serviceData.setUuid(networkServiceUuid);
|
||||||
|
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
QLowEnergyDescriptorData clientConfigDescriptorData(QBluetoothUuid::DescriptorType::ClientCharacteristicConfiguration, QByteArray(2, 0));
|
||||||
|
#else
|
||||||
QLowEnergyDescriptorData clientConfigDescriptorData(QBluetoothUuid::ClientCharacteristicConfiguration, QByteArray(2, 0));
|
QLowEnergyDescriptorData clientConfigDescriptorData(QBluetoothUuid::ClientCharacteristicConfiguration, QByteArray(2, 0));
|
||||||
|
#endif
|
||||||
|
|
||||||
// Network manager status ef6d661-b8af-49e0-9eca-ab343513641c
|
// Network manager status ef6d661-b8af-49e0-9eca-ab343513641c
|
||||||
QLowEnergyCharacteristicData networkStatusData;
|
QLowEnergyCharacteristicData networkStatusData;
|
||||||
@ -253,7 +262,7 @@ void NetworkService::descriptorWritten(const QLowEnergyDescriptor &descriptor, c
|
|||||||
qCDebug(dcNetworkManagerBluetoothServer()) << "NetworkService: Descriptor written" << descriptor.uuid().toString() << value;
|
qCDebug(dcNetworkManagerBluetoothServer()) << "NetworkService: Descriptor written" << descriptor.uuid().toString() << value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkService::serviceError(const QLowEnergyService::ServiceError &error)
|
void NetworkService::serviceError(QLowEnergyService::ServiceError error)
|
||||||
{
|
{
|
||||||
QString errorString;
|
QString errorString;
|
||||||
switch (error) {
|
switch (error) {
|
||||||
|
|||||||
@ -82,7 +82,7 @@ private slots:
|
|||||||
void characteristicWritten(const QLowEnergyCharacteristic &characteristic, const QByteArray &value);
|
void characteristicWritten(const QLowEnergyCharacteristic &characteristic, const QByteArray &value);
|
||||||
void descriptorRead(const QLowEnergyDescriptor &descriptor, const QByteArray &value);
|
void descriptorRead(const QLowEnergyDescriptor &descriptor, const QByteArray &value);
|
||||||
void descriptorWritten(const QLowEnergyDescriptor &descriptor, const QByteArray &value);
|
void descriptorWritten(const QLowEnergyDescriptor &descriptor, const QByteArray &value);
|
||||||
void serviceError(const QLowEnergyService::ServiceError &error);
|
void serviceError(QLowEnergyService::ServiceError error);
|
||||||
|
|
||||||
// Commands
|
// Commands
|
||||||
void processCommand(const NetworkServiceCommand &command);
|
void processCommand(const NetworkServiceCommand &command);
|
||||||
|
|||||||
@ -56,8 +56,12 @@ WirelessService::WirelessService(QLowEnergyService *service, NetworkManager *net
|
|||||||
connect(m_service, &QLowEnergyService::characteristicRead, this, &WirelessService::characteristicRead);
|
connect(m_service, &QLowEnergyService::characteristicRead, this, &WirelessService::characteristicRead);
|
||||||
connect(m_service, &QLowEnergyService::characteristicWritten, this, &WirelessService::characteristicWritten);
|
connect(m_service, &QLowEnergyService::characteristicWritten, this, &WirelessService::characteristicWritten);
|
||||||
connect(m_service, &QLowEnergyService::descriptorWritten, this, &WirelessService::descriptorWritten);
|
connect(m_service, &QLowEnergyService::descriptorWritten, this, &WirelessService::descriptorWritten);
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
connect(m_service, &QLowEnergyService::errorOccurred, this, &WirelessService::serviceError);
|
||||||
|
#else
|
||||||
connect(m_service, static_cast<void(QLowEnergyService::*)(QLowEnergyService::ServiceError)>
|
connect(m_service, static_cast<void(QLowEnergyService::*)(QLowEnergyService::ServiceError)>
|
||||||
(&QLowEnergyService::error), this, &WirelessService::serviceError);
|
(&QLowEnergyService::error), this, &WirelessService::serviceError);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Get the wireless network device if there is any
|
// Get the wireless network device if there is any
|
||||||
if (!m_networkManager->wirelessAvailable()) {
|
if (!m_networkManager->wirelessAvailable()) {
|
||||||
@ -83,7 +87,11 @@ QLowEnergyServiceData WirelessService::serviceData(NetworkManager *networkManage
|
|||||||
serviceData.setType(QLowEnergyServiceData::ServiceTypePrimary);
|
serviceData.setType(QLowEnergyServiceData::ServiceTypePrimary);
|
||||||
serviceData.setUuid(wirelessServiceUuid);
|
serviceData.setUuid(wirelessServiceUuid);
|
||||||
|
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(6,0,0)
|
||||||
|
QLowEnergyDescriptorData clientConfigDescriptorData(QBluetoothUuid::DescriptorType::ClientCharacteristicConfiguration, QByteArray(2, 0));
|
||||||
|
#else
|
||||||
QLowEnergyDescriptorData clientConfigDescriptorData(QBluetoothUuid::ClientCharacteristicConfiguration, QByteArray(2, 0));
|
QLowEnergyDescriptorData clientConfigDescriptorData(QBluetoothUuid::ClientCharacteristicConfiguration, QByteArray(2, 0));
|
||||||
|
#endif
|
||||||
|
|
||||||
QLowEnergyCharacteristicData versionCharacteristicData;
|
QLowEnergyCharacteristicData versionCharacteristicData;
|
||||||
versionCharacteristicData.setUuid(wirelessServiceVersionCharacteristicUuid);
|
versionCharacteristicData.setUuid(wirelessServiceVersionCharacteristicUuid);
|
||||||
@ -225,13 +233,13 @@ void WirelessService::streamData(const QVariantMap &responseMap)
|
|||||||
}
|
}
|
||||||
|
|
||||||
QByteArray data = QJsonDocument::fromVariant(responseMap).toJson(QJsonDocument::Compact) + '\n';
|
QByteArray data = QJsonDocument::fromVariant(responseMap).toJson(QJsonDocument::Compact) + '\n';
|
||||||
qCDebug(dcNetworkManagerBluetoothServer()) << "WirelessService: Start streaming response data:" << data.count() << "bytes";
|
qCDebug(dcNetworkManagerBluetoothServer()) << "WirelessService: Start streaming response data:" << data.length() << "bytes";
|
||||||
|
|
||||||
QByteArray remainingData = data;
|
QByteArray remainingData = data;
|
||||||
while (!remainingData.isEmpty()) {
|
while (!remainingData.isEmpty()) {
|
||||||
QByteArray package = remainingData.left(20);
|
QByteArray package = remainingData.left(20);
|
||||||
m_service->writeCharacteristic(characteristic, package);
|
m_service->writeCharacteristic(characteristic, package);
|
||||||
remainingData = remainingData.remove(0, package.count());
|
remainingData = remainingData.remove(0, package.length());
|
||||||
}
|
}
|
||||||
|
|
||||||
qCDebug(dcNetworkManagerBluetoothServer()) << "WirelessService: Finished streaming response data";
|
qCDebug(dcNetworkManagerBluetoothServer()) << "WirelessService: Finished streaming response data";
|
||||||
@ -549,7 +557,7 @@ void WirelessService::descriptorWritten(const QLowEnergyDescriptor &descriptor,
|
|||||||
qCDebug(dcNetworkManagerBluetoothServer()) << "WirelessService: Descriptor written" << descriptor.uuid().toString() << value;
|
qCDebug(dcNetworkManagerBluetoothServer()) << "WirelessService: Descriptor written" << descriptor.uuid().toString() << value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WirelessService::serviceError(const QLowEnergyService::ServiceError &error)
|
void WirelessService::serviceError(QLowEnergyService::ServiceError error)
|
||||||
{
|
{
|
||||||
QString errorString;
|
QString errorString;
|
||||||
switch (error) {
|
switch (error) {
|
||||||
|
|||||||
@ -106,7 +106,7 @@ private slots:
|
|||||||
void characteristicWritten(const QLowEnergyCharacteristic &characteristic, const QByteArray &value);
|
void characteristicWritten(const QLowEnergyCharacteristic &characteristic, const QByteArray &value);
|
||||||
void descriptorRead(const QLowEnergyDescriptor &descriptor, const QByteArray &value);
|
void descriptorRead(const QLowEnergyDescriptor &descriptor, const QByteArray &value);
|
||||||
void descriptorWritten(const QLowEnergyDescriptor &descriptor, const QByteArray &value);
|
void descriptorWritten(const QLowEnergyDescriptor &descriptor, const QByteArray &value);
|
||||||
void serviceError(const QLowEnergyService::ServiceError &error);
|
void serviceError(QLowEnergyService::ServiceError error);
|
||||||
|
|
||||||
// Commands
|
// Commands
|
||||||
void processCommand(const QVariantMap &request);
|
void processCommand(const QVariantMap &request);
|
||||||
|
|||||||
@ -3,8 +3,20 @@ TEMPLATE = lib
|
|||||||
|
|
||||||
QT += dbus network
|
QT += dbus network
|
||||||
|
|
||||||
QMAKE_CXXFLAGS *= -Werror -std=c++11 -g
|
greaterThan(QT_MAJOR_VERSION, 5) {
|
||||||
QMAKE_LFLAGS *= -std=c++11
|
message("Building using Qt6 support")
|
||||||
|
CONFIG *= c++17
|
||||||
|
QMAKE_LFLAGS *= -std=c++17
|
||||||
|
QMAKE_CXXFLAGS *= -std=c++17
|
||||||
|
} else {
|
||||||
|
message("Building using Qt5 support")
|
||||||
|
CONFIG *= c++11
|
||||||
|
QMAKE_LFLAGS *= -std=c++11
|
||||||
|
QMAKE_CXXFLAGS *= -std=c++11
|
||||||
|
DEFINES += QT_DISABLE_DEPRECATED_UP_TO=0x050F00
|
||||||
|
}
|
||||||
|
|
||||||
|
QMAKE_CXXFLAGS *= -Werror -g
|
||||||
|
|
||||||
DEFINES += VERSION_STRING=\\\"$${VERSION_STRING}\\\"
|
DEFINES += VERSION_STRING=\\\"$${VERSION_STRING}\\\"
|
||||||
|
|
||||||
@ -28,7 +40,9 @@ SOURCES += \
|
|||||||
wirelessnetworkdevice.cpp \
|
wirelessnetworkdevice.cpp \
|
||||||
networkmanagerutils.cpp
|
networkmanagerutils.cpp
|
||||||
|
|
||||||
equals(QT_MAJOR_VERSION, 5):!lessThan(QT_MINOR_VERSION, 7) {
|
lessThan(QT_MAJOR_VERSION, 6):lessThan(QT_MINOR_VERSION, 7) {
|
||||||
|
message(Bluetooth LE server functionality not supported with Qt $${QT_VERSION}.)
|
||||||
|
} else {
|
||||||
message(Building with Bluetooth LE server functionality. Qt $${QT_VERSION}.)
|
message(Building with Bluetooth LE server functionality. Qt $${QT_VERSION}.)
|
||||||
|
|
||||||
QT += bluetooth
|
QT += bluetooth
|
||||||
@ -43,8 +57,6 @@ equals(QT_MAJOR_VERSION, 5):!lessThan(QT_MINOR_VERSION, 7) {
|
|||||||
bluetooth/bluetoothserver.cpp \
|
bluetooth/bluetoothserver.cpp \
|
||||||
bluetooth/networkservice.cpp \
|
bluetooth/networkservice.cpp \
|
||||||
bluetooth/wirelessservice.cpp \
|
bluetooth/wirelessservice.cpp \
|
||||||
} else {
|
|
||||||
message(Bluetooth LE server functionality not supported with Qt $${QT_VERSION}.)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
target.path = $$[QT_INSTALL_LIBS]
|
target.path = $$[QT_INSTALL_LIBS]
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
*
|
*
|
||||||
* Copyright 2013 - 2020, nymea GmbH
|
* Copyright 2013 - 2024, nymea GmbH
|
||||||
* Contact: contact@nymea.io
|
* Contact: contact@nymea.io
|
||||||
*
|
*
|
||||||
* This file is part of nymea.
|
* This file is part of nymea.
|
||||||
@ -137,7 +137,7 @@ bool NetworkConnection::autoconnect() const
|
|||||||
/*! Returns the timestamp of this \l{NetworkConnection} from the last connection. */
|
/*! Returns the timestamp of this \l{NetworkConnection} from the last connection. */
|
||||||
QDateTime NetworkConnection::timeStamp() const
|
QDateTime NetworkConnection::timeStamp() const
|
||||||
{
|
{
|
||||||
return QDateTime::fromTime_t(m_connectionSettings.value("connection").value("timestamp").toUInt());
|
return QDateTime::fromSecsSinceEpoch(m_connectionSettings.value("connection").value("timestamp").toUInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
QDebug operator<<(QDebug debug, NetworkConnection *networkConnection)
|
QDebug operator<<(QDebug debug, NetworkConnection *networkConnection)
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
*
|
*
|
||||||
* Copyright 2013 - 2020, nymea GmbH
|
* Copyright 2013 - 2024, nymea GmbH
|
||||||
* Contact: contact@nymea.io
|
* Contact: contact@nymea.io
|
||||||
*
|
*
|
||||||
* This file is part of nymea.
|
* This file is part of nymea.
|
||||||
@ -45,6 +45,7 @@
|
|||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QMetaEnum>
|
#include <QMetaEnum>
|
||||||
|
#include <QRegularExpression>
|
||||||
|
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
|
||||||
@ -346,7 +347,7 @@ NetworkManager::NetworkManagerError NetworkManager::createWiredAutoConnection(co
|
|||||||
QVariantMap connectionSettings {
|
QVariantMap connectionSettings {
|
||||||
{"id", "auto"},
|
{"id", "auto"},
|
||||||
{"autoconnect", true},
|
{"autoconnect", true},
|
||||||
{"uuid", QUuid::createUuid().toString().remove(QRegExp("[{}]"))},
|
{"uuid", QUuid::createUuid().toString().remove(QRegularExpression("[{}]"))},
|
||||||
{"type", "802-3-ethernet"}
|
{"type", "802-3-ethernet"}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -411,7 +412,7 @@ NetworkManager::NetworkManagerError NetworkManager::createWiredManualConnection(
|
|||||||
QVariantMap connectionSettings {
|
QVariantMap connectionSettings {
|
||||||
{"id", "manual"},
|
{"id", "manual"},
|
||||||
{"autoconnect", true},
|
{"autoconnect", true},
|
||||||
{"uuid", QUuid::createUuid().toString().remove(QRegExp("[{}]"))},
|
{"uuid", QUuid::createUuid().toString().remove(QRegularExpression("[{}]"))},
|
||||||
{"type", "802-3-ethernet"}
|
{"type", "802-3-ethernet"}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -69,6 +69,7 @@ public:
|
|||||||
WirelessCapability5Ghz = 0x0400,
|
WirelessCapability5Ghz = 0x0400,
|
||||||
};
|
};
|
||||||
Q_ENUM(WirelessCapability)
|
Q_ENUM(WirelessCapability)
|
||||||
|
|
||||||
Q_DECLARE_FLAGS(WirelessCapabilities, WirelessCapability)
|
Q_DECLARE_FLAGS(WirelessCapabilities, WirelessCapability)
|
||||||
Q_FLAG(WirelessCapabilities)
|
Q_FLAG(WirelessCapabilities)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user