Index: firmware/App/Modes/ModePreGenDialysate.c =================================================================== diff -u -rf6022e86136c821709ce24b61e11e8e2bdf0b11e -r88f86f2dc5107670e32f53e04e256ad8249ba55f --- firmware/App/Modes/ModePreGenDialysate.c (.../ModePreGenDialysate.c) (revision f6022e86136c821709ce24b61e11e8e2bdf0b11e) +++ firmware/App/Modes/ModePreGenDialysate.c (.../ModePreGenDialysate.c) (revision 88f86f2dc5107670e32f53e04e256ad8249ba55f) @@ -386,6 +386,8 @@ { DD_WET_SELF_TEST_STATE_T state = DD_WET_SELF_TEST_NEGATIVE_DEAERATION_PRES_CHECK; F32 hydPressure = getFilteredPressure( D9_PRES ); + // For Degassing close loop pump control, the calculated negative pressure added up with pressure adjustment factor + // to drive more negative pressure.Remove the pressure adjustment factor for actual pressure check. F32 targetPressure = getDialysatePumpTargetPressure( D12_PUMP ) - DEGAS_PUMP_TARGET_PRES_ADJ_THRESHOLD; if ( hydPressure <= targetPressure ) Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r9ff57b5ab7490ee5bbc2c51b25f738ee6c569ec1 -r88f86f2dc5107670e32f53e04e256ad8249ba55f --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 9ff57b5ab7490ee5bbc2c51b25f738ee6c569ec1) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 88f86f2dc5107670e32f53e04e256ad8249ba55f) @@ -156,6 +156,7 @@ MSG_ID_DD_PRE_GEN_DIALYSATE_REQUEST_DATA, MSG_ID_DD_STOP_PRE_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST, MSG_ID_DD_STOP_GEN_DIALYSATE_MODE_OVERRIDE_REQUEST, + MSG_ID_FW_VERSIONS_REQUEST, #ifdef __PUMPTEST__ MSG_ID_DD_PISTON_PUMP_DATA_PUBLISH_OVERRIDE_REQUEST, MSG_ID_DD_PISTON_PUMP_START_STOP_OVERRIDE_REQUEST, @@ -233,6 +234,7 @@ &handlePreGenDialysateRequestMsg, &testDDStopPreGenDialysateOverride, &testDDStopGenDialysateOverride, + &handleVersionRequestMessage, #ifdef __PUMPTEST__ &testDDPistonPumpControlDataPublishIntervalOverride, &testDDPistonPumpStartStopOverride, @@ -668,15 +670,15 @@ // Record UI version information memcpy( (U08*)(&uiVersionRecord), &message->payload, sizeof( UI_VERSIONS_T ) ); - // Build TD version record + // Build DD version record ddVersionRecord.major = DD_VERSION_MAJOR; ddVersionRecord.minor = DD_VERSION_MINOR; ddVersionRecord.micro = DD_VERSION_MICRO; ddVersionRecord.build = DD_VERSION_BUILD; getFPGAVersions( &ddVersionRecord.fpgaId, &ddVersionRecord.fpgaMajor, &ddVersionRecord.fpgaMinor, &ddVersionRecord.fpgaLab ); ddVersionRecord.compatibilityRev = SW_COMPATIBILITY_REV; - // Send TD version information + // Send DD version information result = sendMessage( MSG_ID_DD_VERSION_REPONSE, COMM_BUFFER_OUT_CAN_DD_BROADCAST, (U08*)&ddVersionRecord, sizeof( DD_VERSIONS_T ) ); } Index: firmware/App/Services/Messaging.h =================================================================== diff -u -r6679a2cd813b21a8cb4c58b3eeb721e0eef9a10b -r88f86f2dc5107670e32f53e04e256ad8249ba55f --- firmware/App/Services/Messaging.h (.../Messaging.h) (revision 6679a2cd813b21a8cb4c58b3eeb721e0eef9a10b) +++ firmware/App/Services/Messaging.h (.../Messaging.h) (revision 88f86f2dc5107670e32f53e04e256ad8249ba55f) @@ -67,6 +67,7 @@ // handler functions **************************************** BOOL handleSetTDOperationMode( MESSAGE_T *message ); +BOOL handleVersionRequestMessage( MESSAGE_T *message ); // Test Support Messaging Functions ************************** Index: firmware/App/Services/ROInterface.c =================================================================== diff -u -r9102c5da21a15bdaf4bb3bc38795ceb064e3c443 -r88f86f2dc5107670e32f53e04e256ad8249ba55f --- firmware/App/Services/ROInterface.c (.../ROInterface.c) (revision 9102c5da21a15bdaf4bb3bc38795ceb064e3c443) +++ firmware/App/Services/ROInterface.c (.../ROInterface.c) (revision 88f86f2dc5107670e32f53e04e256ad8249ba55f) @@ -41,6 +41,7 @@ static RO_OP_MODE_T roCurrentOpMode; ///< Current TD operation mode. static U32 roSubMode; ///< Current state (sub-mode) of current TD operation mode. static F32 roFlowRate; ///< RO flow rate +static RO_CMD_ID cmdID; ///< RO mode ( Pregen or Gen Water) static BOOL roOpModeDataFreshFlag = FALSE; ///< Flag to signal/process fresh RO op mode data @@ -61,6 +62,7 @@ roCurrentOpMode = RO_MODE_INIT; roSubMode = 0; roFlowRate = MAX_RO_FLOW_RATE; + cmdID = RO_PRE_GEN; } /**********************************************************************//** @@ -111,8 +113,8 @@ /*********************************************************************//** * @brief - * The cmdROStartStop function sends a start/stop command to RO to deliver - * purified water and required flow rate. + * The cmdROStartStop function sends a start/stop command to RO for mode + * transition and generate water with commanded flow rate. * @details Inputs: none * @details Outputs: start/stop command along with flow rate if applicable. * @param startStop To start/stop the RO delivery. @@ -126,6 +128,7 @@ U08 *payloadPtr = msg.payload; // Populate RO start message + roStartRequest.cmdID = (U32)getROModeCmd(); roStartRequest.start = startStop; roStartRequest.roRate = getROFlowRate(); @@ -169,6 +172,32 @@ /*********************************************************************//** * @brief + * The setROModeCmd function sets RO operation mode to be transitioned when + * start/stop request sent from DD . + * @details \b Inputs: none + * @details \b Outputs: cmdID + * @param cmdMode RO Operation mode change + * @return none. + *************************************************************************/ +void setROModeCmd( RO_CMD_ID cmdMode ) +{ + cmdID = cmdMode; +} + +/*********************************************************************//** + * @brief + * The getROModeCmd function gets the last set RO mode for transition request. + * @details \b Inputs: RO Operation mode change command + * @details \b Outputs: none + * @return latest RO Mode change command. + *************************************************************************/ +RO_CMD_ID getROModeCmd( void ) +{ + return cmdID; +} + +/*********************************************************************//** + * @brief * The getROOpMode function gets the current latest reported RO operating mode. * @details \b Inputs: roCurrentOpMode * @details \b Outputs: none Index: firmware/App/Services/ROInterface.h =================================================================== diff -u -r9102c5da21a15bdaf4bb3bc38795ceb064e3c443 -r88f86f2dc5107670e32f53e04e256ad8249ba55f --- firmware/App/Services/ROInterface.h (.../ROInterface.h) (revision 9102c5da21a15bdaf4bb3bc38795ceb064e3c443) +++ firmware/App/Services/ROInterface.h (.../ROInterface.h) (revision 88f86f2dc5107670e32f53e04e256ad8249ba55f) @@ -19,6 +19,7 @@ #define __RO_INTERFACE_H__ #include "DDCommon.h" +#include "MessagePayloads.h" #include "TDDefs.h" #include "RODefs.h" @@ -43,6 +44,8 @@ BOOL cmdROStartStop( BOOL startStop); void setROFlowRate( F32 roFlow ); F32 getROFlowRate( void ); +void setROModeCmd( RO_CMD_ID cmdMode ); +RO_CMD_ID getROModeCmd( void ); void setROOpMode( U32 opMode, U32 subMode ); RO_OP_MODE_T getROOpMode( void ); Index: firmware/App/Services/TDInterface.c =================================================================== diff -u -r6e36d2fd90b130f540494f4128951d81e7dc5ed5 -r88f86f2dc5107670e32f53e04e256ad8249ba55f --- firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision 6e36d2fd90b130f540494f4128951d81e7dc5ed5) +++ firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision 88f86f2dc5107670e32f53e04e256ad8249ba55f) @@ -345,8 +345,12 @@ // Process the pre-gen dialysate delivery request message if ( ( DD_MODE_STAN == ddMode ) && ( TRUE == startPreGenRequest.start ) ) { - // start dialysate generation + // start pre-gen dialysate result = requestDDPreGenStart(); + // Update Temperature, Acid/Bicarb type and dialysate rate for pregen process. + setTDDialysateFlowrate( startPreGenRequest.dialRate ); + setTDTargetDialysateTemperature( startPreGenRequest.dialTemp ); + setTDAcidAndBicarbType( startPreGenRequest.acidType, startPreGenRequest.bicarbType ); } else if ( DD_MODE_PREG == ddMode ) {