Index: firmware/App/Services/Reservoirs.c =================================================================== diff -u -r6145c5d1a645646587fb077df3c61eef2354f744 -r484b185f0cf4b2ea0ba9de331573952b1b5124b4 --- firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 6145c5d1a645646587fb077df3c61eef2354f744) +++ firmware/App/Services/Reservoirs.c (.../Reservoirs.c) (revision 484b185f0cf4b2ea0ba9de331573952b1b5124b4) @@ -53,19 +53,19 @@ static OVERRIDE_U32_T fillVolumeTargetMl = { 0, 0, 0, 0 }; ///< The target reservoir fill volume (in mL). static OVERRIDE_U32_T drainVolumeTargetMl = { 0, 0, 0, 0 }; ///< The target reservoir drain volume (in mL). -static LOAD_CELL_ID_T associatedLoadCell[ NUM_OF_RESERVOIRS ] = { LOAD_CELL_A1, - LOAD_CELL_B1 }; ///< The reservoirs' associate load cell. -static LOAD_CELL_ID_T redundantLoadCell[ NUM_OF_RESERVOIRS ] = { LOAD_CELL_A2, - LOAD_CELL_B2 }; ///< The reservoirs' associate redundant load cell. +/// The reservoirs' associate load cell. +static LOAD_CELL_ID_T associatedLoadCell[ NUM_OF_DG_RESERVOIRS ] = { LOAD_CELL_RESERVOIR_1_PRIMARY, LOAD_CELL_RESERVOIR_2_PRIMARY }; +/// The reservoirs' associate redundant load cell. +static LOAD_CELL_ID_T redundantLoadCell[ NUM_OF_DG_RESERVOIRS ] = { LOAD_CELL_RESERVOIR_1_BACKUP, LOAD_CELL_RESERVOIR_2_BACKUP }; -static F32 reservoirLowestWeight[ NUM_OF_RESERVOIRS ] = { MAX_RESERVOIR_WEIGHT, - MAX_RESERVOIR_WEIGHT }; ///< The reservoirs' lowest weight during draining. -static U32 reservoirWeightUnchangeStartTime[ NUM_OF_RESERVOIRS ] = { 0, 0 }; ///< The reservoirs' weight start time when weight stop decreasing. +/// The reservoirs' lowest weight during draining. +static F32 reservoirLowestWeight[ NUM_OF_DG_RESERVOIRS ] = { MAX_RESERVOIR_WEIGHT, MAX_RESERVOIR_WEIGHT }; +static U32 reservoirWeightUnchangeStartTime[ NUM_OF_DG_RESERVOIRS ] = { 0, 0 }; ///< The reservoirs' weight start time when weight stop decreasing. static BOOL tareLoadCellRequest; ///< Flag indicates if load cell tare has been requested by HD. // ********** private function prototypes ********** -static RESERVOIR_ID_T getActiveReservoir( void ); +static DG_RESERVOIR_ID_T getActiveReservoir( void ); static U32 getReservoirFillVolumeTargetMl( void ); static U32 getReservoirDrainVolumeTargetMl( void ); @@ -78,7 +78,7 @@ *************************************************************************/ void initReservoirs( void ) { - activeReservoir.data = RESERVOIR_2; + activeReservoir.data = DG_RESERVOIR_2; setValveState( VRF, VALVE_STATE_R1_C_TO_NC ); setValveState( VRD, VALVE_STATE_R1_C_TO_NC ); setValveState( VRO, VALVE_STATE_R2_C_TO_NC ); @@ -116,7 +116,7 @@ * @param resID ID of reservoir to set as active * @return none *************************************************************************/ -void setActiveReservoirCmd( RESERVOIR_ID_T resID ) +void setActiveReservoirCmd( DG_RESERVOIR_ID_T resID ) { DG_CMD_RESPONSE_T cmdResponse; @@ -129,7 +129,7 @@ { switch ( resID ) { - case RESERVOIR_1: + case DG_RESERVOIR_1: activeReservoir.data = (U32)resID; cmdResponse.rejected = FALSE; setValveState( VRF, VALVE_STATE_R2_C_TO_NO ); @@ -138,7 +138,7 @@ setValveState( VRI, VALVE_STATE_R1_C_TO_NO ); break; - case RESERVOIR_2: + case DG_RESERVOIR_2: activeReservoir.data = (U32)resID; cmdResponse.rejected = FALSE; setValveState( VRF, VALVE_STATE_R1_C_TO_NC ); @@ -170,7 +170,7 @@ * @param valveSettingID ID of valve setting to change valves to * @return none *************************************************************************/ -void changeValveSettingCmd( VALVE_SETTING_ID_T valveSettingID ) +void changeValveSettingCmd( DG_VALVE_SETTING_ID_T valveSettingID ) { DG_CMD_RESPONSE_T cmdResponse; @@ -183,13 +183,13 @@ { switch ( valveSettingID ) { - case VALVE_SETTING_R1_TO_R2: + case DG_VALVE_SETTING_R1_TO_R2: cmdResponse.rejected = FALSE; setValveState( VRO, VALVE_STATE_R1_C_TO_NO ); setValveState( VRI, VALVE_STATE_R2_C_TO_NC ); break; - case VALVE_SETTING_R2_TO_R1: + case DG_VALVE_SETTING_R2_TO_R1: cmdResponse.rejected = FALSE; setValveState( VRO, VALVE_STATE_R2_C_TO_NC ); setValveState( VRI, VALVE_STATE_R1_C_TO_NO ); @@ -356,30 +356,44 @@ * @details Outputs: none * @return the currently inactive reservoir. *************************************************************************/ -RESERVOIR_ID_T getInactiveReservoir( void ) +DG_RESERVOIR_ID_T getInactiveReservoir( void ) { - RESERVOIR_ID_T inactiveReservoir = RESERVOIR_1; + DG_RESERVOIR_ID_T inactiveReservoir = DG_RESERVOIR_1; - if ( RESERVOIR_1 == getActiveReservoir() ) + if ( DG_RESERVOIR_1 == getActiveReservoir() ) { - inactiveReservoir = RESERVOIR_2; + inactiveReservoir = DG_RESERVOIR_2; } return inactiveReservoir; } /*********************************************************************//** * @brief + * The getReservoirWeight function returns the large 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 + *************************************************************************/ +F32 getReservoirWeight( DG_RESERVOIR_ID_T reservoirId ) +{ + return getLoadCellLargeFilteredWeight( associatedLoadCell[ reservoirId ] ); +} + +/*********************************************************************//** + * @brief * The hasTargetFillVolumeReached function checks if the target fill volume * for specific reservoir has been reached. * @details Inputs: fillVolumeTargetMl * @details Outputs: none * @param reservoirId reservoir id * @return TRUE if target fill volume has been reached, FALSE if not. *************************************************************************/ -BOOL hasTargetFillVolumeBeenReached( RESERVOIR_ID_T reservoirId ) +BOOL hasTargetFillVolumeBeenReached( DG_RESERVOIR_ID_T reservoirId ) { - F32 const loadcellWeight = getLoadCellFilteredWeight( associatedLoadCell[ reservoirId ] ); + F32 const loadcellWeight = getLoadCellSmallFilteredWeight( associatedLoadCell[ reservoirId ] ); U32 const targetFillVolume = getReservoirFillVolumeTargetMl(); BOOL const hasTargetReached = ( loadcellWeight >= targetFillVolume ); @@ -396,10 +410,10 @@ * @param timeout timeout period when weight remains the same * @return TRUE if target drain volume has been reached or exceeds time limit, FALSE if not. *************************************************************************/ -BOOL hasTargetDrainVolumeBeenReached( RESERVOIR_ID_T reservoirId, U32 timeout ) +BOOL hasTargetDrainVolumeBeenReached( DG_RESERVOIR_ID_T reservoirId, U32 timeout ) { BOOL result = FALSE; - F32 const loadcellWeight = getLoadCellFilteredWeight( associatedLoadCell[ reservoirId ] ); + F32 const loadcellWeight = getLoadCellSmallFilteredWeight( associatedLoadCell[ reservoirId ] ); U32 const targetDrainVolume = getReservoirDrainVolumeTargetMl(); if ( loadcellWeight < reservoirLowestWeight[ reservoirId ] ) @@ -436,7 +450,7 @@ * @param reservoirId reservoir id * @return none *************************************************************************/ -void resetReservoirLoadCellsOffset( RESERVOIR_ID_T reservoirId ) +void resetReservoirLoadCellsOffset( DG_RESERVOIR_ID_T reservoirId ) { resetLoadCellOffset( associatedLoadCell[ reservoirId ] ); resetLoadCellOffset( redundantLoadCell[ reservoirId ] ); @@ -449,13 +463,13 @@ * @details Outputs: none * @return the currently active reservoir. *************************************************************************/ -static RESERVOIR_ID_T getActiveReservoir( void ) +static DG_RESERVOIR_ID_T getActiveReservoir( void ) { - RESERVOIR_ID_T result = (RESERVOIR_ID_T)activeReservoir.data; + DG_RESERVOIR_ID_T result = (DG_RESERVOIR_ID_T)activeReservoir.data; if ( OVERRIDE_KEY == activeReservoir.override ) { - result = (RESERVOIR_ID_T)activeReservoir.ovData; + result = (DG_RESERVOIR_ID_T)activeReservoir.ovData; } return result; @@ -513,7 +527,7 @@ * @param value override active reservoir ID * @return TRUE if override successful, FALSE if not *************************************************************************/ -BOOL testSetDGActiveReservoirOverride( RESERVOIR_ID_T value ) +BOOL testSetDGActiveReservoirOverride( DG_RESERVOIR_ID_T value ) { BOOL result = FALSE;