Index: firmware/App/Modes/ModeTreatmentParams.h =================================================================== diff -u -r2a2d6a224532304e29f948fc43711ee6e99f915b -ra35d5e68aad457339f625848809207a9650ad019 --- firmware/App/Modes/ModeTreatmentParams.h (.../ModeTreatmentParams.h) (revision 2a2d6a224532304e29f948fc43711ee6e99f915b) +++ firmware/App/Modes/ModeTreatmentParams.h (.../ModeTreatmentParams.h) (revision a35d5e68aad457339f625848809207a9650ad019) @@ -8,7 +8,7 @@ * @file ModeTreatmentParams.h * * @author (last) Sean Nash -* @date (last) 29-May-2020 +* @date (last) 02-Sep-2020 * * @author (original) Sean Nash * @date (original) 29-May-2020 @@ -20,6 +20,7 @@ #include "HDCommon.h" #include "HDDefs.h" +#include "Utilities.h" /** * @defgroup HDTreatmentParamsMode HDTreatmentParamsMode @@ -29,28 +30,62 @@ * @{ */ -// ********** private definitions ********** +// ********** public definitions ********** +/// Record structure for a treatment parameters payload. +typedef struct +{ + U32 bloodFlowRate_mL_min; + U32 dialysateFlowRate_mL_min; + U32 treatmentDuration_min; + U32 heparinPreStop_min; + U32 salineBolusVolume_mL; + U32 acidConcentrate; + U32 bicarbConcentrate; + U32 dialyzerType; + U32 bloodPressureMeasurementInterval_min; + U32 rinsebackFlowRate_mL_min; + S32 arterialPressureLowLimit_mmHg; + S32 arterialPressureHighLimit_mmHg; + S32 venousPressureLowLimit_mmHg; + S32 venousPressureHighLimit_mmHg; + F32 heparinDispenseRate_mL_hr; + F32 heparinBolusVolume_mL; + F32 dialysateTemperature_degC; +} TREATMENT_PARAMS_DATA_PAYLOAD_T; + +/// Record structure for adjustable treatment parameters +typedef struct +{ + U32 bloodFlowRate_mL_min; + U32 dialysateFlowRate_mL_min; + U32 treatmentDuration_min; + S32 arterialPressureLowLimit_mmHg; + S32 arterialPressureHighLimit_mmHg; + S32 venousPressureLowLimit_mmHg; + S32 venousPressureHighLimit_mmHg; + F32 uFVolume_L; +} ADJ_TREATMENT_PARAMS_T; + // ********** private function prototypes ********** -void initTreatParamsMode( void ); // initialize this module -void transitionToTreatParamsMode( void ); // prepares for transition to treatment parameters mode -U32 execTreatParamsMode( void ); // execute the treatment parameters mode state machine (call from OperationModes) +void initTreatParamsMode( void ); // initialize this module +void transitionToTreatParamsMode( void ); // prepares for transition to treatment parameters mode +U32 execTreatParamsMode( void ); // execute the treatment parameters mode state machine (call from OperationModes) -void setTreatmentParameterU32( TREATMENT_PARAM_T param, U32 value ); // Set a specified integer treatment parameter value -void setTreatmentParameterF32( TREATMENT_PARAM_T param, F32 value ); // Set a specified floating point treatment parameter value -U32 getTreatmentParameterU32( TREATMENT_PARAM_T param ); // Get a specified integer treatment parameter -F32 getTreatmentParameterF32( TREATMENT_PARAM_T param ); // Get a specified floating point treatment parameter +BOOL validateAndSetTreatmentParameters( TREATMENT_PARAMS_DATA_PAYLOAD_T params ); // user provided treatment params to be set and validated +BOOL signalUserConfirmationOfTreatmentParameters( void ); // User has confirmed treatment parameters +BOOL signalUserCancelTreatment( void ); // User has cancelled treatment -U32 getOrigBloodFlowRate_mL_min( void ); // Get originally set (before treatment) blood flow rate (in mL/min). -U32 getOrigDialysateFlowRate_mL_min( void ); // Get originally set (before treatment) dialysate flow rate (in mL/min). -U32 getOrigTreatmentDuration_min( void ); // Get originally set (before treatment) treatment duration (in min). -U32 getOrigArterialPressureLowLimit_mmHg( void ); // Get originally set (before treatment) arterial pressure lower alarm limit (in mmHg). -U32 getOrigArterialPressureHighLimit_mmHg( void ); // Get originally set (before treatment) arterial pressure upper alarm limit (in mmHg). -U32 getOrigVenousPressureLowLimit_mmHg( void ); // Get originally set (before treatment) venous pressure lower alarm limit (in mmHg). -U32 getOrigVenousPressureHighLimit_mmHg( void ); // Get originally set (before treatment) venous pressure upper alarm limit (in mmHg). -F32 getOrigUFVolume_L( void ); // Get originally set (before treatment) ultrafiltration volume (in liters). +BOOL setTreatmentParameterU32( TREATMENT_PARAM_T param, U32 value ); // Set a specified unsigned integer treatment parameter value +BOOL setTreatmentParameterS32( TREATMENT_PARAM_T param, S32 value ); // Set a specified signed integer treatment parameter value +BOOL setTreatmentParameterF32( TREATMENT_PARAM_T param, F32 value ); // Set a specified floating point treatment parameter value +U32 getTreatmentParameterU32( TREATMENT_PARAM_T param ); // Get a specified unsigned integer treatment parameter +S32 getTreatmentParameterS32( TREATMENT_PARAM_T param ); // Get a specified signed integer treatment parameter +F32 getTreatmentParameterF32( TREATMENT_PARAM_T param ); // Get a specified floating point treatment parameter +BOOL testSetTreatmentParameter( TREATMENT_PARAM_T param, CRITICAL_DATAS_T value ); // Set a specific treatment parameter value + /**@}*/ #endif