Index: firmware/App/Monitors/Pressures.c =================================================================== diff -u -rf0ea13c1a9908920793be07a946dc366d2ab5019 -r421336466eff4ba9fef0ca5416043e5d83c63841 --- firmware/App/Monitors/Pressures.c (.../Pressures.c) (revision f0ea13c1a9908920793be07a946dc366d2ab5019) +++ firmware/App/Monitors/Pressures.c (.../Pressures.c) (revision 421336466eff4ba9fef0ca5416043e5d83c63841) @@ -47,23 +47,6 @@ #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 window validation ranges (UI-editable values as per PRS) -#define ART_PRESSURE_LIMIT_WINDOW_MIN_MMHG ( 120 ) ///< Minimum arterial pressure window limit (mmHg) -#define ART_PRESSURE_LIMIT_WINDOW_MAX_MMHG ( 200 ) ///< Maximum arterial pressure window limit (mmHg) -#define ART_PRESSURE_LIMIT_WINDOW_STEP_MMHG ( 40 ) ///< Arterial pressure window increment (mmHg) - -#define VEN_PRESSURE_LIMIT_WINDOW_MIN_MMHG ( 100 ) ///< Minimum venous pressure window limit (mmHg) -#define VEN_PRESSURE_LIMIT_WINDOW_MAX_MMHG ( 200 ) ///< Maximum venous pressure window limit (mmHg) -#define VEN_PRESSURE_LIMIT_WINDOW_STEP_MMHG ( 20 ) ///< Venous pressure window increment (mmHg) - -#define VEN_ASYM_PRESSURE_LIMIT_WINDOW_MIN_MMHG ( 20 ) ///< Minimum venous asymmetric pressure limit (mmHg) -#define VEN_ASYM_PRESSURE_LIMIT_WINDOW_MAX_MMHG ( 35 ) ///< Maximum venous asymmetric pressure limit (mmHg) -#define VEN_ASYM_PRESSURE_LIMIT_WINDOW_STEP_MMHG ( 5 ) ///< Venous asymmetric pressure increment (mmHg) - -#define TMP_PRESSURE_LIMIT_WINDOW_MIN_MMHG ( 40 ) ///< Minimum TMP pressure window limit (mmHg) -#define TMP_PRESSURE_LIMIT_WINDOW_MAX_MMHG ( 100 ) ///< Maximum TMP pressure window limit (mmHg) -#define TMP_PRESSURE_LIMIT_WINDOW_STEP_MMHG ( 20 ) ///< TMP pressure window increment (mmHg) - /// 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 ); @@ -231,10 +214,6 @@ static void determineArtVenPressureLimits( void ); static void filterInlinePressureReadings( F32 artPres, F32 venPres, F32 tmpPres ); static void filterBaroPressureReadings( F32 baroPresPSI ); -static BOOL isArterialPressureLimitWindowValid( S32 value ); -static BOOL isVenousPressureLimitWindowValid( S32 value ); -static BOOL isVenousAsymmetricPressureLimitWindowValid( S32 value ); -static BOOL isTmpPressureLimitWindowValid( S32 value ); /*********************************************************************//** * @brief @@ -1270,154 +1249,6 @@ return result; } -/*********************************************************************//** -* @brief -* The pressureLimitHandleChangeRequest function validates pressure limit -* change request received from the UI. -* @details \b Message \b Received: MSG_ID_UI_PRESSURE_LIMITS_CHANGE_REQUEST -* @details \b Message \b Sent: MSG_ID_TD_PRESSURE_LIMITS_CHANGE_RESPONSE -* @details \b Inputs: arterial, venous, venous asymmetric, and TMP -* pressure limit window values -* @details \b Outputs: pressure limits updated when valid -* @param message set message from UI -* @return TRUE if request is valid, FALSE if not -*************************************************************************/ -BOOL pressureLimitHandleChangeRequest ( MESSAGE_T *message ) -{ - BOOL result = FALSE; - REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_INVALID_REQUEST_FORMAT; - PRESSURE_LIMIT_CHANGE_REQUEST_T request = { 0 }; - PRESSURE_LIMIT_CHANGE_RESPONSE_T response = { 0 }; - - if ( message->hdr.payloadLen == sizeof( request ) ) - { - memcpy( &request, &message->payload[ 0 ], sizeof( request ) ); - - if ( isArterialPressureLimitWindowValid( request.arterialPressureLimitWindowMMHG ) && - isVenousPressureLimitWindowValid( request.venousPressureLimitWindowMMHG ) && - isVenousAsymmetricPressureLimitWindowValid( request.venousAsymmetricPressureLimitWindowMMHG ) && - isTmpPressureLimitWindowValid( request.tmpPressureLimitWindowMMHG ) ) - { - setTreatmentParameterS32( TREATMENT_PARAM_ART_PRES_LIMIT_WINDOW, - request.arterialPressureLimitWindowMMHG ); - - setTreatmentParameterS32( TREATMENT_PARAM_VEN_PRES_LIMIT_WINDOW, - request.venousPressureLimitWindowMMHG ); - - setTreatmentParameterS32( TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC, - request.venousAsymmetricPressureLimitWindowMMHG ); - - setTreatmentParameterS32( TREATMENT_PARAM_TMP_PRES_LIMIT_WINDOW, - request.tmpPressureLimitWindowMMHG ); - - updatePressureLimitWindows(); - - result = TRUE; - rejReason = REQUEST_REJECT_REASON_NONE; - } - else - { - result = FALSE; - rejReason = REQUEST_REJECT_REASON_PARAM_OUT_OF_RANGE; - } - } - - response.accepted = result; - response.rejectionReason = rejReason; - response.arterialPressureLimitWindowMMHG = request.arterialPressureLimitWindowMMHG; - response.venousPressureLimitWindowMMHG = request.venousPressureLimitWindowMMHG; - response.venousAsymmetricPressureLimitWindowMMHG = request.venousAsymmetricPressureLimitWindowMMHG; - response.tmpPressureLimitWindowMMHG = request.tmpPressureLimitWindowMMHG; - - sendMessage( MSG_ID_TD_PRESSURE_LIMITS_CHANGE_RESPONSE, COMM_BUFFER_OUT_CAN_TD_2_UI, (U08 *)&response, - sizeof( response ) ); - - return result; -} - -/*********************************************************************//** - * @brief - * The isPressureLimitValueValid function checks whether a pressure limit - * value is within the specified range and aligns with the defined step. - * @details \b Inputs: value, minValue, maxValue, stepValue - * @details \b Outputs: none - * @return TRUE if value is valid, FALSE otherwise - *************************************************************************/ -static BOOL isPressureLimitValueValid( S32 value, S32 minValue, S32 maxValue, S32 stepValue ) -{ - BOOL result = FALSE; - - if ( ( value >= minValue ) && ( value <= maxValue ) ) - { - result = ( ( ( value - minValue ) % stepValue ) == 0 ); - } - - return result; -} - -/*********************************************************************//** - * @brief - * The isArterialPressureLimitWindowValid function checks whether the - * arterial pressure limit window value is within valid range. - * @details \b Inputs: value - * @details \b Outputs: none - * @return TRUE if value is valid, FALSE otherwise - *************************************************************************/ -static BOOL isArterialPressureLimitWindowValid( S32 value ) -{ - return isPressureLimitValueValid( value, - ART_PRESSURE_LIMIT_WINDOW_MIN_MMHG, - ART_PRESSURE_LIMIT_WINDOW_MAX_MMHG, - ART_PRESSURE_LIMIT_WINDOW_STEP_MMHG ); -} - -/*********************************************************************//** - * @brief - * The isVenousPressureLimitWindowValid function checks whether the - * venous pressure limit window value is within valid range. - * @details \b Inputs: value - * @details \b Outputs: none - * @return TRUE if value is valid, FALSE otherwise - *************************************************************************/ -static BOOL isVenousPressureLimitWindowValid( S32 value ) -{ - return isPressureLimitValueValid( value, - VEN_PRESSURE_LIMIT_WINDOW_MIN_MMHG, - VEN_PRESSURE_LIMIT_WINDOW_MAX_MMHG, - VEN_PRESSURE_LIMIT_WINDOW_STEP_MMHG ); -} - -/*********************************************************************//** - * @brief - * The isVenousAsymmetricPressureLimitWindowValid function checks whether - * the venous asymmetric pressure limit window value is within valid range. - * @details \b Inputs: value - * @details \b Outputs: none - * @return TRUE if value is valid, FALSE otherwise - *************************************************************************/ -static BOOL isVenousAsymmetricPressureLimitWindowValid( S32 value ) -{ - return isPressureLimitValueValid( value, - VEN_ASYM_PRESSURE_LIMIT_WINDOW_MIN_MMHG, - VEN_ASYM_PRESSURE_LIMIT_WINDOW_MAX_MMHG, - VEN_ASYM_PRESSURE_LIMIT_WINDOW_STEP_MMHG ); -} - -/*********************************************************************//** - * @brief - * The isTmpPressureLimitWindowValid function checks whether the TMP - * pressure limit window value is within valid range. - * @details \b Inputs: value - * @details \b Outputs: none - * @return TRUE if value is valid, FALSE otherwise - *************************************************************************/ -static BOOL isTmpPressureLimitWindowValid( S32 value ) -{ - return isPressureLimitValueValid( value, - TMP_PRESSURE_LIMIT_WINDOW_MIN_MMHG, - TMP_PRESSURE_LIMIT_WINDOW_MAX_MMHG, - TMP_PRESSURE_LIMIT_WINDOW_STEP_MMHG ); -} /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/