Index: drydemo.pro.user =================================================================== diff -u -rac917f2cc891cabeae3edbd353b72d00c3637fcd -r4af87533b19d61512e7a368554042501eeea75f2 --- drydemo.pro.user (.../drydemo.pro.user) (revision ac917f2cc891cabeae3edbd353b72d00c3637fcd) +++ drydemo.pro.user (.../drydemo.pro.user) (revision 4af87533b19d61512e7a368554042501eeea75f2) @@ -1,6 +1,6 @@ - + EnvironmentId @@ -468,43 +468,43 @@ /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali + /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Release/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali - /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali - /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Release/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali + /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Release/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Debug/denali /home/denali/Projects/tmp/build/build-denali-Qt_5_15_10_iMX8-Release/denali + 192.168.137.202 + 192.168.137.36 + 192.168.137.125 + 192.168.137.247 192.168.10.186 + 192.168.137.3 + 192.168.137.170 + 192.168.137.26 + 192.168.40.23 + 192.168.137.24 + 192.168.10.186 192.168.10.167 192.168.137.170 - 192.168.137.25 192.168.137.30 + 192.168.137.25 192.168.10.228 192.168.10.228 192.168.10.138 192.168.137.210 192.168.10.159 - 192.168.137.125 - 192.168.137.36 - 192.168.137.202 - 192.168.137.247 - 192.168.10.186 - 192.168.137.3 - 192.168.40.23 - 192.168.137.24 - 192.168.137.26 - 192.168.137.170 /home/root @@ -529,70 +529,70 @@ /home/root - /opt/b2qt/3.1.18/sysroots/x86_64-pokysdk-linux /opt/b2qt/3.1.18/sysroots /opt/b2qt/3.1.18/sysroots /opt/b2qt/3.1.18/sysroots /opt/b2qt/3.1.18/sysroots - /opt/b2qt/3.1.18/sysroots/x86_64-pokysdk-linux - /opt/b2qt/3.1.18/sysroots/x86_64-pokysdk-linux /opt/b2qt/3.1.18/sysroots /opt/b2qt/3.1.18/sysroots /opt/b2qt/3.1.18/sysroots /opt/b2qt/3.1.18/sysroots /opt/b2qt/3.1.18/sysroots /opt/b2qt/3.1.18/sysroots + /opt/b2qt/3.1.18/sysroots/x86_64-pokysdk-linux /opt/b2qt/3.1.18/sysroots /opt/b2qt/3.1.18/sysroots /opt/b2qt/3.1.18/sysroots /opt/b2qt/3.1.18/sysroots + /opt/b2qt/3.1.18/sysroots/x86_64-pokysdk-linux + /opt/b2qt/3.1.18/sysroots/x86_64-pokysdk-linux /opt/b2qt/3.1.18/sysroots /opt/b2qt/3.1.18/sysroots /opt/b2qt/3.1.18/sysroots + 2023-02-02T01:46:50.167 + 2023-02-01T03:23:15.710 + 2023-02-02T02:07:25.922 + 2023-02-02T02:26:33.738 + 2023-01-18T20:13:36.296 + 2023-02-02T02:40:56.627 + 2023-01-27T09:45:11.898 + 2023-02-01T05:00:56.449 + 2023-01-24T17:29:54.849 + 2023-02-02T02:05:29.947 2023-01-18T17:47:08.797 2023-02-02T19:40:15.813 2023-01-27T10:15:15.423 - 2023-02-02T02:13:54.596 2023-02-02T02:30:48.337 - 2023-01-17T18:06:25.579 + 2023-02-02T02:13:54.596 2023-01-17T18:18:03.749 + 2023-01-17T18:06:25.579 2023-02-02T09:06:00.862 2023-02-02T01:52:20.307 2023-01-24T18:19:13.179 - 2023-02-02T02:07:25.922 - 2023-02-01T03:23:15.710 - 2023-02-02T01:46:50.167 - 2023-02-02T02:26:33.738 - 2023-01-18T20:13:36.296 - 2023-02-02T02:40:56.627 - 2023-01-24T17:29:54.849 - 2023-02-02T02:05:29.947 - 2023-02-01T05:00:56.449 - 2023-01-27T09:45:11.898 + 2023-02-02T01:47:02.000 + 2023-02-01T03:23:28.000 + 2023-02-02T02:07:21.000 + 2023-02-02T02:26:46.000 + 2023-01-18T20:13:33.000 + 2023-02-02T02:41:10.000 + 2023-01-27T09:44:58.000 + 2023-02-01T05:00:51.000 + 2023-01-24T17:30:03.000 + 2023-02-02T02:05:42.000 2023-01-18T17:47:04.000 2023-02-02T19:39:36.000 2023-01-27T10:15:08.000 - 2023-02-02T02:14:08.000 2023-02-02T02:31:01.000 - 2023-01-17T18:05:42.000 + 2023-02-02T02:14:08.000 2023-01-17T18:17:25.000 + 2023-01-17T18:05:42.000 2023-02-02T09:05:22.000 2023-02-02T01:52:16.000 2023-01-24T18:18:58.000 - 2023-02-02T02:07:21.000 - 2023-02-01T03:23:28.000 - 2023-02-02T01:47:02.000 - 2023-02-02T02:26:46.000 - 2023-01-18T20:13:33.000 - 2023-02-02T02:41:10.000 - 2023-01-24T17:30:03.000 - 2023-02-02T02:05:42.000 - 2023-02-01T05:00:51.000 - 2023-01-27T09:44:58.000 2 Index: sources/StateController.cpp =================================================================== diff -u -rde65521102d2315e1812b8b14b2b21d6c4e5e949 -r4af87533b19d61512e7a368554042501eeea75f2 --- sources/StateController.cpp (.../StateController.cpp) (revision de65521102d2315e1812b8b14b2b21d6c4e5e949) +++ sources/StateController.cpp (.../StateController.cpp) (revision 4af87533b19d61512e7a368554042501eeea75f2) @@ -29,8 +29,6 @@ _dryDemo.connectToState("End_Tx" , this, &StateController::onEndTreatmentStateChange ); _dryDemo.connectToState("Disinfect" , this, &StateController::onDisinfectStateChange ); - - resetVariables(); } void StateController::quit() @@ -146,17 +144,6 @@ } // ---------------------- Private methods ------------------ // -void StateController::resetVariables() -{ - _isBroadcastListReady = false; - _isSendListReady = false; - - _treatmentVars.broadcastIntervalCount = 0; - - _broadcastMessages.clear(); - _sendMessages.clear(); -} - void StateController::sendMessages(bool isBroadcast) { QList msgList = _broadcastMessages; @@ -311,8 +298,6 @@ _treatmentVars.remainingTreatmentTimeS = 0; } - //qDebug() << " Treatment time" << QTime::currentTime() << _treatmentVars._broadcastIntervalCount << _treatmentVars._treatmentElapsedTimeS << _treatmentVars._remainingTreatmentTimeS; - QVariantList msg; msg.append(static_cast(ID_TX_TIME_BC)); msg.append(Can_Id::eChlid_HD_Sync); @@ -526,17 +511,22 @@ cmd = param.value; } + prepareMsgBA(cmd, CONFIRM_CMD_ACCEPT_CLOSE); + + return cmd; +} + +void StateController::prepareMsgBA(quint32 cmd, quint32 acceptType) +{ QVariantList msg; msg.append(static_cast(ID_HD_UI_CONFIRM_RQST)); msg.append(Can_Id::eChlid_HD_UI); - msg.append(UI_MSG_BB_PAYLOAD_ID); - msg.append(ACCEPT_VALUE); + msg.append(cmd); + msg.append(acceptType); msg.append(0); _isSendListReady = false; _sendMessages.append(msg); _isSendListReady = true; - - return cmd; } bool StateController::hasPreTxTimerElapsed(Can::Message_ID_Enum msgID, Can::Can_Id canChan, @@ -703,9 +693,21 @@ static State_Status status = STATE_ON_ENTRY; auto inEntry = [=](){ - resetVariables(); prepareHDModeTransitionBroadcastData(MODE_STAN, 0); + // Send the pre treatment states to reset so it starts from the right state + QList preTxStates({0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}); + prepareStatesBroadcastData(ID_PRE_TX_STATES_BC, preTxStates); + + // Send the treatment params in Idle too. This is to make sure if the user + // jumped to the Ultrafiltration page the min and max UF volumes are set prior to it. + QVariant emptyVar; + setTreatmentParams(false, emptyVar); + prepareTreatmentParamsRangesBroadcastData(); + + // Send message 0xBA in case the dry demo menu stayed open to be closed upon transitioning to standby + prepareMsgBA(MODE_STAN, CONFIRM_CMD_ACCEPT_CLOSE); + _transitionEventsFromIdle.clear(); _transitionEventsFromIdle[CMD_TX_PARAMS ] = "Transition_2_Tx_Parms"; _transitionEventsFromIdle[CMD_WATER_SAMPLE ] = "Transition_2_Water_Sample"; @@ -1218,7 +1220,6 @@ auto inEntry = [=](){ qDebug() << "Start Treatment active"; - resetVariables(); prepareHDModeTransitionBroadcastData(MODE_TREA, 0); QList txStates({BLOOD_RPIME_SUB_STATE, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}); @@ -1251,11 +1252,11 @@ static float accumBloodVolML = 0.0; auto inEntry = [=](){ - resetVariables(); qDebug() << "Blood prime entry"; status = STATE_ON_ACTION; accumBloodVolML = 0.0; + _treatmentVars.broadcastIntervalCount = 0; prepareBloodPrimeBroadcastData(accumBloodVolML); }; @@ -1300,7 +1301,6 @@ static State_Status status = STATE_ON_ENTRY; auto inEntry = [=](){ - resetVariables(); _treatmentVars.prescribedTreatmentTimeS = _treatmentParams.txDurationMins * SECONDS_PER_MINUTE; _treatmentVars.treatmentElapsedTimeS = DEF_TX_ELAPSED_TIME_S; _treatmentVars.remainingTreatmentTimeS = _treatmentVars.prescribedTreatmentTimeS - _treatmentVars.treatmentElapsedTimeS; Index: sources/StateController.h =================================================================== diff -u -rde65521102d2315e1812b8b14b2b21d6c4e5e949 -r4af87533b19d61512e7a368554042501eeea75f2 --- sources/StateController.h (.../StateController.h) (revision de65521102d2315e1812b8b14b2b21d6c4e5e949) +++ sources/StateController.h (.../StateController.h) (revision 4af87533b19d61512e7a368554042501eeea75f2) @@ -38,6 +38,7 @@ #define ACCEPT_VALUE 1 #define REJECT_VALUE 0 #define START_TX_FROM_MSG_38 1 + #define CONFIRM_CMD_ACCEPT_CLOSE 3 // Timer event defines #define DEFAULT_TIMEOUT_S 10 @@ -166,7 +167,6 @@ bool _hasUserConfirmedToProceed; drydemoXMLstates _dryDemo; - void resetVariables(); void sendMessages(bool isBroadcast); void setTreatmentParams(bool isFromUI, const QVariant &payload); @@ -183,6 +183,7 @@ void handleTreatmentTimeChangeRequest(const QVariant &payload); qint32 handleMsgBBPayload(const QVariant &payload); + void prepareMsgBA(quint32 cmd, quint32 acceptType); bool hasPreTxTimerElapsed(Can::Message_ID_Enum msgID, Can::Can_Id canChan, quint32 &timerCountDownS, quint32 defaultTimeoutS); void handleUltrafiltrationValidation(const QVariant &payload);