Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -ra726311564521affd46cbbaf129bdffb22e1d58f -r32d22b41c0297166bf2c89e59c968d69828d5025 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision a726311564521affd46cbbaf129bdffb22e1d58f) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 32d22b41c0297166bf2c89e59c968d69828d5025) @@ -1144,6 +1144,10 @@ handleSetAccelCalibration( message ); break; + case MSG_ID_DG_SOFTWARE_RESET_REQUEST: + handleDGSoftwareResetRequest( message ); + break; + case MSG_ID_CONCENTRATE_PUMP_TARGET_SPEED_OVERRIDE: handleSetConcentratePumpTargetSpeed( message ); break; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -ra726311564521affd46cbbaf129bdffb22e1d58f -r32d22b41c0297166bf2c89e59c968d69828d5025 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision a726311564521affd46cbbaf129bdffb22e1d58f) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 32d22b41c0297166bf2c89e59c968d69828d5025) @@ -15,9 +15,12 @@ * ***************************************************************************/ -#include // for memcpy() +#include // for memcpy() -#include "Accel.h" +#include "reg_system.h" + +#include "Accel.h" +#include "ConcentratePumps.h" #include "ConductivitySensors.h" #include "DrainPump.h" #include "FPGA.h" @@ -1869,6 +1872,34 @@ /*********************************************************************//** * @brief + * The handleDGSoftwareResetRequest function handles a request to + * perform a software reset on DG. + * @details Inputs: none + * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none + *************************************************************************/ +void handleDGSoftwareResetRequest( MESSAGE_T *message ) +{ + BOOL result = FALSE; + + // verify payload length + if ( 0 == message->hdr.payloadLen ) + { + // tester must be logged in + if ( TRUE == isTestingActivated() ) + { + result = TRUE; // reset will prevent this from getting transmitted + systemREG1->SYSECR = ( 0x2 << 14 ); // reset processor + } + } + + // respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} + +/*********************************************************************//** + * @brief * The handleSetConcentratePumpTargetSpeed function handles a request to * override a concentrate pump's target speed value. * @details Inputs: none Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -ra726311564521affd46cbbaf129bdffb22e1d58f -r32d22b41c0297166bf2c89e59c968d69828d5025 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision a726311564521affd46cbbaf129bdffb22e1d58f) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 32d22b41c0297166bf2c89e59c968d69828d5025) @@ -197,6 +197,9 @@ // MSG_ID_DG_ACCEL_SET_CALIBRATION: void handleSetAccelCalibration( MESSAGE_T *message ); +// MSG_ID_DG_SOFTWARE_RESET_REQUEST +void handleDGSoftwareResetRequest( MESSAGE_T *message); + // MSG_ID_CONCENTRATE_PUMP_TARGET_SPEED_OVERRIDE void handleSetConcentratePumpTargetSpeed( MESSAGE_T *message );