Skip to content
Snippets Groups Projects
Commit 8e493e24 authored by Denis Sumin's avatar Denis Sumin
Browse files

Merge branch 'features-13250' into 'master'

[*] add ready read slot and send data logic

See merge request !3
parents f2a88e9b 8ebd6fa6
No related branches found
No related tags found
Loading
...@@ -11,6 +11,7 @@ DiagDataSendingWorker::DiagDataSendingWorker(QTcpServer *parent) ...@@ -11,6 +11,7 @@ DiagDataSendingWorker::DiagDataSendingWorker(QTcpServer *parent)
Qt::QueuedConnection); Qt::QueuedConnection);
startServer(); startServer();
f_sendingDataToServer = QSettings().value("send_data_flag", true).toBool();
m_urls = QStringList()<<"https://telemetry.cellframe.net/diag_report"<< "https://engine-minkowski.kelvpn.com/diag_report"; m_urls = QStringList()<<"https://telemetry.cellframe.net/diag_report"<< "https://engine-minkowski.kelvpn.com/diag_report";
m_netMngr = new QNetworkAccessManager(this); m_netMngr = new QNetworkAccessManager(this);
...@@ -52,6 +53,11 @@ void DiagDataSendingWorker::onNewConnection() ...@@ -52,6 +53,11 @@ void DiagDataSendingWorker::onNewConnection()
this, &DiagDataSendingWorker::onClientDisconnect, this, &DiagDataSendingWorker::onClientDisconnect,
Qt::QueuedConnection); Qt::QueuedConnection);
connect(_socket, &QTcpSocket::readyRead,
this, &DiagDataSendingWorker::onReadyRead,
Qt::QueuedConnection);
qDebug()<<"Client's count:" << s_tcpSocketList.length(); qDebug()<<"Client's count:" << s_tcpSocketList.length();
} }
...@@ -63,6 +69,29 @@ void DiagDataSendingWorker::onClientDisconnect() ...@@ -63,6 +69,29 @@ void DiagDataSendingWorker::onClientDisconnect()
qDebug()<<"Client's count:" << s_tcpSocketList.length(); qDebug()<<"Client's count:" << s_tcpSocketList.length();
} }
void DiagDataSendingWorker::onReadyRead()
{
QTcpSocket* _socket = dynamic_cast<QTcpSocket*>(sender());
if ( _socket == nullptr ||
_socket->state() != QAbstractSocket::ConnectedState) { return; }
QJsonParseError error;
QByteArray rcvData = _socket->readAll();
QJsonDocument encodedJson = QJsonDocument::fromJson(rcvData, &error);
if(error.error != QJsonParseError::NoError)
return;
QJsonObject rcvObj = encodedJson.object();
if(!rcvObj["send_data_flag"].isNull() && rcvObj["send_data_flag"].isBool())
{
f_sendingDataToServer = rcvObj["send_data_flag"].toBool();
QSettings().setValue("send_data_flag",f_sendingDataToServer);
}
else
return;
}
void DiagDataSendingWorker::sendData(QJsonDocument diagdata, QString mac) void DiagDataSendingWorker::sendData(QJsonDocument diagdata, QString mac)
{ {
...@@ -72,6 +101,9 @@ void DiagDataSendingWorker::sendData(QJsonDocument diagdata, QString mac) ...@@ -72,6 +101,9 @@ void DiagDataSendingWorker::sendData(QJsonDocument diagdata, QString mac)
client->write(diagdata.toJson()); client->write(diagdata.toJson());
} }
if(!f_sendingDataToServer)
return;
for (const auto &url_s : qAsConst(m_urls)) for (const auto &url_s : qAsConst(m_urls))
{ {
QUrl url = QUrl(url_s); QUrl url = QUrl(url_s);
......
...@@ -7,9 +7,11 @@ ...@@ -7,9 +7,11 @@
#include <QTextCodec> #include <QTextCodec>
#include <QUrl> #include <QUrl>
#include <QTimer> #include <QTimer>
#include <QSettings>
#include <QJsonDocument> #include <QJsonDocument>
#include <QJsonObject> #include <QJsonObject>
#include <QJsonParseError>
#include <QNetworkAccessManager> #include <QNetworkAccessManager>
#include <QHttpPart> #include <QHttpPart>
...@@ -28,7 +30,7 @@ private slots: ...@@ -28,7 +30,7 @@ private slots:
void startServer(); void startServer();
void onNewConnection(); void onNewConnection();
void onClientDisconnect(); void onClientDisconnect();
void onReadyRead();
private: private:
QTimer *s_timer_restart; QTimer *s_timer_restart;
...@@ -37,6 +39,8 @@ private: ...@@ -37,6 +39,8 @@ private:
QStringList m_urls; QStringList m_urls;
QNetworkAccessManager *m_netMngr; QNetworkAccessManager *m_netMngr;
bool f_sendingDataToServer{true};
public: public:
bool serverStatus{false}; bool serverStatus{false};
......
...@@ -108,15 +108,20 @@ void DiagnosticWorker::slot_diagnostic_data(QJsonDocument data) ...@@ -108,15 +108,20 @@ void DiagnosticWorker::slot_diagnostic_data(QJsonDocument data)
if(m_node_version.isEmpty()) if(m_node_version.isEmpty())
{ {
QProcess proc; QProcess proc;
proc.start(QString(CLI_PATH), QStringList()<<"version"); proc.setProgram(QString(CLI_PATH));
proc.waitForFinished(5000); proc.setArguments(QStringList()<<"version");
QString result = proc.readAll(); proc.start();
if(result.contains("version")) if(proc.waitForFinished(5000));
{ {
result = result.split("version")[1]; QString result = proc.readAllStandardOutput();
m_node_version = result.split('\n', QString::SkipEmptyParts).first().trimmed(); if(result.contains("version"))
{
result = result.split("version")[1];
m_node_version = result.split('\n', QString::SkipEmptyParts).first().trimmed();
}
} }
m_notifyWorker->nodeIsOnline(); m_notifyWorker->nodeIsOnline();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment