Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r2f68e3a96bb03d12141a84f1da6df83e66fed72d -r0b80b72dc375e46a710ebfa97c25e5fa4943b072 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 2f68e3a96bb03d12141a84f1da6df83e66fed72d) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 0b80b72dc375e46a710ebfa97c25e5fa4943b072) @@ -782,7 +782,26 @@ } state = STANDBY_WAIT_FOR_DG_CLEANING_MODE_CMD_RESPONSE_STATE; } + else + { + switch ( getDGOpMode() ) + { + case DG_MODE_FLUS: + case DG_MODE_HEAT: + case DG_MODE_CHEM: + case DG_MODE_CHFL: + case DG_MODE_ROPS: + setRequestedCleaningMode( getDGOpMode() ); + state = STANDBY_WAIT_FOR_DG_CLEANING_MODE_TO_START_STATE; + currentDGCleaningMode.startCleaningMode = FALSE; + break; + default: + // Do nothing we are not in the cleaning mode + break; + } + } + return state; } Index: firmware/App/Modes/ModeTreatmentParams.c =================================================================== diff -u -re1c2eb1a88e284425311dae2900fb1f04f864bef -r0b80b72dc375e46a710ebfa97c25e5fa4943b072 --- firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision e1c2eb1a88e284425311dae2900fb1f04f864bef) +++ firmware/App/Modes/ModeTreatmentParams.c (.../ModeTreatmentParams.c) (revision 0b80b72dc375e46a710ebfa97c25e5fa4943b072) @@ -662,7 +662,7 @@ break; case TREATMENT_PARAM_VEN_PRES_LIMIT_ASYMMETRIC: - result = ( ( value.sInt >= hdInstitutionalRecord.minVenAsymPressLimitMMHG) && + result = ( ( value.sInt >= hdInstitutionalRecord.minVenAsymPressLimitMMHG ) && ( value.sInt <= hdInstitutionalRecord.maxVenAsymPressLimitMMHG ) ? TRUE : FALSE ); break; Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r016cc83d64591243957b00c656d607b1fb0f1eb9 -r0b80b72dc375e46a710ebfa97c25e5fa4943b072 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 016cc83d64591243957b00c656d607b1fb0f1eb9) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 0b80b72dc375e46a710ebfa97c25e5fa4943b072) @@ -1209,6 +1209,10 @@ handleReceiveROPermeateSampleReadyToDispenseFromDG( message ); break; + case MSG_ID_UI_INSTITUTIONAL_RECORD_REQUEST: + sendInstitutionalRecordToUI( message ); + break; + // NOTE: this always must be the last case case MSG_ID_TESTER_LOGIN_REQUEST: handleTesterLogInRequest( message ); Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r016cc83d64591243957b00c656d607b1fb0f1eb9 -r0b80b72dc375e46a710ebfa97c25e5fa4943b072 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 016cc83d64591243957b00c656d607b1fb0f1eb9) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 0b80b72dc375e46a710ebfa97c25e5fa4943b072) @@ -3593,7 +3593,41 @@ } } +/*********************************************************************//** + * @brief + * The sendInstitutionalRecordToUI function sends the institutional record to UI + * @details Inputs: none + * @details Outputs: none + * @param message a pointer to the message to handle + * @return none + *************************************************************************/ +void sendInstitutionalRecordToUI( MESSAGE_T* message ) +{ + MESSAGE_T msg; + U08 *payloadPtr = msg.payload; + U32 accept = 1; + U32 reson = 0; + HD_INSTITUTIONAL_RECORD_T hdInstitutionalRecord; + + getNVRecord2Driver( GET_INSTITUTIONAL_RECORD, (U08*)&hdInstitutionalRecord, sizeof( HD_INSTITUTIONAL_RECORD_T ), 0, ALARM_ID_NO_ALARM ); + + // Create a message record + blankMessage( &msg ); + msg.hdr.msgID = MSG_ID_HD_INSTITUTIONAL_RECORD_RESPONSE; + msg.hdr.payloadLen = sizeof( U32 ) + sizeof( U32 ) + sizeof( HD_INSTITUTIONAL_RECORD_T ) - sizeof( U32 ) - sizeof( U16 ); + + memcpy( payloadPtr, &accept, sizeof( U32 ) ); + payloadPtr += sizeof( U32 ); + memcpy( payloadPtr, &reson, sizeof( U32 ) ); + payloadPtr += sizeof( U32 ); + memcpy( payloadPtr, &hdInstitutionalRecord, sizeof( HD_INSTITUTIONAL_RECORD_T ) - sizeof( U32 ) - sizeof( U16 ) ); + + // Serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer + serializeMessage( msg, COMM_BUFFER_OUT_CAN_HD_2_UI, ACK_NOT_REQUIRED ); +} + + /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/ Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r016cc83d64591243957b00c656d607b1fb0f1eb9 -r0b80b72dc375e46a710ebfa97c25e5fa4943b072 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 016cc83d64591243957b00c656d607b1fb0f1eb9) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 0b80b72dc375e46a710ebfa97c25e5fa4943b072) @@ -558,6 +558,9 @@ // MSG_ID_DG_SEND_RO_PERMEATE_SAMPLE_DISPENSE_READY_TO_HD void handleReceiveROPermeateSampleReadyToDispenseFromDG( MESSAGE_T* message ); +// MSG_ID_UI_INSTITUTIONAL_RECORD_REQUEST +void sendInstitutionalRecordToUI( MESSAGE_T* message ); + // *********** public test support message functions ********** // MSG_TESTER_LOG_IN Index: firmware/App/Services/WatchdogMgmt.c =================================================================== diff -u -r736cc5b56cc9c784ab1d8fc8687a73d190c35759 -r0b80b72dc375e46a710ebfa97c25e5fa4943b072 --- firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 736cc5b56cc9c784ab1d8fc8687a73d190c35759) +++ firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 0b80b72dc375e46a710ebfa97c25e5fa4943b072) @@ -130,7 +130,7 @@ * line to prevent the alarm from occurring while * debugging. */ - activateAlarmNoData( ALARM_ID_HD_WATCHDOG_EXPIRED ); + //activateAlarmNoData( ALARM_ID_HD_WATCHDOG_EXPIRED ); } } else