Index: firmware/App/Services/Reservoirs.h =================================================================== diff -u -r8059b3b67364c3593091a23266f33186430ffe26 -re86af65442a36724461317980814f0868bd8c995 --- firmware/App/Services/Reservoirs.h (.../Reservoirs.h) (revision 8059b3b67364c3593091a23266f33186430ffe26) +++ firmware/App/Services/Reservoirs.h (.../Reservoirs.h) (revision e86af65442a36724461317980814f0868bd8c995) @@ -14,32 +14,32 @@ * @date (original) 18-Mar-2020 * ***************************************************************************/ - -#ifndef __RESERVOIRS_H__ -#define __RESERVOIRS_H__ - -#include "DGCommon.h" - -/** - * @defgroup Reservoirs Reservoirs - * @brief Reservoirs service module. Maintains reservoir set points and handles reservoir related commands from the HD. - * - * @addtogroup Reservoirs - * @{ - */ - -// ********** public definitions ********** - -/// Enumeration of reservoirs. -typedef enum Reservoirs -{ - RESERVOIR_1 = 0, ///< Reservoir number 1 - RESERVOIR_2, ///< Reservoir number 2 - NUM_OF_RESERVOIRS ///< Number of reservoirs -} RESERVOIR_ID_T; +#ifndef __RESERVOIRS_H__ +#define __RESERVOIRS_H__ + +#include "DGCommon.h" +#include "DGDefs.h" + +/** + * @defgroup Reservoirs Reservoirs + * @brief Reservoirs service module. Maintains reservoir set points and handles reservoir related commands from the HD. + * + * @addtogroup Reservoirs + * @{ + */ + +// ********** public definitions ********** + #pragma pack(push,1) +/// Fill command data structure. +typedef struct +{ + U32 fillToVolumeMl; ///< Target volume to fill to (in mL) + U32 cmd; ///< General command (start/stop) +} FILL_CMD_T; + /// Drain command data structure. typedef struct { @@ -55,26 +55,38 @@ U32 rejectCode; ///< Reason code for rejecting the command } DG_CMD_RESPONSE_T; +/// Reservoir data struct. +typedef struct +{ + U32 activeReservoir; ///< Active reservoir ID + U32 fillToVolumeMl; ///< Volume target to fill to + U32 drainToVolumeMl; ///< Volume target to drain to +} RESERVOIR_DATA_T; + #pragma pack(pop) // ********** public function prototypes ********** void initReservoirs( void ); void execReservoirs( void ); - -void setActiveReservoirCmd( RESERVOIR_ID_T resID ); // handle switch reservoirs command from HD -void startFillCmd( U32 fillToVolMl ); // handle fill command from HD -void stopFillCmd( void ); // handle stop fill command from HD -void startDrainCmd( DRAIN_CMD_T drainCmd ); // handle drain command from HD -void stopDrainCmd( void ); // handle stop drain command from HD - -RESERVOIR_ID_T getInactiveReservoir( void ); -BOOL hasTargetFillVolumeBeenReached( RESERVOIR_ID_T reservoirId ); -BOOL hasTargetDrainVolumeBeenReached( RESERVOIR_ID_T reservoirId , U32 timeout ); -void resetReservoirLoadCellsOffset( RESERVOIR_ID_T reservoirId ); +void setActiveReservoirCmd( DG_RESERVOIR_ID_T resID ); // handle switch reservoirs command from HD +void changeValveSettingCmd( DG_VALVE_SETTING_ID_T valveSettingID ); // handle valve setting change command from HD +void startFillCmd( U32 fillToVolMl ); // handle fill command from HD +void stopFillCmd( void ); // handle stop fill command from HD +void startDrainCmd( DRAIN_CMD_T drainCmd ); // handle drain command from HD +void stopDrainCmd( void ); // handle stop drain command from HD + +void tareReservoir( void ); +void resetReservoirsLowestWeight( void ); + +DG_RESERVOIR_ID_T getInactiveReservoir( void ); +F32 getReservoirWeight( DG_RESERVOIR_ID_T reservoirId ); + +BOOL hasTargetFillVolumeBeenReached( DG_RESERVOIR_ID_T reservoirId ); +BOOL hasTargetDrainVolumeBeenReached( DG_RESERVOIR_ID_T reservoirId , U32 timeout ); -BOOL testSetDGActiveReservoirOverride( RESERVOIR_ID_T value ); +BOOL testSetDGActiveReservoirOverride( DG_RESERVOIR_ID_T value ); BOOL testResetDGActiveReservoirOverride( void ); BOOL testSetReservoirFillVolumeMlOverride( U32 value ); BOOL testResetReservoirFillVolumeMlOverride( void );