Index: firmware/App/Controllers/PresOccl.h =================================================================== diff -u -r14d740bbb065f043daaa348bcda5f447e1c16a32 -rf9b9bf3f04d5ec74b9f1604cb1eb9729de001705 --- firmware/App/Controllers/PresOccl.h (.../PresOccl.h) (revision 14d740bbb065f043daaa348bcda5f447e1c16a32) +++ firmware/App/Controllers/PresOccl.h (.../PresOccl.h) (revision f9b9bf3f04d5ec74b9f1604cb1eb9729de001705) @@ -47,14 +47,30 @@ OCCLUSION_SENSOR_DIAL_IN_PUMP, ///< Dialysate inlet pump occlusion sensor OCCLUSION_SENSOR_DIAL_OUT_PUMP, ///< Dialysate outlet pump occlusion sensor NUM_OF_OCCLUSION_SENSORS ///< Number of occlusion sensors -} OCCLUSION_SENSORS_T; +} OCCLUSION_SENSORS_T; + +/// Enumeration of arterial/venous pressure limits states. +typedef enum PressureLimitsStates +{ + PRESSURE_LIMITS_STATE_OFF = 0, ///< Off - not pressure low/high alarms will be detected) + PRESSURE_LIMITS_STATE_IDLE, ///< Idle - in Treatment mode state where BP is stopped - no pressure low/high alarms + PRESSURE_LIMITS_STATE_WIDE, ///< Wide - in Treatment mode state where BP is running but wide limits apply + PRESSURE_LIMITS_STATE_STABILIZATION, ///< Stabilization - in Treatment mode state where BP is running (dialysis or stop), but need to stabilize first + PRESSURE_LIMITS_STATE_STABLE, ///< Stable - in Treatment mode state where BP is running (dialysis or stop) and limit windows apply + NUM_OF_PRESSURE_LIMITS_STATES ///< Number of pressure limits states +} PRESSURE_LIMITS_STATES_T; /// Payload record structure for the pressure & occlusions data message. typedef struct { F32 arterialPressure; ///< Latest arterial pressure (mmHg) F32 venousPressure; ///< Latest venous pressure (mmHg) U32 bldPumpOcclusion; ///< Latest BP occlusion (no units) + U32 presLimitState; ///< Current pressure limits state (enum-stabilization or stable) + S32 artMinLimit; ///< Current arterial minimum pressure limit (mmHg) + S32 artMaxLimit; ///< Current arterial maximum pressure limit (mmHg) + S32 venMinLimit; ///< Current venous minimum pressure limit (mmHg) + S32 venMaxLimit; ///< Current venous maximum pressure limit (mmHg) } PRESSURE_OCCLUSION_DATA_T; // ********** public function prototypes ********** @@ -64,7 +80,11 @@ void execPresOcclTest( void ); SELF_TEST_STATUS_T execPresOcclDryTest( void ); -SELF_TEST_STATUS_T execPresOcclSelfTest( void ); +SELF_TEST_STATUS_T execPresOcclSelfTest( void ); + +void setPressureLimitsToOuterBounds( void ); +void updatePressureLimitWindows( void ); +void signalUserRateChange( void ); F32 getMeasuredArterialPressure( void ); F32 getFilteredArterialPressure( void ); @@ -76,7 +96,6 @@ BOOL isCartridgeLoaded( void ); BOOL isCartridgeUnloaded( void ); BOOL isSalineBagEmpty( void ); -void signalStartDialysisStartOrResume( void ); void setOcclusionInstallLevel( void );