Index: sources/StateController.h =================================================================== diff -u -r47baa703592f0e21098cb21c0ed267de4e958b2f -rbec9c9856c333399aa5abaf18d2799f6fbc95da3 --- sources/StateController.h (.../StateController.h) (revision 47baa703592f0e21098cb21c0ed267de4e958b2f) +++ sources/StateController.h (.../StateController.h) (revision bec9c9856c333399aa5abaf18d2799f6fbc95da3) @@ -136,21 +136,15 @@ enum User_Command_ID { CMD_NONE = -1, CMD_STAND_BY = 0, - CMD_TX_PARAMS = 1, - CMD_WATER_SAMPLE = 2, - CMD_CONSUMABLES = 3, - CMD_DISPOSABLES = 4, - CMD_SYSTEM_PRIME = 5, - CMD_BP_HR = 6, - CMD_ULTRAFILTRATION = 7, - CMD_CONNECTION = 8, - CMD_START_TX = 9, - CMD_END_TX = 10, - CMD_DISINFECTION = 11, - CMD_HIGH_PRIO_ALARM = 12, - CMD_MEDIUM_PRIO_ALARM = 13, - CMD_LOW_PRIO_ALARM = 14, - NUM_OF_USER_CMDS = 15, + CMD_PRE_TX = 1, + CMD_BLOOD_PRIME = 2, + + CMD_END_TX = 11, + CMD_DISINFECTION = 12, + CMD_HIGH_PRIO_ALARM = 13, + CMD_MEDIUM_PRIO_ALARM = 14, + CMD_LOW_PRIO_ALARM = 15, + NUM_OF_USER_CMDS = 16, }; enum State_Status { @@ -159,12 +153,46 @@ STATE_ON_EXIT, }; + struct Treatment_Status_Vars { + bool hasTxParamsBeenInitialized; + quint32 broadcastIntervalCount; + }; - QHash_transitionEventsFromIdle; + struct Treatment_Params { + bool finalConfirmation; + quint32 treatmentModality; + quint32 hdfDilution; + quint32 bloodFlowRateMLPM; + quint32 dialysateFlowRateMLPM; + quint32 treatmentDurationMin; + quint32 heparinDeliveryDurationMin; + quint32 heparinType; + quint32 dryBicarbCartSize; + quint32 sodiumMEQL; + quint32 bicarbobateMEQL; + quint32 dialyzerType; + quint32 fluidBlousVolumeML; + quint32 bloodPressureIntervalMin; + quint32 rinsebackVolumeML; + quint32 hepatitisBStatus; + quint32 acidConcentrate; + float substitutionFluidVolumeL; + float heparinBolusVolumeML; + float heparinDeliveryRateMLHR; + float dialysateTemperatureC; + float acidKConcentrateConversionFactor; + float ufPreWeightKG; + float ufEstimatedTargetWeightKG; + float ufVolumeL; + }; + + QHash_transitionEventsFromStandby; QList _broadcastMessages; QList _sendMessages; QHash _treatmentRcvdMessages; QRandomGenerator _randNumGenerator; + Treatment_Params _treatmentParams; + Treatment_Status_Vars _treatmentStatus; bool _isBroadcastListReady; // TODO use a mutex bool _isSendListReady; // Todo use a mutex bool _hasUserConfirmedToProceed; @@ -174,9 +202,15 @@ void sendMessages(bool isBroadcast); // State handlers - void onIdleStateChange(bool active); + void onStandbyStateChange(bool active); + void onPretreatmentStateChange(bool active); + void onBloodPrimeStateChange(bool active); + // TODO move these to Message Defines // Helper functions void prepareTDOpModeTransitionData(Can::TD_OP_MODE mode, quint32 subMode); + void setTreatmentParameters(bool isFromUI, const QVariant &payload); + void prepareStartTxResponse(); + void prepareBloodPrimeBroadcastData(float accumulatedVolML); };