Index: firmware/App/Modes/StatePreTxDrySelfTests.c =================================================================== diff -u -rfdaecc8cba085b8f2a57c8478c6ad800f7303483 -readc0ae426264da75e00f4137c94821e60ec33da --- firmware/App/Modes/StatePreTxDrySelfTests.c (.../StatePreTxDrySelfTests.c) (revision fdaecc8cba085b8f2a57c8478c6ad800f7303483) +++ firmware/App/Modes/StatePreTxDrySelfTests.c (.../StatePreTxDrySelfTests.c) (revision eadc0ae426264da75e00f4137c94821e60ec33da) @@ -120,8 +120,10 @@ static U32 arterialPressureStabilizationStartTime; ///< Start time for arterial stabilization static U32 arterialPressureLeakCheckStartTime; ///< Start time for arterial leak check static U32 arterialPressureReliefStartTime; ///< Start time for arterial pressure relief +static BOOL authResponseReceived; ///< Indicates UI auth response received +static BOOL authResponseAccepted; ///< Indicates if authentication is accepted +static REQUEST_REJECT_REASON_CODE_T authResponseReason; ///< Reason for rejection - // ********** private function prototypes ********** static void resetSelfTestsFlags( void ); @@ -167,6 +169,9 @@ cartridgeUsedTestRun = FALSE; occlusionBaselineWasSet = FALSE; heparinOcclusionTestRun = FALSE; + authResponseReceived = FALSE; + authResponseAccepted = FALSE; + authResponseReason = REQUEST_REJECT_REASON_NONE; } /*********************************************************************//** @@ -586,7 +591,7 @@ * @brief * The handleDrySelfTestTubeSetAuthenticationState function handles tube set * authentication and processes the authentication response. -* @details \b Message \b Received: MSG_ID_UI_TUBE_SET_AUTHENTICATION_RESPONSE +* @details \b Message \b Received: MSG_ID_UI_TUBE_SET_AUTHENTICATION_REQUEST * @details \b Message \b Sent: MSG_ID_TD_TUBE_SET_AUTHENTICATION_RESPONSE * @details \b Inputs: authResponseReceived, authResponseValidTubeSet, * authResponseModalityAccepted @@ -1203,6 +1208,34 @@ /*********************************************************************//** * @brief +* The drySelfTestHandleTubeSetAuthResponse function handles tube set +* authentication response. +* @details \b Message \b Received: MSG_ID_UI_TUBE_SET_AUTHENTICATION_RESPONSE +* @details \b Inputs: message containing authentication result +* @details \b Outputs: authResponseReceived, authResponseAccepted, +* authResponseReason +* @return TRUE if received authentication response is valid, FALSE if not +*************************************************************************/ +BOOL drySelfTestHandleTubeSetAuthResponse( MESSAGE_T *message ) +{ + BOOL result = FALSE; + + if ( sizeof( TUBE_SET_AUTH_RESULT_PAYLOAD_T ) == message->hdr.payloadLen ) + { + TUBE_SET_AUTH_RESULT_PAYLOAD_T payload; + + memcpy( &payload, message->payload, sizeof( TUBE_SET_AUTH_RESULT_PAYLOAD_T ) ); + authResponseReceived = TRUE; + authResponseAccepted = (BOOL)payload.accepted; + authResponseReason = (REQUEST_REJECT_REASON_CODE_T)payload.reason; + result = TRUE; + } + + return result; +} + +/*********************************************************************//** +* @brief * The transitionToDrySelfTestsState function handles the transition to * dry self-test states by setting actuators. * @details \b Inputs: none Index: firmware/App/Modes/StatePreTxDrySelfTests.h =================================================================== diff -u -rfdaecc8cba085b8f2a57c8478c6ad800f7303483 -readc0ae426264da75e00f4137c94821e60ec33da --- firmware/App/Modes/StatePreTxDrySelfTests.h (.../StatePreTxDrySelfTests.h) (revision fdaecc8cba085b8f2a57c8478c6ad800f7303483) +++ firmware/App/Modes/StatePreTxDrySelfTests.h (.../StatePreTxDrySelfTests.h) (revision eadc0ae426264da75e00f4137c94821e60ec33da) @@ -45,6 +45,7 @@ void execDrySelfTests( void ); U32 getDrySelfTestsState( void ); +BOOL drySelfTestHandleTubeSetAuthResponse( MESSAGE_T *message ); void handleDoorCloseAfterCartridgeInsertion( void ); Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r72bc0d5f33dbb07afc8a7cd9015e4861c6c371a1 -readc0ae426264da75e00f4137c94821e60ec33da --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 72bc0d5f33dbb07afc8a7cd9015e4861c6c371a1) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision eadc0ae426264da75e00f4137c94821e60ec33da) @@ -35,6 +35,7 @@ #include "PAL.h" #include "Pressures.h" #include "RotaryValve.h" +#include "StatePreTxDrySelfTests.h" #include "StateTxBloodPrime.h" #include "StateTxDialysis.h" #include "StateTxPaused.h" @@ -116,6 +117,7 @@ { MSG_ID_UI_PRESSURE_LIMIT_WIDEN_REQUEST, &pressureLimitHandleWidenRequest }, { MSG_ID_UI_BLOOD_PRIME_CMD_REQUEST, &bloodPrimeHandleCmdRequest }, { MSG_ID_UI_TREATMENT_SET_POINT_BLOOD_FLOW_CHANGE_REQUEST, &bloodPrimeHandleBloodFlowChangeRequest }, + { MSG_ID_UI_TUBE_SET_AUTHENTICATION_REQUEST, &drySelfTestHandleTubeSetAuthResponse }, { MSG_ID_TD_SOFTWARE_RESET_REQUEST, &testTDSoftwareResetRequest }, { MSG_ID_TD_BUBBLE_OVERRIDE_REQUEST, &testBubbleDetectOverride }, { MSG_ID_TD_BUBBLE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testBubblesDataPublishIntervalOverride },