Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -r1a685471524555a374854c0c9ec8e208e71fe2df -rf94085c6fbf817a07db7225d6748b5347dfb12d3 --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 1a685471524555a374854c0c9ec8e208e71fe2df) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision f94085c6fbf817a07db7225d6748b5347dfb12d3) @@ -157,7 +157,7 @@ { if ( DG_RECIRCULATE_MODE_STATE_RECIRC_WATER == dgSubMode ) { - cmdStartDGDrain( DRAIN_RESERVOIR_TO_VOLUME_ML ); + cmdStartDGDrain( DRAIN_RESERVOIR_TO_VOLUME_ML, FALSE ); } } else if ( DG_MODE_DRAI == dgOpMode ) @@ -599,14 +599,19 @@ * @brief * The cmdStartDGDrain function sends a drain command message to the DG. * @details Inputs: none - * @details Outputs: drain command sent to DG. - * @param drainToVolMl volume (in mL) to drain inactive reservoir to + * @details Outputs: drain command sent to DG. + * @param drainToVolMl volume (in mL) to drain inactive reservoir to + * @param tareLoadCell flag to tell DG tare load cell or not * @return none *************************************************************************/ -void cmdStartDGDrain( U32 drainToVolMl ) -{ +void cmdStartDGDrain( U32 drainToVolMl, BOOL tareLoadCell ) +{ + DRAIN_RESERVOIR_CMD_PAYLOAD_T payload; + + payload.drainToVolumeML = drainToVolMl; + payload.tareLoadCells = tareLoadCell; dgReservoirDrainVolumeTargetSet = drainToVolMl; - sendDGDrainCommand( drainToVolMl ); + sendDGDrainCommand( &payload ); } /*********************************************************************//** Index: firmware/App/Controllers/DGInterface.h =================================================================== diff -u -rb01542f8e4ef5a29e9b08fc0d465478de516bf02 -rf94085c6fbf817a07db7225d6748b5347dfb12d3 --- firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision b01542f8e4ef5a29e9b08fc0d465478de516bf02) +++ firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision f94085c6fbf817a07db7225d6748b5347dfb12d3) @@ -106,6 +106,13 @@ 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; + // ********** public function prototypes ********** void initDGInterface( void ); @@ -133,7 +140,7 @@ 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 ); Index: firmware/App/Modes/Prime.c =================================================================== diff -u -r5c521c4e9f0840c337133dc041f5e61bc89353ea -rf94085c6fbf817a07db7225d6748b5347dfb12d3 --- firmware/App/Modes/Prime.c (.../Prime.c) (revision 5c521c4e9f0840c337133dc041f5e61bc89353ea) +++ firmware/App/Modes/Prime.c (.../Prime.c) (revision f94085c6fbf817a07db7225d6748b5347dfb12d3) @@ -187,7 +187,7 @@ case PRIME_RESERVOIR_MGMT_FLUSH_DG_LINES_STATE: if ( ( DG_MODE_CIRC == dgOpMode ) && ( DG_RECIRCULATE_MODE_STATE_RECIRC_WATER == dgSubMode ) ) { - cmdStartDGDrain( PRIME_DRAIN_RESERVOIR_TO_VOLUME_ML ); + cmdStartDGDrain( PRIME_DRAIN_RESERVOIR_TO_VOLUME_ML, TRUE ); } if ( DG_MODE_DRAI == dgOpMode ) Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r780d9a73fe04ddd85282c413fbe5984f374f2b61 -rf94085c6fbf817a07db7225d6748b5347dfb12d3 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 780d9a73fe04ddd85282c413fbe5984f374f2b61) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision f94085c6fbf817a07db7225d6748b5347dfb12d3) @@ -569,7 +569,7 @@ * @param drainToVolumeMl volume (in mL) to drain the inactive reservoir to * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ -BOOL sendDGDrainCommand( U32 drainToVolumeMl ) +BOOL sendDGDrainCommand( DRAIN_RESERVOIR_CMD_PAYLOAD_T *drainCmdPtr ) { BOOL result; MESSAGE_T msg; @@ -578,9 +578,9 @@ // create a message record blankMessage( &msg ); msg.hdr.msgID = MSG_ID_DG_DRAIN_CMD; - msg.hdr.payloadLen = sizeof( U32 ); + msg.hdr.payloadLen = sizeof( DRAIN_RESERVOIR_CMD_PAYLOAD_T ); - memcpy( payloadPtr, &drainToVolumeMl, sizeof( U32 ) ); + memcpy( payloadPtr, drainCmdPtr, sizeof( DRAIN_RESERVOIR_CMD_PAYLOAD_T ) ); // serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer result = serializeMessage( msg, COMM_BUFFER_OUT_CAN_HD_2_DG, ACK_REQUIRED ); Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r933a18d740285e70be9d00696ed0f5a5381bc8e4 -rf94085c6fbf817a07db7225d6748b5347dfb12d3 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 933a18d740285e70be9d00696ed0f5a5381bc8e4) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision f94085c6fbf817a07db7225d6748b5347dfb12d3) @@ -160,7 +160,7 @@ BOOL sendDGFillCommand( U32 fillToVolumeMl ); // MSG_ID_DG_DRAIN_CMD -BOOL sendDGDrainCommand( U32 drainToVolumeMl ); +BOOL sendDGDrainCommand( DRAIN_RESERVOIR_CMD_PAYLOAD_T *drainCmdPtr ); // MSG_ID_STARTING_STOPPING_TREATMENT_CMD BOOL sendDGStartStopCommand( BOOL start );