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
1 merge request!3[*] add ready read slot and send data logic
......@@ -11,6 +11,7 @@ DiagDataSendingWorker::DiagDataSendingWorker(QTcpServer *parent)
Qt::QueuedConnection);
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_netMngr = new QNetworkAccessManager(this);
......@@ -52,6 +53,11 @@ void DiagDataSendingWorker::onNewConnection()
this, &DiagDataSendingWorker::onClientDisconnect,
Qt::QueuedConnection);
connect(_socket, &QTcpSocket::readyRead,
this, &DiagDataSendingWorker::onReadyRead,
Qt::QueuedConnection);
qDebug()<<"Client's count:" << s_tcpSocketList.length();
}
......@@ -63,6 +69,29 @@ void DiagDataSendingWorker::onClientDisconnect()
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)
{
......@@ -72,6 +101,9 @@ void DiagDataSendingWorker::sendData(QJsonDocument diagdata, QString mac)
client->write(diagdata.toJson());
}
if(!f_sendingDataToServer)
return;
for (const auto &url_s : qAsConst(m_urls))
{
QUrl url = QUrl(url_s);
......
......@@ -7,9 +7,11 @@
#include <QTextCodec>
#include <QUrl>
#include <QTimer>
#include <QSettings>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonParseError>
#include <QNetworkAccessManager>
#include <QHttpPart>
......@@ -28,7 +30,7 @@ private slots:
void startServer();
void onNewConnection();
void onClientDisconnect();
void onReadyRead();
private:
QTimer *s_timer_restart;
......@@ -37,6 +39,8 @@ private:
QStringList m_urls;
QNetworkAccessManager *m_netMngr;
bool f_sendingDataToServer{true};
public:
bool serverStatus{false};
......
......@@ -108,15 +108,20 @@ void DiagnosticWorker::slot_diagnostic_data(QJsonDocument data)
if(m_node_version.isEmpty())
{
QProcess proc;
proc.start(QString(CLI_PATH), QStringList()<<"version");
proc.waitForFinished(5000);
QString result = proc.readAll();
if(result.contains("version"))
proc.setProgram(QString(CLI_PATH));
proc.setArguments(QStringList()<<"version");
proc.start();
if(proc.waitForFinished(5000));
{
result = result.split("version")[1];
m_node_version = result.split('\n', QString::SkipEmptyParts).first().trimmed();
QString result = proc.readAllStandardOutput();
if(result.contains("version"))
{
result = result.split("version")[1];
m_node_version = result.split('\n', QString::SkipEmptyParts).first().trimmed();
}
}
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