From 58bceb5d270d0ae645581b921face121edc13bad Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Fri, 14 Jul 2023 13:28:41 +0200 Subject: [PATCH] Started ISMASClient providing the data to be sent to ISMAS. It does not send to ISMAS itself. --- ismas/ismas_client.cpp | 212 +++++++++++++++++++++++++++++++++++++++++ ismas/ismas_client.h | 46 +++++++++ 2 files changed, 258 insertions(+) diff --git a/ismas/ismas_client.cpp b/ismas/ismas_client.cpp index e69de29..8f957fc 100644 --- a/ismas/ismas_client.cpp +++ b/ismas/ismas_client.cpp @@ -0,0 +1,212 @@ +#include "ismas/ismas_client.h" + +#include +#include + +#if 0 +# $1: EVENT: U0001 update finished: 100% +# U0002 reset TRG +# U0003 error +# U0010 for update process +# $2: PERCENT : "only for ISMAS: 0-100%", +# $3: RESULTCODE : "only for ISMAS", +# 0: Success +# 1: no Update nessesary +# 2: Backup failed +# 3: Package error/ Wrong package +# 4: Install Error +# $4: STEP : "running step (only for us): update_psa...", +# $5: STEP_RESULT : "error and result text", +# $6: VERSION : "opkg and conf info; what will be updated" +# +#endif + +#include +#include + +QString IsmasClient::updateNewsToIsmas(char const *event, + int percent, + int resultCode, + char const *step, + char const *step_result, + char const *version) { + char buf[1024]; + memset(buf, 0, sizeof(buf)); + + QString const ts = QDateTime::currentDateTime().toString(Qt::ISODateWithMs); + snprintf(buf, sizeof(buf)-1, + "{" + "\"REASON\":\"SW_UP\"," + "\"TIMESTAMP\":\"%s\"," + "\"EVENT_ID\":\"0\"," + "\"EVENT\":\"%s\"," + "\"EVENTSTATE\":1," + "\"PARAMETER\": {" + "\"PERCENT\" : %d," + "\"RESULTCODE\" : %d," + "\"STEP\" : \"%s\"," + "\"STEP_RESULT\" : \"%s\"," + "\"VERSION\" : \"%s\"" + "}" + "}", ts.toStdString().c_str(), event, percent, resultCode, + step, step_result, version); + return buf; +} + +QString IsmasClient::updateOfPSASendVersion(QString const &tariffVersion, + QString const &tariffProject, + int tariffZone, + QString const &tariffInfo, + QString const &tariffLoadTime, + QString const &linuxVersion, + QString const &cpuSerial, + QString const &deviceControllerVersion, + QString const &deviceControllerGitBlob, + QString const &deviceControllerGitLastCommit, + QString const &raucVersion, + QString const &opkgVersion, + QString const &atbQTVersion, + QString const &atbQTGitDescribe, + QString const &deviceControllerPluginVersion, + QString const &ingenicoISelfCCPluginVersion, + QString const &mobilisisCalculatePricePluginVersion, + QString const &mobilisisCalculatePriceConfigUiVersion, + QString const &prmCalculatePricePluginVersion, + QString const &prmCalculatePriceConfigUiPluginVersion, + QString const &tcpZVTPluginVersion) { + char buf[4096]; + memset(buf, 0, sizeof(buf)); + + QString const ts = QDateTime::currentDateTime().toString(Qt::ISODateWithMs); + QString sendVersionHash; + + // local data="#M=APISM#C=CMD_SENDVERSION#J= + snprintf(buf, sizeof(buf)-1, + "{" + "\"VERSION_INFO\" : {" + "\"CREATED\":\"%s\"," + "\"HASH\":\"%s\"" + "}," + "\"TARIFF\" : {" + "\"VERSION\" : \"%s\"," + "\"PROJECT\" : \"%s\"," + "\"ZONE\" : %d," + "\"INFO\" : \"%s\"," + "\"LOADED\" : \"%s\"" + "}," + "\"HARDWARE\" : {" + "\"DEVICES\" : [\"PTU5\", \"DC\", \"PRINTER\", \"BNA\"]" + "}," + "\"OS\" : {" + "\"Linux\": \"%s\"" + "}," + "\"CONFIG\" : {" + "\"PTU5\" : {" + "\"CPU_SERIAL\" : \"%s\"" + "}," + "\"DC\" : {" + "\"VERSION\" : \"%s\"," + "\"GITBLOB\" : \"%s\"," + "\"GITLASTCOMMIT\" : \"%s\"" + "}," + "\"PRINTER\" : {" + "}," + "\"BNA\" : {" + "}" + "}," + "\"SOFTWARE\": {" + "\"RAUC\" : \"%s\"," + "\"OPKG\" : \"%s\"," + "\"ATBQT\" : {" + "\"VERSION\" : \"%s\"," + "\"GIT_DESCRIBE\" : \"%s\"" + "}" + "}," + "\"PLUGINS\" : {" + "\"libATBDeviceControllerPlugin.so\" : {" + "\"VERSION\" : \"%s\"" + "}," + "\"libIngenicoISelf_CCPlugin.so\" : {" + "\"VERSION\" : \"%s\"" + "}," + "\"libMOBILISIS_CalculatePricePlugin.so\" : {" + "\"VERSION\" : \"%s\"" + "}," + "\"libMOBILISIS_CalculatePricePlugin_ConfigUi.so\" : {" + "\"VERSION\" : \"%s\"" + "}," + "\"libPRM_CalculatePricePlugin.so\" : {" + "\"VERSION\" : \"%s\"" + "}," + "\"libPRM_CalculatePricePlugin_ConfigUi.so\" : {" + "\"VERSION\" : \"%s\"" + "}," + "\"libTCP_ZVT_CCPlugin.so\" : {" + "\"VERSION\" : \"%s\"" + "}" + "}" + "}", + ts.toStdString().c_str(), + sendVersionHash.toStdString().c_str(), + + tariffVersion.toStdString().c_str(), + tariffProject.toStdString().c_str(), + tariffZone, + tariffInfo.toStdString().c_str(), + tariffLoadTime.toStdString().c_str(), + + linuxVersion.toStdString().c_str(), + + cpuSerial.toStdString().c_str(), + + deviceControllerVersion.toStdString().c_str(), + deviceControllerGitBlob.toStdString().c_str(), + deviceControllerGitLastCommit.toStdString().c_str(), + + raucVersion.toStdString().c_str(), + opkgVersion.toStdString().c_str(), + atbQTVersion.toStdString().c_str(), + atbQTGitDescribe.toStdString().c_str(), + + deviceControllerPluginVersion.toStdString().c_str(), + ingenicoISelfCCPluginVersion.toStdString().c_str(), + mobilisisCalculatePricePluginVersion.toStdString().c_str(), + mobilisisCalculatePriceConfigUiVersion.toStdString().c_str(), + prmCalculatePricePluginVersion.toStdString().c_str(), + prmCalculatePriceConfigUiPluginVersion.toStdString().c_str(), + tcpZVTPluginVersion.toStdString().c_str()); + + return buf; +} + + +QString IsmasClient::updateOfPSAActivated() { + return updateNewsToIsmas("U0010", + 1, + 0, + "activated", + "detected WAIT state", + "1.0.0"); +} + +QString IsmasClient::updateOfPSASucceeded() { + return updateNewsToIsmas("U0001", + 100, + 0, + "update_succeeded", + "", + "1.0.0"); +} + +QString IsmasClient::setUpdatesAvailable() { + return updateNewsToIsmas("U0099", + 10, + 0, + "set_updates_available", + "", + ""); +} + + + +bool checkForAvailableUpdates(); diff --git a/ismas/ismas_client.h b/ismas/ismas_client.h index e69de29..12946ff 100644 --- a/ismas/ismas_client.h +++ b/ismas/ismas_client.h @@ -0,0 +1,46 @@ +#ifndef ISMAS_CLIENT_H_INCLUDED +#define ISMAS_CLIENT_H_INCLUDED + +#include +#include + +class IsmasClient : public QObject { + Q_OBJECT + +public: + QString updateNewsToIsmas(char const *event, + int percent, + int resultCode, + char const *step, + char const *step_result, + char const *version); + + QString updateOfPSAActivated(); + QString updateOfPSASucceeded(); + QString updateOfPSASendVersion(QString const &tariffVersion, + QString const &tariffProject, + int tariffZone, + QString const &tariffInfo, + QString const &tariffLoadTime, + QString const &linuxVersion, + QString const &cpuSerial, + QString const &deviceControllerVersion, + QString const &deviceControllerGitBlob, + QString const &deviceControllerGitLastCommit, + QString const &raucVersion, + QString const &opkgVersion, + QString const &atbQTVersion, + QString const &atbQTGitDescribe, + QString const &deviceControllerPluginVersion, + QString const &ingenicoISelfCCPluginVersion, + QString const &mobilisisCalculatePricePluginVersion, + QString const &mobilisisCalculatePriceConfigUiVersion, + QString const &prmCalculatePricePluginVersion, + QString const &prmCalculatePriceConfigUiPluginVersion, + QString const &tcpZVTPluginVersion); + + QString setUpdatesAvailable(); + bool checkForAvailableUpdates(); +}; + +#endif // ISMAS_CLIENT_H_INCLUDED