Compare commits

..

14 Commits

Author SHA1 Message Date
24f2ba7c44 Move rsyncing the customer-repository after filesToUpdate(), as
the repository is pulled in filesToUpdate().
2024-04-09 14:56:25 +02:00
2ed6768953 Minor: remove ismasTriggerValue-(debug)-message, as it was too confusing. 2024-04-09 14:55:45 +02:00
a1327388bc execute(): Enhance debug output. 2024-04-09 14:53:50 +02:00
8d18ae10fe downLoadJson(): add more debug-output (visible in ISMAS as well)
to see what actuelly went wrong when downloading json-Files.
2024-04-09 14:51:54 +02:00
31bc2d0fa2 Minor: update comment 2024-04-09 14:49:42 +02:00
175b8fd3a1 If the update-trigger (aka WAIT-button) is empty and we have an automatic
update (i.e. time is 0:00 - 4:00 am), then do not inform ISMAS with an U0003
error signal, but send an U0002 (setting the trigger-value to "OK").
2024-03-19 12:41:42 +01:00
a57fa6c31e Add path to global device-controller library 2024-03-19 09:30:20 +01:00
c22c924e38 Add path to global device-controller library 2024-03-19 09:29:51 +01:00
bdc64920a2 Minor: remove superfluous include 2024-03-19 09:29:17 +01:00
7bc9fa0c04 Minor: fix typo 2024-03-19 09:28:37 +01:00
334da1fe4a Merge branch 'master' of https://git.mimbach49.de/GerhardHoffmann/ATBUpdateTool 2024-03-19 09:23:54 +01:00
5c152c9dc2 Minor: remove plugins/interfaces.h 2024-03-19 09:13:27 +01:00
367ffaa3a1 Minor: adapt header-include 2024-03-19 09:12:46 +01:00
2fd004f249 Add PATH for device-controller-library as well. 2024-03-19 09:12:07 +01:00
8 changed files with 132 additions and 35 deletions

View File

@@ -34,6 +34,11 @@ contains( CONFIG, PTU5 ) {
lessThan(QT_MAJOR_VERSION, 5): PKGCONFIG += qextserialport
QMAKE_CXXFLAGS += -O2 -std=c++17 # for GCC >= 4.7
# QMAKE_CXXFLAGS += -Wno-deprecated-copy
PTU5BASEPATH = /opt/devel/ptu5
INCLUDEPATH += $$PTU5BASEPATH/qt/libs/devicecontroller/include
LIBS += -L$$PTU5BASEPATH/qt/libs/devicecontroller/library
ARCH = PTU5
DEFINES+=PTU5
}

View File

@@ -39,6 +39,12 @@ contains( CONFIG, PTU5 ) {
lessThan(QT_MAJOR_VERSION, 5): PKGCONFIG += qextserialport
QMAKE_CXXFLAGS += -O2 -std=c++17 # for GCC >= 4.7
# QMAKE_CXXFLAGS += -Wno-deprecated-copy
PTU5BASEPATH = /opt/devel/ptu5
INCLUDEPATH += $$PTU5BASEPATH/qt/libs/devicecontroller/include
LIBS += -L$$PTU5BASEPATH/qt/libs/devicecontroller/library
ARCH = PTU5
DEFINES+=PTU5
}
@@ -72,7 +78,6 @@ SOURCES += \
HEADERS += \
message_handler.h \
plugins/interfaces.h \
process/command.h
OTHER_FILES += \

View File

@@ -4,7 +4,7 @@
#include <QByteArray>
#include "message_handler.h"
#include "plugins/interfaces.h"
#include <DeviceController/interfaces.h>
//#include <unistd.h>

View File

