Add testing mode
This commit is contained in:
parent
d294d93871
commit
065376e06d
@ -75,6 +75,16 @@ void Core::setPlatformName(const QString &name)
|
||||
m_platformName = name;
|
||||
}
|
||||
|
||||
bool Core::testingEnabled() const
|
||||
{
|
||||
return m_testing;
|
||||
}
|
||||
|
||||
void Core::setTestingEnabled(bool testing)
|
||||
{
|
||||
m_testing = testing;
|
||||
}
|
||||
|
||||
void Core::run()
|
||||
{
|
||||
// Start the networkmanager service
|
||||
@ -97,6 +107,7 @@ Core::Core(QObject *parent) :
|
||||
connect(m_bluetoothServer, &BluetoothServer::connectedChanged, this, &Core::onBluetoothServerConnectedChanged);
|
||||
|
||||
m_nymeaService = new NymeadService(false, this);
|
||||
connect(m_nymeaService, &NymeadService::availableChanged, this, &Core::onNymeaServiceAvailableChanged);
|
||||
}
|
||||
|
||||
Core::~Core()
|
||||
@ -116,6 +127,12 @@ Core::~Core()
|
||||
|
||||
void Core::evaluateNetworkManagerState(const NetworkManager::NetworkManagerState &state)
|
||||
{
|
||||
if (m_testing && m_networkManager->available()) {
|
||||
startService();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
switch (state) {
|
||||
case NetworkManager::NetworkManagerStateConnectedGlobal:
|
||||
// We are online
|
||||
@ -143,8 +160,6 @@ void Core::evaluateNetworkManagerState(const NetworkManager::NetworkManagerState
|
||||
|
||||
void Core::startService()
|
||||
{
|
||||
qCDebug(dcApplication()) << "Start service";
|
||||
|
||||
if (!m_networkManager->available()) {
|
||||
qCWarning(dcApplication()) << "Could not start services. There is no network manager available.";
|
||||
return;
|
||||
@ -159,6 +174,8 @@ void Core::startService()
|
||||
if (m_bluetoothServer->running())
|
||||
return;
|
||||
|
||||
qCDebug(dcApplication()) << "Start service";
|
||||
|
||||
// Disable bluetooth on nymea in order to not crash with client connections
|
||||
m_nymeaService->enableBluetooth(false);
|
||||
|
||||
@ -171,6 +188,10 @@ void Core::startService()
|
||||
|
||||
void Core::stopService()
|
||||
{
|
||||
if (m_testing) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_bluetoothServer->running())
|
||||
qCDebug(dcApplication()) << "Stop bluetooth service";
|
||||
|
||||
@ -209,3 +230,11 @@ void Core::onNetworkManagerStateChanged(const NetworkManager::NetworkManagerStat
|
||||
qCDebug(dcApplication()) << state;
|
||||
evaluateNetworkManagerState(state);
|
||||
}
|
||||
|
||||
void Core::onNymeaServiceAvailableChanged(bool available)
|
||||
{
|
||||
if (available && m_bluetoothServer->running()) {
|
||||
// Check if the bluetooth server is running, disable nymea bt functionality in that case
|
||||
m_nymeaService->enableBluetooth(false);
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,6 +45,9 @@ public:
|
||||
QString platformName() const;
|
||||
void setPlatformName(const QString &name);
|
||||
|
||||
bool testingEnabled() const;
|
||||
void setTestingEnabled(bool testing);
|
||||
|
||||
void run();
|
||||
|
||||
private:
|
||||
@ -59,6 +62,7 @@ private:
|
||||
|
||||
QString m_advertiseName;
|
||||
QString m_platformName;
|
||||
bool m_testing = false;
|
||||
|
||||
void evaluateNetworkManagerState(const NetworkManager::NetworkManagerState &state);
|
||||
|
||||
@ -72,6 +76,8 @@ private slots:
|
||||
void onNetworkManagerAvailableChanged(const bool &available);
|
||||
void onNetworkManagerStateChanged(const NetworkManager::NetworkManagerState &state);
|
||||
|
||||
void onNymeaServiceAvailableChanged(bool available);
|
||||
|
||||
};
|
||||
|
||||
#endif // CORE_H
|
||||
|
||||
@ -122,6 +122,7 @@ int main(int argc, char *argv[])
|
||||
// Start core
|
||||
Core::instance()->setAdvertiseName(parser.value(advertiseNameOption));
|
||||
Core::instance()->setPlatformName(parser.value(platformNameOption));
|
||||
Core::instance()->setTestingEnabled(parser.isSet(testingOption));
|
||||
Core::instance()->run();
|
||||
|
||||
return application.exec();
|
||||
|
||||
Reference in New Issue
Block a user