make it build with older qt
This commit is contained in:
parent
c040a71cdb
commit
896f5e73a7
@ -35,7 +35,8 @@ QHash<quint16, AWSConnector*> AWSConnector::s_requestMap;
|
|||||||
|
|
||||||
AWSConnector::AWSConnector(QObject *parent) : QObject(parent)
|
AWSConnector::AWSConnector(QObject *parent) : QObject(parent)
|
||||||
{
|
{
|
||||||
connect(this, &AWSConnector::connected, this, &AWSConnector::onConnected);
|
connect(this, &AWSConnector::connected, this, &AWSConnector::onConnected, Qt::QueuedConnection);
|
||||||
|
connect(this, &AWSConnector::disconnected, this, &AWSConnector::onDisconnected, Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
|
|
||||||
AWSConnector::~AWSConnector()
|
AWSConnector::~AWSConnector()
|
||||||
@ -44,6 +45,7 @@ AWSConnector::~AWSConnector()
|
|||||||
|
|
||||||
void AWSConnector::connect2AWS(const QString &endpoint, const QString &clientId, const QString &clientName, const QString &caFile, const QString &clientCertFile, const QString &clientPrivKeyFile)
|
void AWSConnector::connect2AWS(const QString &endpoint, const QString &clientId, const QString &clientName, const QString &caFile, const QString &clientCertFile, const QString &clientPrivKeyFile)
|
||||||
{
|
{
|
||||||
|
m_reconnect = true;
|
||||||
m_networkConnection = std::shared_ptr<MbedTLSConnection>(new MbedTLSConnection(
|
m_networkConnection = std::shared_ptr<MbedTLSConnection>(new MbedTLSConnection(
|
||||||
endpoint.toStdString(),
|
endpoint.toStdString(),
|
||||||
8883,
|
8883,
|
||||||
@ -56,8 +58,7 @@ void AWSConnector::connect2AWS(const QString &endpoint, const QString &clientId,
|
|||||||
true
|
true
|
||||||
));
|
));
|
||||||
m_client = MqttClient::Create(m_networkConnection, std::chrono::milliseconds(30000));
|
m_client = MqttClient::Create(m_networkConnection, std::chrono::milliseconds(30000));
|
||||||
m_client->SetDisconnectCallbackPtr(&onDisconnected, std::shared_ptr<DisconnectCallbackContextData>(this));
|
m_client->SetDisconnectCallbackPtr(&onDisconnectedCallback, std::shared_ptr<DisconnectCallbackContextData>(this));
|
||||||
m_client->SetAutoReconnectEnabled(true);
|
|
||||||
m_clientId = clientId;
|
m_clientId = clientId;
|
||||||
m_clientName = clientName;
|
m_clientName = clientName;
|
||||||
|
|
||||||
@ -78,6 +79,7 @@ DisconnectCallbackContextData::~DisconnectCallbackContextData() {}
|
|||||||
|
|
||||||
void AWSConnector::disconnectAWS()
|
void AWSConnector::disconnectAWS()
|
||||||
{
|
{
|
||||||
|
m_reconnect = false;
|
||||||
if (isConnected()) {
|
if (isConnected()) {
|
||||||
m_client->Disconnect(std::chrono::seconds(2));
|
m_client->Disconnect(std::chrono::seconds(2));
|
||||||
}
|
}
|
||||||
@ -125,9 +127,28 @@ quint16 AWSConnector::publish(const QString &topic, const QVariantMap &message)
|
|||||||
void AWSConnector::onConnected()
|
void AWSConnector::onConnected()
|
||||||
{
|
{
|
||||||
qCDebug(dcAWS()) << "AWS connected";
|
qCDebug(dcAWS()) << "AWS connected";
|
||||||
|
m_client->SetAutoReconnectEnabled(true);
|
||||||
registerDevice();
|
registerDevice();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AWSConnector::onDisconnected()
|
||||||
|
{
|
||||||
|
qCDebug(dcAWS()) << "AWS disconnected.";
|
||||||
|
if (m_reconnect) {
|
||||||
|
qCDebug(dcAWS()) << "Reconnecting...";
|
||||||
|
m_connectingFuture = QtConcurrent::run([&]() {
|
||||||
|
ResponseCode rc = m_client->Connect(std::chrono::milliseconds(30000), true, mqtt::Version::MQTT_3_1_1, std::chrono::seconds(60), Utf8String::Create(m_clientId.toStdString()), nullptr, nullptr, nullptr);
|
||||||
|
if (rc == ResponseCode::MQTT_CONNACK_CONNECTION_ACCEPTED) {
|
||||||
|
emit connected();
|
||||||
|
} else {
|
||||||
|
qCWarning(dcAWS) << "Error connecting to AWS. Response code:" << QString::fromStdString(ResponseHelper::ToString(rc));
|
||||||
|
m_client.reset();
|
||||||
|
m_networkConnection.reset();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void AWSConnector::retrievePairedDeviceInfo()
|
void AWSConnector::retrievePairedDeviceInfo()
|
||||||
{
|
{
|
||||||
QVariantMap params;
|
QVariantMap params;
|
||||||
@ -154,7 +175,7 @@ void AWSConnector::setName()
|
|||||||
{
|
{
|
||||||
QVariantMap params;
|
QVariantMap params;
|
||||||
params.insert("id", ++m_transactionId);
|
params.insert("id", ++m_transactionId);
|
||||||
params.insert("timestamp", QDateTime::currentSecsSinceEpoch());
|
params.insert("timestamp", QDateTime::currentMSecsSinceEpoch() / 1000);
|
||||||
params.insert("command", "postName");
|
params.insert("command", "postName");
|
||||||
params.insert("name", m_clientName);
|
params.insert("name", m_clientName);
|
||||||
publish(QString("%1/device/name").arg(m_clientId), params);
|
publish(QString("%1/device/name").arg(m_clientId), params);
|
||||||
@ -216,7 +237,7 @@ void AWSConnector::subscribeCallback(uint16_t actionId, ResponseCode rc)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
qCDebug(dcAWS()) << "Subscribe callback for action" << actionId;
|
qCDebug(dcAWSTraffic()) << "Successfully subscribed (actionId:" << actionId << ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
ResponseCode AWSConnector::onSubscriptionReceivedCallback(util::String topic_name, util::String payload, std::shared_ptr<SubscriptionHandlerContextData> p_app_handler_data)
|
ResponseCode AWSConnector::onSubscriptionReceivedCallback(util::String topic_name, util::String payload, std::shared_ptr<SubscriptionHandlerContextData> p_app_handler_data)
|
||||||
@ -286,9 +307,12 @@ ResponseCode AWSConnector::onSubscriptionReceivedCallback(util::String topic_nam
|
|||||||
return ResponseCode::SUCCESS;
|
return ResponseCode::SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
ResponseCode AWSConnector::onDisconnected(util::String mqtt_client_id, std::shared_ptr<DisconnectCallbackContextData> p_app_handler_data)
|
ResponseCode AWSConnector::onDisconnectedCallback(util::String mqtt_client_id, std::shared_ptr<DisconnectCallbackContextData> p_app_handler_data)
|
||||||
{
|
{
|
||||||
Q_UNUSED(p_app_handler_data)
|
Q_UNUSED(p_app_handler_data)
|
||||||
qCDebug(dcAWS()) << "disconnected" << QString::fromStdString(mqtt_client_id);
|
qCDebug(dcAWS()) << "disconnected" << QString::fromStdString(mqtt_client_id);
|
||||||
|
|
||||||
|
// AWSConnector* connector = static_cast<AWSConnector*>(p_app_handler_data.get());
|
||||||
|
// emit connector->disconnected();
|
||||||
return ResponseCode::SUCCESS;
|
return ResponseCode::SUCCESS;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,11 +45,13 @@ public:
|
|||||||
|
|
||||||
signals:
|
signals:
|
||||||
void connected();
|
void connected();
|
||||||
|
void disconnected();
|
||||||
void devicePaired(const QString &cognritoUserId, int errorCode);
|
void devicePaired(const QString &cognritoUserId, int errorCode);
|
||||||
void webRtcHandshakeMessageReceived(const QString &transactionId, const QVariantMap &data);
|
void webRtcHandshakeMessageReceived(const QString &transactionId, const QVariantMap &data);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void onConnected();
|
void onConnected();
|
||||||
|
void onDisconnected();
|
||||||
void retrievePairedDeviceInfo();
|
void retrievePairedDeviceInfo();
|
||||||
void registerDevice();
|
void registerDevice();
|
||||||
void setName();
|
void setName();
|
||||||
@ -61,12 +63,13 @@ private:
|
|||||||
static void subscribeCallback(uint16_t actionId, awsiotsdk::ResponseCode rc);
|
static void subscribeCallback(uint16_t actionId, awsiotsdk::ResponseCode rc);
|
||||||
static awsiotsdk::ResponseCode onSubscriptionReceivedCallback(awsiotsdk::util::String topic_name, awsiotsdk::util::String payload,
|
static awsiotsdk::ResponseCode onSubscriptionReceivedCallback(awsiotsdk::util::String topic_name, awsiotsdk::util::String payload,
|
||||||
std::shared_ptr<SubscriptionHandlerContextData> p_app_handler_data);
|
std::shared_ptr<SubscriptionHandlerContextData> p_app_handler_data);
|
||||||
static awsiotsdk::ResponseCode onDisconnected(awsiotsdk::util::String mqtt_client_id,
|
static awsiotsdk::ResponseCode onDisconnectedCallback(awsiotsdk::util::String mqtt_client_id,
|
||||||
std::shared_ptr<DisconnectCallbackContextData> p_app_handler_data);
|
std::shared_ptr<DisconnectCallbackContextData> p_app_handler_data);
|
||||||
|
|
||||||
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;
|
||||||
|
bool m_reconnect = false;
|
||||||
|
|
||||||
QString m_clientId;
|
QString m_clientId;
|
||||||
QString m_clientName;
|
QString m_clientName;
|
||||||
|
|||||||
Reference in New Issue
Block a user