Index: sources/StateController.h =================================================================== diff -u -r646712b99c608c9bc67b555497d5a666a0db1fea -r75ca4bd322b1b11b7feb113086645979c95533a3 --- sources/StateController.h (.../StateController.h) (revision 646712b99c608c9bc67b555497d5a666a0db1fea) +++ sources/StateController.h (.../StateController.h) (revision 75ca4bd322b1b11b7feb113086645979c95533a3) @@ -31,8 +31,6 @@ // General defines #define UI_MSG_BB_STATUS_INDEX 4 #define UI_MSG_BB_PAYLOAD_ID 0x63 - #define COUNTER_VAR_DEFAULT_VALUE -1 // TODO remove - #define PRESC_TIME_DEFAULT_VALUE -1 // TODO remove #define SECONDS_PER_MINUTE 60 #define MINUTES_PER_HOUR 60 #define MILLISECONDS_PER_SECOND 1000 @@ -41,16 +39,8 @@ #define REJECT_VALUE 0 #define START_TX_FROM_MSG_38 1 - // Pre treatment defines - #define DEFAULT_TIMEOUT_S 10 - #define TRANSITION_EVENT_INDEX 0 // TODO remove - #define RESP_MSG_START_INDEX 3 - #define IS_TIMER_INDEX 0 - #define IS_WAIT_NEEDED_INDEX 1 - #define NEXT_AUTO_TRANSITION_INDEX 2 - #define COUNT_DOWN_TIMER_INDEX 6 // TODo remove - // Timer event defines + #define DEFAULT_TIMEOUT_S 10 #define QOBJECT_TIMER_TIMEOUT_MS 100 #define PROGRESS_TIME_BC_INTERVAL_MS 1000 #define NUM_OF_COUNTS_TIMER_BC_EMIT (PROGRESS_TIME_BC_INTERVAL_MS / QOBJECT_TIMER_TIMEOUT_MS) @@ -73,17 +63,23 @@ #define DEF_TX_PARAM_BLOOD_FLOW_RATE_MLPM 400 #define DEF_TX_PARAM_DIAL_FLOW_RATE_MLPM 600 #define DEF_TX_PARAM_SALINE_BOLUS_VOL_ML 200 - #define DEF_TX_PARAM_RINSEBACK_FLOW_RATE_MLPM 200 + #define DEF_TX_PARAM_RINSEBACK_FLOW_RATE_MLPM 250 #define DEF_TX_PARAM_ART_PRES_LIMIT_WIN_MMHG 120 #define DEF_TX_PARAM_VEN_PRES_LIMIT_WIN_MMHG 100 #define DEF_TX_PARAM_VEN_PRES_LIMIT_ASYM_WIN_MMHG 20 #define DEF_TX_PARAM_DIA_TEMPERATURE_C 37.0 // Treatment defines #define BLOOD_PRIME_VOLUME_ML (106.6 + 40) - #define BLOOD_FLOW_INTEGRATOR (1.0 / (SECONDS_PER_MINUTE * (MILLISECONDS_PER_SECOND /QOBJECT_TIMER_TIMEOUT_MS))) + #define FLOW_INTEGRATOR (1.0 / (SECONDS_PER_MINUTE * (MILLISECONDS_PER_SECOND /QOBJECT_TIMER_TIMEOUT_MS))) #define MAX_DIALYSATE_VOLUME_ML 150000 + // Treatment substates + #define BLOOD_RPIME_SUB_STATE 1 + #define DIALYSIS_SUB_STATE 2 + #define RINSEBACK_SUBSTATE 4 + #define TX_END_SUB_STATE 6 + enum User_Command_ID { CMD_NONE = -1, CMD_STAND_BY = 0, @@ -107,16 +103,13 @@ STATE_ON_EXIT, }; + enum Rinseback_Rqst { + RINSEBACK_START = 0, + RINSEBACK_SALINE_BOLUS = 6, + RINSEBACK_END_TX = 8, + RINSEBACK_BACK = 9, - QHash > _dryDemoCmds; // TODO remove - quint16 _index; // TODo remove - quint16 _broadcastMsgCount; // TODO remove - quint16 _timerBroadcastCount; // TOdo remove - bool _hasUserConfirmedToProceed; - int _currentCounterValue; // TODO remove???? - int _prescribedTreatmentTimeS; // TODO remove - User_Command_ID _dryDemoCurrentCmd; // ToDo remove - drydemoXMLstates _dryDemo; + }; struct Pre_Treatment_Params { bool hasTxParamsBeenInitialized; @@ -160,26 +153,30 @@ bool _isSendListReady; // Todo use a mutex Treatment_Variables _treatmentVars; Pre_Treatment_Params _treatmentParams; + bool _hasUserConfirmedToProceed; + drydemoXMLstates _dryDemo; void resetVariables(); void sendMessages(bool isBroadcast); void setTreatmentParams(bool isFromUI, const QVariant &payload); void prepareOcclusionBroadcastData(); void prepareTreatmentTimeBroadcastData(); - void prepareBloodFlowBroadcastData(); + void prepareBloodFlowBroadcastData(quint32 flowMLPM); void prepareDialysateFlowBroadcastData(); void prepareDialysateOutFlowBroadcastData(); void prepareTreatmentParamsRangesBroadcastData(); void prepareHDModeTransitionBroadcastData(Can::HD_OP_MODE mode, quint32 subMode); void prepareStatesBroadcastData(Can::Message_ID_Enum msgID, const QList &preTxStates); void prepareBloodPrimeBroadcastData(float accumulatedVolML); + void prepareRinsebackBroadcastData(const QList &volsML, const QList &payload); void handleTreatmentTimeChangeRequest(const QVariant &payload); qint32 handleMsgBBPayload(const QVariant &payload); bool hasPreTxTimerElapsed(Can::Message_ID_Enum msgID, Can::Can_Id canChan, quint32 &timerCountDownS, quint32 defaultTimeoutS); void handleUltrafiltrationValidation(const QVariant &payload); + void handleRinsebackSubstate(const QVariant &payload, quint32 &rbState); // State handlers void onIdleStateChange(bool active);