Started ISMASClient providing the data to be sent to ISMAS.
It does not send to ISMAS itself.
This commit is contained in:
		@@ -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();
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user