implement setName functionality

This commit is contained in:
Michael Zanetti 2017-11-22 15:46:15 +01:00
parent c446154b7d
commit a054f6c9d7
6 changed files with 41 additions and 7 deletions

View File

@ -114,8 +114,8 @@ void AWSConnector::onConnected()
} }
qCDebug(dcAWS()) << "AWS connected. Device already registered in cloud."; qCDebug(dcAWS()) << "AWS connected. Device already registered in cloud.";
// OK, we're registerd already, go straight to pairing setup // OK, we're registerd already, go straight to subscription setup
setupPairing(); setupSubscriptions();
} }
void AWSConnector::registerDevice() void AWSConnector::registerDevice()
@ -146,13 +146,14 @@ void AWSConnector::onDeviceRegistered(bool needsReconnect)
return; return;
} }
setupPairing(); setupSubscriptions();
} }
void AWSConnector::setupPairing() void AWSConnector::setupSubscriptions()
{ {
// Subscribe to pairing info topics // Subscribe to pairing info topics
QStringList subscriptions; QStringList subscriptions;
subscriptions.append(QString("%1/device/name/response").arg(m_clientId));
subscriptions.append(QString("%1/device/users/response").arg(m_clientId)); subscriptions.append(QString("%1/device/users/response").arg(m_clientId));
subscriptions.append(QString("%1/pair/response").arg(m_clientId)); subscriptions.append(QString("%1/pair/response").arg(m_clientId));
subscribe(subscriptions); subscribe(subscriptions);
@ -178,6 +179,10 @@ void AWSConnector::onPairingsRetrieved(const QVariantList &pairings)
} }
subscribe(topics); subscribe(topics);
if (!readNameSyncedFlag()) {
setName();
}
m_setupInProgress = false; m_setupInProgress = false;
emit connected(); emit connected();
} }
@ -199,6 +204,17 @@ bool AWSConnector::isConnected() const
return m_connectingFuture.isFinished() && m_networkConnection && m_client && m_client->IsConnected(); return m_connectingFuture.isFinished() && m_networkConnection && m_client && m_client->IsConnected();
} }
void AWSConnector::setDeviceName(const QString &deviceName)
{
if (m_clientName != deviceName) {
m_clientName = deviceName;
storeNameSyncedFlag(false);
if (isConnected()) {
setName();
}
}
}
void AWSConnector::pairDevice(const QString &idToken, const QString &userId) void AWSConnector::pairDevice(const QString &idToken, const QString &userId)
{ {
QVariantMap map; QVariantMap map;
@ -432,3 +448,15 @@ bool AWSConnector::readRegisteredFlag() const
QSettings settings(GuhSettings::storagePath() + "/cloudstatus.conf", QSettings::IniFormat); QSettings settings(GuhSettings::storagePath() + "/cloudstatus.conf", QSettings::IniFormat);
return settings.value("registered", false).toBool(); return settings.value("registered", false).toBool();
} }
void AWSConnector::storeNameSyncedFlag(bool synced)
{
QSettings settings(GuhSettings::storagePath() + "/cloudstatus.conf", QSettings::IniFormat);
settings.setValue("nameSynced", synced);
}
bool AWSConnector::readNameSyncedFlag()
{
QSettings settings(GuhSettings::storagePath() + "/cloudstatus.conf", QSettings::IniFormat);
return settings.value("nameSynced", false).toBool();
}

View File

@ -43,6 +43,7 @@ public:
void disconnectAWS(); void disconnectAWS();
bool isConnected() const; bool isConnected() const;
void setDeviceName(const QString &deviceName);
void pairDevice(const QString &idToken, const QString &userId); void pairDevice(const QString &idToken, const QString &userId);
void sendWebRtcHandshakeMessage(const QString &sessionId, const QVariantMap &map); void sendWebRtcHandshakeMessage(const QString &sessionId, const QVariantMap &map);
@ -58,7 +59,7 @@ private slots:
void onConnected(); void onConnected();
void registerDevice(); void registerDevice();
void onDeviceRegistered(bool needsReconnect); void onDeviceRegistered(bool needsReconnect);
void setupPairing(); void setupSubscriptions();
void fetchPairings(); void fetchPairings();
void onPairingsRetrieved(const QVariantList &pairings); void onPairingsRetrieved(const QVariantList &pairings);
void setName(); void setName();
@ -89,6 +90,9 @@ private:
void storeRegisteredFlag(bool registered); void storeRegisteredFlag(bool registered);
bool readRegisteredFlag() const; bool readRegisteredFlag() const;
void storeNameSyncedFlag(bool synced);
bool readNameSyncedFlag();
private: private:
std::shared_ptr<awsiotsdk::network::MbedTLSConnection> m_networkConnection; std::shared_ptr<awsiotsdk::network::MbedTLSConnection> m_networkConnection;
std::shared_ptr<awsiotsdk::MqttClient> m_client; std::shared_ptr<awsiotsdk::MqttClient> m_client;

View File

@ -56,6 +56,7 @@ void CloudManager::setDeviceId(const QUuid &deviceId)
void CloudManager::setDeviceName(const QString &name) void CloudManager::setDeviceName(const QString &name)
{ {
m_deviceName = name; m_deviceName = name;
m_awsConnector->setDeviceName(name);
} }
void CloudManager::setClientCertificates(const QString &caCertificate, const QString &clientCertificate, const QString &clientCertificateKey) void CloudManager::setClientCertificates(const QString &caCertificate, const QString &clientCertificate, const QString &clientCertificateKey)

View File

@ -183,7 +183,7 @@ void GuhConfiguration::setServerName(const QString &serverName)
} else { } else {
settings.setValue("name", serverName); settings.setValue("name", serverName);
settings.endGroup(); settings.endGroup();
emit serverNameChanged(); emit serverNameChanged(serverName);
} }
} }

View File

@ -135,7 +135,7 @@ private:
WebServerConfiguration readWebServerConfig(const QString &id); WebServerConfiguration readWebServerConfig(const QString &id);
signals: signals:
void serverNameChanged(); void serverNameChanged(const QString &serverName);
void timeZoneChanged(); void timeZoneChanged();
void localeChanged(); void localeChanged();

View File

@ -458,6 +458,7 @@ void GuhCore::init() {
connect(m_configuration, &GuhConfiguration::localeChanged, this, &GuhCore::onLocaleChanged); connect(m_configuration, &GuhConfiguration::localeChanged, this, &GuhCore::onLocaleChanged);
connect(m_configuration, &GuhConfiguration::cloudEnabledChanged, m_cloudManager, &CloudManager::setEnabled); connect(m_configuration, &GuhConfiguration::cloudEnabledChanged, m_cloudManager, &CloudManager::setEnabled);
connect(m_configuration, &GuhConfiguration::serverNameChanged, m_cloudManager, &CloudManager::setDeviceName);
connect(m_deviceManager, &DeviceManager::pluginConfigChanged, this, &GuhCore::pluginConfigChanged); connect(m_deviceManager, &DeviceManager::pluginConfigChanged, this, &GuhCore::pluginConfigChanged);
connect(m_deviceManager, &DeviceManager::eventTriggered, this, &GuhCore::gotEvent); connect(m_deviceManager, &DeviceManager::eventTriggered, this, &GuhCore::gotEvent);