Index: firmware/App/Modes/Prime.c =================================================================== diff -u -rb6b733b8d1f25bc2dbe2a94c620cd80aa3ae06f7 -rc0445144841904d5a6ea9d37af639e138e6a86b0 --- firmware/App/Modes/Prime.c (.../Prime.c) (revision b6b733b8d1f25bc2dbe2a94c620cd80aa3ae06f7) +++ firmware/App/Modes/Prime.c (.../Prime.c) (revision c0445144841904d5a6ea9d37af639e138e6a86b0) @@ -268,6 +268,29 @@ /*********************************************************************//** * @brief + * The signalStartPrime function signals the prime sub-mode the user requested + * to start priming operation. + * @details Inputs: none + * @details Outputs: primeStartRequested + * @return none + *************************************************************************/ +void signalStartPrime( void ) +{ + BOOL accepted = FALSE; + REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE; + + if ( HD_PRIME_WAIT_FOR_USER_START_STATE == currentPrimeState ) + { + primeStartRequested = TRUE; + accepted = TRUE; + rejReason = REQUEST_REJECT_REASON_NONE; + } + + sendStartPrimeCmdResponse( accepted, rejReason ); +} + +/*********************************************************************//** + * @brief * The signalResumePrime function signals the prime sub-mode to resume * previous operation. * @details Inputs: none @@ -301,8 +324,7 @@ *************************************************************************/ static void resetPrimeFlags( void ) { - // TODO: set to false after integration with UI - primeStartRequested = TRUE; + primeStartRequested = FALSE; primeResumeRequested = FALSE; primeStopRequested = FALSE; } @@ -349,7 +371,6 @@ if ( ++primeStatusBroadcastTimerCounter >= PRIME_DATA_PUB_INTERVAL ) { PRIMING_DATA_PAYLOAD_T primeData; - primeData.currentPrimeState = currentPrimeState; primeData.totalTime = MAX_PRIME_TIME; primeData.remainingTime = MAX_PRIME_TIME - elapsedPrimeTimeInSecs; Index: firmware/App/Modes/Prime.h =================================================================== diff -u -rb6b733b8d1f25bc2dbe2a94c620cd80aa3ae06f7 -rc0445144841904d5a6ea9d37af639e138e6a86b0 --- firmware/App/Modes/Prime.h (.../Prime.h) (revision b6b733b8d1f25bc2dbe2a94c620cd80aa3ae06f7) +++ firmware/App/Modes/Prime.h (.../Prime.h) (revision c0445144841904d5a6ea9d37af639e138e6a86b0) @@ -37,7 +37,6 @@ /// Payload record structure for a priming status data broadcast message. typedef struct { - U32 currentPrimeState; ///< Current state of priming. U32 remainingTime; ///< Remaining time for priming in seconds. U32 totalTime; ///< Total priming time in seconds. } PRIMING_DATA_PAYLOAD_T; @@ -53,6 +52,7 @@ U32 getPrimeState( void ); BOOL isPrimeCompleted( void ); +void signalStartPrime( void ); void signalResumePrime( void ); void signalStopPrime( void ); Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r401c4027b0e59182771f0c620465b34579f203f5 -rc0445144841904d5a6ea9d37af639e138e6a86b0 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 401c4027b0e59182771f0c620465b34579f203f5) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision c0445144841904d5a6ea9d37af639e138e6a86b0) @@ -1199,6 +1199,18 @@ handleSampleWaterCmd( message ); break; + case MSG_ID_UI_SAMPLE_WATER_RESULT: + handleSampleWaterResult( message ); + break; + + case MSG_ID_UI_INSTALLATION_CONFIRM: + handleInstallationConfirm( message ); + break; + + case MSG_ID_UI_START_PRIME_REQUEST: + handleStartPrimeCmd( message ); + break; + case MSG_ID_DG_COMMAND_RESPONSE: handleDGCmdResp( message ); break; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rbbf4e1a170f66ce07af12908a1d0fe101a934e9e -rc0445144841904d5a6ea9d37af639e138e6a86b0 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision bbf4e1a170f66ce07af12908a1d0fe101a934e9e) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision c0445144841904d5a6ea9d37af639e138e6a86b0) @@ -587,6 +587,35 @@ { signalUserConfirmInstallation(); } + +/*********************************************************************//** + * @brief + * The handlePrimingStartCmd function handles user confirms disposable + * installation msg from the UI. + * @details Inputs: none + * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none. + *************************************************************************/ +void handleStartPrimeCmd( MESSAGE_T *message ) +{ + signalStartPrime(); +} + +/*********************************************************************//** + * @brief + * The sendStartPrimeCmdResponse function constructs a start prime user action + * response to the UI and queues the msg for transmit on the appropriate CAN channel. + * @details Inputs: none + * @details Outputs: Start prime command response msg constructed and queued. + * @param accepted T/F - was sample water request accepted? + * @param reason reason why request was rejected (or zero if accepted) + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL sendStartPrimeCmdResponse( BOOL accepted, U32 reason ) +{ + return sendUIResponseMsg( MSG_ID_HD_START_PRIME_REQUEST_RESPONSE, accepted, reason ); +} /*********************************************************************//** * @brief Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -rbbf4e1a170f66ce07af12908a1d0fe101a934e9e -rc0445144841904d5a6ea9d37af639e138e6a86b0 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision bbf4e1a170f66ce07af12908a1d0fe101a934e9e) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision c0445144841904d5a6ea9d37af639e138e6a86b0) @@ -170,6 +170,12 @@ // MSG_ID_UI_INSTALLATION_CONFIRM void handleInstallationConfirm( MESSAGE_T *message ); +// MSG_ID_UI_START_PRIME_REQUEST +void handleStartPrimeCmd( MESSAGE_T *message ); + +// MSG_ID_HD_START_PRIME_REQUEST_RESPONSE +BOOL sendStartPrimeCmdResponse( BOOL accepted, U32 reason ); + // *********** public DG command functions ********** // MSG_ID_SET_DG_DIALYSATE_TEMP_TARGETS