Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -r27f3db92495948d4c1192421c1b0c20338c4a034 -re8f30ca933a7c373c1a4a749ad84adb2f63b7722 --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 27f3db92495948d4c1192421c1b0c20338c4a034) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision e8f30ca933a7c373c1a4a749ad84adb2f63b7722) @@ -57,7 +57,8 @@ // DG status static DG_OP_MODE_T dgCurrentOpMode = DG_MODE_INIT; ///< Current DG operation mode. -static U32 dgSubMode = 0; ///< Current state (sub-mode) of current DG operation mode. +static U32 dgSubMode = 0; ///< Current state (sub-mode) of current DG operation mode. +static BOOL dgStartCommandSent = FALSE; ///< Flag indicates command to start DG has been sent. static BOOL dgStarted = FALSE; ///< Flag indicates whether we have commanded the DG to start or stop. static BOOL dgTrimmerHeaterOn = FALSE; ///< Flag indicates whether we have commanded the DG to start or stop the trimmer heater. static BOOL dgWaterSampled = FALSE; ///< Flag indicates whether we have commanded the DG to sample water. @@ -734,7 +735,7 @@ *************************************************************************/ void cmdStartDG( void ) { - dgStarted = TRUE; + dgStartCommandSent = TRUE; sendDGStartStopCommand( START_DG_CMD ); } @@ -839,8 +840,22 @@ { dgCmdResp[ DG_CMD_START_FILL ].commandID = DG_CMD_NONE; dgReservoirFillVolumeTargetSet = fillToVolMl; - sendDGFillCommand( fillToVolMl ); + sendDGFillCommand( DG_CMD_START, fillToVolMl ); } + +/*********************************************************************//** + * @brief + * The cmdStopDGFill function sends a fill command with stop parameter message to the DG. + * @details Inputs: none + * @details Outputs: fill command with stop parameter sent to DG. + * @return none + *************************************************************************/ +void cmdStopDGFill( void ) +{ + dgCmdResp[ DG_CMD_STOP_FILL ].commandID = DG_CMD_NONE; + dgReservoirFillVolumeTargetSet = 0; + sendDGFillCommand( DG_CMD_STOP, 0 ); +} /*********************************************************************//** * @brief Index: firmware/App/Controllers/DGInterface.h =================================================================== diff -u -r27f3db92495948d4c1192421c1b0c20338c4a034 -re8f30ca933a7c373c1a4a749ad84adb2f63b7722 --- firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision 27f3db92495948d4c1192421c1b0c20338c4a034) +++ firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision e8f30ca933a7c373c1a4a749ad84adb2f63b7722) @@ -32,7 +32,7 @@ // ********** public definitions ********** -#define DRAIN_RESERVOIR_TO_VOLUME_ML 200 ///< Drain reservoir to this volume (in mL) during treatment. +#define DRAIN_RESERVOIR_TO_VOLUME_ML 0 ///< 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. #else @@ -149,7 +149,8 @@ void cmdStopDG( void ); void cmdSetDGActiveReservoir( DG_RESERVOIR_ID_T resID ); void cmdChangeDGValveSetting( DG_VALVE_SETTING_ID_T valveSettingID ); -void cmdStartDGFill( U32 fillToVolMl ); +void cmdStartDGFill( U32 fillToVolMl ); +void cmdStopDGFill( void ); void cmdStartDGDrain( U32 drainToVolMl, BOOL tareLoadCell ); void cmdStartDGTrimmerHeater( void ); void cmdStopDGTrimmerHeater( void ); Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -r2346a0cb59957d90fe61cb3bff4ec7ffc3df10a4 -re8f30ca933a7c373c1a4a749ad84adb2f63b7722 --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 2346a0cb59957d90fe61cb3bff4ec7ffc3df10a4) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision e8f30ca933a7c373c1a4a749ad84adb2f63b7722) @@ -107,8 +107,8 @@ { initPostTreatmentMode(); - // TODO - stop any DG fill that may be in progress from an aborted treatment - // cmdStopDGFill(); + // Stop any DG fill that may be in progress from an aborted treatment + cmdStopDGFill(); // Set user alarm recovery actions allowed in this mode setAlarmUserActionEnabled( ALARM_USER_ACTION_RESUME, TRUE ); Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r2346a0cb59957d90fe61cb3bff4ec7ffc3df10a4 -re8f30ca933a7c373c1a4a749ad84adb2f63b7722 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 2346a0cb59957d90fe61cb3bff4ec7ffc3df10a4) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision e8f30ca933a7c373c1a4a749ad84adb2f63b7722) @@ -666,11 +666,12 @@ * The sendDGFillCommand function constructs a DG fill command message * and queues the msg for transmit on the appropriate CAN channel. * @details Inputs: none - * @details Outputs: DG fill command msg constructed and queued. + * @details Outputs: DG fill command msg constructed and queued. + * @param cmd start or stop fill command * @param fillToVolumeMl volume (in mL) to fill inactive reservoir to * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ -BOOL sendDGFillCommand( U32 fillToVolumeMl ) +BOOL sendDGFillCommand( U32 cmd, U32 fillToVolumeMl ) { BOOL result; MESSAGE_T msg; @@ -679,10 +680,12 @@ // Create a message record blankMessage( &msg ); msg.hdr.msgID = MSG_ID_DG_FILL_CMD; - msg.hdr.payloadLen = sizeof( U32 ); + msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ); + + memcpy( payloadPtr, &fillToVolumeMl, sizeof( U32 ) ); + payloadPtr += sizeof( U32 ); + memcpy( payloadPtr, &cmd, sizeof( U32 ) ); - memcpy( payloadPtr, &fillToVolumeMl, sizeof( U32 ) ); - // 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 ); @@ -2629,7 +2632,6 @@ /*********************************************************************//** * @brief * The sendDebugDataToUI function sends debug string to the UI for logging. - * @details * @details Inputs: none * @details Outputs: Message constructed and queued for transmit * @param str Pointer to debug string Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r2346a0cb59957d90fe61cb3bff4ec7ffc3df10a4 -re8f30ca933a7c373c1a4a749ad84adb2f63b7722 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 2346a0cb59957d90fe61cb3bff4ec7ffc3df10a4) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision e8f30ca933a7c373c1a4a749ad84adb2f63b7722) @@ -207,7 +207,7 @@ BOOL sendDGChangeValveSettingCommand( U32 valveSettingCmd ); // MSG_ID_DG_FILL_CMD -BOOL sendDGFillCommand( U32 fillToVolumeMl ); +BOOL sendDGFillCommand( U32 cmd, U32 fillToVolumeMl ); // MSG_ID_DG_DRAIN_CMD BOOL sendDGDrainCommand( DRAIN_RESERVOIR_CMD_PAYLOAD_T *drainCmdPtr );