From 60278c43e363a44bdf792c23a157d25f685f5afd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Fri, 2 Nov 2018 15:19:03 +0100 Subject: [PATCH] Add wireless device mode --- libnymea-networkmanager/networkconnection.cpp | 6 +++--- .../wirelessnetworkdevice.cpp | 4 ++++ .../bluetooth/bluetoothserver.cpp | 7 ++++++- nymea-networkmanager/bluetooth/bluetoothserver.h | 1 + nymea-networkmanager/core.cpp | 16 +++++++++++++--- nymea-networkmanager/core.h | 1 + 6 files changed, 28 insertions(+), 7 deletions(-) diff --git a/libnymea-networkmanager/networkconnection.cpp b/libnymea-networkmanager/networkconnection.cpp index 3d00fed..d398b1c 100644 --- a/libnymea-networkmanager/networkconnection.cpp +++ b/libnymea-networkmanager/networkconnection.cpp @@ -50,9 +50,9 @@ NetworkConnection::NetworkConnection(const QDBusObjectPath &objectPath, QObject const QDBusArgument &argument = query.arguments().at(0).value(); m_connectionSettings = qdbus_cast(argument); - foreach (const QVariant &connectionVariant, m_connectionSettings.values()) { - qCDebug(dcNetworkManager()) << connectionVariant; - } +// foreach (const QVariant &connectionVariant, m_connectionSettings.values()) { +// qCDebug(dcNetworkManager()) << connectionVariant; +// } } /*! Delete this \l{NetworkConnection} in the \l{NetworkManager}. */ diff --git a/libnymea-networkmanager/wirelessnetworkdevice.cpp b/libnymea-networkmanager/wirelessnetworkdevice.cpp index dc247ce..693533f 100644 --- a/libnymea-networkmanager/wirelessnetworkdevice.cpp +++ b/libnymea-networkmanager/wirelessnetworkdevice.cpp @@ -224,6 +224,10 @@ void WirelessNetworkDevice::propertiesChanged(const QVariantMap &properties) if (properties.contains("ActiveAccessPoint")) setActiveAccessPoint(qdbus_cast(properties.value("ActiveAccessPoint"))); + + if (properties.contains("Mode")) + setMode(static_cast(m_wirelessInterface->property("Mode").toUInt())); + } /*! Writes the given \a device to the given to \a debug. \sa WirelessNetworkDevice, */ diff --git a/nymea-networkmanager/bluetooth/bluetoothserver.cpp b/nymea-networkmanager/bluetooth/bluetoothserver.cpp index a4558fd..bc437be 100644 --- a/nymea-networkmanager/bluetooth/bluetoothserver.cpp +++ b/nymea-networkmanager/bluetooth/bluetoothserver.cpp @@ -430,7 +430,6 @@ void BluetoothServer::stop() m_localDevice = nullptr; } - setConnected(false); setRunning(false); } @@ -465,6 +464,12 @@ void BluetoothServer::onWirelessDeviceBitRateChanged(int bitRate) m_wirelessService->onWirelessDeviceBitRateChanged(bitRate); } +void BluetoothServer::onWirelessDeviceModeChanged(WirelessNetworkDevice::Mode mode) +{ + if (m_wirelessService) + m_wirelessService->onWirelessModeChanged(mode); +} + void BluetoothServer::onWirelessDeviceStateChanged(const NetworkDevice::NetworkDeviceState state) { if (m_wirelessService) diff --git a/nymea-networkmanager/bluetooth/bluetoothserver.h b/nymea-networkmanager/bluetooth/bluetoothserver.h index f43294f..e996135 100644 --- a/nymea-networkmanager/bluetooth/bluetoothserver.h +++ b/nymea-networkmanager/bluetooth/bluetoothserver.h @@ -120,6 +120,7 @@ public slots: // Wireless device void onWirelessDeviceBitRateChanged(int bitRate); + void onWirelessDeviceModeChanged(WirelessNetworkDevice::Mode mode); void onWirelessDeviceStateChanged(const NetworkDevice::NetworkDeviceState state); }; diff --git a/nymea-networkmanager/core.cpp b/nymea-networkmanager/core.cpp index 4cd9fe2..834aa1c 100644 --- a/nymea-networkmanager/core.cpp +++ b/nymea-networkmanager/core.cpp @@ -271,8 +271,11 @@ void Core::onBluetoothServerConnectedChanged(bool connected) m_bluetoothServer->onNetworkManagerStateChanged(m_networkManager->state()); m_bluetoothServer->onNetworkingEnabledChanged(m_networkManager->networkingEnabled()); m_bluetoothServer->onWirelessNetworkingEnabledChanged(m_networkManager->wirelessEnabled()); - if (m_wirelessDevice) + + if (m_wirelessDevice) { m_bluetoothServer->onWirelessDeviceStateChanged(m_wirelessDevice->deviceState()); + m_bluetoothServer->onWirelessDeviceModeChanged(m_wirelessDevice->mode()); + } } else { m_advertisingTimer->stop(); @@ -333,7 +336,8 @@ void Core::onNetworkManagerWirelessDeviceAdded(WirelessNetworkDevice *wirelessDe } m_wirelessDevice = wirelessDevice; - connect(m_wirelessDevice, &WiredNetworkDevice::stateChanged, this, &Core::onWirelessDeviceStateChanged); + connect(m_wirelessDevice, &WirelessNetworkDevice::stateChanged, this, &Core::onWirelessDeviceStateChanged); + connect(m_wirelessDevice, &WirelessNetworkDevice::modeChanged, this, &Core::onWirelessDeviceModeChanged); } void Core::onNetworkManagerWirelessDeviceRemoved(const QString &interface) @@ -344,7 +348,7 @@ void Core::onNetworkManagerWirelessDeviceRemoved(const QString &interface) } if (m_wirelessDevice->interface() == interface) { - disconnect(m_wirelessDevice, &WiredNetworkDevice::stateChanged, this, &Core::onWirelessDeviceStateChanged); + disconnect(m_wirelessDevice, &WirelessNetworkDevice::stateChanged, this, &Core::onWirelessDeviceStateChanged); m_wirelessDevice = nullptr; } } @@ -355,6 +359,12 @@ void Core::onWirelessDeviceBitRateChanged(int bitRate) m_bluetoothServer->onWirelessDeviceBitRateChanged(bitRate); } +void Core::onWirelessDeviceModeChanged(WirelessNetworkDevice::Mode mode) +{ + qCDebug(dcApplication()) << "Wireless device mode" << mode; + m_bluetoothServer->onWirelessDeviceModeChanged(mode); +} + void Core::onWirelessDeviceStateChanged(const NetworkDevice::NetworkDeviceState state) { qCDebug(dcApplication()) << state; diff --git a/nymea-networkmanager/core.h b/nymea-networkmanager/core.h index b4c40e5..d231f5d 100644 --- a/nymea-networkmanager/core.h +++ b/nymea-networkmanager/core.h @@ -99,6 +99,7 @@ private slots: // Wireless device void onWirelessDeviceBitRateChanged(int bitRate); + void onWirelessDeviceModeChanged(WirelessNetworkDevice::Mode mode); void onWirelessDeviceStateChanged(const NetworkDevice::NetworkDeviceState state); void onNymeaServiceAvailableChanged(bool available);