Started ISMASClient providing the data to be sent to ISMAS.

It does not send to ISMAS itself.
This commit is contained in:
Gerhard Hoffmann 2023-07-14 13:28:41 +02:00
parent 92084bed99
commit 58bceb5d27
2 changed files with 258 additions and 0 deletions

View File

@ -0,0 +1,212 @@
#include "ismas/ismas_client.h"
#include <cstring>
#include <cstdio>
#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 <QDateTime>
#include <QDebug>
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();

View File

@ -0,0 +1,46 @@
#ifndef ISMAS_CLIENT_H_INCLUDED
#define ISMAS_CLIENT_H_INCLUDED
#include <QObject>
#include <QString>
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