Compare commits

..

No commits in common. "da102b5ed0a3658704c999edf81ab292358f8f5a" and "0933274c8236b32aa5b1905dfcaed4c7a0db3fe5" have entirely different histories.

4 changed files with 50 additions and 141 deletions

View File

@ -116,8 +116,7 @@ DEFINES += QT_DEPRECATED_WARNINGS
# 1.4.5 : In case a new branch has been created in a remote
# 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"
VERSION="1.4.5"
# 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

View File

@ -384,7 +384,7 @@ QString IsmasClient::errorBackendNotConnected(QString const &info,
QString const &version) {
return updateNewsToIsmas("U0003",
m_progressInPercent,
RESULT_CODE::ISMAS_NO_CONNECTION_ERROR,
RESULT_CODE::INSTALL_ERROR,
"CHECK BACKEND CONNECTIVITY",
info.toStdString().c_str(),
version.toStdString().c_str());
@ -394,7 +394,7 @@ QString IsmasClient::errorGitClone(QString const &info,
QString const &version) {
return updateNewsToIsmas("U0003",
m_progressInPercent,
RESULT_CODE::GIT_CLONE_ERROR,
RESULT_CODE::INSTALL_ERROR,
"CLONE CUSTOMER REPOSITORY FAILED",
info.toStdString().c_str(),
version.toStdString().c_str());
@ -442,7 +442,7 @@ QString IsmasClient::updateTriggerSet(QString const &info, QString const &versio
QString IsmasClient::errorUpdateTrigger(QString const &info, QString const &version) {
return updateNewsToIsmas("U0003",
m_progressInPercent,
RESULT_CODE::ISMAS_TRIGGER_ERROR,
RESULT_CODE::INSTALL_ERROR,
"CHECK UPDATE TRIGGER",
info.toStdString().c_str(),
version.toStdString().c_str());

View File

@ -145,47 +145,13 @@ public:
DIRECT_PORT = 7778
};
enum RESULT_CODE {
SUCCESS=0,
// if between 00:00 - 04:00 Wait-button state not WAIT, then we assume
// that's an automatic nightly (not-necessary) update
NO_UPDATE_NECESSARY=1,
// if APISM reports the ISMAS is not available (15x, 6s delay each)
ISMAS_NO_CONNECTION_ERROR=2,
// if not within 00:00-04:00 and WAIT-button was not in state WAIT
ISMAS_TRIGGER_ERROR=3,
// cloning git repo. not possible
GIT_CLONE_ERROR=4,
// pulling from remote git server not possible
GIT_PULL_ERROR=5,
// fetching from remote git server not possible
GIT_FETCH_ERROR=6,
// merging fetched data not possible
GIT_MERGE_ERROR=7,
// check sanity of local customer-repository failed
GIT_CHECK_REPOSITORY_ERROR=8,
// switch/checkout of branch (i.e. zone) on error
GIT_SWITCH_BRANCH_ERROR=9,
// fetch/pull of new branch failed. the new branch was not available
// when installing via SD-card followed by intial clone during the
// update process.
GIT_FETCH_NEW_BRANCH_ERROR=10,
// error computing git-blob hash-value
GIT_HASH_ERROR=11,
// update for general json files failed.
JSON_FILES_UPDATE_ERROR=12,
// error downloading config-json-files to device controller
JSON_FILES_DOWNLOAD_ERROR=13,
// error downloading device-controller
DC_DOWNLOAD_ERROR=14,
// error rsyncing json/ini-files to local filesystem
RSYN_ERROR=15,
// HASH_VALUE_ERROR=14,
// HW_COMPATIBILITY_ERROR=15,
OPKG_COMMANDS_ERROR=16,
// CLEANUP_ERROR=18,
UPDATE_IN_ERROR_STATE=99
};
BACKUP_FAILED=2,
WRONG_PACKAGE=3,
INSTALL_ERROR=4};
enum REASON {
TIME_TRIGGERED = 0,

View File

@ -26,21 +26,11 @@
#define SERIAL_PORT "ttyUSB0"
#endif
/*
Note:
! After U0002 immer ein CMD_SENDVERSION
! Only U0002 and U0003 finish the Update process.
! U0001: Update finished but not activated
! U0002: Update finished and activated
! U0003: Update finished but FAILed.
*/
#define _ISMAS_DONE "U0001" // 100%, Check: Resultcode: 0
#define _ISMAS_SET_WAIT_OK "U0002" // empty WAIT-button (""), ResultCode: 0
#define _ISMAS_DONE "U0001" // 100%
#define _ISMAS_SET_WAIT_OK "U0002" // empty WAIT-button ("")
#define _ISMAS_FAILURE "U0003" // FAIL
#define _ISMAS_CONTINUE "U0010" // %-values: Update laeuft, Resultcodes entsprechend laufender Schritt
#define _ISMAS_CONTINUE "U0010" // %-values
#define _ISMAS_RESET_WAIT "ISMAS" // reset WAIT-button to "WAIT"
#define _ISMAS_TEST_TRIGGER "U0099" // check the WAIT-button
#define _STARTED (1)
#define _CHECK_ISMAS_TRIGGER (2)
@ -749,7 +739,7 @@ private:
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_CONTINUE, // U0010
"U0010",
_CHECKOUT_REPOSITORY_SUCCESS,
IsmasClient::RESULT_CODE::SUCCESS,
smap[UPDATE_STEP::CHECK_REPOSITORY],
@ -765,9 +755,9 @@ private:
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_CONTINUE, // U0010
"U0010",
_CHECKOUT_REPOSITORY_FAILURE,
IsmasClient::RESULT_CODE::GIT_SWITCH_BRANCH_ERROR,
IsmasClient::RESULT_CODE::INSTALL_ERROR,
smap[UPDATE_STEP::CHECKOUT_REPOSITORY],
QString("REPOSITORY %1 and BRANCH %2 ***NOT OK***")
.arg(instance->m_customerRepository)
@ -784,7 +774,7 @@ private:
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_CONTINUE, // U0010
"U0010",
_CHECK_SANITY_SUCCESS,
IsmasClient::RESULT_CODE::SUCCESS,
smap[UPDATE_STEP::CHECK_SANITY],
@ -800,9 +790,9 @@ private:
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_CONTINUE, // U0010
"U0010",
_CHECK_SANITY_FAILURE,
IsmasClient::RESULT_CODE::GIT_CHECK_REPOSITORY_ERROR,
IsmasClient::RESULT_CODE::INSTALL_ERROR,
smap[UPDATE_STEP::CHECK_SANITY],
QString("SANITY OF %1 and BRANCH %2 ***NOT*** OK")
.arg(instance->m_customerRepository)
@ -811,21 +801,21 @@ private:
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
case UPDATE_STEP::REPOSITORY_RECOVERED_SUCCESS: {
case UPDATE_STEP::REPOSITORY_RECOVERED_SUCCESS:
ismasClient.setProgressInPercent(_REPOSITORY_RECOVERED_SUCCESS);
} break;
case UPDATE_STEP::REPOSITORY_RECOVERED_FAILURE: {
break;
case UPDATE_STEP::REPOSITORY_RECOVERED_FAILURE:
ismasClient.setProgressInPercent(_REPOSITORY_RECOVERED_FAILURE);
} break;
case UPDATE_STEP::CLONE_REPOSITORY: {
break;
case UPDATE_STEP::CLONE_REPOSITORY:
ismasClient.setProgressInPercent(_CLONE_REPOSITORY);
} break;
break;
case UPDATE_STEP::CLONE_REPOSITORY_SUCCESS: {
ismasClient.setProgressInPercent(_CLONE_REPOSITORY_SUCCESS);
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_CONTINUE, // U0010
"U0010",
_CLONE_REPOSITORY_SUCCESS,
IsmasClient::RESULT_CODE::SUCCESS,
smap[UPDATE_STEP::CLONE_REPOSITORY],
@ -841,9 +831,9 @@ private:
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_CONTINUE, // U0010 -> even on error: U0002/3 are sent only once
"U0003",
_CLONE_REPOSITORY_FAILURE,
IsmasClient::RESULT_CODE::GIT_CLONE_ERROR,
IsmasClient::RESULT_CODE::INSTALL_ERROR,
smap[UPDATE_STEP::CHECKOUT_REPOSITORY],
QString("CLONING REPOSITORY %1 OR CHECKING OUT BRANCH %2 FAILED")
.arg(instance->m_customerRepository)
@ -855,7 +845,7 @@ private:
case UPDATE_STEP::CHECKOUT_REPOSITORY:
ismasClient.setProgressInPercent(_CHECKOUT_REPOSITORY);
break;
case UPDATE_STEP::CHECKOUT_REPOSITORY_SUCCESS: {
case UPDATE_STEP::CHECKOUT_REPOSITORY_SUCCESS:
ismasClient.setProgressInPercent(_CHECKOUT_REPOSITORY_SUCCESS);
ismasClient.sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
QString("#M=APISM#C=CMD_EVENT#J=") +
@ -864,95 +854,49 @@ private:
.arg(instance->m_customerRepository)
.arg(instance->m_gc.branchName()),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A"));
} break;
case UPDATE_STEP::CHECKOUT_REPOSITORY_FAILURE: {
break;
case UPDATE_STEP::CHECKOUT_REPOSITORY_FAILURE:
ismasClient.setProgressInPercent(_CHECKOUT_REPOSITORY_FAILURE);
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_CONTINUE, // U0010 -> even on error: U0002/3 are sent only once
_CHECKOUT_REPOSITORY_FAILURE,
IsmasClient::RESULT_CODE::GIT_SWITCH_BRANCH_ERROR,
smap[UPDATE_STEP::CHECKOUT_REPOSITORY],
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");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
case UPDATE_STEP::CHECK_ISMAS_TRIGGER: {
break;
case UPDATE_STEP::CHECK_ISMAS_TRIGGER:
ismasClient.setProgressInPercent(_CHECK_ISMAS_TRIGGER);
} break;
case UPDATE_STEP::CHECK_ISMAS_TRIGGER_SUCCESS: {
break;
case UPDATE_STEP::CHECK_ISMAS_TRIGGER_SUCCESS:
ismasClient.setProgressInPercent(_CHECK_ISMAS_TRIGGER_SUCCESS);
ismasClient.sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
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"));
} break;
case UPDATE_STEP::CHECK_ISMAS_TRIGGER_WRONG_VALUE: {
break;
case UPDATE_STEP::CHECK_ISMAS_TRIGGER_WRONG_VALUE:
ismasClient.setProgressInPercent(_CHECK_ISMAS_TRIGGER_WRONG_VALUE);
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_TEST_TRIGGER, // U0099
_CHECK_ISMAS_TRIGGER_WRONG_VALUE,
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");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
break;
case UPDATE_STEP::CHECK_ISMAS_TRIGGER_FAILURE: {
ismasClient.setProgressInPercent(_CHECK_ISMAS_TRIGGER_FAILURE);
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_TEST_TRIGGER, // U0099
"U0003",
_CHECK_ISMAS_TRIGGER_FAILURE,
IsmasClient::RESULT_CODE::ISMAS_TRIGGER_ERROR,
IsmasClient::RESULT_CODE::INSTALL_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");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
case UPDATE_STEP::INITIAL_CLONE_WITHOUT_ACTIVE_ISMAS_TRIGGER: {
case UPDATE_STEP::INITIAL_CLONE_WITHOUT_ACTIVE_ISMAS_TRIGGER:
ismasClient.setProgressInPercent(_INITIAL_CLONE_WITHOUT_ACTIVE_ISMAS_TRIGGER);
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_CONTINUE, // U0010
_INITIAL_CLONE_WITHOUT_ACTIVE_ISMAS_TRIGGER,
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");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
case UPDATE_STEP::INITIAL_CLONE_WITH_ACTIVE_ISMAS_TRIGGER: {
break;
case UPDATE_STEP::INITIAL_CLONE_WITH_ACTIVE_ISMAS_TRIGGER:
ismasClient.setProgressInPercent(_INITIAL_CLONE_WITH_ACTIVE_ISMAS_TRIGGER);
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_CONTINUE, // U0010
_INITIAL_CLONE_WITH_ACTIVE_ISMAS_TRIGGER,
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");
ismasClient.sendRequestReceiveResponse(
IsmasClient::APISM::DB_PORT, ismasUpdateNews);
} break;
break;
case UPDATE_STEP::PULL_NEW_BRANCH: {
ismasClient.setProgressInPercent(_PULL_NEW_BRANCH);
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_CONTINUE, // U0010
"U0010",
_PULL_NEW_BRANCH,
IsmasClient::RESULT_CODE::SUCCESS,
smap[UPDATE_STEP::CHECKOUT_BRANCH],
@ -967,9 +911,9 @@ private:
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_CONTINUE, // U0010 -> even on error: U0002/3 are sent only once
"U0003",
_PULL_NEW_BRANCH_FAILURE,
IsmasClient::RESULT_CODE::GIT_PULL_ERROR,
IsmasClient::RESULT_CODE::INSTALL_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");
@ -982,7 +926,7 @@ private:
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_CONTINUE, // U0010
"U0010",
_PULL_NEW_BRANCH_SUCCESS,
IsmasClient::RESULT_CODE::SUCCESS,
smap[UPDATE_STEP::CHECKOUT_BRANCH],
@ -1025,9 +969,9 @@ private:
QString const &ismasUpdateNews =
QString("#M=APISM#C=CMD_EVENT#J=") +
ismasClient.updateNewsToIsmas(
_ISMAS_FAILURE, // U0003
"U0003",
_CHECKOUT_BRANCH_FAILURE,
IsmasClient::RESULT_CODE::GIT_SWITCH_BRANCH_ERROR,
IsmasClient::RESULT_CODE::INSTALL_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");
@ -1189,7 +1133,7 @@ private:
ismasClient.updateNewsToIsmas(
_ISMAS_FAILURE,
ismasClient.getProgressInPercent(),
IsmasClient::RESULT_CODE::OPKG_COMMANDS_ERROR,
IsmasClient::RESULT_CODE::INSTALL_ERROR,
smap[step],
instance->m_ismasMsg.join(' ').toStdString().c_str(),
instance->m_versionInfo.size() >= 1 ? instance->m_versionInfo.at(0).toUtf8().constData() : "N/A");
@ -1337,7 +1281,7 @@ private:
ismasClient.updateNewsToIsmas(
_ISMAS_FAILURE,
ismasClient.getProgressInPercent(),
IsmasClient::RESULT_CODE::UPDATE_IN_ERROR_STATE,
IsmasClient::RESULT_CODE::INSTALL_ERROR,
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");