Index: firmware/App/Controllers/HemoDiaFiltration.h =================================================================== diff -u -rfc697848283d289571f9d365b28acf44beb0883e -rfff7eb3560421130e0cd4788f84bce0a8ee7ff44 --- firmware/App/Controllers/HemoDiaFiltration.h (.../HemoDiaFiltration.h) (revision fc697848283d289571f9d365b28acf44beb0883e) +++ firmware/App/Controllers/HemoDiaFiltration.h (.../HemoDiaFiltration.h) (revision fff7eb3560421130e0cd4788f84bce0a8ee7ff44) @@ -31,31 +31,53 @@ // ********** public definitions ********** +#define HDF_MAX_FILTRATION_FRACTION 0.35F ///< HDF maximum filtration fraction (Qs+Quf)/Qb +#define HDF_MAX_TMP 400.0F ///< HDF maximum TMP - trans-membrane pressure = (Pb - Pd) +#define HDF_MAX_RATE 200.0F ///< Maximum substitution flow rate + +/// hemodiafiltration states +typedef enum +{ + TD_HDF_PAUSED, ///< HDF Paused + TD_HDF_RUNNING, ///< HDF Running + NUM_OF_TD_HDF_STATES, +} HDF_EXEC_STATE_T; + /// hemodiafiltration data structure typedef struct { - U32 hdfExecState; ///< Hemodiafiltration execution state - F32 hdfRequestedRate; ///< Hemodiafiltration requested manual rate - F32 hdfTargetTMP; ///< Hemodiafiltration requested target TMP - F32 hdfCurrentRate; ///< Hemodiafiltration current set rate - F32 hdfCurrentTMP; ///< Hemodiafiltration current TMP (trans-membrane pressure) - F32 hdfRequestedVolume; ///< Hemodiafiltration requested maximum volume - F32 hdfTotalVolume; ///< Hemodiafiltration total volume delivered - U32 isHDFRequested; ///< Hemodiafiltration run or pause request + U32 hdfExecState; ///< Hemodiafiltration execution state + F32 hdfRequestedRate; ///< Hemodiafiltration requested manual rate + F32 hdfTargetTMP; ///< Hemodiafiltration requested target TMP + F32 hdfCurrentRate; ///< Hemodiafiltration current set rate + F32 hdfCurrentTMP; ///< Hemodiafiltration current TMP (trans-membrane pressure) + F32 hdfRequestedVolume; ///< Hemodiafiltration requested maximum volume + F32 hdfTotalVolume; ///< Hemodiafiltration total volume delivered + U32 isHDFRequested; ///< Hemodiafiltration run or pause request } HDF_DATA_T; +typedef struct +{ + U32 hdfStart; ///< HDF start stop boolean. + F32 hdfTMPTgt; ///< HDF target pressure to control. + F32 hdfVolume; ///< HDF Target volume. + F32 hdfRate; ///< HDF open loop rate. +} HDF_START_PAYLOAD_T; + // ********** public function prototypes ********** -void initHemodiafiltration( void ); // Initialize hemodiafiltration unit -void transitionToHemodiafiltration( void ); // Prepares for transition to hemodiafiltration execution -U32 execHDFControl( void ); // Execute the hemodiafiltration state machine -HDF_EXEC_STATE_T getCurrentHDFExecState( void ); // Get the current state of the hemodifiltration execution +void initHemodiafiltration( void ); // Initialize hemodiafiltration unit +void transitionToHemodiafiltration( void ); // Prepares for transition to hemodiafiltration execution +U32 execHDFControl( void ); // Execute the hemodiafiltration state machine +HDF_EXEC_STATE_T getCurrentHDFExecState( void ); // Get the current state of the hemodifiltration execution +F32 getCurrentHDFRate( void ); -BOOL testTDHDFDataPublishIntervalOverride( MESSAGE_T *message ); // To override the HDF data publish interval -void setHemodiafiltrationParameters( F32 setHDFTMPTarget, F32 setHDFManualRate, F32 setHDFMaximumVolume); +void setHemodiafiltrationParameters( F32 setHDFTMPTarget, F32 setHDFMaximumVolume); +void setHemoDiafiltrationManualRate( F32 setHDFManualRate ); void StartHemodiafiltration( void ); void StopHemodiafiltration( void ); +BOOL testTDHDFDataPublishIntervalOverride( MESSAGE_T *message ); // To override the HDF data publish interval /**@}*/ #endif