Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
24f2ba7c44 | |||
2ed6768953 | |||
a1327388bc | |||
8d18ae10fe | |||
31bc2d0fa2 | |||
175b8fd3a1 | |||
a57fa6c31e | |||
c22c924e38 | |||
bdc64920a2 | |||
7bc9fa0c04 | |||
334da1fe4a | |||
5c152c9dc2 | |||
367ffaa3a1 | |||
2fd004f249 |
@@ -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
|
||||
}
|
||||
|
@@ -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 += \
|
||||
|
@@ -4,7 +4,7 @@
|
||||
#include <QByteArray>
|
||||
|
||||
#include "message_handler.h"
|
||||
#include "plugins/interfaces.h"
|
||||
#include <DeviceController/interfaces.h>
|
||||
|
||||
|
||||
//#include <unistd.h>
|
||||
|
@@ -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)) {
|
||||
|
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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(',') + "]");
|
||||
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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]);
|
||||
|
Reference in New Issue
Block a user