Index: firmware/App/Services/Reservoirs.c =================================================================== diff -u -r847478dd75aac2edfe27df454ac5a644b6f30040 -r78a138b18328bce8312abac79d76aad9dfe8ea3a --- firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 847478dd75aac2edfe27df454ac5a644b6f30040) +++ firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 78a138b18328bce8312abac79d76aad9dfe8ea3a) @@ -472,21 +472,47 @@ if ( hasTimeOut || hasTargetReached ) { result = TRUE; + // Reset for next drain reservoirLowestWeight[ reservoirId ] = MAX_RESERVOIR_WEIGHT; - - if ( tareLoadCellRequest ) - { - tareLoadCellRequest = FALSE; - tareLoadCell( associatedLoadCell[ reservoirId ] ); - tareLoadCell( redundantLoadCell[ reservoirId ] ); - } } return result; } /*********************************************************************//** * @brief + * The tareLoadCellsAtEmpty function tares the load cells for the inactive + * reservoir when ModeDrain empties it and tare request is pending. + * @details Inputs: tareLoadCellRequest + * @details Outputs: tareLoadCellRequest + * @param reservoirId ID of reservoir to tare + * @return none + *************************************************************************/ +void tareLoadCellsAtEmpty( DG_RESERVOIR_ID_T reservoirId ) +{ + if ( TRUE == tareLoadCellRequest ) + { + tareLoadCellRequest = FALSE; + tareLoadCell( associatedLoadCell[ reservoirId ] ); + tareLoadCell( redundantLoadCell[ reservoirId ] ); + } +} + +/*********************************************************************//** + * @brief + * The isReservoirTarePending function determines whether a reservoir tare + * request is currently pending. + * @details Inputs: tareLoadCellRequest + * @details Outputs: none + * @return tareLoadCellRequest + *************************************************************************/ +BOOL isReservoirTarePending( void ) +{ + return tareLoadCellRequest; +} + +/*********************************************************************//** + * @brief * The getActiveReservoir function gets the active reservoir. * @details Inputs: activeReservoir * @details Outputs: none