Index: firmware/App/Controllers/AirTrap.c =================================================================== diff -u -rf1fb3b375d3cad02765664b5fa5887bd578455ec -r9a48fac21ca454756c8fce8363830dbd235f04ad --- firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision f1fb3b375d3cad02765664b5fa5887bd578455ec) +++ firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 9a48fac21ca454756c8fce8363830dbd235f04ad) @@ -37,9 +37,9 @@ #define AIR_TRAP_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the air trap data is published on the CAN bus. -#define AIR_TRAP_FILL_TIMEOUT_MS ( 6 * MS_PER_SECOND ) ///< Air trap fill timeout period (in ms). +#define AIR_TRAP_FILL_TIMEOUT_MS ( 10 * MS_PER_SECOND ) ///< Air trap fill timeout period (in ms). #define AIR_PUMP_ON_DELAY_TIME_MS ( 10 * MS_PER_SECOND ) ///< Delay between air pump On (in ms). -#define AIR_PUMP_UPPER_LEVEL_PERSISTENCE ( 300 / TASK_GENERAL_INTERVAL ) ///< Persistence time for air pump operation after air trap upper level reads air. +#define AIR_PUMP_ON_STOP_TIME_MIN_MS 200 ///< Stop air Pump time. #define AIR_PUMP_ON_ERROR_MAX_CNT 6 ///< Maximum number of air pump on events within time window before alarm triggered. Do not exceed MAX_TIME_WINDOWED_COUNT. #define AIR_PUMP_ON_ERROR_TIME_WIN_MS ( 60 * MS_PER_SECOND ) ///< Time window for Air Pump on count error. #define AIR_TRAP_LEVEL_DEBOUNCE_TIME_MS ( 400 ) ///< Air trap level sensor debounce time @@ -76,8 +76,11 @@ static U32 fillStartTime = 0; ///< Time stamp for start of air trap fill. static U32 airPumpOnDelayStartTime = 0; ///< Air pump On start time. +static U32 stopAirPumpStartTime = 0; ///< Stop air pump start time. +// Air pump on delay after fill adjustment +static const U32 AIR_PUMP_ON_DELAY_ADJUST_AFTER_FILL = ( AIR_PUMP_ON_DELAY_TIME_MS - ( 1 * MS_PER_SECOND ) ); -static U32 airPumpUpperLevelCtr = 0; ///< Timer count for air pump persistence. +static BOOL airTrapValveOpenAtStartOfTreatement = FALSE; ///< To Keep the fluid level high close to Air trap upper level during start of treatment // ********** private function prototypes ********** @@ -98,9 +101,10 @@ U32 i; resetAirTrap(); - airTrapDataPublicationTimerCounter = DATA_PUBLISH_COUNTER_START_COUNT; - airPumpUpperLevelCtr = 0; - airPumpOnDelayStartTime = getMSTimerCount(); + airTrapDataPublicationTimerCounter = DATA_PUBLISH_COUNTER_START_COUNT; + airTrapValveOpenAtStartOfTreatement = TRUE; + airPumpOnDelayStartTime = getMSTimerCount(); + stopAirPumpStartTime = 0; for ( i = 0; i < NUM_OF_AIR_TRAP_LEVEL_SENSORS; i++ ) { @@ -356,6 +360,11 @@ { AIR_TRAP_STATE_T result = AIR_TRAP_VALVE_CLOSED_STATE; + // Air pump stop time based on the blood flow rate + S32 qB = abs( getTargetBloodFlowRate() ); + U32 qBx = ( 0 == qB ? MIN_SET_BLOOD_FLOW_RATE : (U32)qB ); + U32 airPumpStopTime = AIR_PUMP_ON_STOP_TIME_MIN_MS + ( ( qBx - MIN_SET_BLOOD_FLOW_RATE ) / 2 ); + // Transition to manual valve control state when requested if ( TRUE == pendingStopAirTrapController ) { @@ -365,37 +374,47 @@ if ( AIR_PUMP_STATE_ON == getAirPumpState() ) { setAirPumpState( AIR_PUMP_STATE_OFF ); - airPumpUpperLevelCtr = 0; } } + //Open valve once at start of treatment ( blood priming) + else if ( TRUE == airTrapValveOpenAtStartOfTreatement ) + { + airTrapValveOpenAtStartOfTreatement = FALSE; + if ( AIR_PUMP_STATE_ON == getAirPumpState() ) + { + setAirPumpState( AIR_PUMP_STATE_OFF ); + } + + setValveAirTrap( STATE_OPEN ); + fillStartTime = getMSTimerCount(); + SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_AIR_TRAP_FILL, STATE_OPEN, 0 ); + result = AIR_TRAP_VALVE_OPEN_STATE; + } + + // Turn air pump off after defined time or air detected at upper level + else if ( ( AIR_PUMP_STATE_ON == getAirPumpState() ) && + ( ( TRUE == didTimeout( stopAirPumpStartTime, airPumpStopTime ) ) || + ( ( AIR_TRAP_LEVEL_AIR == getRawAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ) ) && + ( AIR_TRAP_LEVEL_FLUID == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ) ) ) ) ) + + { + setAirPumpState( AIR_PUMP_STATE_OFF ); + airPumpOnDelayStartTime = getMSTimerCount(); + } + //Turn on air pump if fluid reaches upper level. else if ( AIR_TRAP_LEVEL_FLUID == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ) ) { if ( ( AIR_PUMP_STATE_OFF == getAirPumpState() ) && ( TRUE == didTimeout( airPumpOnDelayStartTime, AIR_PUMP_ON_DELAY_TIME_MS ) ) ) { setAirPumpState( AIR_PUMP_STATE_ON ); - airPumpUpperLevelCtr = 0; + stopAirPumpStartTime = getMSTimerCount(); signalInitiatePressureStabilization( USE_SHORT_STABILIZATION_PERIOD ); } } - else if ( ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ) ) && - ( AIR_TRAP_LEVEL_FLUID == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ) ) ) - { - if ( AIR_PUMP_STATE_ON == getAirPumpState() ) - { - airPumpUpperLevelCtr++; - // Turn air pump off once we detect air at upper level and exceed persistence - if ( airPumpUpperLevelCtr >= AIR_PUMP_UPPER_LEVEL_PERSISTENCE ) - { - setAirPumpState( AIR_PUMP_STATE_OFF ); - airPumpOnDelayStartTime = getMSTimerCount(); - } - } - } - // Transition to open valve state when air detected at lower level else if ( ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ) ) && ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ) ) ) @@ -432,12 +451,13 @@ pendingStopAirTrapController = FALSE; result = AIR_TRAP_MANUAL_CONTROL_STATE; } - // Transition to closed valve state when fluid detected at lower level - else if ( AIR_TRAP_LEVEL_FLUID == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ) ) + // Transition to closed valve state when fluid detected at upper level + else if ( AIR_TRAP_LEVEL_FLUID == getRawAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ) ) { setValveAirTrap( STATE_CLOSED ); signalLowVenousPressureCheck(); SEND_EVENT_WITH_2_U32_DATA( HD_EVENT_AIR_TRAP_FILL, STATE_CLOSED, 0 ); + airPumpOnDelayStartTime = u32DiffWithWrap( AIR_PUMP_ON_DELAY_ADJUST_AFTER_FILL, getMSTimerCount() ); result = AIR_TRAP_VALVE_CLOSED_STATE; } return result; Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -r3d0f6c8bf5c5651629ec5ab48cb03e899a757d63 -r9a48fac21ca454756c8fce8363830dbd235f04ad --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 3d0f6c8bf5c5651629ec5ab48cb03e899a757d63) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 9a48fac21ca454756c8fce8363830dbd235f04ad) @@ -40,12 +40,15 @@ // ********** private definitions ********** /// Default publication interval for pressure and occlusion data. -#define PRES_OCCL_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the pressure/occlusion data is published on the CAN bus. +#define PRES_OCCL_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Interval (ms/task time) at which the pressure/occlusion data is published on the CAN bus. +#define PRES_LIMIT_STABILIZATION_OFF ( 0 ) ///< pressure limit stabilization period off +#define PRES_LIMIT_STABILIZATION_2_TIME_MS ( 60 * MS_PER_SECOND ) ///< Duration of pressure limit second stage stabilization period (in ms) +#define PRES_LIMIT_STABILIZATION_TIME_MS ( 60 * MS_PER_SECOND ) ///< Duration of pressure limit stabilization period (in ms). +#define PRES_LIMIT_SHORT_STABILIZE_TIME_MS ( 10 * MS_PER_SECOND ) ///< Duration of pressure limit short stabilization period (in ms). +#define PRES_LIMIT_RESTABILIZE_TIME_MS ( 15 * SEC_PER_MIN * MS_PER_SECOND ) ///< Duration of pressure limit re-stabilize period (in ms). +// Pressure Limit minimum stabilization time before short stabilization time activation +static const U32 PRES_LIMIT_MIN_STABILIZATION_TIME_IN_MS = ( PRES_LIMIT_STABILIZATION_TIME_MS - PRES_LIMIT_SHORT_STABILIZE_TIME_MS ); -#define PRES_LIMIT_STABILIZATION_TIME_MS ( 60 * MS_PER_SECOND ) ///< Duration of pressure limit stabilization period (in ms). -#define PRES_LIMIT_SHORT_STABILIZE_TIME_MS ( 10 * MS_PER_SECOND ) ///< Duration of pressure limit short stabilization period (in ms). -#define PRES_LIMIT_RESTABILIZE_TIME_MS ( 30 * SEC_PER_MIN * MS_PER_SECOND ) ///< Duration of pressure limit re-stabilize period (in ms). - #define ARTERIAL_PRESSURE_CONVERSION_OFFSET 0x800000 ///< Arterial pressure conversion coefficient. #define ARTERIAL_PRESSURE_V_BIAS ( 3.0F ) ///< Bias voltage for arterial pressure sensor. #define ARTERIAL_PRESSURE_SENSITIVITY ( 0.000005F ) ///< Sensitivity for arterial pressure sensor is 5 uV / mmHg @@ -87,6 +90,7 @@ #define PSI_TO_MMHG ( 51.7149F ) ///< Conversion factor for converting PSI to mmHg. +// The new arterial pressure sensor is the same as the venous pressure sensor #define VENOUS_PRESSURE_NORMAL_OP 0 ///< Venous pressure status bits indicate normal operation. #define VENOUS_PRESSURE_CMD_MODE 1 ///< Venous pressure status bits indicate sensor in command mode. #define VENOUS_PRESSURE_STALE_DATA 2 ///< Venous pressure status bits indicate data is stale (no new data since last fpga read). @@ -176,7 +180,7 @@ static OVERRIDE_F32_T shortFilteredArterialPressure = { 0.0, 0.0, 0.0, 0 }; ///< Measured arterial pressure after short (1 s) filter. static F32 longFilteredVenousPressure; ///< Measured venous pressure after long (10 s) filter. static OVERRIDE_F32_T shortFilteredVenousPressure = { 0.0, 0.0, 0.0, 0 }; ///< Measured venous pressure after short (1 s) filter. -static BOOL useShortStabilizeTime; ///< Flag to use short stabilize time. +static STABILIZATION_PERIODS_T pressureStabilizeTime; ///< Pressure stabilization time based on system events such as airpump, treatment param changes etc., static BOOL resetFillExemptPeriod; ///< Flag to reset the exempt period after defined time expire. static BOOL lowVenousPressureExemptCheck; ///< low venous pressure exempt check flag based on the air trap valve status @@ -267,7 +271,7 @@ presOcclState = PRESSURE_WAIT_FOR_POST_STATE; presOcclPostState = PRESSURE_SELF_TEST_STATE_START; bloodPumpOcclusionAfterCartridgeInstall = 0; - useShortStabilizeTime = USE_NORMAL_STABILIZATION_PERIOD; + pressureStabilizeTime = USE_NORMAL_STABILIZATION_PERIOD; resetFillExemptPeriod = TRUE; lowVenousPressureExemptCheck = TRUE; } @@ -414,7 +418,7 @@ * will be in effect immediately (next monitor pass). If treatment paused, * resume will start a new stabilization period ending in another set of * stable pressures before windowed limits recalculated. - * @details Inputs: useShortStabilizeTime + * @details Inputs: pressureStabilizeTime * @details Outputs: stableArterialPressure, stableVenousPressure * @return none *************************************************************************/ @@ -425,7 +429,7 @@ S32 curArtPres; S32 curVenPres; - if ( USE_SHORT_STABILIZATION_PERIOD == useShortStabilizeTime ) + if ( USE_SHORT_STABILIZATION_PERIOD == pressureStabilizeTime ) { filtArt = getFilteredArterialPressure(); filtVen = getFilteredVenousPressure(); @@ -452,22 +456,33 @@ * was stable, a rate change will kick us back to stabilization state. * Else reset stabilize counter. * @details Inputs: currPresLimitsState - * @details Outputs: currPresLimitsState, stabilizationStartTimeMs, useShortStabilizeTime - * @param useShort Flag to use short stabilization period. Use defines: - * USE_NORMAL_STABILIZATION_PERIOD, USE_SHORT_STABILIZATION_PERIOD + * @details Outputs: currPresLimitsState, stabilizationStartTimeMs, pressureStabilizeTime + * @param stabilizationPeriod stabilization periods. Use defines: + * STABILIZATION_PERIOD_OFF, USE_NORMAL_STABILIZATION_PERIOD, USE_SHORT_STABILIZATION_PERIOD * @return none *************************************************************************/ -void signalInitiatePressureStabilization( BOOL useShort ) +void signalInitiatePressureStabilization( STABILIZATION_PERIODS_T stabilizationPeriod ) { - useShortStabilizeTime = useShort; - // User update of blood/dialysate flow rate or UF rate or initiates/resets a stabilization period (if we were in stabilization or stable state) if ( PRESSURE_LIMITS_STATE_STABILIZATION == currPresLimitsState ) { - stabilizationStartTimeMs = getMSTimerCount(); + U32 currentTime = getMSTimerCount(); + U32 expiredTime = u32DiffWithWrap( stabilizationStartTimeMs, currentTime ); + + // if pressure is already stabilized enough, assign the short stabilize time for the recent event ( air pump on). + // else,allow the ongoing stabilization to complete. + // allow Normal stabilization on a case when user updates flow rate or UF rate etc., + if ( ( expiredTime > PRES_LIMIT_MIN_STABILIZATION_TIME_IN_MS ) || + ( stabilizationPeriod == USE_NORMAL_STABILIZATION_PERIOD ) ) + { + pressureStabilizeTime = stabilizationPeriod; + stabilizationStartTimeMs = getMSTimerCount(); + } } - else if ( PRESSURE_LIMITS_STATE_STABLE == currPresLimitsState ) + else if ( ( PRESSURE_LIMITS_STATE_STABLE == currPresLimitsState ) || + ( PRESSURE_LIMITS_STATE_STABILIZATION_2 == currPresLimitsState ) ) { + pressureStabilizeTime = stabilizationPeriod; currPresLimitsState = PRESSURE_LIMITS_STATE_STABILIZATION; stabilizationStartTimeMs = getMSTimerCount(); } @@ -484,8 +499,10 @@ *************************************************************************/ static void determineArtVenPressureLimits( void ) { - if ( PRESSURE_LIMITS_STATE_STABLE == currPresLimitsState ) - { // apply pressure windows when stable + if ( ( PRESSURE_LIMITS_STATE_STABLE == currPresLimitsState ) || + ( PRESSURE_LIMITS_STATE_STABILIZATION_2 == currPresLimitsState ) ) + { + // apply pressure windows when stable S32 artOffset = getTreatmentParameterS32( TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW ) / 2; // Arterial is symmetric S32 venMinOffset = getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC ); // Venous is asymmetric S32 venMaxOffset = getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW ) - venMinOffset; @@ -635,7 +652,7 @@ else if ( ( TREATMENT_DIALYSIS_STATE == currTxState ) || ( TREATMENT_STOP_STATE == currTxState ) ) { stabilizationStartTimeMs = getMSTimerCount(); - useShortStabilizeTime = USE_NORMAL_STABILIZATION_PERIOD; + pressureStabilizeTime = USE_NORMAL_STABILIZATION_PERIOD; currPresLimitsState = PRESSURE_LIMITS_STATE_STABILIZATION; } else if ( currTxState == TREATMENT_RECIRC_STATE ) @@ -645,10 +662,12 @@ break; case PRESSURE_LIMITS_STATE_STABILIZATION: - if ( USE_SHORT_STABILIZATION_PERIOD == useShortStabilizeTime ) + // update stabilization time + if ( USE_SHORT_STABILIZATION_PERIOD == pressureStabilizeTime ) { stabilizeTime = PRES_LIMIT_SHORT_STABILIZE_TIME_MS; } + // Normal stabilization period else { stabilizeTime = PRES_LIMIT_STABILIZATION_TIME_MS; @@ -666,12 +685,44 @@ { updatePressureLimitWindows(); stabilizationStartTimeMs = getMSTimerCount(); - useShortStabilizeTime = USE_NORMAL_STABILIZATION_PERIOD; + currPresLimitsState = PRESSURE_LIMITS_STATE_STABILIZATION_2; + pressureStabilizeTime = USE_NORMAL_STABILIZATION_PERIOD; + } + break; + + case PRESSURE_LIMITS_STATE_STABILIZATION_2: + // zero stabilize time for 15 mins once pressure limits adjust scenario + if ( STABILIZATION_PERIOD_OFF == pressureStabilizeTime ) + { + stabilizeTime = PRES_LIMIT_STABILIZATION_OFF; + } + //60 sec second stage stabilization + else + { + stabilizeTime = PRES_LIMIT_STABILIZATION_2_TIME_MS; + } + + // second stage stabilization helps to re determine the pressure due to UF control change etc., + if ( bpRunning != TRUE ) + { + currPresLimitsState = PRESSURE_LIMITS_STATE_IDLE; + } + else if ( ( currTxState != TREATMENT_DIALYSIS_STATE ) && ( currTxState != TREATMENT_STOP_STATE ) ) + { + currPresLimitsState = PRESSURE_LIMITS_STATE_WIDE; + } + else if ( TRUE == didTimeout( stabilizationStartTimeMs, stabilizeTime ) ) + { + updatePressureLimitWindows(); + stabilizationStartTimeMs = getMSTimerCount(); currPresLimitsState = PRESSURE_LIMITS_STATE_STABLE; + // Reset to normal period as default. + pressureStabilizeTime = USE_NORMAL_STABILIZATION_PERIOD; } break; case PRESSURE_LIMITS_STATE_STABLE: + // Pressure is re determined after every 15 minutes once and be remain in limited pressure windows. if ( bpRunning != TRUE ) { currPresLimitsState = PRESSURE_LIMITS_STATE_IDLE; @@ -683,8 +734,8 @@ else if ( TRUE == didTimeout( stabilizationStartTimeMs, PRES_LIMIT_RESTABILIZE_TIME_MS ) ) { stabilizationStartTimeMs = getMSTimerCount(); - useShortStabilizeTime = USE_NORMAL_STABILIZATION_PERIOD; - currPresLimitsState = PRESSURE_LIMITS_STATE_STABILIZATION; + pressureStabilizeTime = STABILIZATION_PERIOD_OFF; + currPresLimitsState = PRESSURE_LIMITS_STATE_STABILIZATION_2; } break; @@ -955,7 +1006,6 @@ } } } - // Check for occlusion in Treatment modes where pumps are moving else if ( MODE_TREA == hdMode ) { Index: firmware/App/Controllers/PresOccl.h =================================================================== diff -u -rf1fb3b375d3cad02765664b5fa5887bd578455ec -r9a48fac21ca454756c8fce8363830dbd235f04ad --- firmware/App/Controllers/PresOccl.h (.../PresOccl.h) (revision f1fb3b375d3cad02765664b5fa5887bd578455ec) +++ firmware/App/Controllers/PresOccl.h (.../PresOccl.h) (revision 9a48fac21ca454756c8fce8363830dbd235f04ad) @@ -32,8 +32,14 @@ // ********** public definitions ********** -#define USE_NORMAL_STABILIZATION_PERIOD FALSE -#define USE_SHORT_STABILIZATION_PERIOD TRUE +/// Enumeration of stabilization periods. +typedef enum StabilizationPeriods +{ + STABILIZATION_PERIOD_OFF = 0, ///< Stabilization period off - 0 seconds + USE_SHORT_STABILIZATION_PERIOD, ///< Short stabilization period for air pump event - 10 seconds + USE_NORMAL_STABILIZATION_PERIOD, ///< Normal Stabilization period for system events, excluding airpump events ( treatment param change, resume treatment etc.,) - 60 seconds + NUM_OF_STABILIZATION_PERIODS ///< Number of stabilization periods +} STABILIZATION_PERIODS_T; /// Enumeration of pressure sensors monitored by this module. typedef enum PressureSensors @@ -46,12 +52,13 @@ /// 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_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_STABILIZATION_2, ///< Second stage stabilization - re adjust the pressure that has been drifted due to UF control etc and limit windows apply + 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. @@ -80,7 +87,7 @@ void setPressureLimitsToOuterBounds( void ); void updatePressureLimitWindows( void ); -void signalInitiatePressureStabilization( BOOL useShort ); +void signalInitiatePressureStabilization( STABILIZATION_PERIODS_T stabilizationPeriod ); void resetArtVenPressureOffsets( void ); void setArtVenPressureOffsets( void ); Index: firmware/App/HDCommon.h =================================================================== diff -u -r03e1aed2e14bc08c68aaf88e12175f1eba6c8fc4 -r9a48fac21ca454756c8fce8363830dbd235f04ad --- firmware/App/HDCommon.h (.../HDCommon.h) (revision 03e1aed2e14bc08c68aaf88e12175f1eba6c8fc4) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision 9a48fac21ca454756c8fce8363830dbd235f04ad) @@ -10,8 +10,8 @@ * @author (last) Dara Navaei * @date (last) 02-Feb-2024 * -* @author (original) Sean -* @date (original) 27-Feb-2020 +* @author (original) Sean +* @date (original) 27-Feb-2020 * ***************************************************************************/ @@ -25,8 +25,9 @@ #define HD_VERSION_MAJOR 0 #define HD_VERSION_MINOR 9 #define HD_VERSION_MICRO 0 -#define HD_VERSION_BUILD 308 +#define HD_VERSION_BUILD 823 + // ********** development build switches ********** #ifndef _RELEASE_