@@ -316,6 +316,31 @@ std::optional<QString> GitClient::gitPull() {
// 6ed893f..5d9882c zg1/zone2 -> origin/zg1/zone2
// 4384d17..77045d8 zg1/zone3 -> origin/zg1/zone3
// 89d2812..36a0d74 zg1/zone5 -> origin/zg1/zone5
//
// More exactly:
// remote: Counting objects: 382, done.
// remote: Compressing objects: 100% (203/203), done.
// remote: Total 278 (delta 177), reused 103 (delta 59)
// Receiving objects: 100% (278/278), 4.89 MiB | 539 KiB/s, done.
// Resolving deltas: 100% (177/177), completed with 40 local objects.
// From ssh://longair@pacific.mpi-cbg.de/srv/git/fiji
// 3036acc..9eb5e40 debian-release-20081030 -> origin/debian-release-20081030
// * [new branch] debian-release-20081112 -> origin/debian-release-20081112
// * [new branch] debian-release-20081112.1 -> origin/debian-release-20081112.1
// 3d619e7..6260626 master -> origin/master
//
// The most important bits here are the lines like these:
//
// 3036acc..9eb5e40 debian-release-20081030 -> origin/debian-release-20081030
// * [new branch] debian-release-20081112 -> origin/debian-release-20081112
//
// The first line of these two shows that your remote-tracking branch
// origin/debian-release-20081030 has been advanced from the commit 3036acc to 9eb5e40.
// The bit before the arrow is the name of the branch in the remote repository.
// The second line similarly show that since we last did this, a new remote tracking
// branch has been created. (git fetch may also fetch new tags if they have appeared
// in the remote repository.)
bool found = false;
for (int i=0; i < lines.size(); ++i) {
if (lines.at(i).contains(m_branchName)) {

View File

@@ -400,17 +400,26 @@ bool Update::downloadJson(enum FileTypeJson type,
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) {
Utils::printCriticalErrorMsg("SYS NOT READY FOR SENDING AFTER 5 SECONDS");
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
@@ -452,20 +461,48 @@ bool Update::downloadJson(enum FileTypeJson type,
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));
}
}
} else {
Utils::printCriticalErrorMsg(
QString("SIZE OF %1 TOO BIG (%2 BYTES)")
.arg(jsFileToSendToDC).arg(fi.size()));
msg = QString("SIZE OF %1 TOO BIG (%2 BYTES)").arg(jsFileToSendToDC).arg(fi.size());
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 {
Utils::printCriticalErrorMsg(
QString("CAN NOT OPEN ") + jsFileToSendToDC + " FOR READING");
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 {
Utils::printCriticalErrorMsg(
QString(jsFileToSendToDC) + " DOES NOT EXIST");
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));
}
}
}

View File

