14 Commits

Author SHA1 Message Date
e87456f26b set version to 1.3.21 2023-12-13 10:06:04 +01:00
0c9a7bc7b5 let ISMAS know if some opkg commands fail 2023-12-13 10:04:38 +01:00
a35c6afcb8 Minor: add debug output if some opkg commands fail 2023-12-13 10:03:37 +01:00
b06f4f46bb Update interfaces.h (DeviceController) 2023-12-08 13:02:23 +01:00
33d45eab2e Merge branch 'master' of git.mimbach49.de:GerhardHoffmann/UpdatePTUDevCtrl 2023-12-08 13:01:03 +01:00
d2e11d8f07 Replace the last line of the text edit when the new line is
the last line followed by a suffix.
2023-11-29 14:18:01 +01:00
fbffdc923f Minor: When appendig text, scroll down the text edit. 2023-11-29 14:17:28 +01:00
8faf5af2bf Typo: replace m_files_to_update with m_files_to_download. 2023-11-29 12:07:25 +01:00
1d532c13a4 Minor: show files to update with a direct qCritical() 2023-11-29 12:06:17 +01:00
d2d3afc28e Show debug output in text-edit only when at least one file to update. 2023-11-29 12:05:09 +01:00
f4bb201633 Minor: Add debug message to console 2023-11-29 11:37:08 +01:00
b68cf1fd1d Set version to 1.3.20. 2023-11-29 11:30:50 +01:00
0888c1b525 Read machine-nr, customer-nr and zone-nr from /mnt/system_data/
rather then the deprecated /etc-directory.
2023-11-29 11:29:52 +01:00
a6faf9ce21 Init triggerValue with "NOT CHECKED YET" otherwise one might be confused. 2023-11-29 11:28:35 +01:00
6 changed files with 70 additions and 21 deletions

View File

@@ -63,8 +63,9 @@ DEFINES += QT_DEPRECATED_WARNINGS
# 1.3.17: Add ATBUpdateTool.ini and custom command line parser. Settings # 1.3.17: Add ATBUpdateTool.ini and custom command line parser. Settings
# given in ATBUpdateTool.ini can be overwritten on the command-line. # given in ATBUpdateTool.ini can be overwritten on the command-line.
# 1.3.18: Bug fixes found during testing. # 1.3.18: Bug fixes found during testing.
VERSION="1.3.19"
# 1.3.19: Bug fixes found during testing. # 1.3.19: Bug fixes found during testing.
# 1.3.20: Bug fixes found during testing.
VERSION="1.3.21"
# PLANNED TODOS: # PLANNED TODOS:
# 1: Das Repository wird repariert bwz. neu geklont. Unabhaengig vom WAIT. # 1: Das Repository wird repariert bwz. neu geklont. Unabhaengig vom WAIT.
@@ -95,6 +96,9 @@ VERSION="1.3.19"
# Stellung des WAIT-Button. Grund: es koennte sein, dass andernfalls ein # Stellung des WAIT-Button. Grund: es koennte sein, dass andernfalls ein
# PSA weit hiter anderen steht, und dann ploetzlich einmal alle vorher- # PSA weit hiter anderen steht, und dann ploetzlich einmal alle vorher-
# gehenden Aenderungen anzieht, die gar nicht fuer ihn gemeint waren. # gehenden Aenderungen anzieht, die gar nicht fuer ihn gemeint waren.
# 10: Bei einer Neuinstallation (Neuhauser) immer JSON files runterladen,
# Tariff-Files syncen (d.h. nur wenn noch kein Repo vorhanden ist), und
# zwar auch ohne WAIT-Button.
win32 { win32 {

View File

@@ -1834,6 +1834,9 @@ public:
virtual uint8_t prn_getPrintResult() const { virtual uint8_t prn_getPrintResult() const {
return 0; return 0;
} }
// return: 0: just printing, wait
// 1: OK - last print was succesful
// 2: error - not printed
@@ -2273,7 +2276,32 @@ public:
signals: signals:
virtual void hwapi_templatePrintFinished_OK(void) const=0;
virtual void hwapi_templatePrintFinished_Err(void) const=0;
virtual void hwapi_coinCollectionJustStarted(void) const=0;
virtual void hwapi_coinCollectionAborted(void) const=0;
virtual void hwapi_gotNewCoin(void) const=0;
virtual void hwapi_payStopByMax(void) const=0;
virtual void hwapi_payStopByPushbutton(void) const=0;
virtual void hwapi_payStopByEscrow(void) const=0;
virtual void hwapi_payStopByError(void) const=0;
virtual void hwapi_payStopByTimeout(void) const=0;
virtual void hwapi_payCancelled(void) const=0;
virtual void hwapi_coinProcessJustStopped(void) const=0;
virtual void hwapi_doorServiceDoorOpened(void) const=0;
virtual void hwapi_doorVaultDoorOpened(void) const=0;
virtual void hwapi_doorCoinBoxRemoved(void) const=0;
virtual void hwapi_doorCoinBoxInserted(void) const=0;
virtual void hwapi_doorCBinAndAllDoorsClosed(void) const=0;
virtual void hwapi_doorAllDoorsClosed(void) const=0;
// NOTE: declaring a "pure virtual" "signal" should be an error and thus not valid. // NOTE: declaring a "pure virtual" "signal" should be an error and thus not valid.
/* GH Version, bringt Fehler
void hwapi_templatePrintFinished_OK() const; void hwapi_templatePrintFinished_OK() const;
void hwapi_templatePrintFinished_Err() const; void hwapi_templatePrintFinished_Err() const;
@@ -2296,6 +2324,7 @@ signals:
void hwapi_doorCoinBoxInserted() const; void hwapi_doorCoinBoxInserted() const;
void hwapi_doorCBinAndAllDoorsClosed() const; void hwapi_doorCBinAndAllDoorsClosed() const;
void hwapi_doorAllDoorsClosed() const; void hwapi_doorAllDoorsClosed() const;
*/
}; };

