Fix notification issues and initialize wireless state
This commit is contained in:
parent
a88e9a1131
commit
b877b72cba
@ -345,7 +345,7 @@ void BluetoothServer::serviceError(const QLowEnergyService::ServiceError &error)
|
|||||||
void BluetoothServer::start()
|
void BluetoothServer::start()
|
||||||
{
|
{
|
||||||
// Check if a user is connected
|
// Check if a user is connected
|
||||||
if (connected()) {
|
if (m_connected) {
|
||||||
qCDebug(dcBluetoothServer()) << "User is connected. Doing nothing.";
|
qCDebug(dcBluetoothServer()) << "User is connected. Doing nothing.";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -410,12 +410,12 @@ void BluetoothServer::stop()
|
|||||||
qCDebug(dcBluetoothServer()) << "-------------------------------------";
|
qCDebug(dcBluetoothServer()) << "-------------------------------------";
|
||||||
|
|
||||||
if (m_networkService) {
|
if (m_networkService) {
|
||||||
m_networkService->deleteLater();
|
delete m_networkService;
|
||||||
m_networkService = nullptr;
|
m_networkService = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_wirelessService) {
|
if (m_wirelessService) {
|
||||||
m_wirelessService->deleteLater();
|
delete m_wirelessService;
|
||||||
m_wirelessService = nullptr;
|
m_wirelessService = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -429,7 +429,7 @@ void BluetoothServer::stop()
|
|||||||
if (m_localDevice) {
|
if (m_localDevice) {
|
||||||
qCDebug(dcBluetoothServer()) << "Set host mode to connectable.";
|
qCDebug(dcBluetoothServer()) << "Set host mode to connectable.";
|
||||||
m_localDevice->setHostMode(QBluetoothLocalDevice::HostConnectable);
|
m_localDevice->setHostMode(QBluetoothLocalDevice::HostConnectable);
|
||||||
m_localDevice->deleteLater();
|
delete m_localDevice;
|
||||||
m_localDevice = nullptr;
|
m_localDevice = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -453,7 +453,7 @@ void BluetoothServer::onNetworkingEnabledChanged(bool enabled)
|
|||||||
void BluetoothServer::onWirelessNetworkingEnabledChanged(bool enabled)
|
void BluetoothServer::onWirelessNetworkingEnabledChanged(bool enabled)
|
||||||
{
|
{
|
||||||
if (m_networkService)
|
if (m_networkService)
|
||||||
m_networkService->setNetworkingEnabled(enabled);
|
m_networkService->setWirelessNetworkingEnabled(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BluetoothServer::onNetworkManagerStateChanged(const NetworkManager::NetworkManagerState &state)
|
void BluetoothServer::onNetworkManagerStateChanged(const NetworkManager::NetworkManagerState &state)
|
||||||
|
|||||||
@ -52,6 +52,11 @@ NetworkService::NetworkService(QLowEnergyService *service, QObject *parent) :
|
|||||||
setWirelessNetworkingEnabled(Core::instance()->networkManager()->wirelessEnabled());
|
setWirelessNetworkingEnabled(Core::instance()->networkManager()->wirelessEnabled());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NetworkService::~NetworkService()
|
||||||
|
{
|
||||||
|
qCDebug(dcBluetoothServer()) << "Delete network service";
|
||||||
|
}
|
||||||
|
|
||||||
QLowEnergyService *NetworkService::service()
|
QLowEnergyService *NetworkService::service()
|
||||||
{
|
{
|
||||||
return m_service;
|
return m_service;
|
||||||
@ -165,6 +170,7 @@ QLowEnergyServiceData NetworkService::serviceData()
|
|||||||
networkingEnabledStatusData.setUuid(networkingEnabledCharacteristicUuid);
|
networkingEnabledStatusData.setUuid(networkingEnabledCharacteristicUuid);
|
||||||
networkingEnabledStatusData.setValue(QByteArray(1, 0));
|
networkingEnabledStatusData.setValue(QByteArray(1, 0));
|
||||||
networkingEnabledStatusData.setProperties(QLowEnergyCharacteristic::Read | QLowEnergyCharacteristic::Notify);
|
networkingEnabledStatusData.setProperties(QLowEnergyCharacteristic::Read | QLowEnergyCharacteristic::Notify);
|
||||||
|
networkingEnabledStatusData.addDescriptor(clientConfigDescriptorData);
|
||||||
networkingEnabledStatusData.setValue(QByteArray::fromHex("00"));
|
networkingEnabledStatusData.setValue(QByteArray::fromHex("00"));
|
||||||
serviceData.addCharacteristic(networkingEnabledStatusData);
|
serviceData.addCharacteristic(networkingEnabledStatusData);
|
||||||
|
|
||||||
@ -172,6 +178,7 @@ QLowEnergyServiceData NetworkService::serviceData()
|
|||||||
QLowEnergyCharacteristicData wirelessEnabledStatusData;
|
QLowEnergyCharacteristicData wirelessEnabledStatusData;
|
||||||
wirelessEnabledStatusData.setUuid(wirelessEnabledCharacteristicUuid);
|
wirelessEnabledStatusData.setUuid(wirelessEnabledCharacteristicUuid);
|
||||||
wirelessEnabledStatusData.setValue(QByteArray(1, 0));
|
wirelessEnabledStatusData.setValue(QByteArray(1, 0));
|
||||||
|
wirelessEnabledStatusData.addDescriptor(clientConfigDescriptorData);
|
||||||
wirelessEnabledStatusData.setProperties(QLowEnergyCharacteristic::Read | QLowEnergyCharacteristic::Notify);
|
wirelessEnabledStatusData.setProperties(QLowEnergyCharacteristic::Read | QLowEnergyCharacteristic::Notify);
|
||||||
wirelessEnabledStatusData.setValue(QByteArray::fromHex("00"));
|
wirelessEnabledStatusData.setValue(QByteArray::fromHex("00"));
|
||||||
serviceData.addCharacteristic(wirelessEnabledStatusData);
|
serviceData.addCharacteristic(wirelessEnabledStatusData);
|
||||||
|
|||||||
@ -54,6 +54,7 @@ public:
|
|||||||
Q_ENUM(NetworkServiceResponse)
|
Q_ENUM(NetworkServiceResponse)
|
||||||
|
|
||||||
explicit NetworkService(QLowEnergyService *service, QObject *parent = 0);
|
explicit NetworkService(QLowEnergyService *service, QObject *parent = 0);
|
||||||
|
~NetworkService();
|
||||||
|
|
||||||
QLowEnergyService *service();
|
QLowEnergyService *service();
|
||||||
|
|
||||||
|
|||||||
@ -45,6 +45,11 @@ WirelessService::WirelessService(QLowEnergyService *service, QObject *parent) :
|
|||||||
connect(m_service, SIGNAL(error(QLowEnergyService::ServiceError)), this, SLOT(serviceError(QLowEnergyService::ServiceError)));
|
connect(m_service, SIGNAL(error(QLowEnergyService::ServiceError)), this, SLOT(serviceError(QLowEnergyService::ServiceError)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WirelessService::~WirelessService()
|
||||||
|
{
|
||||||
|
qCDebug(dcBluetoothServer()) << "Delete wireless service";
|
||||||
|
}
|
||||||
|
|
||||||
QLowEnergyService *WirelessService::service()
|
QLowEnergyService *WirelessService::service()
|
||||||
{
|
{
|
||||||
return m_service;
|
return m_service;
|
||||||
|
|||||||
@ -62,6 +62,7 @@ public:
|
|||||||
Q_ENUM(WirelessServiceResponse)
|
Q_ENUM(WirelessServiceResponse)
|
||||||
|
|
||||||
explicit WirelessService(QLowEnergyService *service, QObject *parent = 0);
|
explicit WirelessService(QLowEnergyService *service, QObject *parent = 0);
|
||||||
|
~WirelessService();
|
||||||
|
|
||||||
QLowEnergyService *service();
|
QLowEnergyService *service();
|
||||||
|
|
||||||
|
|||||||
@ -193,7 +193,6 @@ void Core::evaluateNetworkManagerState(const NetworkManager::NetworkManagerState
|
|||||||
stopService();
|
stopService();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NetworkManager::NetworkManagerStateUnknown:
|
case NetworkManager::NetworkManagerStateUnknown:
|
||||||
case NetworkManager::NetworkManagerStateAsleep:
|
case NetworkManager::NetworkManagerStateAsleep:
|
||||||
case NetworkManager::NetworkManagerStateDisconnected:
|
case NetworkManager::NetworkManagerStateDisconnected:
|
||||||
@ -230,7 +229,8 @@ void Core::startService()
|
|||||||
qCDebug(dcApplication()) << "Start bluetooth service";
|
qCDebug(dcApplication()) << "Start bluetooth service";
|
||||||
m_bluetoothServer->setAdvertiseName(m_advertiseName);
|
m_bluetoothServer->setAdvertiseName(m_advertiseName);
|
||||||
m_bluetoothServer->setMachineId(m_platformName);
|
m_bluetoothServer->setMachineId(m_platformName);
|
||||||
m_bluetoothServer->start();
|
|
||||||
|
QTimer::singleShot(5000, m_bluetoothServer, &BluetoothServer::start);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Core::stopService()
|
void Core::stopService()
|
||||||
@ -285,6 +285,9 @@ void Core::onBluetoothServerConnectedChanged(bool connected)
|
|||||||
m_bluetoothServer->onNetworkManagerStateChanged(m_networkManager->state());
|
m_bluetoothServer->onNetworkManagerStateChanged(m_networkManager->state());
|
||||||
m_bluetoothServer->onNetworkingEnabledChanged(m_networkManager->networkingEnabled());
|
m_bluetoothServer->onNetworkingEnabledChanged(m_networkManager->networkingEnabled());
|
||||||
m_bluetoothServer->onWirelessNetworkingEnabledChanged(m_networkManager->wirelessEnabled());
|
m_bluetoothServer->onWirelessNetworkingEnabledChanged(m_networkManager->wirelessEnabled());
|
||||||
|
if (m_wirelessDevice)
|
||||||
|
m_bluetoothServer->onWirelessDeviceStateChanged(m_wirelessDevice->deviceState());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
m_advertisingTimer->stop();
|
m_advertisingTimer->stop();
|
||||||
m_bluetoothServer->stop();
|
m_bluetoothServer->stop();
|
||||||
|
|||||||
Reference in New Issue
Block a user