Compare commits
19 Commits
1.3.4
...
9783f343e1
Author | SHA1 | Date | |
---|---|---|---|
9783f343e1 | |||
8c6f0dfcc7 | |||
d688ad3d5c | |||
7b3f652b0e | |||
4cc42b2a65 | |||
d783fd7fb6 | |||
e0a0ff54e1 | |||
863d052a21 | |||
61b3d29e31 | |||
cac4f7249e | |||
3223c430be | |||
c09682ea33 | |||
fef1d43d5f | |||
705424727b | |||
b96f0896e3 | |||
a3967c76ac | |||
1197598a3d
|
|||
ec13e97226
|
|||
a8dd9d7e24
|
@@ -15,11 +15,19 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
||||
# In order to do so, uncomment the following line.
|
||||
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
VERSION=1.3.4
|
||||
|
||||
# 1.3.6 : Do not update device-controller/json files, but have the library
|
||||
# (in a later step) do that.
|
||||
# Fixed sending messages to ISMAS.
|
||||
# Always execute contents of opkg_commands-file (even if there are no
|
||||
# changes).
|
||||
|
||||
VERSION=1.3.6
|
||||
|
||||
INCLUDEPATH += plugins
|
||||
|
||||
CONFIG += c++17 console
|
||||
|
||||
CONFIG += c++17
|
||||
# CONFIG -= app_bundle
|
||||
|
||||
DEFINES+=APP_VERSION=\\\"$$VERSION\\\"
|
||||
@@ -27,27 +35,11 @@ DEFINES+=APP_VERSION=\\\"$$VERSION\\\"
|
||||
QMAKE_CXXFLAGS += -g
|
||||
QMAKE_CXXFLAGS += -Wno-deprecated-copy
|
||||
|
||||
# custom target for 'git subtree'
|
||||
# subtree.target = subtree
|
||||
# subtree.commands = git subtree add --prefix DCPlugin https://git.mimbach49.de/GerhardHoffmann/DCPlugin.git master --squash
|
||||
# subtree.depends =
|
||||
# QMAKE_EXTRA_UNIX_TARGETS += subtree
|
||||
|
||||
# ! exists(DCPlugin) {
|
||||
# $$system("git subtree add --prefix DCPlugin https://git.mimbach49.de/GerhardHoffmann/DCPlugin.git master --squash")
|
||||
# } else {
|
||||
# $$system("git subtree pull --prefix DCPlugin https://git.mimbach49.de/GerhardHoffmann/DCPlugin.git master --squash")
|
||||
# }
|
||||
|
||||
# You can make your code fail to compile if it uses deprecated APIs.
|
||||
# In order to do so, uncomment the following line.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
|
||||
contains( CONFIG, PTU5 ) {
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += serialport
|
||||
CONFIG += link_pkgconfig
|
||||
lessThan(QT_MAJOR_VERSION, 5): PKGCONFIG += qextserialport
|
||||
QMAKE_CXXFLAGS += -std=c++17 # for GCC >= 4.7
|
||||
QMAKE_CXXFLAGS += -O2 -std=c++17 # for GCC >= 4.7
|
||||
QMAKE_CXXFLAGS += -Wno-deprecated-copy
|
||||
ARCH = PTU5
|
||||
DEFINES+=PTU5
|
||||
@@ -107,18 +99,6 @@ HEADERS += \
|
||||
FORMS += \
|
||||
mainwindow.ui
|
||||
|
||||
OTHER_FILES += \
|
||||
/opt/app/tools/atbupdate/update_log.csv \
|
||||
main.cpp.bck \
|
||||
main.cpp.bck2 \
|
||||
main.cpp.bck3
|
||||
|
||||
# https://blog.developer.atlassian.com/the-power-of-git-subtree/?_ga=2-71978451-1385799339-1568044055-1068396449-1567112770
|
||||
# git subtree add --prefix DCPlugin https://git.mimbach49.de/GerhardHoffmann/DCPlugin.git master --squash
|
||||
# git subtree pull --prefix DCPlugin https://git.mimbach49.de/GerhardHoffmann/DCPlugin.git master --squash
|
||||
# include(./DCPlugin/DCPlugin.pri)
|
||||
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# for running program on target through QtCreator
|
||||
|
@@ -271,8 +271,8 @@ std::optional<QString> GitClient::gitFetch() {
|
||||
Utils::printCriticalErrorMsg(QString("WRONG FORMAT FOR RESULT OF 'GIT FETCH' ") + s);
|
||||
}
|
||||
} else {
|
||||
emit m_worker->showErrorMessage("git fetch", "empty result for 'git fetch'");
|
||||
Utils::printCriticalErrorMsg("EMPTY RESULT FOR 'GIT FETCH'");
|
||||
// emit m_worker->showErrorMessage("git fetch", "empty result for 'git fetch'");
|
||||
Utils::printInfoMsg("EMPTY RESULT FOR 'GIT FETCH'");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@@ -23,6 +23,15 @@
|
||||
#include <QJsonObject>
|
||||
|
||||
#if 0
|
||||
########################
|
||||
# Spec vom 27.10.2023:
|
||||
# U0010 -> %-Werte
|
||||
# U0001 -> 100%
|
||||
# U0003 -> "FAIL"
|
||||
# U0002 -> "" (OK -> WAIT state reset)
|
||||
# ISMAS -> "WAIT"
|
||||
########################
|
||||
#
|
||||
# $1: EVENT: U0001 update finished: 100%
|
||||
# U0002 reset TRG
|
||||
# U0003 error
|
||||
@@ -857,7 +866,14 @@ QString IsmasClient::jsonParseFailed(int resultCode, QString reason, QString con
|
||||
version.toStdString().c_str());
|
||||
}
|
||||
|
||||
std::optional<QString> IsmasClient::finalResult(int resultCode, QString reason, QString const &version) {
|
||||
std::optional<QString> IsmasClient::finalResult(int resultCode,
|
||||
QString reason,
|
||||
QString const &version) {
|
||||
Q_UNUSED(resultCode);
|
||||
Q_UNUSED(reason);
|
||||
Q_UNUSED(version);
|
||||
|
||||
/*
|
||||
m_progressInPercent = 100;
|
||||
if (resultCode == RESULT_CODE::SUCCESS) {
|
||||
return updateNewsToIsmas("U0002",
|
||||
@@ -875,6 +891,7 @@ std::optional<QString> IsmasClient::finalResult(int resultCode, QString reason,
|
||||
reason.toStdString().c_str(),
|
||||
version.toStdString().c_str());
|
||||
}
|
||||
*/
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
|
3
main.cpp
3
main.cpp
@@ -180,8 +180,7 @@ int main(int argc, char *argv[]) {
|
||||
worker.setMainWindow(&mw);
|
||||
|
||||
mw.setWindowFlags(Qt::Window | Qt::FramelessWindowHint);
|
||||
mw.setWindowState(Qt::WindowFullScreen);
|
||||
mw.show();
|
||||
mw.showFullScreen();
|
||||
|
||||
return a.exec();
|
||||
}
|
||||
|
@@ -10,6 +10,7 @@
|
||||
#include <QMessageBox>
|
||||
#include <QDebug>
|
||||
#include <QScrollBar>
|
||||
#include <QEvent>
|
||||
|
||||
|
||||
|
||||
@@ -319,7 +320,7 @@ void MainWindow::onRestartExitTimer() {
|
||||
m_exitTimer->stop();
|
||||
m_exitTimer->start(60 * 1000);
|
||||
|
||||
// ui->updateStatus->blockSignals(true);
|
||||
ui->updateStatus->setEnabled(false);
|
||||
}
|
||||
|
||||
void MainWindow::onQuit() {
|
||||
@@ -329,8 +330,8 @@ void MainWindow::onQuit() {
|
||||
}
|
||||
|
||||
void MainWindow::scrollDownTextEdit() {
|
||||
Utils::printInfoMsg(QString("SCROLL-DOWN-TEXT_EDIT CALLED AT ")
|
||||
+ QDateTime::currentDateTime().toString(Qt::ISODateWithMs));
|
||||
// Utils::printInfoMsg(QString("SCROLL-DOWN-TEXT_EDIT CALLED AT ")
|
||||
// + QDateTime::currentDateTime().toString(Qt::ISODateWithMs));
|
||||
|
||||
ui->updateStatus->setEnabled(true);
|
||||
|
||||
@@ -341,10 +342,12 @@ void MainWindow::scrollDownTextEdit() {
|
||||
}
|
||||
|
||||
void MainWindow::onAppendText(QString text, QString suffix) {
|
||||
Utils::printInfoMsg(QString("ON APPEND CALLED AT ")
|
||||
+ QDateTime::currentDateTime().toString(Qt::ISODateWithMs));
|
||||
// Utils::printInfoMsg(QString("ON APPEND CALLED AT ")
|
||||
// + QDateTime::currentDateTime().toString(Qt::ISODateWithMs));
|
||||
|
||||
QString editText = ui->updateStatus->toPlainText();
|
||||
scrollDownTextEdit();
|
||||
|
||||
if (!suffix.isNull() && suffix.size() > 0) {
|
||||
//qInfo() << "TEXT" << text << "SUFFIX" << suffix;
|
||||
if (suffix == Worker::UPDATE_STEP_SUCCESS || suffix == Worker::UPDATE_STEP_FAIL) {
|
||||
@@ -366,12 +369,12 @@ void MainWindow::onAppendText(QString text, QString suffix) {
|
||||
// Utils::printLineEditInfo(editText.split('\n', QString::SplitBehavior::SkipEmptyParts));
|
||||
// ui->updateStatus->setText(editText.trimmed());
|
||||
|
||||
scrollDownTextEdit();
|
||||
// scrollDownTextEdit();
|
||||
}
|
||||
|
||||
void MainWindow::onReplaceLast(QStringList newTextLines, QString suffix) {
|
||||
Utils::printInfoMsg(QString("ON REPLACE LAST (LIST) CALLED AT ")
|
||||
+ QDateTime::currentDateTime().toString(Qt::ISODateWithMs));
|
||||
// Utils::printInfoMsg(QString("ON REPLACE LAST (LIST) CALLED AT ")
|
||||
// + QDateTime::currentDateTime().toString(Qt::ISODateWithMs));
|
||||
|
||||
int const s = newTextLines.size();
|
||||
if (s > 0) {
|
||||
@@ -405,8 +408,8 @@ void MainWindow::onReplaceLast(QStringList newTextLines, QString suffix) {
|
||||
}
|
||||
|
||||
void MainWindow::onReplaceLast(QString text, QString suffix) {
|
||||
Utils::printInfoMsg(QString("ON REPLACE LAST (TEXT) CALLED AT ")
|
||||
+ QDateTime::currentDateTime().toString(Qt::ISODateWithMs));
|
||||
// Utils::printInfoMsg(QString("ON REPLACE LAST (TEXT) CALLED AT ")
|
||||
// + QDateTime::currentDateTime().toString(Qt::ISODateWithMs));
|
||||
|
||||
QString editText = ui->updateStatus->toPlainText();
|
||||
QStringList lines = editText.split('\n', QString::SplitBehavior::SkipEmptyParts);
|
||||
|
51
plugins/interfaces.h
Normal file → Executable file
51
plugins/interfaces.h
Normal file → Executable file
@@ -193,7 +193,7 @@ struct T_moduleCondition
|
||||
uint8_t coinChecker; // EMP, OMP or mei-cashflow
|
||||
|
||||
uint8_t coinEscrow;
|
||||
uint8_t mifareReader;
|
||||
uint8_t mifareReader; // 0: unknown 1=OK 200=no response 201=wrong response 202: Reader reports HW-error
|
||||
uint8_t creditTerm;
|
||||
uint8_t coinReject;
|
||||
|
||||
@@ -818,7 +818,7 @@ public:
|
||||
// --------------------------------------------- MIFARE -----------------------------------------------------
|
||||
// ----------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
// obsolete
|
||||
virtual uint8_t mif_returnReaderStateAndCardType(uint8_t *buf, uint8_t maxBufferSize) const =0;
|
||||
// retval 0=OK 1=error host buffer too small
|
||||
/* data description, new fast version:
|
||||
@@ -840,13 +840,16 @@ public:
|
||||
virtual bool mif_readerIsOK(void) const =0;
|
||||
|
||||
virtual bool mif_cardAttached(void) const =0;
|
||||
// not working! use mif_cardIsAttached() instead
|
||||
|
||||
virtual uint8_t mif_readResult(void) const =0;
|
||||
// result: 0: unknown or still in progress
|
||||
// 1: card read successful
|
||||
// 2: reading error
|
||||
// not working!
|
||||
|
||||
virtual QString mif_cardUID(void) const =0;
|
||||
// not working
|
||||
|
||||
virtual uint8_t mif_getCardDataDec(uint8_t blkNr, uint8_t *buf, uint8_t maxBufferSize) const =0;
|
||||
|
||||
@@ -1289,7 +1292,7 @@ public:
|
||||
// 1= wrong length 2=wrong start sign 5= wrong crc
|
||||
// 6= slave: master cmd was wrong 7: slave: could not write/read data
|
||||
// 8=timeout, got no response from slave
|
||||
|
||||
// 0,8 work, 1..6 not yet tested. 8 comes immed. and stays 8 until reconnect
|
||||
|
||||
// use for important and extended commands (print several templates, print ticket...)
|
||||
virtual void log_startSupervision(void) const =0;
|
||||
@@ -1299,6 +1302,7 @@ public:
|
||||
// 0: started, in progress
|
||||
// 1: done and OK
|
||||
// 2: done and error
|
||||
// not working properly, always 0
|
||||
|
||||
virtual bool log_getVaultData(uint8_t *data) const =0;
|
||||
// get vault record in linear 8bit buffer with 384 byte
|
||||
@@ -1343,6 +1347,37 @@ public:
|
||||
|
||||
|
||||
|
||||
// new functions from 8.9.23
|
||||
virtual QString mif_getReaderType(void) const =0;
|
||||
// return "SL025" if correct reader is connected
|
||||
|
||||
virtual void mif_getCardSize(uint8_t *cardSize, uint8_t *idLeng) const =0;
|
||||
// cardSize=1k or 4kByte
|
||||
// idLeng =4Byte or 7 byte
|
||||
|
||||
virtual char mif_getAtbCardData(uint8_t *buf, uint8_t maxBuffSiz) const =0;
|
||||
// return complete buffer binary, just for test purpose
|
||||
|
||||
virtual bool mif_isValidAtbCard(void) const =0;
|
||||
|
||||
virtual uint32_t mif_getAtbCardCuNu(void) const =0;
|
||||
|
||||
virtual uint8_t mif_getAtbCardTyp(void) const =0;
|
||||
// return 1=upper door card 1=lower door 3=printer-test 4=coin-test
|
||||
// 0: not a valid atb2020 card
|
||||
|
||||
virtual QString mif_getAtbCardPerso(void) const =0;
|
||||
// e.g. "PNsax001" used for personal number, name shortcode, card number
|
||||
// free to use, can be set in AtbMcw23.exe tool
|
||||
|
||||
virtual void mif_getAtbCardExpire(uint8_t *year, uint8_t *month, uint8_t *day, uint8_t *hour, uint8_t *minute) const =0;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
signals:
|
||||
virtual void hwapi_templatePrintFinished_OK(void) const=0;
|
||||
virtual void hwapi_templatePrintFinished_Err(void) const=0;
|
||||
@@ -1413,9 +1448,15 @@ signals:
|
||||
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/4.1"
|
||||
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/4.2"
|
||||
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/4.3"
|
||||
#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/4.4"
|
||||
|
||||
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/4.4"
|
||||
// 8.9.2023 two new functions (end of file) for mifare test
|
||||
//#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/4.5"
|
||||
// 18.9.2023 major improvements for DC data exchange
|
||||
// verification of door and cash box signals
|
||||
// intensive verification of Json-Programming Master-Slave (PTU to DC), 100% ok
|
||||
|
||||
#define HWINF_iid "Atb.Psa1256ptu5.software.HWapi/4.6"
|
||||
// 20.9.2023: speeding up door and cash box signals
|
||||
|
||||
|
||||
Q_DECLARE_INTERFACE(hwinf, HWINF_iid)
|
||||
|
@@ -738,6 +738,13 @@ QStringList Update::getDcSoftAndHardWareVersion() {
|
||||
}
|
||||
|
||||
bool Update::doUpdate(int &displayIndex, QStringList const &filesToWorkOn) {
|
||||
// 04.10.2023: deactivated -> first testing of opkg_commands
|
||||
//
|
||||
// wird auch nie wieder gebraucht, da alles von der dc-lib erledigt wird.
|
||||
// die dc-lib braucht dazu nur datei-namen.
|
||||
return true;
|
||||
|
||||
|
||||
bool serialOpened = false;
|
||||
|
||||
QString const &parentName = Utils::getParentName();
|
||||
|
145
worker.cpp
145
worker.cpp
@@ -88,6 +88,7 @@ Worker::Worker(int customerNr,
|
||||
m_apismVersion = v.value();
|
||||
}
|
||||
|
||||
Utils::printInfoMsg("STARTING PTU-UPDATE");
|
||||
qInfo() << "CURRENT TIME ..............." << QDateTime::currentDateTime().toString(Qt::ISODate);
|
||||
qInfo() << "OS VERSION ................." << m_osVersion;
|
||||
qInfo() << "ATBQT VERSION .............." << m_atbqtVersion;
|
||||
@@ -170,8 +171,7 @@ void Worker::privateUpdate() {
|
||||
stopProgressLoop();
|
||||
emit replaceLast("Initializing customer environment", UPDATE_STEP_DONE);
|
||||
|
||||
int progress = (m_mainWindow->progressValue()/10) + 10;
|
||||
setProgress(progress);
|
||||
setProgress(5);
|
||||
|
||||
m_updateStatus = UpdateStatus(UPDATE_STATUS::GIT_CLONE_AND_CHECKOUT_SUCCESS,
|
||||
QString("CLONED AND CHECKED OUT: ") + m_customerRepository);
|
||||
@@ -181,7 +181,7 @@ void Worker::privateUpdate() {
|
||||
m_ismasClient.cloneAndCheckoutCustomerRepository(
|
||||
m_updateStatus.m_statusDescription));
|
||||
|
||||
setProgress(progress + 10);
|
||||
setProgress(10);
|
||||
|
||||
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
||||
@@ -195,9 +195,7 @@ void Worker::privateUpdate() {
|
||||
m_returnCode = 0;
|
||||
} else {
|
||||
stopProgressLoop();
|
||||
|
||||
int progress = (m_mainWindow->progressValue()/10) + 10;
|
||||
setProgress(progress);
|
||||
setProgress(0);
|
||||
|
||||
emit replaceLast("Initializing customer environment", UPDATE_STEP_FAIL);
|
||||
|
||||
@@ -210,11 +208,9 @@ void Worker::privateUpdate() {
|
||||
m_returnCode = -3;
|
||||
}
|
||||
} else {
|
||||
m_ismasClient.setProgressInPercent(10);
|
||||
if (updateTriggerSet()) {
|
||||
m_ismasClient.setProgressInPercent(20);
|
||||
if (customerEnvironment()) {
|
||||
m_ismasClient.setProgressInPercent(30);
|
||||
if (updateTriggerSet(5)) {
|
||||
if (customerEnvironment(30)) {
|
||||
m_ismasClient.setProgressInPercent(50);
|
||||
if (filesToUpdate()) {
|
||||
// send message to ISMAS about files which have been
|
||||
// checked in into git repository
|
||||
@@ -224,23 +220,19 @@ void Worker::privateUpdate() {
|
||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
||||
m_ismasClient.updateOfPSAContinues("CHECK-FILES-TO-UPDATE",
|
||||
m_updateStatus.m_statusDescription));
|
||||
m_ismasClient.setProgressInPercent(40);
|
||||
if (updateFiles(50)) {
|
||||
m_ismasClient.setProgressInPercent(50);
|
||||
if (updateFiles(60)) {
|
||||
m_ismasClient.setProgressInPercent(70);
|
||||
if (syncCustomerRepositoryAndFS()) {
|
||||
m_ismasClient.setProgressInPercent(60);
|
||||
m_ismasClient.setProgressInPercent(80);
|
||||
if (sendIsmasLastVersionNotification()) {
|
||||
m_ismasClient.setProgressInPercent(70);
|
||||
m_ismasClient.setProgressInPercent(90);
|
||||
sentIsmasLastVersionNotification = true;
|
||||
if (saveLogFile()) {
|
||||
m_ismasClient.setProgressInPercent(80);
|
||||
|
||||
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
||||
m_ismasClient.updateOfPSASucceeded(""));
|
||||
|
||||
// mark update as activated -> this resets the WAIT button
|
||||
m_ismasClient.setProgressInPercent(95);
|
||||
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
||||
m_ismasClient.updateOfPSAActivated());
|
||||
@@ -325,13 +317,14 @@ void Worker::privateUpdate() {
|
||||
stopProgressLoop();
|
||||
emit appendText(QString("UPDATE "), UPDATE_STEP_FAIL);
|
||||
|
||||
m_updateStatus = UpdateStatus(UPDATE_STATUS::UPDATE_PROCESS_FAILURE,
|
||||
QString("Update process failed"));
|
||||
if (std::optional<QString> s = m_ismasClient.finalResult(IsmasClient::RESULT_CODE::INSTALL_ERROR,
|
||||
m_updateStatus.m_statusDescription)) {
|
||||
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
||||
QString("#M=APISM#C=CMD_EVENT#J=") + s.value());
|
||||
}
|
||||
// m_updateStatus = UpdateStatus(UPDATE_STATUS::UPDATE_PROCESS_FAILURE,
|
||||
// QString("Update process failed"));
|
||||
// if (std::optional<QString> s = m_ismasClient.finalResult(IsmasClient::RESULT_CODE::INSTALL_ERROR,
|
||||
// m_updateStatus.m_statusDescription)) {
|
||||
// IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
||||
// QString("#M=APISM#C=CMD_EVENT#J=") + s.value());
|
||||
// }
|
||||
|
||||
} else {
|
||||
emit appendText(QString("UPDATE "), UPDATE_STEP_SUCCESS);
|
||||
|
||||
@@ -414,7 +407,7 @@ std::optional<QString> Worker::getApismVersion() {
|
||||
|
||||
#define CHECK_UPDATE_TRIGGER_SET "Check update trigger ..."
|
||||
|
||||
bool Worker::updateTriggerSet() {
|
||||
bool Worker::updateTriggerSet(int progress) {
|
||||
if (m_withoutIsmasDirectPort) { // useful for testing
|
||||
return true;
|
||||
}
|
||||
@@ -450,8 +443,7 @@ bool Worker::updateTriggerSet() {
|
||||
= IsmasClient::sendRequestReceiveResponse(
|
||||
IsmasClient::APISM::DIRECT_PORT, "#M=APISM#C=REQ_ISMASPARAMETER#J={}")) {
|
||||
stopProgressLoop();
|
||||
int progress = (m_mainWindow->progressValue()/10) + 10;
|
||||
setProgress(progress);
|
||||
setProgress(m_mainWindow->progressValue()/10 + 11);
|
||||
|
||||
QString msg = result.value();
|
||||
|
||||
@@ -490,15 +482,13 @@ bool Worker::updateTriggerSet() {
|
||||
emit replaceLast(CHECK_UPDATE_TRIGGER_SET, UPDATE_STEP_FAIL);
|
||||
return false;
|
||||
}
|
||||
progress += 1;
|
||||
setProgress(progress);
|
||||
setProgress(m_mainWindow->progressValue()/10 + 11);
|
||||
|
||||
QJsonObject obj = document.object();
|
||||
|
||||
// always look for an 'error' first
|
||||
if (obj.contains("error")) {
|
||||
progress += 1;
|
||||
setProgress(progress);
|
||||
setProgress(m_mainWindow->progressValue()/10 + 11);
|
||||
QString value = obj.value("error").toString();
|
||||
emit showErrorMessage("check update trigger", QString("REPEAT %1 error=<").arg(repeat) + value + ">");
|
||||
qInfo() << "REPEAT" << repeat << "In updateTriggerSet() error=<"
|
||||
@@ -583,8 +573,7 @@ bool Worker::updateTriggerSet() {
|
||||
emit replaceLast(CHECK_UPDATE_TRIGGER_SET, UPDATE_STEP_FAIL);
|
||||
return false;
|
||||
}
|
||||
progress += 1;
|
||||
setProgress(progress);
|
||||
setProgress(m_mainWindow->progressValue()/10 + 11);
|
||||
|
||||
if (obj.contains("Fileupload")) {
|
||||
QJsonValue v = obj.value("Fileupload");
|
||||
@@ -602,11 +591,17 @@ bool Worker::updateTriggerSet() {
|
||||
m_updateStatus = UpdateStatus(UPDATE_STATUS::ISMAS_SANITY_CHECK_OK,
|
||||
QString("MACHINE-NR (%1) AND CUST-NR (%2) OK")
|
||||
.arg(m_machineNr).arg(m_customerNr));
|
||||
|
||||
m_ismasClient.setProgressInPercent(progress);
|
||||
|
||||
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
||||
QString("#M=APISM#C=CMD_EVENT#J=") +
|
||||
m_ismasClient.updateOfPSAContinues("MACHINE-AND-CUSTOMER-CHECK",
|
||||
m_updateStatus.m_statusDescription));
|
||||
|
||||
progress += 5;
|
||||
m_ismasClient.setProgressInPercent(progress);
|
||||
|
||||
m_updateStatus = UpdateStatus(UPDATE_STATUS::ISMAS_UPDATE_TRIGGER_SET,
|
||||
QString("UPDATE TRIGGER SET. CONTINUE. "));
|
||||
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
|
||||
@@ -618,9 +613,7 @@ bool Worker::updateTriggerSet() {
|
||||
} else
|
||||
if (QRegExp("\\s*").exactMatch(triggerValue)) { // check for whitespace
|
||||
stopProgressLoop();
|
||||
int progress = (m_mainWindow->progressValue()/10) + 10;
|
||||
progress += 1;
|
||||
setProgress(progress);
|
||||
setProgress(m_mainWindow->progressValue()/10 + 11);
|
||||
emit showErrorMessage("check update trigger", "empty update-trigger");
|
||||
QThread::sleep(6);
|
||||
continue;
|
||||
@@ -675,9 +668,7 @@ bool Worker::updateTriggerSet() {
|
||||
}
|
||||
} else {
|
||||
stopProgressLoop();
|
||||
int progress = (m_mainWindow->progressValue()/10) + 10;
|
||||
progress += 1;
|
||||
setProgress(progress);
|
||||
setProgress(m_mainWindow->progressValue()/10 + 11);
|
||||
emit showErrorMessage("check update trigger", "no ISMAS response");
|
||||
QThread::sleep(6);
|
||||
}
|
||||
@@ -695,14 +686,14 @@ bool Worker::updateTriggerSet() {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Worker::customerEnvironment() {
|
||||
bool Worker::customerEnvironment(int progress) {
|
||||
emit appendText("\nPrepare customer environment ...");
|
||||
if (QDir(m_customerRepository).exists()) {
|
||||
startProgressLoop();
|
||||
setProgress(m_mainWindow->progressValue()/10 + 11);
|
||||
if (m_gc.gitCheckoutBranch()) {
|
||||
stopProgressLoop();
|
||||
int progress = (m_mainWindow->progressValue()/10) + 10;
|
||||
setProgress(progress);
|
||||
m_ismasClient.setProgressInPercent(progress);
|
||||
|
||||
m_updateStatus = UpdateStatus(UPDATE_STATUS::GIT_CHECKOUT_BRANCH,
|
||||
QString("CHECKED-OUT BRANCH ") + m_gc.branchName());
|
||||
@@ -717,8 +708,8 @@ bool Worker::customerEnvironment() {
|
||||
return true;
|
||||
} else {
|
||||
stopProgressLoop();
|
||||
int progress = (m_mainWindow->progressValue()/10) + 10;
|
||||
setProgress(progress);
|
||||
m_ismasClient.setProgressInPercent(0);
|
||||
|
||||
emit showErrorMessage("cust-env",
|
||||
QString("Checkout ") + m_customerRepository + " failed");
|
||||
Utils::printCriticalErrorMsg(QString("CHECKOUT OF " + m_customerRepository + "FAILED"));
|
||||
@@ -736,6 +727,10 @@ bool Worker::customerEnvironment() {
|
||||
bool Worker::filesToUpdate() {
|
||||
emit appendText("\nFetch changes files ...");
|
||||
startProgressLoop();
|
||||
|
||||
// always execute contents of opkg_commands-file
|
||||
m_filesToUpdate << "etc/psa_update/opkg_commands";
|
||||
|
||||
if (std::optional<QString> changes = m_gc.gitFetch()) {
|
||||
stopProgressLoop();
|
||||
int progress = (m_mainWindow->progressValue()/10) + 10;
|
||||
@@ -750,47 +745,38 @@ bool Worker::filesToUpdate() {
|
||||
setProgress(progress + 20);
|
||||
if (m_gc.gitPull()) {
|
||||
emit replaceLast(QString("Fetch changes files ..."), UPDATE_STEP_DONE);
|
||||
m_filesToUpdate = changedFileNames.value();
|
||||
m_filesToUpdate << changedFileNames.value();
|
||||
} else {
|
||||
emit showErrorMessage("files to update", "pulling files failed");
|
||||
Utils::printCriticalErrorMsg("PULLING FILES FAILED");
|
||||
|
||||
Utils::printInfoMsg("FILES-TO-UPDATE " + m_filesToUpdate.join(','));
|
||||
emit replaceLast(QString("Fetch changes files ..."), UPDATE_STEP_FAIL);
|
||||
|
||||
int const size = m_filesToUpdate.size();
|
||||
if (size > 1) {
|
||||
emit appendText(QString("Found %1 files to update :").arg(size), UPDATE_STEP_DONE);
|
||||
for (int i = 0; i < size; ++i) {
|
||||
emit appendText(QString("\n ") + m_filesToUpdate.at(i));
|
||||
}
|
||||
} else {
|
||||
emit appendText("Found 1 file to update :", UPDATE_STEP_DONE);
|
||||
emit appendText(QString("\n ") + m_filesToUpdate.at(0));
|
||||
}
|
||||
return true;
|
||||
stopProgressLoop();
|
||||
setProgress(100);
|
||||
|
||||
return false;
|
||||
}
|
||||
emit showErrorMessage("files to update", "pulling files failed");
|
||||
Utils::printCriticalErrorMsg("PULLING FILES FAILED");
|
||||
|
||||
} else {
|
||||
emit showErrorMessage("files to update", "no files to update (checked-in any files?)");
|
||||
Utils::printCriticalErrorMsg("NO FILES TO UPDATE (CHECKED IN ANY FILES?)");
|
||||
}
|
||||
setProgress(progress + 30);
|
||||
} else {
|
||||
stopProgressLoop();
|
||||
int progress = (m_mainWindow->progressValue()/10) + 10;
|
||||
setProgress(progress + 30);
|
||||
|
||||
emit showErrorMessage("files to update",
|
||||
QString("no changes in ") + m_customerRepository +
|
||||
" (checked-in any files?)");
|
||||
Utils::printInfoMsg("FILES-TO-UPDATE " + m_filesToUpdate.join(','));
|
||||
|
||||
Utils::printCriticalErrorMsg("NO CHANGES IN "
|
||||
+ m_customerRepository
|
||||
+ " (CHECKED IN ANY FILES?)");
|
||||
m_filesToUpdate.removeDuplicates();
|
||||
int const size = m_filesToUpdate.size();
|
||||
if (size > 1) {
|
||||
emit appendText(QString("Found %1 files to update :").arg(size), UPDATE_STEP_DONE);
|
||||
for (int i = 0; i < size; ++i) {
|
||||
emit appendText(QString("\n ") + m_filesToUpdate.at(i));
|
||||
}
|
||||
} else {
|
||||
emit appendText("Found 1 file to update :", UPDATE_STEP_DONE);
|
||||
emit appendText(QString("\n ") + m_filesToUpdate.at(0));
|
||||
}
|
||||
|
||||
setProgress(progress + 30);
|
||||
}
|
||||
|
||||
emit replaceLast(QString("Fetch changes files ..."), UPDATE_STEP_FAIL);
|
||||
setProgress(100);
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Worker::updateFiles(quint8 percent) {
|
||||
@@ -894,7 +880,6 @@ bool Worker::syncCustomerRepositoryAndFS() {
|
||||
"--exclude=.* "
|
||||
"--include=*.bin "
|
||||
"--include=*.json "
|
||||
"--include=opkg_commands "
|
||||
"--include=*.ini");
|
||||
QStringList cmds;
|
||||
cmds << QString("rsync ") + params.simplified() + " etc/ /etc";
|
||||
|
4
worker.h
4
worker.h
@@ -190,8 +190,8 @@ public slots:
|
||||
void update();
|
||||
|
||||
private slots:
|
||||
bool updateTriggerSet();
|
||||
bool customerEnvironment();
|
||||
bool updateTriggerSet(int progress);
|
||||
bool customerEnvironment(int progress);
|
||||
bool filesToUpdate();
|
||||
bool updateFiles(quint8 percent);
|
||||
bool syncCustomerRepositoryAndFS();
|
||||
|
Reference in New Issue
Block a user