View File

@@ -85,6 +85,12 @@ int main(int argc, char *argv[]) {
QString const rtPath = QCoreApplication::applicationDirPath(); QString const rtPath = QCoreApplication::applicationDirPath();
int const machineNr = Utils::read1stLineOfFile("/mnt/system_data/machine_nr");
int const customerNr = Utils::read1stLineOfFile("/mnt/system_data/cust_nr");
int const zoneNr = Utils::read1stLineOfFile("/mnt/system_data/zone_nr");
QString const branchName = (zoneNr != 0)
? QString("zg1/zone%1").arg(zoneNr) : "master";
qInfo() << "pwd ......................" << rtPath; qInfo() << "pwd ......................" << rtPath;
qInfo() << "repositoryUrl ............" << repositoryUrl; qInfo() << "repositoryUrl ............" << repositoryUrl;
qInfo() << "plugInDir ................" << plugInDir; qInfo() << "plugInDir ................" << plugInDir;
@@ -99,6 +105,9 @@ int main(int argc, char *argv[]) {
qInfo() << "showExtendedVersion ......" << showExtendedVersion; qInfo() << "showExtendedVersion ......" << showExtendedVersion;
qInfo() << "iniFileName .............." << iniFileName; qInfo() << "iniFileName .............." << iniFileName;
qInfo() << "extended-version ........." << APP_EXTENDED_VERSION; qInfo() << "extended-version ........." << APP_EXTENDED_VERSION;
qInfo() << "machineNr ................" << machineNr;
qInfo() << "customerNr ..............." << customerNr;
qInfo() << "zoneNr ..................." << zoneNr;
if (showExtendedVersion) { if (showExtendedVersion) {
printf(APP_EXTENDED_VERSION"\n"); printf(APP_EXTENDED_VERSION"\n");
@@ -113,11 +122,6 @@ int main(int argc, char *argv[]) {
return 0; return 0;
} }
int machineNr = Utils::read1stLineOfFile("/etc/machine_nr");
int customerNr = Utils::read1stLineOfFile("/etc/cust_nr");
int zoneNr = Utils::read1stLineOfFile("/etc/zone_nr");
QString const branchName = (zoneNr != 0)
? QString("zg1/zone%1").arg(zoneNr) : "master";
QThread::currentThread()->setObjectName("main thread"); QThread::currentThread()->setObjectName("main thread");
qInfo() << "Main thread" << QThread::currentThreadId(); qInfo() << "Main thread" << QThread::currentThreadId();

View File

@@ -208,13 +208,12 @@ void MainWindow::onAppendText(QString text, QString suffix) {
// Utils::printLineEditInfo(editText.split('\n', QString::SplitBehavior::SkipEmptyParts)); // Utils::printLineEditInfo(editText.split('\n', QString::SplitBehavior::SkipEmptyParts));
// ui->updateStatus->setText(editText.trimmed()); // ui->updateStatus->setText(editText.trimmed());
// scrollDownTextEdit(); scrollDownTextEdit();
} }
void MainWindow::onReplaceLast(QStringList newTextLines, QString suffix) { void MainWindow::onReplaceLast(QStringList newTextLines, QString suffix) {
// Utils::printInfoMsg(QString("ON REPLACE LAST (LIST) CALLED AT ") // Utils::printInfoMsg(QString("ON REPLACE LAST (LIST) CALLED AT ")
// + QDateTime::currentDateTime().toString(Qt::ISODateWithMs)); // + QDateTime::currentDateTime().toString(Qt::ISODateWithMs));
int const s = newTextLines.size(); int const s = newTextLines.size();
if (s > 0) { if (s > 0) {
QString editText = ui->updateStatus->toPlainText(); QString editText = ui->updateStatus->toPlainText();
@@ -249,11 +248,15 @@ void MainWindow::onReplaceLast(QStringList newTextLines, QString suffix) {
void MainWindow::onReplaceLast(QString text, QString suffix) { void MainWindow::onReplaceLast(QString text, QString suffix) {
// Utils::printInfoMsg(QString("ON REPLACE LAST (TEXT) CALLED AT ") // Utils::printInfoMsg(QString("ON REPLACE LAST (TEXT) CALLED AT ")
// + QDateTime::currentDateTime().toString(Qt::ISODateWithMs)); // + QDateTime::currentDateTime().toString(Qt::ISODateWithMs));
QString editText = ui->updateStatus->toPlainText(); QString editText = ui->updateStatus->toPlainText();
QStringList lines = editText.split('\n', QString::SplitBehavior::SkipEmptyParts); QStringList lines = editText.split('\n', QString::SplitBehavior::SkipEmptyParts);
if (lines.size() > 0) { if (lines.size() > 0) {
lines.removeLast(); // removing the last line is really meant for refreshing the last line
// with a string very similar than the original one, typically only
// followed by a suffix.
if (lines.last().contains(text)) {
lines.removeLast();
}
if (!suffix.isNull() && suffix.size() > 0 && suffix != "\n") { if (!suffix.isNull() && suffix.size() > 0 && suffix != "\n") {
QString const add = text.leftJustified(m_width-10) + suffix; QString const add = text.leftJustified(m_width-10) + suffix;
if (!add.isEmpty()) { if (!add.isEmpty()) {

View File

@@ -457,7 +457,7 @@ bool Worker::updateTriggerSet() {
GUI() << (ISMAS() << (CONSOLE() << UPDATE_STEP::CHECK_ISMAS_TRIGGER)); GUI() << (ISMAS() << (CONSOLE() << UPDATE_STEP::CHECK_ISMAS_TRIGGER));
QString triggerValue(""); QString triggerValue("NOT CHECKED YET");
for (int repeat = 1; repeat <= 100; ++repeat) { for (int repeat = 1; repeat <= 100; ++repeat) {
@@ -682,6 +682,9 @@ bool Worker::filesToUpdate() {
} }
} }
m_filesToUpdate.removeDuplicates(); m_filesToUpdate.removeDuplicates();
qCritical() << __PRETTY_FUNCTION__ << "FILES-TO-UPDATE" << m_filesToUpdate;
GUI(m_filesToUpdate) << (CONSOLE(m_filesToUpdate) << UPDATE_STEP::FILES_TO_UPDATE); GUI(m_filesToUpdate) << (CONSOLE(m_filesToUpdate) << UPDATE_STEP::FILES_TO_UPDATE);
setProgress(_FILES_TO_UPDATE); setProgress(_FILES_TO_UPDATE);
} else { } else {
@@ -724,7 +727,7 @@ bool Worker::execOpkgCommands() {
if (f.open(QIODevice::ReadOnly)) { if (f.open(QIODevice::ReadOnly)) {
QTextStream in(&f); QTextStream in(&f);
m_opkgCommands.clear(); m_opkgCommands.clear();
bool executeOpkgCommandFailed = false; QStringList opkgErrorLst;
while (!in.atEnd()) { while (!in.atEnd()) {
QString line = in.readLine(); QString line = in.readLine();
static const QRegularExpression comment("^\\s*#.*$"); static const QRegularExpression comment("^\\s*#.*$");
@@ -732,7 +735,7 @@ bool Worker::execOpkgCommands() {
// found opkg command // found opkg command
QString opkgCommand = line.trimmed(); QString opkgCommand = line.trimmed();
if (!executeOpkgCommand(opkgCommand)) { if (!executeOpkgCommand(opkgCommand)) {
executeOpkgCommandFailed = true; opkgErrorLst << opkgCommand;
} else { } else {
QString cmd = "\n " + opkgCommand; QString cmd = "\n " + opkgCommand;
emit appendText(cmd); emit appendText(cmd);
@@ -786,14 +789,15 @@ bool Worker::execOpkgCommands() {
} }
} }
f.close(); f.close();
if (!executeOpkgCommandFailed) { if (opkgErrorLst.size() == 0) {
if (m_opkgCommands.size() > 0) { if (m_opkgCommands.size() > 0) {
m_displayIndex = 1; m_displayIndex = 1;
GUI() << UPDATE_STEP::EXEC_OPKG_COMMAND_SUCCESS; ISMAS() << (GUI() << (CONSOLE() << UPDATE_STEP::EXEC_OPKG_COMMAND_SUCCESS));
setProgress(_EXEC_OPKG_COMMAND_SUCCESS); setProgress(_EXEC_OPKG_COMMAND_SUCCESS);
} }
} else { } else {
m_displayIndex = 1; m_displayIndex = 1;
ISMAS(opkgErrorLst) << (GUI(opkgErrorLst) << (CONSOLE() << UPDATE_STEP::EXEC_OPKG_COMMAND_FAILURE));
GUI() << UPDATE_STEP::EXEC_OPKG_COMMAND_FAILURE; GUI() << UPDATE_STEP::EXEC_OPKG_COMMAND_FAILURE;
setProgress(_EXEC_OPKG_COMMAND_FAILURE); setProgress(_EXEC_OPKG_COMMAND_FAILURE);
return false; return false;
@@ -809,7 +813,7 @@ bool Worker::execOpkgCommands() {
bool Worker::downloadFilesToPSAHardware() { bool Worker::downloadFilesToPSAHardware() {
m_displayIndex = 0; m_displayIndex = 0;
GUI(m_filesToUpdate) << (CONSOLE(m_filesToUpdate) << UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE); GUI(m_filesToDownload) << (CONSOLE(m_filesToDownload) << UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE);
setProgress(_DOWNLOAD_FILES_TO_PSA_HARDWARE); setProgress(_DOWNLOAD_FILES_TO_PSA_HARDWARE);
if (m_noUpdatePsaHardware == false) { if (m_noUpdatePsaHardware == false) {

View File

@@ -520,8 +520,10 @@ private:
break; break;
case UPDATE_STEP::CHECK_FOR_REPOSITORY_CHANGES_FAILURE: case UPDATE_STEP::CHECK_FOR_REPOSITORY_CHANGES_FAILURE:
break; break;
case UPDATE_STEP::FILES_TO_UPDATE: case UPDATE_STEP::FILES_TO_UPDATE: {
break; lst << instance->m_debugMsg;
Utils::printUpdateStatusMsg(debug, lst);
} break;
case UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE: { case UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE: {
lst << instance->m_debugMsg; lst << instance->m_debugMsg;
Utils::printUpdateStatusMsg(debug, lst); Utils::printUpdateStatusMsg(debug, lst);
@@ -555,8 +557,10 @@ private:
break; break;
case UPDATE_STEP::EXEC_OPKG_COMMAND_SUCCESS: case UPDATE_STEP::EXEC_OPKG_COMMAND_SUCCESS:
break; break;
case UPDATE_STEP::EXEC_OPKG_COMMAND_FAILURE: case UPDATE_STEP::EXEC_OPKG_COMMAND_FAILURE: {
break; lst << instance->m_debugMsg;
Utils::printUpdateStatusMsg(debug, lst);
} break;
case UPDATE_STEP::DOWNLOAD_CONFIG_FILE: case UPDATE_STEP::DOWNLOAD_CONFIG_FILE:
break; break;
case UPDATE_STEP::DOWNLOAD_CONFIG_FILE_SUCCESS: case UPDATE_STEP::DOWNLOAD_CONFIG_FILE_SUCCESS:
@@ -1173,7 +1177,8 @@ private:
for (int i = 0; i < size; ++i) { for (int i = 0; i < size; ++i) {
emit worker->appendText(QString("\n ") + worker->m_filesToUpdate.at(i)); emit worker->appendText(QString("\n ") + worker->m_filesToUpdate.at(i));
} }
} else { }
if (size == 1) {
emit worker->appendText("Found 1 file to update :", UPDATE_STEP_DONE); emit worker->appendText("Found 1 file to update :", UPDATE_STEP_DONE);
emit worker->appendText(QString("\n ") + worker->m_filesToUpdate.at(0)); emit worker->appendText(QString("\n ") + worker->m_filesToUpdate.at(0));
} }