Index: firmware/App/Monitors/Pressures.c =================================================================== diff -u -reef41b7363d82763095a1317f1757f360f0d9ec1 -r7268c928b564afedfad29482f1751989596f242a --- firmware/App/Monitors/Pressures.c (.../Pressures.c) (revision eef41b7363d82763095a1317f1757f360f0d9ec1) +++ firmware/App/Monitors/Pressures.c (.../Pressures.c) (revision 7268c928b564afedfad29482f1751989596f242a) @@ -1173,7 +1173,44 @@ return result; } +/*********************************************************************//** +* @brief +* The pressureLimitHandleWidenRequest function validates pressure limit +* widening request received from the UI. +* @details \b Message \b Received: MSG_ID_UI_PRESSURE_LIMIT_WIDEN_REQUEST +* @details \b Message \b Sent: MSG_ID_TD_PRESSURE_LIMIT_WIDEN_RESPONSE +* @details \b Inputs: none +* @details \b Outputs: pressure limits widened and stabilization restarted +* @param message set message from UI +* @return TRUE if request is valid, FALSE if not +*************************************************************************/ +BOOL pressureLimitHandleWidenRequest( MESSAGE_T *message ) +{ + BOOL result = FALSE; + REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_INVALID_REQUEST_FORMAT; + UI_RESPONSE_PAYLOAD_T response; + // Verify message payload length + if ( message->hdr.payloadLen == 0 ) + { + // Apply widened pressure limits + setPressureLimitsToOuterBounds(); + // Restart stabilization + stabilizationStartTimeMs = getMSTimerCount(); + currPresLimitsState = PRESSURE_LIMITS_STATE_STABILIZATION; + result = TRUE; + rejReason = REQUEST_REJECT_REASON_NONE; + } + + // Respond to request + response.accepted = result; + response.rejectionReason = rejReason; + sendMessage( MSG_ID_TD_PRESSURE_LIMIT_WIDEN_RESPONSE, COMM_BUFFER_OUT_CAN_TD_2_UI, (U08*)(&response), sizeof( UI_RESPONSE_PAYLOAD_T ) ); + + return result; +} + + /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/ Index: firmware/App/Monitors/Pressures.h =================================================================== diff -u -reef41b7363d82763095a1317f1757f360f0d9ec1 -r7268c928b564afedfad29482f1751989596f242a --- firmware/App/Monitors/Pressures.h (.../Pressures.h) (revision eef41b7363d82763095a1317f1757f360f0d9ec1) +++ firmware/App/Monitors/Pressures.h (.../Pressures.h) (revision 7268c928b564afedfad29482f1751989596f242a) @@ -94,6 +94,8 @@ F32 getTMPPressure( void ); F32 getBaroPressurePSI( void ); +BOOL pressureLimitHandleWidenRequest( MESSAGE_T *message ); + BOOL testPressuresDataPublishIntervalOverride( MESSAGE_T *message ); BOOL testTMPOverride( MESSAGE_T *message ); BOOL testBaroPressureOverride( MESSAGE_T * message ); Index: firmware/App/Services/Messaging.c =================================================================== diff -u -rf289a9279e8e924fd11411df6a71ac6727b800bc -r7268c928b564afedfad29482f1751989596f242a --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision f289a9279e8e924fd11411df6a71ac6727b800bc) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 7268c928b564afedfad29482f1751989596f242a) @@ -113,6 +113,7 @@ { MSG_ID_UI_INITIATE_TREATMENT_WORKFLOW, &signalUserInitiateTreatment }, { MSG_ID_UI_UF_PAUSE_RESUME_REQUEST, &signalPauseResumeUF }, { MSG_ID_TESTER_LOGIN_REQUEST, &handleTesterLogInRequest }, + { MSG_ID_UI_PRESSURE_LIMIT_WIDEN_REQUEST, &pressureLimitHandleWidenRequest }, { MSG_ID_TD_SOFTWARE_RESET_REQUEST, &testTDSoftwareResetRequest }, { MSG_ID_TD_BUBBLE_OVERRIDE_REQUEST, &testBubbleDetectOverride }, { MSG_ID_TD_BUBBLE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testBubblesDataPublishIntervalOverride },