Index: firmware/App/Controllers/DGInterface.h =================================================================== diff -u -rb01542f8e4ef5a29e9b08fc0d465478de516bf02 -rc282822f36836a8127f447c8ac5b8a50e851be63 --- firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision b01542f8e4ef5a29e9b08fc0d465478de516bf02) +++ firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision c282822f36836a8127f447c8ac5b8a50e851be63) @@ -32,28 +32,20 @@ // ********** public definitions ********** -#define DRAIN_RESERVOIR_TO_VOLUME_ML 200 ///< Drain reservoir to this volume (in mL) during treatment. +#define DRAIN_RESERVOIR_TO_VOLUME_ML 200 ///< Drain reservoir to this volume (in mL) during treatment. #ifndef V1_5_SYSTEM -#define FILL_RESERVOIR_TO_VOLUME_ML 1700 ///< Fill reservoir to this volume (in mL) during treatment. +#define FILL_RESERVOIR_TO_VOLUME_ML 1700 ///< Fill reservoir to this volume (in mL) during treatment. #else -#define FILL_RESERVOIR_TO_VOLUME_ML 1300 ///< Fill reservoir to this volume (in mL) during treatment. +#define FILL_RESERVOIR_TO_VOLUME_ML 1300 ///< Fill reservoir to this volume (in mL) during treatment. #endif -/// Enumeration of DG reservoirs. -typedef enum DG_Reservoirs -{ - DG_RESERVOIR_1 = 0, ///< Reservoir #1. - DG_RESERVOIR_2, ///< Reservoir #2. - NUM_OF_DG_RESERVOIRS ///< Number of reservoirs. -} DG_RESERVOIR_ID_T; - /// Enumeration of DG pressure sensors. typedef enum DG_PressureSensors { DG_PRESSURE_SENSOR_RO_PUMP_INLET = 0, ///< RO pump pressure sensor. DG_PRESSURE_SENSOR_RO_PUMP_OUTLET, ///< RO pump pressure sensor. - DG_PRESSURE_SENSOR_DRAIN_PUMP_INLET, ///< drain pump inlet pressure. - DG_PRESSURE_SENSOR_DRAIN_PUMP_OUTLET, ///< drain pump outlet pressure. + DG_PRESSURE_SENSOR_DRAIN_PUMP_INLET, ///< Drain pump inlet pressure. + DG_PRESSURE_SENSOR_DRAIN_PUMP_OUTLET, ///< Drain pump outlet pressure. NUM_OF_DG_PRESSURE_SENSORS ///< Number of pressure sensors. } DG_PRESSURE_SENSORS_T; @@ -106,19 +98,41 @@ F32 HtrTrimInternal; } DG_TEMPERATURES_T; +/// Payload record structure for a drain reservoir command message. +typedef struct +{ + U32 drainToVolumeML; + BOOL tareLoadCells; +} DRAIN_RESERVOIR_CMD_PAYLOAD_T; + +/// DG command response data record structure. +typedef struct +{ + U32 commandID; ///< The command DG is responding to + BOOL rejected; ///< Flag indicates if the command has been rejected + U32 rejectCode; ///< Reason code for rejecting the command +} DG_CMD_RESPONSE_T; + // ********** public function prototypes ********** -void initDGInterface( void ); +void initDGInterface( void ); + +void execDGInterfaceMonitor( void ); + void initTreatmentReservoirMgmt( void ); void execTreatmentReservoirMgmt( void ); DG_OP_MODE_T getDGOpMode( void ); U32 getDGSubMode( void ); DG_RESERVOIR_ID_T getDGActiveReservoir( void ); +DG_RESERVOIR_ID_T getDGInactiveReservoir( void ); F32 getDGPressure( DG_PRESSURE_SENSORS_T sensorID ); U32 getDGROPumpPressureSetPt( void ); F32 getDGROPumpFlowRateMlMin( void ); U32 getDGDrainPumpRPMSetPt( void ); +F32 getLoadCellWeightInGrams( LOAD_CELL_ID_T loadCellID ); +F32 getReservoirWeightSmallFilter( DG_RESERVOIR_ID_T resID ); +F32 getReservoirWeightLargeFilter( DG_RESERVOIR_ID_T resID ); void setDGOpMode( U32 opMode, U32 subMode ); void setDialysateTemperatureReadings( F32 temp1, F32 temp2 ); @@ -127,17 +141,24 @@ void setDGPressures( F32 roIn, F32 roOut, F32 drainIn, F32 drainOut ); void setDGROPumpData( U32 presSetPt, F32 flowRate ); void setDGDrainPumpData( U32 rpmSetPt ); +void setNewLoadCellReadings( F32 res1Primary, F32 res1Backup, F32 res2Primary, F32 res2Backup ); void cmdSetDGDialysateTargetTemps( F32 primaryHtrTemp, F32 trimmerHtrTemp ); void cmdStartDG( void ); void cmdStopDG( void ); void cmdSetDGActiveReservoir( DG_RESERVOIR_ID_T resID ); void cmdStartDGFill( U32 fillToVolMl ); -void cmdStartDGDrain( U32 drainToVolMl ); +void cmdStartDGDrain( U32 drainToVolMl, BOOL tareLoadCell ); void cmdStartDGTrimmerHeater( void ); void cmdStopDGTrimmerHeater( void ); void cmdDGSampleWater( void ); +void handleDGCommandResponse( U08 *cmdRespPtr ); +void getDGCommandResponse( DG_CMD_RESPONSE_T *cmdRespPtr ); + +BOOL testSetDialOutLoadCellWeightOverride( U32 sensor, F32 value ); +BOOL testResetDialOutLoadCellWeightOverride( U32 sensor ); + /**@}*/ #endif