Index: firmware/App/Services/Reservoirs.c =================================================================== diff -u -r67021fbc633259e8e1bce76749dbef7d0cb51998 -re6f3a632890f96a5aa282922d11df148bdd06587 --- firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 67021fbc633259e8e1bce76749dbef7d0cb51998) +++ firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision e6f3a632890f96a5aa282922d11df148bdd06587) @@ -18,7 +18,7 @@ #include // for memcpy() #include "LoadCell.h" -#include "ModeRecirculate.h" +#include "ModeGenIdle.h" #include "OperationModes.h" #include "Reservoirs.h" #include "SystemCommMessages.h" @@ -34,7 +34,6 @@ // ********** private definitions ********** #define MIN_RESERVOIR_VOLUME_ML 0 ///< Minimum reservoir volume in mL. -#define MAX_RESERVOIR_VOLUME_ML 2000 ///< Maximum reservoir volume in mL. #define DEFAULT_FILL_VOLUME_ML 1700 ///< Default fill volume for treatment in mL. #define MAX_FILL_VOLUME_ML MAX_RESERVOIR_VOLUME_ML ///< Maximum fill volume in mL. #define DEFAULT_DRAIN_VOLUME_ML 0 ///< Default drain volume in mL. @@ -155,20 +154,15 @@ cmdResponse.rejected = TRUE; cmdResponse.rejectCode = DG_CMD_REQUEST_REJECT_REASON_NONE; - // switch reservoir command only valid in re-circulate mode - if ( DG_MODE_CIRC == getCurrentOperationMode() ) + // switch reservoir command only valid in generation idle mode + if ( DG_MODE_GENE == getCurrentOperationMode() ) { switch ( resID ) { case DG_RESERVOIR_1: activeReservoir.data = (U32)resID; cmdResponse.rejected = FALSE; setValveState( VRF, VALVE_STATE_R2_C_TO_NO ); -#ifndef V_2_SYSTEM - setValveState( VRD1, VALVE_STATE_CLOSED ); -#else - setValveState( VRD, VALVE_STATE_R2_C_TO_NO ); -#endif setValveState( VRO, VALVE_STATE_R1_C_TO_NO ); setValveState( VRI, VALVE_STATE_R1_C_TO_NO ); break; @@ -177,11 +171,6 @@ activeReservoir.data = (U32)resID; cmdResponse.rejected = FALSE; setValveState( VRF, VALVE_STATE_R1_C_TO_NC ); -#ifndef V_2_SYSTEM - setValveState( VRD2, VALVE_STATE_CLOSED ); -#else - setValveState( VRD, VALVE_STATE_R1_C_TO_NC ); -#endif setValveState( VRO, VALVE_STATE_R2_C_TO_NC ); setValveState( VRI, VALVE_STATE_R2_C_TO_NC ); break; @@ -217,8 +206,8 @@ cmdResponse.rejected = TRUE; cmdResponse.rejectCode = DG_CMD_REQUEST_REJECT_REASON_NONE; - // valve setting command only valid in re-circulate mode - if ( DG_MODE_CIRC == getCurrentOperationMode() ) + // valve setting command only valid in generation idle mode + if ( DG_MODE_GENE == getCurrentOperationMode() ) { switch ( valveSettingID ) { @@ -264,8 +253,9 @@ cmdResponse.rejected = TRUE; cmdResponse.rejectCode = DG_CMD_REQUEST_REJECT_REASON_NONE; - // fill command only valid in re-circulate mode - if ( ( DG_MODE_CIRC == getCurrentOperationMode() ) && ( DG_RECIRCULATE_MODE_STATE_RECIRC_WATER == getCurrentRecirculateState() ) ) + // fill command only valid in generation idle mode + if ( ( DG_MODE_GENE == getCurrentOperationMode() ) && + ( DG_GEN_IDLE_MODE_STATE_FLUSH_WATER == getCurrentGenIdleState() ) ) { // validate parameters if ( fillToVolMl < MAX_FILL_VOLUME_ML ) @@ -291,7 +281,7 @@ * @brief * The stopFillCmd function handles a stop fill command from the HD. * @details Inputs: none - * @details Outputs: move to re-circulate mode + * @details Outputs: move to generation idle mode * @return none *************************************************************************/ void stopFillCmd( void ) @@ -306,7 +296,7 @@ if ( DG_MODE_FILL == getCurrentOperationMode() ) { fillVolumeTargetMl.data = 0; - requestNewOperationMode( DG_MODE_CIRC ); + requestNewOperationMode( DG_MODE_GENE ); cmdResponse.rejected = FALSE; } else @@ -321,7 +311,7 @@ * @brief * The startDrainCmd function handles a drain command from the HD. * @details Inputs: none - * @details Outputs: Start draining in re-circulate mode + * @details Outputs: Start draining in generation idle mode * @param drainCmd drain command data record * @return none *************************************************************************/ @@ -333,8 +323,8 @@ cmdResponse.rejected = TRUE; cmdResponse.rejectCode = DG_CMD_REQUEST_REJECT_REASON_NONE; - // drain command only valid in re-circulate mode - if ( DG_MODE_CIRC == getCurrentOperationMode() ) + // drain command only valid in generation idle mode + if ( DG_MODE_GENE == getCurrentOperationMode() ) { // validate parameters if ( drainCmd.targetVolume <= MAX_DRAIN_VOLUME_ML ) @@ -361,7 +351,7 @@ * @brief * The stopDrainCmd function handles a stop drain command from the HD. * @details Inputs: none - * @details Outputs: move to re-circulate mode + * @details Outputs: move to generation idle mode * @return none *************************************************************************/ void stopDrainCmd( void ) @@ -376,7 +366,7 @@ if ( DG_MODE_DRAI == getCurrentOperationMode() ) { drainVolumeTargetMl.data = 0; - requestNewOperationMode( DG_MODE_CIRC ); + requestNewOperationMode( DG_MODE_GENE ); cmdResponse.rejected = FALSE; } else @@ -434,16 +424,16 @@ /*********************************************************************//** * @brief - * The getReservoirWeight function returns the large filtered weight + * The getReservoirWeight function returns the small filtered weight * of the reservoir's associated load cell. * @details Inputs: associatedLoadCell[] * @details Outputs: none * @param reservoirId id of reservoir to get weight from - * @return large filtered weight + * @return small filtered weight *************************************************************************/ F32 getReservoirWeight( DG_RESERVOIR_ID_T reservoirId ) { - return getLoadCellLargeFilteredWeight( associatedLoadCell[ reservoirId ] ); + return getLoadCellSmallFilteredWeight( associatedLoadCell[ reservoirId ] ); } /*********************************************************************//** @@ -533,11 +523,17 @@ *************************************************************************/ void tareLoadCellsAtEmpty( DG_RESERVOIR_ID_T reservoirId ) { + U32 const targetDrainVolume = getReservoirDrainVolumeTargetMl(); + if ( TRUE == tareLoadCellRequest ) { tareLoadCellRequest = FALSE; - tareLoadCell( associatedLoadCell[ reservoirId ] ); - tareLoadCell( redundantLoadCell[ reservoirId ] ); + + if ( MIN_RESERVOIR_VOLUME_ML == targetDrainVolume ) + { + tareLoadCell( associatedLoadCell[ reservoirId ] ); + tareLoadCell( redundantLoadCell[ reservoirId ] ); + } } }