Index: sources/drydemo/StateController.h =================================================================== diff -u -rc52253ab5fc73e9b59d9cd99eada3d526d799987 -r38521851fd3271aa9a8965067d15daaba0db4b2e --- sources/drydemo/StateController.h (.../StateController.h) (revision c52253ab5fc73e9b59d9cd99eada3d526d799987) +++ sources/drydemo/StateController.h (.../StateController.h) (revision 38521851fd3271aa9a8965067d15daaba0db4b2e) @@ -35,6 +35,8 @@ User_Command_ID userCmd; QString stateTransitionEvent; bool requestTreatmentReset; + // Blood pump + bool isBloodPumpRunning; // Treatment time variable(s) quint32 treatmentElapsedTimeMS; bool isTreatmentComplete; @@ -71,6 +73,37 @@ bool hasRecircTimeoutAlarmBeenTrig; }; + struct Pressure_Vars { + Pressure_Limits_States presLimitState; + Pressure_Stabilization_Periods presStabilizeTime; + quint32 presStabilizationTimerCtr; + quint32 presStabilizeTimeoutMS; + // Arterial + float arterialRawMMHG[SHORT_MOVING_AVG_SIZE]; + quint32 arterialIndex; + float arterialRunningSumMMHG; + qint32 arterialMinLimitMMHG; + qint32 arterialMaxLimitMMHG; + float arterialFilteredMMHG; + qint32 arterialStableMMHG; + // Venous + float venousRawMMHG[SHORT_MOVING_AVG_SIZE]; + quint32 venousIndex; + float venousRunningSumMMHG; + qint32 venousMinLimitMMHG; + qint32 venousMaxLimitMMHG; + float venousFilteredMMHG; + qint32 venousStableMMHG; + // TMP + float tmpRawMMHG[SHORT_MOVING_AVG_SIZE]; + quint32 tmpIndex; + float tmpRunningSumMMHG; + float tmpMinLimitMMHG; + float tmpMaxLimitMMHG; + float tmpFilteredMMHG; + qint32 tmpStableMMHG; + }; + struct Treatment_Sub_State_Vars { Treatment_States txState; Blood_Prime_States bloodPrimeState; @@ -109,19 +142,20 @@ float ufVolumeL; }; - QHash _transitionEventsFromStandby; - QHash _alarmTriggerSpecs; - QList _broadcastMessages; - QList _sendMessages; - QHash _treatmentRcvdMessages; - QHash _uiConfirmMessages; - QRandomGenerator _randNumGenerator; - Treatment_Params _treatmentParams; - Treatment_Status_Vars _treatmentStatus; - Treatment_Sub_State_Vars _treatmentSubStates; - bool _isBroadcastListReady; // TODO use a mutex? - bool _isSendListReady; // Todo use a mutex? - drydemoXMLStates _dryDemo; + QHash _transitionEventsFromStandby; + QHash _alarmTriggerSpecs; + QList _broadcastMessages; + QList _sendMessages; + QHash _treatmentRcvdMessages; + QHash _uiConfirmMessages; + QRandomGenerator _randNumGenerator; + Pressure_Vars _pressureVars; + Treatment_Params _treatmentParams; + Treatment_Status_Vars _treatmentStatus; + Treatment_Sub_State_Vars _treatmentSubStates; + bool _isBroadcastListReady; // TODO use a mutex? + bool _isSendListReady; // Todo use a mutex? + drydemoXMLStates _dryDemo; // CAN function(s) void sendMessages(bool isBroadcast); @@ -171,7 +205,7 @@ void handleFluidBolusRequestMessage(); void handleFluidBolusFluidDelivery(const quint32 bloodFlowMLPM); void handleFluidBolusBroadcastData(const Broadcast_Type BCType); - void handleTDPressureProcessAndBroadcastData(const Broadcast_Type BCType); + void handleTDPressureBroadcastData(const Broadcast_Type BCType); void handleTreatmentTimeProcessAndBroadcastData(const Broadcast_Type BCType); void handleTreatmentPrescriptionEditRequestMessage(); void handleSetPointBloodFlowChange(quint32 &bloodFlowMLPM, bool &hasBloodFlowChanged); @@ -187,6 +221,10 @@ void handleUltrafiltrationVolumeChangeConfirm(); void handleTreatmentTimeChangeValidation(); void handleTreatmentTimeChangeConfirm(); + void handlePressureLimitState(); + void handleUpdatePressureLimitWindows(); + void handleDeterminePressureLimits(); + void handleWidenPressureLimitsMessage(); // Treatment rinseback methods void initializeRinseback();