@@ -277,21 +277,24 @@ bool Utils::sameFilesInDirs(QDir const &dir1, QDir const &dir2,
fileNameLst2 << i2.next().fileName();
}
QString dirPath1 = dir1.absolutePath();
QString dirPath2 = dir2.absolutePath();
if (fileNameLst1.isEmpty()) {
qCritical() << "DIR1" << dir1.dirName() << " DOES NOT CONTAIN EXPECTED FILES";
qCritical() << "DIR1" << dirPath1 << " DOES NOT CONTAIN EXPECTED FILES";
return false;
}
if (fileNameLst2.isEmpty()) {
qCritical() << "DIR1" << dir2.dirName() << " DOES NOT CONTAIN EXPECTED FILES";
qCritical() << "DIR1" << dirPath2 << " DOES NOT CONTAIN EXPECTED FILES";
return false;
}
if (fileNameLst1 != fileNameLst2) {
printCriticalErrorMsg(dir1.dirName() + " AND " + dir2.dirName()
printCriticalErrorMsg(dirPath1 + " AND " + dirPath2
+ " DIFFER: [" + fileNameLst1.join(',') + "],["
+ fileNameLst2.join(',') + "]");
return false;
} else {
printInfoMsg(dir1.dirName() + " AND " + dir2.dirName()
printInfoMsg(dirPath1 + " AND " + dirPath2
+ " ARE EQUAL: [" + fileNameLst1.join(',') + "]");
}
@@ -307,21 +310,21 @@ bool Utils::sameFilesInDirs(QDir const &dir1, QDir const &dir2,
}
if (gitBlobLst1.isEmpty()) {
qCritical() << "DIR1" << dir1.dirName() << " DOES NOT CONTAIN EXPECTED FILES";
qCritical() << "DIR1" << dirPath1 << " DOES NOT CONTAIN EXPECTED FILES";
return false;
}
if (gitBlobLst2.isEmpty()) {
qCritical() << "DIR1" << dir2.dirName() << " DOES NOT CONTAIN EXPECTED FILES";
qCritical() << "DIR1" << dirPath2 << " DOES NOT CONTAIN EXPECTED FILES";
return false;
}
if (gitBlobLst1 != gitBlobLst2) {
printCriticalErrorMsg(dir1.dirName() + " AND " + dir2.dirName()
printCriticalErrorMsg(dirPath1 + " AND " + dirPath2
+ " DIFFER: [" + gitBlobLst1.join(',') + "],["
+ gitBlobLst2.join(',') + "]");
return false;
} else {
printInfoMsg(dir1.dirName() + " AND " + dir2.dirName()
printInfoMsg(dirPath1 + " AND " + dirPath2
+ " CONTAIN SAME GIT-BLOBS FOR FILES: [" + fileNameLst1.join(',') + "]");
}

View File

@@ -439,17 +439,6 @@ void Worker::privateUpdate() {
ISMAS(lst) << (CONSOLE(lst) << UPDATE_STEP::CHECKOUT_BRANCH);
setProgress(_CHECKOUT_BRANCH_SUCCESS);
////////////////////////////////////////////////////////////////////////////
//
// (R)SYNC THE REPOSITORY WITH THE LOCAL FILEYSTEM
//
////////////////////////////////////////////////////////////////////////////
if ((continueUpdate = syncCustomerRepositoryAndFS()) == false) {
return;
}
lst = QStringList(QString(smap[UPDATE_STEP::SYNC_CUSTOMER_REPOSITORY_SUCCESS]));
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << UPDATE_STEP::SYNC_CUSTOMER_REPOSITORY_SUCCESS));
setProgress(_SYNC_CUSTOMER_REPOSITORY_SUCCESS);
////////////////////////////////////////////////////////////////////////////
//
@@ -464,6 +453,18 @@ void Worker::privateUpdate() {
ISMAS() << (GUI() << (CONSOLE() << UPDATE_STEP::UPDATE_REPOSITORY));
setProgress(_UPDATE_REPOSITORY_SUCCESS);
////////////////////////////////////////////////////////////////////////////
//
// (R)SYNC THE REPOSITORY WITH THE LOCAL FILEYSTEM
//
////////////////////////////////////////////////////////////////////////////
if ((continueUpdate = syncCustomerRepositoryAndFS()) == false) {
return;
}
lst = QStringList(QString(smap[UPDATE_STEP::SYNC_CUSTOMER_REPOSITORY_SUCCESS]));
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << UPDATE_STEP::SYNC_CUSTOMER_REPOSITORY_SUCCESS));
setProgress(_SYNC_CUSTOMER_REPOSITORY_SUCCESS);
////////////////////////////////////////////////////////////////////////////
//
@@ -518,6 +519,8 @@ bool Worker::updateTriggerSet() {
GUI() << (CONSOLE() << UPDATE_STEP::CHECK_ISMAS_TRIGGER);
bool const automaticUpdate = (QDateTime::currentDateTime().time().hour() < 4);
QString triggerValue("NOT CHECKED YET");
static constexpr int const repeats = 15;
for (int repeat = 1; repeat <= repeats; ++repeat) {
@@ -639,9 +642,17 @@ bool Worker::updateTriggerSet() {
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::CHECK_ISMAS_TRIGGER_WRONG_VALUE)));
// if the customer repository has just been cloned
return false; // it is OK the ISMAS trigger might not be 'WAIT'
} else {
CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::CHECK_ISMAS_TRIGGER_FAILURE);
}
// not a clone and empty update-trigger
if (automaticUpdate) {
// do not inform ISMAS in case of automatic update, because the
// update is not necessary as the trigger-button is not set to WAIT.
GUI(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::CHECK_ISMAS_TRIGGER_WRONG_VALUE));
return false;
}
CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::CHECK_ISMAS_TRIGGER_FAILURE);
QThread::sleep(6);
continue;
} else {
@@ -649,11 +660,21 @@ bool Worker::updateTriggerSet() {
if (m_clone) {
m_ismasTriggerStatusMessage = QStringList(QString("TRIGGER-VALUE='%1' != 'WAIT'").arg(triggerValue));
QStringList lst = m_ismasTriggerStatusMessage;
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::CHECK_ISMAS_TRIGGER_WRONG_VALUE)));
if (automaticUpdate) {
// do not inform ISMAS in case of automatic update
GUI(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::CHECK_ISMAS_TRIGGER_WRONG_VALUE));
} else {
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::CHECK_ISMAS_TRIGGER_WRONG_VALUE)));
}
} else {
m_ismasTriggerStatusMessage = QStringList(QString("TRIGGER-VALUE='%1' != 'WAIT'").arg(triggerValue));
QStringList lst = m_ismasTriggerStatusMessage;
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::CHECK_ISMAS_TRIGGER_FAILURE)));
if (automaticUpdate) {
// do not inform ISMAS in case of automatic update
GUI(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::CHECK_ISMAS_TRIGGER_WRONG_VALUE));
} else {
ISMAS(lst) << (GUI(lst) << (CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::CHECK_ISMAS_TRIGGER_FAILURE)));
}
}
return false;
}
@@ -908,7 +929,7 @@ bool Worker::downloadFilesToPSAHardware() {
return true;
}
CONSOLE(QStringList("NO FILES TO DOWNLOAD TO PSA-HW")) << (m_lastFailedUpdateStep = UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE_FAILURE);
CONSOLE(lst) << (m_lastFailedUpdateStep = UPDATE_STEP::DOWNLOAD_FILES_TO_PSA_HARDWARE_FAILURE);
setProgress(_DOWNLOAD_FILES_TO_PSA_HARDWARE_FAILURE);
return false;

View File

@@ -225,7 +225,8 @@ class Worker : public QThread{
m_worker->setProgress(_FINISHED);
}
} else {
QStringList lst = m_worker->m_ismasTriggerStatusMessage;
// QStringList lst = m_worker->m_ismasTriggerStatusMessage;
QStringList lst;
UPDATE_STEP last = m_worker->m_lastFailedUpdateStep;
if (m_worker->smap.contains(last)) {
lst << QString(" (last failed step: %1)").arg(m_worker->smap[last]);