Index: firmware/App/HDCommon.h =================================================================== diff -u -rbaa9fb9bb10eed6cd211abaa80e9f9acffdeb20d -rfc12876da6930c955864352182aee2076513a1cc --- firmware/App/HDCommon.h (.../HDCommon.h) (revision baa9fb9bb10eed6cd211abaa80e9f9acffdeb20d) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision fc12876da6930c955864352182aee2076513a1cc) @@ -114,8 +114,33 @@ U08 fpgaMajor; U08 fpgaMinor; U08 fpgaLab; + U32 compatibilityRev; } HD_VERSIONS_T; +/// DG version struct. +typedef struct +{ + U08 major; ///< DG version major revision + U08 minor; ///< DG version major revision + U08 micro; ///< DG version micro revision + U16 build; ///< DG build version + U08 fpgaId; ///< DG FPGA ID + U08 fpgaMajor; ///< DG FPGA major revision + U08 fpgaMinor; ///< DG FPGA minor revision + U08 fpgaLab; ///< DG FPGA lab revision + U32 compatibilityRev; ///< DG compatibility revision +} DG_VERSIONS_T; + +/// Record defining the fields in a UI version request message. +typedef struct +{ + U08 major; ///< Major version for UI software + U08 minor; ///< Minor version for UI software + U08 micro; ///< Micro version for UI software + U16 build; ///< Build number for UI software + U32 compatibility; ///< Compatibility revision +} UI_VERSIONS_T; + /// Payload record structure for a peristaltic pump data message. typedef struct { Index: firmware/App/Modes/BloodPrime.h =================================================================== diff -u -rc52bfbc3f41fecde11bbec3eb71dc812154fc760 -rfc12876da6930c955864352182aee2076513a1cc --- firmware/App/Modes/BloodPrime.h (.../BloodPrime.h) (revision c52bfbc3f41fecde11bbec3eb71dc812154fc760) +++ firmware/App/Modes/BloodPrime.h (.../BloodPrime.h) (revision fc12876da6930c955864352182aee2076513a1cc) @@ -36,8 +36,6 @@ // ********** public definitions ****************** -#pragma pack(push,1) - /// Payload record structure for a blood prime data broadcast message. typedef struct { @@ -46,8 +44,6 @@ F32 indDeliveredBloodPrimeVolumeMl; } BLOOD_PRIME_DATA_PAYLOAD_T; -#pragma pack(pop) - // ********** public function prototypes ********** void initBloodPrime( void ); Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -rbaa9fb9bb10eed6cd211abaa80e9f9acffdeb20d -rfc12876da6930c955864352182aee2076513a1cc --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision baa9fb9bb10eed6cd211abaa80e9f9acffdeb20d) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision fc12876da6930c955864352182aee2076513a1cc) @@ -47,18 +47,20 @@ // ********** private data ********** -static HD_POST_STATE_T postState; ///< Current state of initialize and POST mode. -static BOOL postCompleted; ///< Flag indicates whether POST is completed. -static BOOL postPassed; ///< Flag indicates all POST tests passed. -static BOOL tempPOSTPassed; ///< Flag indicates all POST tests have passed so far. +static HD_POST_STATE_T postState; ///< Current state of initialize and POST mode. +static BOOL postCompleted; ///< Flag indicates whether POST is completed. +static BOOL postPassed; ///< Flag indicates all POST tests passed. +static BOOL tempPOSTPassed; ///< Flag indicates all POST tests have passed so far. -static BOOL uiPOSTPassed; ///< Final result for UI POST tests (TRUE = passed, FALSE = failed). -static BOOL dgPOSTPassed; ///< Final result for DG POST tests (TRUE = passed, FALSE = failed). -static BOOL uiPOSTResultReceived; ///< Have we received a final POST result from the UI? -static BOOL dgPOSTResultReceived; ///< Have we received a final POST result from the DG? -static U32 waitForUIPostTimerCtr; ///< Timer counter to limit wait for UI final POST result. +static BOOL uiPOSTPassed; ///< Final result for UI POST tests (TRUE = passed, FALSE = failed). +static BOOL dgPOSTPassed; ///< Final result for DG POST tests (TRUE = passed, FALSE = failed). +static BOOL uiPOSTResultReceived; ///< Have we received a final POST result from the UI? +static BOOL dgPOSTResultReceived; ///< Have we received a final POST result from the DG? +static U32 waitForUIPostTimerCtr; ///< Timer counter to limit wait for UI final POST result. +static U32 postCompleteDelayTimerCtr; ///< Timer counter for 2 second delay after POST completes and before transitioning to Standbymode. -static U32 postCompleteDelayTimerCtr; ///< Timer counter for 2 second delay after POST completes and before transitioning to Standbymode. +static UI_VERSIONS_T uiVersion = { 0, 0, 0, 0, 0 }; ///< Version and compatibility information reported by UI. +static DG_VERSIONS_T dgVersion = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; ///< Version and compatibility information reported by DG. // ********** private function prototypes ********** @@ -292,6 +294,32 @@ /*********************************************************************//** * @brief + * The signalUIVersion function records the reported UI version information. + * @details Inputs: none + * @details Outputs: uiVersion + * @param version Version information reported by UI + * @return none + *************************************************************************/ +void signalUIVersion( UI_VERSIONS_T version ) +{ + uiVersion = version; +} + +/*********************************************************************//** + * @brief + * The signalDGVersion function records the reported DG version information. + * @details Inputs: none + * @details Outputs: dgVersion + * @param version Version information reported by DG + * @return none + *************************************************************************/ +void signalDGVersion( DG_VERSIONS_T version ) +{ + dgVersion = version; +} + +/*********************************************************************//** + * @brief * The isPOSTCompleted function determines whether all HD POST have * been run and completed. If true, call the isPOSTPassed() to see final * result (pass/fail). @@ -366,8 +394,11 @@ { SELF_TEST_STATUS_T result = SELF_TEST_STATUS_PASSED; - // TODO - implement (need UI to include its version/compatibility info in its request for f/w versions so we can check compatibility) - //SW_COMPATIBILITY_REV + if ( uiVersion.compatibility != SW_COMPATIBILITY_REV ) + { + result = SELF_TEST_STATUS_FAILED; + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_UI_COMPATIBILITY_ERROR, uiVersion.compatibility, SW_COMPATIBILITY_REV ) + } return result; } Index: firmware/App/Modes/ModeInitPOST.h =================================================================== diff -u -r406b3ea2507978267a519af0e9cbfbaaf03027c7 -rfc12876da6930c955864352182aee2076513a1cc --- firmware/App/Modes/ModeInitPOST.h (.../ModeInitPOST.h) (revision 406b3ea2507978267a519af0e9cbfbaaf03027c7) +++ firmware/App/Modes/ModeInitPOST.h (.../ModeInitPOST.h) (revision fc12876da6930c955864352182aee2076513a1cc) @@ -40,6 +40,8 @@ void signalAlarmActionToInitAndPOSTMode( ALARM_ACTION_T action ); // Execute alarm action as appropriate for fault mode void signalUIPOSTFinalResult( BOOL passed ); // Record UI POST result void signalDGPOSTFinalResult( BOOL passed ); // Record DG POST result +void signalUIVersion( UI_VERSIONS_T version ); // Record UI version info +void signalDGVersion( DG_VERSIONS_T version ); // Record DG version info /**@}*/ Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r172b320a1007769c7452fe3f1cc7ac85b016f89a -rfc12876da6930c955864352182aee2076513a1cc --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 172b320a1007769c7452fe3f1cc7ac85b016f89a) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision fc12876da6930c955864352182aee2076513a1cc) @@ -80,6 +80,23 @@ NUM_OF_ALARM_AUDIO_SELF_TEST_STATES ///< Number of states in alarm lamp self-test. } ALARM_AUDIO_SELF_TEST_STATE_T; +/// Enumeration of alarm audio volume factors. +typedef enum Alarm_Audio_Volume_Factors +{ + ALARM_AUDIO_VOLUME_GAIN = 0, + ALARM_AUDIO_VOLUME_DIVIDER, + NUM_OF_ALARM_AUDIO_VOLUME_FACTORS +} ALARM_AUDIO_VOLUME_FACTOR_T; + +/// Lookup table to determine appropriate divider for a given alarm audio volume level. +const U08 ALARM_AUDIO_DIVIDER_LOOKUP_TABLE[MAX_ALARM_VOLUME_LEVEL][NUM_OF_ALARM_AUDIO_VOLUME_FACTORS] = { + { 2, 1 }, + { 1, 1 }, + { 0, 1 }, + { 0, 3 }, + { 0, 5 } +}; + // ********** private data ********** static U32 alarmStatusPublicationTimerCounter = 0; ///< Used to schedule alarm status publication to CAN bus. @@ -825,26 +842,34 @@ // If audio test in progress, play test tone. if ( TRUE == alarmAudioTestToneRequested ) { // Play test tone at min volume - setAlarmAudioState( ALARM_AUDIO_TEST_TONE, 4 ); + setAlarmAudioState( ALARM_AUDIO_TEST_TONE, + ALARM_AUDIO_DIVIDER_LOOKUP_TABLE[MAX_ALARM_VOLUME_LEVEL-1][ALARM_AUDIO_VOLUME_GAIN], + ALARM_AUDIO_DIVIDER_LOOKUP_TABLE[MAX_ALARM_VOLUME_LEVEL-1][ALARM_AUDIO_VOLUME_DIVIDER] ); } // If alarm silenced, play no alarm audio. else if ( TRUE == alarmStatus.alarmsSilenced ) { - setAlarmAudioState( ALARM_PRIORITY_NONE, volume ); + setAlarmAudioState( ALARM_PRIORITY_NONE, + ALARM_AUDIO_DIVIDER_LOOKUP_TABLE[volume][ALARM_AUDIO_VOLUME_GAIN], + ALARM_AUDIO_DIVIDER_LOOKUP_TABLE[volume][ALARM_AUDIO_VOLUME_DIVIDER] ); } // Otherwise, play alarm audio as appropriate based on current alarm status else { if ( alarmStatus.alarmsState < NUM_OF_ALARM_PRIORITIES ) { #ifndef DISABLE_ALARM_AUDIO - setAlarmAudioState( alarmStatus.alarmsState, volume ); + setAlarmAudioState( alarmStatus.alarmsState, + ALARM_AUDIO_DIVIDER_LOOKUP_TABLE[volume][ALARM_AUDIO_VOLUME_GAIN], + ALARM_AUDIO_DIVIDER_LOOKUP_TABLE[volume][ALARM_AUDIO_VOLUME_DIVIDER] ); #endif } else { SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_ALARM_MGMT_AUDIO_INVALID_ALARM_STATE, alarmStatus.alarmsState ) - setAlarmAudioState( ALARM_PRIORITY_HIGH, volume ); + setAlarmAudioState( ALARM_PRIORITY_HIGH, + ALARM_AUDIO_DIVIDER_LOOKUP_TABLE[volume][ALARM_AUDIO_VOLUME_GAIN], + ALARM_AUDIO_DIVIDER_LOOKUP_TABLE[volume][ALARM_AUDIO_VOLUME_DIVIDER] ); } } } Index: firmware/App/Services/FPGA.c =================================================================== diff -u -r172b320a1007769c7452fe3f1cc7ac85b016f89a -rfc12876da6930c955864352182aee2076513a1cc --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision 172b320a1007769c7452fe3f1cc7ac85b016f89a) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision fc12876da6930c955864352182aee2076513a1cc) @@ -99,6 +99,7 @@ #define FPGA_PBO_TEMP_OFFSET 50.0 ///< Used in conversion of PBo temperature reading to deg C. #define FPGA_ALARM_AUDIO_VOLUME_SHIFT 3 ///< Shift alarm audio volume 3 bits to left before writing to register. +#define FPGA_ALARM_AUDIO_DIVIDE_SHIFT 6 ///< Shift alarm audio volume divider 6 bits to left before writing to register. #define FPGA_BACKUP_ALARM_AUDIO_CONVERT 0.4 ///< Converts backup (piezo) alarm audio ADC volts to amps. @@ -1099,25 +1100,31 @@ * state and volume. * @details Inputs: none * @details Outputs: alarm audio state and attenuation set - * @param state the state of alarm audio to command: + * @param state the state of alarm audio to command (3..5): * 0 - No alarm tone * 1 - Low priority alarm tone (c e) * 2 - Medium priority alarm tone (c f# c) * 3 - High priority alarm tone (c f# c - c f#) * 4 - Continuous test tone (e) - * @param volumeLevel the level of attenuation to command (0..4) + * @param volumeLevel the level of attenuation to command (0..2): * 4 - 3 dB gain * 3 - 6 dB gain * 2 - 9 dB gain * 1 - 12 dB gain * 0 - 15 dB gain + * @param volumeDivider further attenuation via divider (6..7): + * 0 - Divide by 2 + * 1 - Divide by 4 + * 2 - Divide by 8 + * 3 - Divide by 16 * @return none *************************************************************************/ -void setAlarmAudioState( U32 state, U32 volumeLevel ) +void setAlarmAudioState( U32 state, U32 volumeLevel, U32 volumeDivider ) { U08 audioCmd = (U08)state; audioCmd |= ( (U08)volumeLevel << FPGA_ALARM_AUDIO_VOLUME_SHIFT ); + audioCmd |= ( (U08)volumeDivider << FPGA_ALARM_AUDIO_DIVIDE_SHIFT ); if ( ( state <= NUM_OF_ALARM_PRIORITIES ) && ( volumeLevel <= MAX_ALARM_VOLUME_ATTENUATION ) ) { Index: firmware/App/Services/FPGA.h =================================================================== diff -u -r39dd0b7734331c784b8410f2bbd481e0f792892e -rfc12876da6930c955864352182aee2076513a1cc --- firmware/App/Services/FPGA.h (.../FPGA.h) (revision 39dd0b7734331c784b8410f2bbd481e0f792892e) +++ firmware/App/Services/FPGA.h (.../FPGA.h) (revision fc12876da6930c955864352182aee2076513a1cc) @@ -52,7 +52,7 @@ void getFPGAVersions( U08 *Id, U08 *Maj, U08 *Min, U08 *Lab ); -void setAlarmAudioState( U32 state, U32 volumeLevel ); +void setAlarmAudioState( U32 state, U32 volumeLevel, U32 volumeDivider ); F32 getFPGABloodFlowSignalStrength( void ); F32 getFPGADialysateFlowSignalStrength( void ); Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rc52bfbc3f41fecde11bbec3eb71dc812154fc760 -rfc12876da6930c955864352182aee2076513a1cc --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision c52bfbc3f41fecde11bbec3eb71dc812154fc760) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision fc12876da6930c955864352182aee2076513a1cc) @@ -1137,6 +1137,10 @@ case MSG_ID_REQUEST_FW_VERSIONS: handleFWVersionRequest( message ); + break; + + case MSG_ID_DG_VERSION: + handleDGVersionResponse( message ); break; case MSG_ID_DG_TEMPERATURE_DATA: Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rc52bfbc3f41fecde11bbec3eb71dc812154fc760 -rfc12876da6930c955864352182aee2076513a1cc --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision c52bfbc3f41fecde11bbec3eb71dc812154fc760) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision fc12876da6930c955864352182aee2076513a1cc) @@ -22,6 +22,7 @@ #include "Accel.h" #include "AlarmLamp.h" #include "Buttons.h" +#include "Compatible.h" #include "ConsumableSelfTest.h" #include "FPGA.h" #include "ModeStandby.h" @@ -2599,8 +2600,7 @@ BOOL passed; memcpy( &passed, payloadPtr, sizeof( BOOL ) ); - - // TODO - handle DG POST final result + signalDGPOSTFinalResult( passed ); } else { @@ -3463,16 +3463,24 @@ void handleFWVersionRequest( MESSAGE_T *message ) { MESSAGE_T msg; - HD_VERSIONS_T payload; // TODO - add compatibility data to response + HD_VERSIONS_T payload; U08 *payloadPtr = msg.payload; - // TODO - grab UI version data when UI includes it in this message + // Get UI version data from this request msg and have it recorded + if ( sizeof(UI_VERSIONS_T) == message->hdr.payloadLen ) + { + UI_VERSIONS_T uiVersion; + memcpy( &uiVersion, &message->payload[0], sizeof(UI_VERSIONS_T) ); + signalUIVersion( uiVersion ); + } + // Populate payload payload.major = (U08)HD_VERSION_MAJOR; payload.minor = (U08)HD_VERSION_MINOR; payload.micro = (U08)HD_VERSION_MICRO; payload.build = (U16)HD_VERSION_BUILD; + payload.compatibilityRev = (U32)SW_COMPATIBILITY_REV; getFPGAVersions( &payload.fpgaId, &payload.fpgaMajor, &payload.fpgaMinor, &payload.fpgaLab ); // Create a message record @@ -3485,9 +3493,29 @@ // 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_REQUIRED ); -} +} + +/*********************************************************************//** + * @brief + * The handleDGVersionResponse function handles a response for DG f/w version. + * @details Inputs: none + * @details Outputs: message handled, DG version info recorded. + * @param message a pointer to the message to handle. + * @return none + *************************************************************************/ +void handleDGVersionResponse( MESSAGE_T *message ) +{ + // Get DG version data from this response msg and have it recorded + if ( sizeof(DG_VERSIONS_T) == message->hdr.payloadLen ) + { + DG_VERSIONS_T dgVersion; + + memcpy( &dgVersion, &message->payload[0], sizeof(DG_VERSIONS_T) ); + signalDGVersion( dgVersion ); + } +} + - /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/ Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -rc52bfbc3f41fecde11bbec3eb71dc812154fc760 -rfc12876da6930c955864352182aee2076513a1cc --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision c52bfbc3f41fecde11bbec3eb71dc812154fc760) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision fc12876da6930c955864352182aee2076513a1cc) @@ -29,7 +29,8 @@ #include "Dialysis.h" #include "FluidLeak.h" #include "HDCommon.h" -#include "Prime.h" +#include "Prime.h" +#include "ModeInitPOST.h" #include "ModePostTreat.h" #include "ModePreTreat.h" #include "ModeTreatment.h" @@ -66,6 +67,9 @@ // MSG_ID_REQUEST_FW_VERSIONS void handleFWVersionRequest( MESSAGE_T *message ); +// MSG_ID_DG_VERSION +void handleDGVersionResponse( MESSAGE_T *message ); + // MSG_ID_OFF_BUTTON_PRESS BOOL sendOffButtonMsgToUI( U08 cmd ); void handleOffButtonConfirmMsgFromUI( MESSAGE_T *message ); @@ -164,8 +168,8 @@ BOOL sendTreatmentParamsRangesToUI( U32 minTime, U32 maxTime, F32 minUFVol, F32 maxUFVol, U32 minDialRate, U32 maxDialRate ); // MSG_ID_USER_BLOOD_DIAL_RATE_CHANGE_REQUEST -void handleChangeBloodDialysateRateChangeRequest( MESSAGE_T *message ); - +void handleChangeBloodDialysateRateChangeRequest( MESSAGE_T *message ); + // MSG_ID_USER_SALINE_BOLUS_REQUEST void handleSalineBolusRequest( MESSAGE_T *message ); Index: firmware/App/Services/WatchdogMgmt.c =================================================================== diff -u -r39dd0b7734331c784b8410f2bbd481e0f792892e -rfc12876da6930c955864352182aee2076513a1cc --- firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 39dd0b7734331c784b8410f2bbd481e0f792892e) +++ firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision fc12876da6930c955864352182aee2076513a1cc) @@ -35,7 +35,9 @@ #define WATCHDOG_RECOVERY_TIME_MS 250 ///< After watchdog POST test, wait this long (in ms) before moving on. #define MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED 5.0 ///< Maximum voltage on 24V line when watchdog is expired. // TODO - check w/ Systems. Takes time for V to bleed off. Had to raise to 5V. +#define MIN_24V_LEVEL_ON_WATCHDOG_RECOVER 22.6 ///< Minimum voltage on 24V line when watchdog is recovered. #define MIN_BACKUP_ALARM_CURRENT_MA 200.0 ///< Minimum backup alarm audio current (in mA) detected when watchdog is expired. +#define MAX_BACKUP_ALARM_CURRENT_MA 10.0 ///< Maximum backup alarm audio current (in mA) detected when watchdog is recovered. /// Enumeration of watchdog self-test states. typedef enum Watchdog_Self_Test_States @@ -167,7 +169,7 @@ { // Waiting here for w.d. test period to prevent this task from checking in - watchdog should expire } - if ( getCPLDWatchdogExpired() == PIN_SIGNAL_HIGH ) + if ( getCPLDWatchdogExpired() == PIN_SIGNAL_LOW ) { F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS ); F32 audioCurrent = getFPGABackupAlarmAudioCurrent(); @@ -184,23 +186,41 @@ SET_ALARM_WITH_2_F32_DATA( ALARM_ID_WATCHDOG_POST_TEST_FAILED, 3.0, audioCurrent ); watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; } - else - { - watchdogSelfTestStatus = SELF_TEST_STATUS_PASSED; - } + watchdogSelfTestTimerCount = getMSTimerCount(); + watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_RECOVER; } else { SET_ALARM_WITH_1_U32_DATA( ALARM_ID_WATCHDOG_POST_TEST_FAILED, 1 ); watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; } - watchdogSelfTestTimerCount = getMSTimerCount(); - watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_RECOVER; break; case WATCHDOG_SELF_TEST_STATE_RECOVER: if ( TRUE == didTimeout( watchdogSelfTestTimerCount, WATCHDOG_RECOVERY_TIME_MS ) ) - { + { // Verify watchdog expired signal no longer active + if ( getCPLDWatchdogExpired() == PIN_SIGNAL_HIGH ) + { + F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS ); + F32 audioCurrent = getFPGABackupAlarmAudioCurrent(); + + // Verify 24V is down when w.d. recovered + if ( v24 < MIN_24V_LEVEL_ON_WATCHDOG_RECOVER ) + { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_WATCHDOG_POST_TEST_FAILED, 4.0, v24 ); + watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; + } + // Verify backup alarm audio is on when w.d. recovered + else if ( audioCurrent > MAX_BACKUP_ALARM_CURRENT_MA ) + { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_WATCHDOG_POST_TEST_FAILED, 5.0, audioCurrent ); + watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; + } + else + { + watchdogSelfTestStatus = SELF_TEST_STATUS_PASSED; + } + } result = watchdogSelfTestStatus; watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_COMPLETE; } Index: firmware/HD.dil =================================================================== diff -u -rd7a56c36bbc9b5c66585b0ef39e75bb7766d544f -rfc12876da6930c955864352182aee2076513a1cc --- firmware/HD.dil (.../HD.dil) (revision d7a56c36bbc9b5c66585b0ef39e75bb7766d544f) +++ firmware/HD.dil (.../HD.dil) (revision fc12876da6930c955864352182aee2076513a1cc) @@ -1,4 +1,4 @@ -# RM46L852PGE 07/22/21 16:57:31 +# RM46L852PGE 07/23/21 11:14:50 # ARCH=RM46L852PGE #