Compare commits
15 Commits
improve-is
...
1.4.7
Author | SHA1 | Date | |
---|---|---|---|
22e751e197 | |||
05c7d11ef8 | |||
63dc70dda9 | |||
e5ab9b98cd | |||
4477647acf | |||
d64b029a2d | |||
e24022a612 | |||
60d78790ba | |||
543e712c62 | |||
8402fde6b5 | |||
f15cc636c6 | |||
adaa12395e | |||
853c29e448 | |||
78c214ceb4 | |||
88bec387c5 |
@@ -117,7 +117,13 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
||||
# customer-repository (e.g. origin/zg1/zone101), then fetch/pull
|
||||
# this branch before switching to this now locally existen branch.
|
||||
# : Improve output of GUI/Console and messages sent to ISMAS.
|
||||
VERSION="1.4.6"
|
||||
# : Fix: do not send the json-files to dc in any case. Bug introduced
|
||||
# when pulling new branch, but branch already existed locally.
|
||||
# 1.4.6 : No exit()-call if loading CA-plugin fails.
|
||||
# Check m_hw (pointer to CA-(Slave)Plugin) before its use.
|
||||
# Only exit() if firmware is configured to be possibly updated, but
|
||||
# loading the CA-plugin failed.
|
||||
VERSION="1.4.7"
|
||||
# PLANNED TODOS:
|
||||
# 1: Das Repository wird repariert bwz. neu geklont. Unabhaengig vom WAIT.
|
||||
# 2: Wenn der WAIT-Button aktiv ist, dann wird ein Repository repariert (neu
|
||||
|
@@ -193,7 +193,7 @@ QStringList GitClient::gitShowReason(QString branchName) {
|
||||
int const m = s.indexOf("m=");
|
||||
int const d = s.indexOf("d=");
|
||||
|
||||
QString msg = IsmasClient::getReasonForLastSendVersion();
|
||||
QString msg{""}; // IsmasClient::getReasonForLastSendVersion();
|
||||
QString commit{""}, date{""};
|
||||
|
||||
if (c != -1) {
|
||||
@@ -205,9 +205,9 @@ QStringList GitClient::gitShowReason(QString branchName) {
|
||||
start = m + 2;
|
||||
if (d >= start) {
|
||||
length = d - start;
|
||||
msg += " (";
|
||||
// msg = " (";
|
||||
msg = s.mid(start, length).trimmed();
|
||||
msg += ")";
|
||||
// msg += ")";
|
||||
|
||||
start = d + 2;
|
||||
date = s.mid(start);
|
||||
|
@@ -130,7 +130,9 @@ int main(int argc, char *argv[]) {
|
||||
if (!QDir(plugInDir).exists()) {
|
||||
qCritical() << plugInDir
|
||||
<< "does not exists, but has to contain dc-library";
|
||||
exit(-1);
|
||||
if (noUpdatePsaHardware == false) {
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
|
||||
// before loading the library, delete all possible shared memory segments
|
||||
|
@@ -52,7 +52,6 @@ hwinf *Update::loadDCPlugin(QDir const &plugInDir, QString const &fname) {
|
||||
qCritical() << "in directory" << plugInDir.absolutePath();
|
||||
qCritical() << "cannot load plugin" << pluginLoader.fileName();
|
||||
qCritical() << pluginLoader.errorString();
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
qCritical() << "loadDCPlugin() plugin directory:" << plugInDir.absolutePath();
|
||||
@@ -60,25 +59,20 @@ hwinf *Update::loadDCPlugin(QDir const &plugInDir, QString const &fname) {
|
||||
|
||||
if (!pluginLoader.isLoaded()) {
|
||||
qCritical() << pluginLoader.errorString();
|
||||
exit(-2);
|
||||
}
|
||||
QObject *plugin = pluginLoader.instance();
|
||||
if (!plugin) {
|
||||
qCritical() << "cannot start instance";
|
||||
exit(-3);
|
||||
}
|
||||
if (! (hw = qobject_cast<hwinf *>(plugin))) {
|
||||
qCritical() << "cannot cast plugin" << plugin << "to hwinf";
|
||||
exit(-4);
|
||||
}
|
||||
} else {
|
||||
qCritical() << pluginLibName << "does not exist";
|
||||
exit(-5);
|
||||
}
|
||||
} else {
|
||||
qCritical() << "plugins directory" << plugInDir.absolutePath()
|
||||
<< "does not exist";
|
||||
exit(-6);
|
||||
}
|
||||
return hw;
|
||||
}
|
||||
@@ -124,7 +118,7 @@ Update::Update(Worker *worker,
|
||||
, m_sys_areDCdataValid(false) {
|
||||
|
||||
if (!m_hw) {
|
||||
qCritical() << "(" << __func__ << ":" << __LINE__ << ") m_hw == nullptr -> ca-slave plugin loaded ???";
|
||||
qCritical() << "(" << __func__ << ":" << __LINE__ << ") m_hw == nullptr -> ca-slave plugin not loaded";
|
||||
} else {
|
||||
int tries = 20;
|
||||
while ((m_sys_areDCdataValid = m_hw->sys_areDCdataValid()) == false) {
|
||||
@@ -191,33 +185,37 @@ void Update::onReportDCDownloadFailure(QString const &errorMsg) {
|
||||
|
||||
// br is a index into a table, used for historical reasons.
|
||||
bool Update::openSerial(int br, QString baudrate, QString comPort) const {
|
||||
qDebug() << "opening serial" << br << baudrate << comPort << "...";
|
||||
if (m_hw->dc_openSerial(br, baudrate, comPort, 1) == true) { // 1 for connect
|
||||
Utils::printInfoMsg(
|
||||
if (m_hw) {
|
||||
qDebug() << "opening serial" << br << baudrate << comPort << "...";
|
||||
if (m_hw->dc_openSerial(br, baudrate, comPort, 1) == true) { // 1 for connect
|
||||
Utils::printInfoMsg(
|
||||
QString("OPENING SERIAL %1").arg(br)
|
||||
+ " " + baudrate + " " + comPort + "...OK");
|
||||
|
||||
// m_hw->dc_autoRequest(true);
|
||||
m_hw->dc_autoRequest(false);
|
||||
QThread::sleep(1);
|
||||
|
||||
Utils::printInfoMsg(QString("IS PORT OPEN %1").arg(m_hw->dc_isPortOpen()));
|
||||
return true;
|
||||
}
|
||||
|
||||
Utils::printCriticalErrorMsg(
|
||||
QString("OPENING SERIAL %1").arg(br)
|
||||
+ " " + baudrate + " " + comPort + "...OK");
|
||||
|
||||
// m_hw->dc_autoRequest(true);
|
||||
m_hw->dc_autoRequest(false);
|
||||
QThread::sleep(1);
|
||||
|
||||
Utils::printInfoMsg(QString("IS PORT OPEN %1").arg(m_hw->dc_isPortOpen()));
|
||||
return true;
|
||||
+ " " + baudrate + " " + comPort + "...FAILED");
|
||||
}
|
||||
|
||||
Utils::printCriticalErrorMsg(
|
||||
QString("OPENING SERIAL %1").arg(br)
|
||||
+ " " + baudrate + " " + comPort + "...FAILED");
|
||||
return false;
|
||||
}
|
||||
|
||||
void Update::closeSerial() const {
|
||||
qInfo() << "CLOSED SERIAL" << m_baudrate << m_serialInterface;
|
||||
m_hw->dc_closeSerial();
|
||||
if (m_hw) {
|
||||
m_hw->dc_closeSerial();
|
||||
}
|
||||
}
|
||||
|
||||
bool Update::isSerialOpen() const {
|
||||
return m_hw->dc_isPortOpen();
|
||||
return m_hw ? m_hw->dc_isPortOpen() : false;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -396,78 +394,88 @@ bool Update::downloadJson(enum FileTypeJson type,
|
||||
int templateIdx,
|
||||
QString jsFileToSendToDC) const {
|
||||
|
||||
m_hw->dc_autoRequest(true); // downloading Json needs the AutoEmission flag
|
||||
qDebug() << "SET AUTO-REQUEST=TRUE";
|
||||
QThread::sleep(1); // make sure the auto-request flag is acknowledged
|
||||
|
||||
QStringList lst;
|
||||
bool ready = false;
|
||||
int nTry = 25;
|
||||
while ((ready = m_hw->sys_ready4sending()) == false) {
|
||||
QThread::msleep(200);
|
||||
if (--nTry <= 0) {
|
||||
QString msg("SYS NOT READY FOR SENDING AFTER 5 SECONDS");
|
||||
Utils::printCriticalErrorMsg(msg);
|
||||
lst << msg;
|
||||
|
||||
if (m_worker) {
|
||||
m_worker->ISMAS(lst) << (m_worker->GUI(lst) << (m_worker->CONSOLE(lst) << Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool ret = false;
|
||||
QString msg;
|
||||
lst.clear();
|
||||
if (ready) {
|
||||
QFile file(jsFileToSendToDC);
|
||||
QFileInfo fi(jsFileToSendToDC); // max. size of template file is 800 bytes
|
||||
if (file.exists()) {
|
||||
if (file.open(QIODevice::ReadOnly)) {
|
||||
if (fi.size() > 0 && fi.size() <= 800) {
|
||||
QByteArray ba = file.readAll();
|
||||
// kindOfFile: 1=config, 2=device, 3=cash, 4=serial, 5=time, 6=printer
|
||||
// nrOfTemplate=1...32 if kindOfFile==6
|
||||
// content = content of the Json file, max 800byte ascii signs
|
||||
if (m_hw->sys_sendJsonFileToDc((uint8_t)(type),
|
||||
templateIdx,
|
||||
(uint8_t *)ba.data())) {
|
||||
if (m_hw) {
|
||||
m_hw->dc_autoRequest(true); // downloading Json needs the AutoEmission flag
|
||||
qDebug() << "SET AUTO-REQUEST=TRUE";
|
||||
QThread::sleep(1); // make sure the auto-request flag is acknowledged
|
||||
|
||||
/*
|
||||
* Note: the machine id is contained in DC2C_conf.json.
|
||||
* The idea was to use this to check if the download of
|
||||
* the json-file was correct. It did not work, as the
|
||||
* update of the PSA (to reflect a change in the
|
||||
* machine id) did not happen immediately.
|
||||
*
|
||||
m_hw->dc_autoRequest(true);
|
||||
QThread::msleep(500);
|
||||
QStringList lst;
|
||||
bool ready = false;
|
||||
int nTry = 25;
|
||||
while ((ready = m_hw->sys_ready4sending()) == false) {
|
||||
QThread::msleep(200);
|
||||
if (--nTry <= 0) {
|
||||
QString msg("SYS NOT READY FOR SENDING AFTER 5 SECONDS");
|
||||
Utils::printCriticalErrorMsg(msg);
|
||||
lst << msg;
|
||||
|
||||
// testing
|
||||
m_hw->request_ReadbackMachineID();
|
||||
QThread::msleep(500);
|
||||
if (m_worker) {
|
||||
m_worker->ISMAS(lst) << (m_worker->GUI(lst) << (m_worker->CONSOLE(lst) << Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t data[64];
|
||||
memset(data, 0x00, sizeof(data));
|
||||
uint8_t length = 0;
|
||||
QString msg;
|
||||
lst.clear();
|
||||
if (ready) {
|
||||
QFile file(jsFileToSendToDC);
|
||||
QFileInfo fi(jsFileToSendToDC); // max. size of template file is 800 bytes
|
||||
if (file.exists()) {
|
||||
if (file.open(QIODevice::ReadOnly)) {
|
||||
if (fi.size() > 0 && fi.size() <= 800) {
|
||||
QByteArray ba = file.readAll();
|
||||
// kindOfFile: 1=config, 2=device, 3=cash, 4=serial, 5=time, 6=printer
|
||||
// nrOfTemplate=1...32 if kindOfFile==6
|
||||
// content = content of the Json file, max 800byte ascii signs
|
||||
if (m_hw->sys_sendJsonFileToDc((uint8_t)(type),
|
||||
templateIdx,
|
||||
(uint8_t *)ba.data())) {
|
||||
|
||||
m_hw->readback_machineIDdata(&length, data);
|
||||
/*
|
||||
* Note: the machine id is contained in DC2C_conf.json.
|
||||
* The idea was to use this to check if the download of
|
||||
* the json-file was correct. It did not work, as the
|
||||
* update of the PSA (to reflect a change in the
|
||||
* machine id) did not happen immediately.
|
||||
*
|
||||
m_hw->dc_autoRequest(true);
|
||||
QThread::msleep(500);
|
||||
|
||||
QThread::msleep(500);
|
||||
// testing
|
||||
m_hw->request_ReadbackMachineID();
|
||||
QThread::msleep(500);
|
||||
|
||||
QByteArray ba((const char*)data, length);
|
||||
uint8_t data[64];
|
||||
memset(data, 0x00, sizeof(data));
|
||||
uint8_t length = 0;
|
||||
|
||||
qCritical() << length << "MACHINE ID =" << ba.toHex(':');
|
||||
*/
|
||||
m_hw->readback_machineIDdata(&length, data);
|
||||
|
||||
if (m_worker) {
|
||||
m_worker->ISMAS(lst) << (m_worker->GUI(lst) << (m_worker->CONSOLE(lst) << Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
|
||||
QThread::msleep(500);
|
||||
|
||||
QByteArray ba((const char*)data, length);
|
||||
|
||||
qCritical() << length << "MACHINE ID =" << ba.toHex(':');
|
||||
*/
|
||||
|
||||
if (m_worker) {
|
||||
m_worker->ISMAS(lst) << (m_worker->GUI(lst) << (m_worker->CONSOLE(lst) << Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
|
||||
}
|
||||
|
||||
ret = true;
|
||||
} else {
|
||||
msg = QString("ERROR SEND JSON-FILE %1 TO DC").arg(file.fileName());
|
||||
Utils::printCriticalErrorMsg(msg);
|
||||
lst << msg;
|
||||
if (m_worker) {
|
||||
m_worker->ISMAS(lst) << (m_worker->GUI(lst) << (m_worker->CONSOLE(lst)
|
||||
<< Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
|
||||
}
|
||||
}
|
||||
|
||||
ret = true;
|
||||
} else {
|
||||
msg = QString("ERROR SEND JSON-FILE %1 TO DC").arg(file.fileName());
|
||||
msg = QString("SIZE OF %1 TOO BIG (%2 BYTES)").arg(jsFileToSendToDC).arg(fi.size());
|
||||
Utils::printCriticalErrorMsg(msg);
|
||||
lst << msg;
|
||||
if (m_worker) {
|
||||
@@ -476,16 +484,17 @@ bool Update::downloadJson(enum FileTypeJson type,
|
||||
}
|
||||
}
|
||||
} else {
|
||||
msg = QString("SIZE OF %1 TOO BIG (%2 BYTES)").arg(jsFileToSendToDC).arg(fi.size());
|
||||
msg = QString("CAN NOT OPEN ") + jsFileToSendToDC + " FOR READING";
|
||||
Utils::printCriticalErrorMsg(msg);
|
||||
lst << msg;
|
||||
|
||||
if (m_worker) {
|
||||
m_worker->ISMAS(lst) << (m_worker->GUI(lst) << (m_worker->CONSOLE(lst)
|
||||
<< Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
msg = QString("CAN NOT OPEN ") + jsFileToSendToDC + " FOR READING";
|
||||
msg = QString(jsFileToSendToDC) + " DOES NOT EXIST";
|
||||
Utils::printCriticalErrorMsg(msg);
|
||||
lst << msg;
|
||||
|
||||
@@ -494,21 +503,12 @@ bool Update::downloadJson(enum FileTypeJson type,
|
||||
<< Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
msg = QString(jsFileToSendToDC) + " DOES NOT EXIST";
|
||||
Utils::printCriticalErrorMsg(msg);
|
||||
lst << msg;
|
||||
|
||||
if (m_worker) {
|
||||
m_worker->ISMAS(lst) << (m_worker->GUI(lst) << (m_worker->CONSOLE(lst)
|
||||
<< Worker::UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_hw->dc_autoRequest(false);
|
||||
qDebug() << "SET AUTO-REQUEST=FALSE";
|
||||
QThread::sleep(1); // make sure the auto-request flag is acknowledged
|
||||
m_hw->dc_autoRequest(false);
|
||||
qDebug() << "SET AUTO-REQUEST=FALSE";
|
||||
QThread::sleep(1); // make sure the auto-request flag is acknowledged
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -564,24 +564,26 @@ void Update::finished(int /*exitCode*/, QProcess::ExitStatus /*exitStatus*/) {
|
||||
}
|
||||
|
||||
QStringList Update::getDcSoftAndHardWareVersion() {
|
||||
m_hw->dc_autoRequest(true);
|
||||
QThread::sleep(1); // make sure the timer-slots are active
|
||||
if (m_hw) {
|
||||
m_hw->dc_autoRequest(true);
|
||||
QThread::sleep(1); // make sure the timer-slots are active
|
||||
|
||||
for (int i=0; i < 3; ++i) { // send explicit reuests to get
|
||||
// current SW/HW-versions
|
||||
m_hw->request_DC2_SWversion();
|
||||
m_hw->request_DC2_HWversion();
|
||||
QThread::sleep(1);
|
||||
}
|
||||
for (int i=0; i < 3; ++i) { // send explicit reuests to get
|
||||
// current SW/HW-versions
|
||||
m_hw->request_DC2_SWversion();
|
||||
m_hw->request_DC2_HWversion();
|
||||
QThread::sleep(1);
|
||||
}
|
||||
|
||||
QString const &hwVersion = m_hw->dc_getHWversion().toLower().trimmed();
|
||||
QString const &swVersion = m_hw->dc_getSWversion().toLower().trimmed();
|
||||
QString const &hwVersion = m_hw->dc_getHWversion().toLower().trimmed();
|
||||
QString const &swVersion = m_hw->dc_getSWversion().toLower().trimmed();
|
||||
|
||||
m_hw->dc_autoRequest(false);
|
||||
QThread::sleep(1); // make sure the timer-slots are inactive
|
||||
m_hw->dc_autoRequest(false);
|
||||
QThread::sleep(1); // make sure the timer-slots are inactive
|
||||
|
||||
if (!hwVersion.isEmpty() && !swVersion.isEmpty()) {
|
||||
return QStringList() << hwVersion << swVersion;
|
||||
if (!hwVersion.isEmpty() && !swVersion.isEmpty()) {
|
||||
return QStringList() << hwVersion << swVersion;
|
||||
}
|
||||
}
|
||||
|
||||
return QStringList() << "DC HW-version not available"
|
||||
@@ -671,6 +673,11 @@ bool Update::checkDownloadedJsonVersions(QStringList const& jsonFileNames) {
|
||||
}
|
||||
bool Update::doUpdate(int &displayIndex, QStringList const &filesToWorkOn) {
|
||||
|
||||
if (!m_hw) {
|
||||
Utils::printInfoMsg("CA-PLUGIN NOT LOADED");
|
||||
return false;
|
||||
}
|
||||
|
||||
int tries = 20;
|
||||
while ((m_sys_areDCdataValid = m_hw->sys_areDCdataValid()) == false) {
|
||||
// must deliver 'true', only then are all data from hwapi valid
|
||||
|
@@ -44,6 +44,7 @@ QString Utils::getLocation(QString fileName) {
|
||||
if (c != -1) {
|
||||
location = line.mid(c+1);
|
||||
if (!location.isEmpty()) {
|
||||
location = location.replace(QChar(','), QString(""));
|
||||
return location.replace(QChar('"'), QString("")).trimmed();
|
||||
}
|
||||
}
|
||||
@@ -69,6 +70,7 @@ QString Utils::getTariffVersion(QString fileName) {
|
||||
if (c != -1) {
|
||||
version = line.mid(c+1);
|
||||
if (!version.isEmpty()) {
|
||||
version = version.replace(QChar(','), QString(""));
|
||||
return version.replace(QChar('"'), QString("")).trimmed();
|
||||
}
|
||||
}
|
||||
@@ -94,6 +96,7 @@ QString Utils::getTariffInfo(QString fileName) {
|
||||
if (c != -1) {
|
||||
info = line.mid(c+1);
|
||||
if (!info.isEmpty()) {
|
||||
info = info.replace(QChar(','), QString(""));
|
||||
return info.replace(QChar('"'), QString("")).trimmed();
|
||||
}
|
||||
}
|
||||
|
@@ -17,6 +17,7 @@
|
||||
#include <QJsonParseError>
|
||||
#include <Qt>
|
||||
#include <QScopedPointer>
|
||||
#include <QRegularExpression>
|
||||
|
||||
#include "message_handler.h"
|
||||
#include <DeviceController/interfaces.h>
|
||||
@@ -169,13 +170,16 @@ Worker::Worker(int customerNr,
|
||||
// TODO: turn object into singleton
|
||||
instance = this;
|
||||
m_lastFailedUpdateStep = UPDATE_STEP::NONE;
|
||||
m_update = new Update(this,
|
||||
QDir::cleanPath(m_workingDirectory + QDir::separator() + m_customerNrStr),
|
||||
m_customerNrStr,
|
||||
m_branchName,
|
||||
m_pluginDir,
|
||||
m_pluginName,
|
||||
m_workingDirectory);
|
||||
|
||||
if (m_noUpdatePsaHardware == false) {
|
||||
m_update = new Update(this,
|
||||
QDir::cleanPath(m_workingDirectory + QDir::separator() + m_customerNrStr),
|
||||
m_customerNrStr,
|
||||
m_branchName,
|
||||
m_pluginDir,
|
||||
m_pluginName,
|
||||
m_workingDirectory);
|
||||
}
|
||||
|
||||
this->setObjectName("worker-object");
|
||||
QDir::setCurrent(m_workingDirectory);
|
||||
@@ -300,13 +304,18 @@ void Worker::privateUpdate() {
|
||||
m_updateNotNecessary = true;
|
||||
m_ismasTriggerStatusMessage = QStringList(QString("NO UPDATE NECESSARY (%1)").arg(current.toString(Qt::ISODate)));
|
||||
|
||||
qCritical() << "privateUpdate m_ismasTriggerStatusMessage:" << QStringList(QString("NO UPDATE NECESSARY (%1)").arg(current.toString(Qt::ISODate)));
|
||||
qCritical() << "privateUpdate m_ismasTriggerStatusMessage:"
|
||||
<< QStringList(m_ismasTriggerStatusMessage);
|
||||
qCritical() << "***";
|
||||
|
||||
// the customer-repository does exist, but the ISMAS-trigger is
|
||||
// the customer-repository does exist, and the ISMAS-trigger is
|
||||
// *NOT* "WAIT", but from 00:00:00 - 00:03:59 this counts as an
|
||||
// automatic update
|
||||
|
||||
QStringList lst = m_ismasTriggerStatusMessage;
|
||||
// trigger message to ISMAS and CONSOLE
|
||||
ISMAS(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::CHECK_ISMAS_TRIGGER_SUCCESS));
|
||||
// overwrite m_lastFailedUpdateStep
|
||||
m_lastFailedUpdateStep = UPDATE_STEP::NONE;
|
||||
return;
|
||||
}
|
||||
@@ -730,29 +739,28 @@ bool Worker::customerEnvironment() {
|
||||
if (QDir(m_customerRepository).exists()) {
|
||||
if (m_clone == false) {
|
||||
if (m_gc.branchExistsRemotely()) {
|
||||
QString msg("PULL NEW BRANCH " + m_branchName);
|
||||
QStringList lst(msg);
|
||||
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << UPDATE_STEP::PULL_NEW_BRANCH));
|
||||
QString msg;
|
||||
QStringList lst;
|
||||
if (!m_gc.branchExistsLocally()) {
|
||||
lst.clear();
|
||||
msg = QString("PULLING OF NEW BRANCH " + m_branchName + " DOES NOT EXIST LOCALLY");
|
||||
QStringList lst(msg);
|
||||
lst << msg;
|
||||
CONSOLE(lst) << UPDATE_STEP::PULL_NEW_BRANCH;
|
||||
if (!m_gc.gitPullNewBranches()) {
|
||||
msg = QString("PULLING OF NEW BRANCH " + m_branchName + "FAILED");
|
||||
QStringList lst(msg);
|
||||
lst.clear();
|
||||
msg = QString("PULLING OF NEW BRANCH " + m_branchName + " FAILED");
|
||||
lst << msg;
|
||||
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::PULL_NEW_BRANCH_FAILURE)));
|
||||
return false;
|
||||
} else {
|
||||
msg = QString("PULLING OF NEW BRANCH " + m_branchName + "SUCCESS");
|
||||
QStringList lst(msg);
|
||||
lst.clear();
|
||||
msg = QString("PULLING OF NEW BRANCH " + m_branchName + " SUCCESS");
|
||||
lst << msg;
|
||||
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::PULL_NEW_BRANCH_SUCCESS)));
|
||||
m_pulledNewBranch = true;
|
||||
}
|
||||
} else {
|
||||
msg = QString("PULLING ALREADY EXISTING LOCAL BRANCH " + m_branchName + "SUCCESS");
|
||||
QStringList lst(msg);
|
||||
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::PULL_NEW_BRANCH_SUCCESS)));
|
||||
m_pulledNewBranch = true;
|
||||
m_pulledNewBranch = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1251,15 +1259,48 @@ PSAInstalled Worker::getPSAInstalled() {
|
||||
psaInstalled.versionInfo.created = "N/A";
|
||||
|
||||
if (m_versionInfo.size() == 3) {
|
||||
qCritical() << QString("***** %1:%2").arg(__func__).arg(__LINE__)
|
||||
<< "m_versionInfo" << m_versionInfo << "*****";
|
||||
psaInstalled.versionInfo.lastCommit = QString("%1-%2")
|
||||
.arg(QCoreApplication::applicationPid())
|
||||
.arg(m_versionInfo.at(0));
|
||||
psaInstalled.versionInfo.reason = m_versionInfo.at(1);
|
||||
QString const &lastCommit = m_versionInfo.at(0);
|
||||
QString reason = m_versionInfo.at(1);
|
||||
QDateTime const dt = QDateTime::fromString(m_versionInfo.at(2), Qt::ISODate);
|
||||
QString version{""};
|
||||
QString date{""};
|
||||
if (dt.isValid()) {
|
||||
date += " ";
|
||||
date += dt.date().toString(Qt::ISODate);
|
||||
}
|
||||
static const QRegularExpression re("^\\s*(\\d+)\\.(\\d+)\\.(\\d+)(.*$)");
|
||||
QRegularExpressionMatch match = re.match(reason);
|
||||
if (match.hasMatch()) {
|
||||
int const lastCapturedIndex = match.lastCapturedIndex();
|
||||
if (lastCapturedIndex >= 1) {
|
||||
version += " v";
|
||||
version += match.captured(1); // major
|
||||
}
|
||||
if (lastCapturedIndex >= 2) {
|
||||
version += ".";
|
||||
version += match.captured(2); // minor
|
||||
}
|
||||
if (lastCapturedIndex >= 3) {
|
||||
version += ".";
|
||||
version += match.captured(3); // patch
|
||||
}
|
||||
if (lastCapturedIndex >= 4) { // rest after version
|
||||
reason = match.captured(4);
|
||||
}
|
||||
}
|
||||
|
||||
psaInstalled.versionInfo.lastCommit = QString("%1%2").arg(lastCommit).arg(version);
|
||||
psaInstalled.versionInfo.reason = reason;
|
||||
psaInstalled.versionInfo.created = m_versionInfo.at(2);
|
||||
}
|
||||
|
||||
//qCritical() << "";
|
||||
//qCritical() << "VERSION-INFO";
|
||||
//qCritical() << "LAST-COMMIT" << psaInstalled.versionInfo.lastCommit;
|
||||
//qCritical() << "REASON" << psaInstalled.versionInfo.reason;
|
||||
//qCritical() << "CREATED" << psaInstalled.versionInfo.created;
|
||||
//qCritical() << "";
|
||||
|
||||
if (m_zoneNr != 0) {
|
||||
QString const &n = QString("%1").arg(m_zoneNr).rightJustified(2, '0');
|
||||
psaInstalled.tariff.name = QString("tariff%1.json").arg(n);
|
||||
|
@@ -733,7 +733,7 @@ private:
|
||||
}
|
||||
|
||||
Worker::instance->m_currentStep = step;
|
||||
QStringList lst = QStringList(smap[step]);
|
||||
// QStringList lst = QStringList(smap[step]);
|
||||
|
||||
switch (step) {
|
||||
case UPDATE_STEP::NONE: {
|
||||
@@ -756,7 +756,8 @@ private:
|
||||
QString("REPOSITORY %1 AND BRANCH %2 OK")
|
||||
.arg(instance->m_customerRepository)
|
||||
.arg(instance->m_gc.branchName()).toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
} break;
|
||||
@@ -772,7 +773,8 @@ private:
|
||||
QString("REPOSITORY %1 and BRANCH %2 ***NOT OK***")
|
||||
.arg(instance->m_customerRepository)
|
||||
.arg(instance->m_gc.branchName()).toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
} break;
|
||||
@@ -791,7 +793,8 @@ private:
|
||||
QString("SANITY OF %1 (BRANCH %2) OK")
|
||||
.arg(instance->m_customerRepository)
|
||||
.arg(instance->m_gc.branchName()).toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
} break;
|
||||
@@ -807,7 +810,8 @@ private:
|
||||
QString("SANITY OF %1 and BRANCH %2 ***NOT*** OK")
|
||||
.arg(instance->m_customerRepository)
|
||||
.arg(instance->m_gc.branchName()).toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
} break;
|
||||
@@ -832,7 +836,8 @@ private:
|
||||
QString("CLONED REPOSITORY %1 AND CHECKED OUT BRANCH %2")
|
||||
.arg(instance->m_customerRepository)
|
||||
.arg(instance->m_gc.branchName()).toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
||||
ismasUpdateNews);
|
||||
} break;
|
||||
@@ -848,7 +853,8 @@ private:
|
||||
QString("CLONING REPOSITORY %1 OR CHECKING OUT BRANCH %2 FAILED")
|
||||
.arg(instance->m_customerRepository)
|
||||
.arg(instance->m_gc.branchName()).toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
} break;
|
||||
@@ -863,7 +869,8 @@ private:
|
||||
QString("CHECKED OUT REPOSITORY %1 AND CHECKED OUT BRANCH %2")
|
||||
.arg(instance->m_customerRepository)
|
||||
.arg(instance->m_gc.branchName()),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A"));
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A"));
|
||||
} break;
|
||||
case UPDATE_STEP::CHECKOUT_REPOSITORY_FAILURE: {
|
||||
ismasClient.setProgressInPercent(_CHECKOUT_REPOSITORY_FAILURE);
|
||||
@@ -877,7 +884,8 @@ private:
|
||||
QString("%1: CHECKING OUT BRANCH %2 FAILED")
|
||||
.arg(instance->m_customerRepository)
|
||||
.arg(instance->m_gc.branchName()).toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
} break;
|
||||
@@ -886,10 +894,24 @@ private:
|
||||
} break;
|
||||
case UPDATE_STEP::CHECK_ISMAS_TRIGGER_SUCCESS: {
|
||||
ismasClient.setProgressInPercent(_CHECK_ISMAS_TRIGGER_SUCCESS);
|
||||
ismasClient.sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
||||
QString const &ismasUpdateNews =
|
||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
||||
ismasClient.updateTriggerSet("ISMAS TRIGGER SET",
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A"));
|
||||
ismasClient.updateNewsToIsmas(
|
||||
_ISMAS_CONTINUE, //
|
||||
_CHECK_ISMAS_TRIGGER_SUCCESS,
|
||||
(instance->m_updateNotNecessary)
|
||||
? IsmasClient::RESULT_CODE::NO_UPDATE_NECESSARY
|
||||
: IsmasClient::RESULT_CODE::SUCCESS,
|
||||
smap[UPDATE_STEP::CHECK_ISMAS_TRIGGER_SUCCESS],
|
||||
instance->m_updateNotNecessary
|
||||
? QString("NO-UPDATE-NECESSARY (%1:%2)")
|
||||
.arg(instance->m_customerRepository)
|
||||
.arg(instance->m_gc.branchName()).toStdString().c_str()
|
||||
: QString("ISMAS-TRIGGER ON WAIT").toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
} break;
|
||||
case UPDATE_STEP::CHECK_ISMAS_TRIGGER_WRONG_VALUE: {
|
||||
ismasClient.setProgressInPercent(_CHECK_ISMAS_TRIGGER_WRONG_VALUE);
|
||||
@@ -901,7 +923,8 @@ private:
|
||||
IsmasClient::RESULT_CODE::ISMAS_TRIGGER_ERROR,
|
||||
smap[UPDATE_STEP::CHECK_ISMAS_TRIGGER],
|
||||
instance->m_ismasMsg.join(' ').toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
} break;
|
||||
@@ -915,7 +938,8 @@ private:
|
||||
IsmasClient::RESULT_CODE::ISMAS_TRIGGER_ERROR,
|
||||
smap[UPDATE_STEP::CHECK_ISMAS_TRIGGER],
|
||||
instance->m_ismasMsg.join(' ').toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
} break;
|
||||
@@ -929,7 +953,8 @@ private:
|
||||
IsmasClient::RESULT_CODE::SUCCESS,
|
||||
smap[UPDATE_STEP::INITIAL_CLONE_WITHOUT_ACTIVE_ISMAS_TRIGGER],
|
||||
instance->m_ismasMsg.join(' ').toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
} break;
|
||||
@@ -943,7 +968,8 @@ private:
|
||||
IsmasClient::RESULT_CODE::SUCCESS,
|
||||
smap[UPDATE_STEP::INITIAL_CLONE_WITH_ACTIVE_ISMAS_TRIGGER],
|
||||
instance->m_ismasMsg.join(' ').toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
} break;
|
||||
@@ -957,7 +983,8 @@ private:
|
||||
IsmasClient::RESULT_CODE::SUCCESS,
|
||||
smap[UPDATE_STEP::CHECKOUT_BRANCH],
|
||||
instance->m_ismasMsg.join(' ').toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
}
|
||||
@@ -972,7 +999,8 @@ private:
|
||||
IsmasClient::RESULT_CODE::GIT_PULL_ERROR,
|
||||
smap[UPDATE_STEP::CHECKOUT_BRANCH],
|
||||
instance->m_ismasMsg.join(' ').toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
}
|
||||
@@ -987,7 +1015,8 @@ private:
|
||||
IsmasClient::RESULT_CODE::SUCCESS,
|
||||
smap[UPDATE_STEP::CHECKOUT_BRANCH],
|
||||
instance->m_ismasMsg.join(' ').toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
}
|
||||
@@ -1002,7 +1031,8 @@ private:
|
||||
IsmasClient::RESULT_CODE::SUCCESS,
|
||||
smap[UPDATE_STEP::CHECKOUT_BRANCH],
|
||||
instance->m_ismasMsg.join(' ').toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
} break;
|
||||
@@ -1016,7 +1046,8 @@ private:
|
||||
IsmasClient::RESULT_CODE::SUCCESS,
|
||||
smap[UPDATE_STEP::CHECKOUT_BRANCH],
|
||||
instance->m_ismasMsg.join(' ').toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
} break;
|
||||
@@ -1030,7 +1061,8 @@ private:
|
||||
IsmasClient::RESULT_CODE::GIT_SWITCH_BRANCH_ERROR,
|
||||
smap[UPDATE_STEP::CHECKOUT_BRANCH],
|
||||
instance->m_ismasMsg.join(' ').toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
instance->m_versionInfo.size() >= 1
|
||||
? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
ismasClient.sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
|
||||
} break;
|
||||
@@ -1307,7 +1339,7 @@ private:
|
||||
QString const &ismasUpdateNews =
|
||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
||||
ismasClient.updateNewsToIsmas(
|
||||
_ISMAS_SET_WAIT_OK,
|
||||
_ISMAS_SET_WAIT_OK, // U0002
|
||||
ismasClient.getProgressInPercent(),
|
||||
IsmasClient::RESULT_CODE::SUCCESS,
|
||||
smap[UPDATE_STEP::UPDATE_FINALIZE],
|
||||
@@ -1321,9 +1353,9 @@ private:
|
||||
QString const &ismasUpdateNews =
|
||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
||||
ismasClient.updateNewsToIsmas(
|
||||
_ISMAS_SET_WAIT_OK,
|
||||
_ISMAS_SET_WAIT_OK, // U0002
|
||||
ismasClient.getProgressInPercent(),
|
||||
IsmasClient::RESULT_CODE::SUCCESS,
|
||||
IsmasClient::RESULT_CODE::NO_UPDATE_NECESSARY,
|
||||
smap[UPDATE_STEP::UPDATE_FINALIZE],
|
||||
instance->m_ismasMsg.join(' ').toStdString().c_str(),
|
||||
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
|
||||
@@ -1335,7 +1367,7 @@ private:
|
||||
QString const &ismasUpdateNews =
|
||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
||||
ismasClient.updateNewsToIsmas(
|
||||
_ISMAS_FAILURE,
|
||||
_ISMAS_FAILURE, // U0003 is sent only once
|
||||
ismasClient.getProgressInPercent(),
|
||||
IsmasClient::RESULT_CODE::UPDATE_IN_ERROR_STATE,
|
||||
smap[UPDATE_STEP::UPDATE_FINALIZE],
|
||||
|
Reference in New Issue
Block a user