Index: firmware/App/Controllers/ConductivitySensors.c =================================================================== diff -u -rad6b3443575d3f6bbac52237866e19a212d36bc1 -rf192234d80556802fa42e62f8c1b20d1474f82f1 --- firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision ad6b3443575d3f6bbac52237866e19a212d36bc1) +++ firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision f192234d80556802fa42e62f8c1b20d1474f82f1) @@ -84,19 +84,20 @@ /// Emstat pico measurement data package structure typedef struct { - U16 type; ///< Measurement variable type - U08 value[7]; ///< Measurement value - U08 prefix; ///< Prefix character for SI prefixes - U08 reserved1; ///< Comma separator - U16 status; ///< Status for measurement data package - U08 reserved2[4]; ///< Comma separator and index of current range + U16 type; ///< Measurement variable type. + U08 value[7]; ///< Measurement value. + U08 prefix; ///< Prefix character for SI prefixes. + U08 reserved1; ///< Comma separator. + U16 status; ///< Status for measurement data package. + U08 reserved2[4]; ///< Comma separator and index of current range. } EMSTAT_VARIABLE_T; /// Emstat conductivity sensor and its corresponding temperature sensor typedef struct { CONDUCTIVITY_SENSORS_T condSnsr; ///< Emstat conductivity sensor 1 on the board. TEMPERATURE_SENSORS_T condSnsrTempSnsr; ///< Emstat conductivity sensor 1 temperature sensor. + ALARM_ID_T condSnsrHex2StrAlarm; ///< Emstat conductivity sensor 1 hex to string alarm. } EMSTAT_COND_AND_TEMP_T; /// Emstat board structure @@ -105,15 +106,13 @@ BOOL packageStarted; ///< Emstat package started flag. U08 packageIndex; ///< Emstat package index number. U08 package[ 50 ]; ///< Emstat read buffer package. - EMSTAT_COND_AND_TEMP_T sensors[ EMSTAT_NUM_OF_SENSORS_PER_BOARD ]; ///< Emstat conductivity and corresponding temperature sensors - U16 fpgaPreviousCount; ///< Emstat FPGA previous count. - U08 fpgaPreviousErrorCount; ///< Emstat FPGA previous error count. + EMSTAT_COND_AND_TEMP_T sensors[ EMSTAT_NUM_OF_SENSORS_PER_BOARD ]; ///< Emstat conductivity and corresponding temperature sensors. } EMSTAT_READ_T; /// Conductivity sensors structure typedef struct { - U08 readCount; ///< Conductivity sensor FPGA read count. + U08 readCount; ///< Conductivity sensor FPGA read count (For V3). U32 internalErrorCount; ///< Conductivity sensor internal error count. OVERRIDE_F32_T compensatedCondValue; ///< Conductivity sensor compensated value F32 rawCondValue; ///< Conductivity sensor raw value. @@ -161,7 +160,7 @@ void initConductivitySensors( void ) { U08 i; - roRejectionRatio = 0.0; + roRejectionRatio = 0.0F; condDataPublishCounter = DATA_PUBLISH_COUNTER_START_COUNT; for ( i = 0; i < NUM_OF_CONDUCTIVITY_SENSORS; i++ ) @@ -355,7 +354,7 @@ *************************************************************************/ F32 getConductivityValue( U32 sensorId ) { - F32 result = 0.0; + F32 result = 0.0F; if ( sensorId < NUM_OF_CONDUCTIVITY_SENSORS ) { @@ -386,7 +385,7 @@ static F32 calcCompensatedConductivity( F32 conductivity, F32 temperature ) { // EC = EC_25 * (1 + temp_coef * ( temperature - 25 )) - F32 compensatedCoef = ( 1.0 + ( COND_SENSOR_TEMPERATURE_COEF * ( temperature - COND_SENSOR_REFERENCE_TEMPERATURE ) ) ); + F32 compensatedCoef = ( 1.0F + ( COND_SENSOR_TEMPERATURE_COEF * ( temperature - COND_SENSOR_REFERENCE_TEMPERATURE ) ) ); return conductivity / compensatedCoef; } @@ -595,16 +594,17 @@ *************************************************************************/ static void processEmstatMeasurementDataPackets( U08 boardSensorIndex, EMSTAT_READ_T* readPackage, EMSTAT_VARIABLE_T* receivedPackets ) { - CONDUCTIVITY_SENSORS_T sensorId = readPackage->sensors[ boardSensorIndex ].condSnsr; - condSensorStatus[ sensorId ].sensorStatus = hexStrToDec( (U08*)&receivedPackets->status, sizeof( receivedPackets->status ) ); - BOOL isSensorStatusBad = ( EMSTAT_PICO_STATUS_TIMING_NOT_MET == condSensorStatus[ sensorId ].sensorStatus ? TRUE : FALSE ); + CONDUCTIVITY_SENSORS_T sensorId = readPackage->sensors[ boardSensorIndex ].condSnsr; + BOOL isConvValid = hexStrToDec( (U08*)&receivedPackets->status, &condSensorStatus[ sensorId ].sensorStatus, sizeof( receivedPackets->status ) ); + BOOL isSensorStatusBad = ( EMSTAT_PICO_STATUS_TIMING_NOT_MET == condSensorStatus[ sensorId ].sensorStatus ? TRUE : FALSE ); if ( FALSE == isSensorStatusBad ) { U32 prefix = prefixStrToSIFactor( receivedPackets->prefix ); - F32 resistance = ( ( F32 )( hexStrToDec( receivedPackets->value, sizeof( receivedPackets->value ) ) - EMSTAT_PICO_MEASUREMENT_OFFSET ) / prefix ); + isConvValid = hexStrToDec( receivedPackets->value, &condSensorStatus[ sensorId ].sensorStatus, sizeof( receivedPackets->value ) ); + F32 resistance = ( ( F32 )( condSensorStatus[ sensorId ].sensorStatus - EMSTAT_PICO_MEASUREMENT_OFFSET ) / prefix ); F32 temperature = getTemperatureValue( readPackage->sensors[ boardSensorIndex ].condSnsrTempSnsr ); - F32 conductivity = ( 1.0 / resistance ) * SIEMENS_TO_MICROSIEMENS_CONVERSION; + F32 conductivity = ( 1.0F / resistance ) * SIEMENS_TO_MICROSIEMENS_CONVERSION; F32 compensatedCond = calcCompensatedConductivity( conductivity, temperature ); condSensorStatus[ sensorId ].internalErrorCount = 0; @@ -642,11 +642,11 @@ *************************************************************************/ static F32 getCalibrationAppliedConductivityValue( U32 sensorId, F32 compensatedValue ) { - F32 conductivity = pow(compensatedValue, 4) * condSensorsCalRecord.condSensors[ (CAL_DATA_DG_COND_SENSORS_T)sensorId ].fourthOrderCoeff + - pow(compensatedValue, 3) * condSensorsCalRecord.condSensors[ (CAL_DATA_DG_COND_SENSORS_T)sensorId ].thirdOrderCoeff + - pow(compensatedValue, 2) * condSensorsCalRecord.condSensors[ (CAL_DATA_DG_COND_SENSORS_T)sensorId ].secondOrderCoeff + - compensatedValue * condSensorsCalRecord.condSensors[ (CAL_DATA_DG_COND_SENSORS_T)sensorId ].gain + - condSensorsCalRecord.condSensors[ (CAL_DATA_DG_COND_SENSORS_T)sensorId ].offset; + F32 conductivity = pow( compensatedValue, 4 ) * condSensorsCalRecord.condSensors[ (CAL_DATA_DG_COND_SENSORS_T)sensorId ].fourthOrderCoeff + + pow( compensatedValue, 3 ) * condSensorsCalRecord.condSensors[ (CAL_DATA_DG_COND_SENSORS_T)sensorId ].thirdOrderCoeff + + pow( compensatedValue, 2 ) * condSensorsCalRecord.condSensors[ (CAL_DATA_DG_COND_SENSORS_T)sensorId ].secondOrderCoeff + + compensatedValue * condSensorsCalRecord.condSensors[ (CAL_DATA_DG_COND_SENSORS_T)sensorId ].gain + + condSensorsCalRecord.condSensors[ (CAL_DATA_DG_COND_SENSORS_T)sensorId ].offset; return conductivity; } Index: firmware/App/Controllers/ROPump.c =================================================================== diff -u -r45fe3b732b4fb769f7788bef699a8dd34b250425 -rf192234d80556802fa42e62f8c1b20d1474f82f1 --- firmware/App/Controllers/ROPump.c (.../ROPump.c) (revision 45fe3b732b4fb769f7788bef699a8dd34b250425) +++ firmware/App/Controllers/ROPump.c (.../ROPump.c) (revision f192234d80556802fa42e62f8c1b20d1474f82f1) @@ -228,7 +228,7 @@ roPumpPWMDutyCyclePct = ROP_FLOW_TO_PWM_DC( roFlowRate ); roControlTimerCounter = 0; isROPumpOn = TRUE; - result = TRUE; + result = TRUE; } // Requested max pressure is out of range else @@ -269,9 +269,9 @@ if ( ( maxPressure >= MIN_ALLOWED_PRESSURE_PSI ) && ( maxPressure <= MAX_ALLOWED_PRESSURE_PSI ) ) { pendingROPumpCmdMaxPressure = (F32)maxPressure; - pendingROPumpCmdTargetFlow = roFlowRate; - pendingROPumpCmdCountDown = delayMs / TASK_GENERAL_INTERVAL; - result = TRUE; + pendingROPumpCmdTargetFlow = roFlowRate; + pendingROPumpCmdCountDown = delayMs / TASK_GENERAL_INTERVAL; + result = TRUE; } // Requested max pressure is out of range else @@ -405,16 +405,16 @@ pendingROPumpCmdCountDown--; if ( 0 == pendingROPumpCmdCountDown ) { - targetROPumpMaxPressure = pendingROPumpCmdMaxPressure; - targetROPumpFlowRateLPM = pendingROPumpCmdTargetFlow; - pendingROPumpCmdMaxPressure = 0.0; - pendingROPumpCmdTargetFlow = 0.0; - roPumpControlMode = PUMP_CONTROL_MODE_CLOSED_LOOP; - roPumpState = RO_PUMP_RAMP_UP_TO_TARGET_FLOW_STATE; + targetROPumpMaxPressure = pendingROPumpCmdMaxPressure; + targetROPumpFlowRateLPM = pendingROPumpCmdTargetFlow; + pendingROPumpCmdMaxPressure = 0.0F; + pendingROPumpCmdTargetFlow = 0.0F; + roPumpControlMode = PUMP_CONTROL_MODE_CLOSED_LOOP; + roPumpState = RO_PUMP_RAMP_UP_TO_TARGET_FLOW_STATE; // Get the initial guess of the duty cycle - roPumpPWMDutyCyclePct = ROP_FLOW_TO_PWM_DC( targetROPumpFlowRateLPM ); - roControlTimerCounter = 0; - isROPumpOn = TRUE; + roPumpPWMDutyCyclePct = ROP_FLOW_TO_PWM_DC( targetROPumpFlowRateLPM ); + roControlTimerCounter = 0; + isROPumpOn = TRUE; } } @@ -508,7 +508,7 @@ *************************************************************************/ void resetROGenerateVolumeL( void ) { - roVolumeL = 0.0; + roVolumeL = 0.0F; } /*********************************************************************//** Index: firmware/App/Drivers/SafetyShutdown.c =================================================================== diff -u -r256d5cb05f1ef09e19e2f2733a111f600c73a7ee -rf192234d80556802fa42e62f8c1b20d1474f82f1 --- firmware/App/Drivers/SafetyShutdown.c (.../SafetyShutdown.c) (revision 256d5cb05f1ef09e19e2f2733a111f600c73a7ee) +++ firmware/App/Drivers/SafetyShutdown.c (.../SafetyShutdown.c) (revision f192234d80556802fa42e62f8c1b20d1474f82f1) @@ -33,30 +33,29 @@ #define SET_SAFETY_SHUTDOWN() {mibspiREG1->PC3 |= SAFETY_SPI1_PORT_MASK;} ///< Set safety shutdown GPIO macro. #define CLR_SAFETY_SHUTDOWN() {mibspiREG1->PC3 &= ~SAFETY_SPI1_PORT_MASK;} ///< Clear safety shutdown GPIO macro. -#define SAFETY_SHUTDOWN_POST_TIMEOUT_MS 500 ///< Safety shutdown POST test timeout (in ms). -#define SAFETY_SHUTDOWN_RECOVERY_TIME_MS 500 ///< After safety shutdown POST test, wait this long (in ms) to recover before moving on. +#define SAFETY_SHUTDOWN_POST_TIMEOUT_MS 500 ///< Safety shutdown POST test timeout (in ms). +#define SAFETY_SHUTDOWN_RECOVERY_TIME_MS 500 ///< After safety shutdown POST test, wait this long (in ms) to recover before moving on. -#define MAX_24V_LEVEL_ON_SAFETY_SHUTDOWN 5.0F ///< Maximum voltage on 24V line when safety shutdown asserted. -#define MIN_24V_LEVEL_ON_SAFETY_RECOVER 22.6F ///< Minimum voltage on 24V line when safety shutdown is recovered. +#define MAX_24V_LEVEL_ON_SAFETY_SHUTDOWN 5.0F ///< Maximum voltage on 24V line when safety shutdown asserted. +#define MIN_24V_LEVEL_ON_SAFETY_RECOVER 22.6F ///< Minimum voltage on 24V line when safety shutdown is recovered. /// Enumeration of safety shutdown self-test states. typedef enum Safety_Shutdown_Self_Test_States { - SAFETY_SHUTDOWN_SELF_TEST_STATE_START = 0, ///< Safety shutdown self-test start state - SAFETY_SHUTDOWN_SELF_TEST_STATE_IN_PROGRESS, ///< Safety shutdown self-test in progress state - SAFETY_SHUTDOWN_SELF_TEST_STATE_RECOVER, ///< Safety shutdown self-test recovery state - SAFETY_SHUTDOWN_SELF_TEST_STATE_COMPLETE, ///< Safety shutdown self-test completed state - NUM_OF_SAFETY_SHUTDOWN_SELF_TEST_STATES ///< Number of safety shutdown self-test states + SAFETY_SHUTDOWN_SELF_TEST_STATE_START = 0, ///< Safety shutdown self-test start state + SAFETY_SHUTDOWN_SELF_TEST_STATE_IN_PROGRESS, ///< Safety shutdown self-test in progress state + SAFETY_SHUTDOWN_SELF_TEST_STATE_RECOVER, ///< Safety shutdown self-test recovery state + SAFETY_SHUTDOWN_SELF_TEST_STATE_COMPLETE, ///< Safety shutdown self-test completed state + NUM_OF_SAFETY_SHUTDOWN_SELF_TEST_STATES ///< Number of safety shutdown self-test states } SAFETY_SHUTDOWN_SELF_TEST_STATE_T; // ********** private data ********** -static BOOL safetyShutdownActivated; ///< Status of safety shutdown signal. -static BOOL safetyShutdownOverrideResetState; ///< Natural status of safety shutdown signal. Used to restore state on override reset. -/// Current safety shutdown self-test state. -static SAFETY_SHUTDOWN_SELF_TEST_STATE_T safetyShutdownSelfTestState; -static SELF_TEST_STATUS_T safetyShutdownSelfTestStatus; ///< Safety shutdown self-test preliminary status. -static U32 safetyShutdownSelfTestTimerCount; ///< Safety shutdown self-test state timer counter. +static BOOL safetyShutdownActivated; ///< Status of safety shutdown signal. +static BOOL safetyShutdownOverrideResetState; ///< Natural status of safety shutdown signal. Used to restore state on override reset. +static SAFETY_SHUTDOWN_SELF_TEST_STATE_T safetyShutdownSelfTestState; ///< Current safety shutdown self-test state. +static SELF_TEST_STATUS_T safetyShutdownSelfTestStatus; ///< Safety shutdown self-test preliminary status. +static U32 safetyShutdownSelfTestTimerCount; ///< Safety shutdown self-test state timer counter. /*********************************************************************//** * @brief @@ -148,13 +147,13 @@ F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); // Verify 24V is down when w.d. recovered -// if ( v24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) // TODO - talk with systems why 24V does not recover fully. -// { -// SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_SAFETY_SHUTDOWN_POST_TEST_FAILED, 2.0, v24 ); -// safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; -// } -// else + if ( v24 < MIN_24V_LEVEL_ON_SAFETY_RECOVER ) // TODO - If issue persisted talk with systems why 24V does not recover fully. { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_SAFETY_SHUTDOWN_POST_TEST_FAILED, 2.0, v24 ); + safetyShutdownSelfTestStatus = SELF_TEST_STATUS_FAILED; + } + else + { safetyShutdownSelfTestStatus = SELF_TEST_STATUS_PASSED; } safetyShutdownSelfTestState = SAFETY_SHUTDOWN_SELF_TEST_STATE_COMPLETE; Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r696e732c9742535a58b9c65f243df7cd797d1423 -rf192234d80556802fa42e62f8c1b20d1474f82f1 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 696e732c9742535a58b9c65f243df7cd797d1423) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision f192234d80556802fa42e62f8c1b20d1474f82f1) @@ -889,9 +889,12 @@ handleDGSendConcentrateMixingRatios( message ); break; +#if 0 + // For Phase 1B case MSG_ID_DG_SCHEDULED_RUNS_INFO: handleDGScheduledRunsRequest( message ); break; +#endif case MSG_ID_HD_REQUEST_DG_USAGE_INFO: handleHDRequestDGUsageInfo( message ); @@ -1112,13 +1115,16 @@ handleSetDGServiceRecord( message ); break; +#if 0 + // For Phase 1B case MSG_ID_DG_GET_SCHEDULED_RUNS_RECORD: handleGetDGScheduledRunsRecord( message ); break; case MSG_ID_DG_SET_SCHEDULED_RUNS_RECORD: handleSetDGScheduledRunsRecord( message ); break; +#endif case MSG_ID_DG_FLUID_LEAK_SEND_INTERVAL_OVERRIDE: handleSetFluidLeakBroadcastIntervalOverrideRequest( message ); Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r696e732c9742535a58b9c65f243df7cd797d1423 -rf192234d80556802fa42e62f8c1b20d1474f82f1 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 696e732c9742535a58b9c65f243df7cd797d1423) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision f192234d80556802fa42e62f8c1b20d1474f82f1) @@ -724,6 +724,7 @@ return result; } +#if 0 /*********************************************************************//** * @brief * The sendDGServiceRecord function sends out the DG service record. @@ -762,6 +763,7 @@ return result; } +#endif /*********************************************************************//** * @brief @@ -863,6 +865,8 @@ return result; } +#if 0 +// For Phase 1B /*********************************************************************//** * @brief * The handleDGScheduledRunsRequest function handles a request for DG @@ -893,6 +897,7 @@ // 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_DG_2_UI, ACK_REQUIRED ); } +#endif /*********************************************************************//** * @brief @@ -3146,6 +3151,7 @@ sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, status ); } +#if 0 /*********************************************************************//** * @brief * The handleGetDGServiceRecord function handles a request to get the DG @@ -3204,6 +3210,7 @@ // Respond to request sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, status ); } +#endif /*********************************************************************//** * @brief Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r2e21405574597474db0ebae86cdd7fa2d517f71c -rf192234d80556802fa42e62f8c1b20d1474f82f1 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 2e21405574597474db0ebae86cdd7fa2d517f71c) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision f192234d80556802fa42e62f8c1b20d1474f82f1) @@ -136,8 +136,11 @@ // MSG_ID_DG_SEND_SERVICE_RECORD BOOL sendDGServiceRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* srvcRcrdAddress ); +#if 0 +// For Phase 1B // MSG_ID_DG_SEND_SCHEDULED_RUNS_RECORD BOOL sendDGScheduledRunsRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* scheduledRcrdAddress ); +#endif // MSG_ID_DG_POST_SINGLE_TEST_RESULT BOOL sendPOSTTestResult( DG_POST_STATE_T test, BOOL passed ); @@ -151,8 +154,11 @@ // MSG_ID_DG_SEND_USAGE_INFO_RECORD BOOL sendDGUsageInfoRecord( U32 payloadCurrNum, U32 payloadTotalNum, U32 length, U08* usageInfoAddress ); +#if 0 +// For Phase 1B // MSG_ID_DG_SCHEDULED_RUNS_INFO void handleDGScheduledRunsRequest( MESSAGE_T *message ); +#endif // MSG_ID_HD_OP_MODE BOOL handleSetHDOperationMode( MESSAGE_T *message ); @@ -337,11 +343,14 @@ // MSG_ID_DG_SET_SERVICE_RECORD void handleSetDGServiceRecord( MESSAGE_T *message ); +#if 0 +// For phase 1B // MSG_ID_DG_GET_SCHEDULED_RUNS_RECORD void handleGetDGScheduledRunsRecord( MESSAGE_T *message ); // MSG_ID_DG_SET_SCHEDULED_RUNS_RECORD void handleSetDGScheduledRunsRecord( MESSAGE_T *message ); +#endif // MSG_ID_DG_START_STOP_CHEM_DSINFECT BOOL handleStartStopDGChemicalDisinfect( MESSAGE_T *message ); Index: firmware/App/Services/WatchdogMgmt.c =================================================================== diff -u -r256d5cb05f1ef09e19e2f2733a111f600c73a7ee -rf192234d80556802fa42e62f8c1b20d1474f82f1 --- firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 256d5cb05f1ef09e19e2f2733a111f600c73a7ee) +++ firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision f192234d80556802fa42e62f8c1b20d1474f82f1) @@ -49,13 +49,11 @@ // ********** private data ********** -static U32 lastWatchdogPetTime = 0; ///< Previous watchdog pet timestamp (in ms). - +static U32 lastWatchdogPetTime; ///< Previous watchdog pet timestamp (in ms). static OVERRIDE_U32_T watchdogTaskCheckedIn[ NUM_OF_TASKS ]; ///< Array of flags indicating whether individual tasks have checked in with watchdog manager. - static WATCHDOG_SELF_TEST_STATE_T watchdogSelfTestState; ///< Watchdog self-test current state. static SELF_TEST_STATUS_T watchdogSelfTestStatus; ///< Watchdog self-test status. -static U32 watchdogSelfTestTimerCount = 0; ///< Watchdog self-test timer count. +static U32 watchdogSelfTestTimerCount; ///< Watchdog self-test timer count. // ********** private function prototypes ********** @@ -75,17 +73,18 @@ { U32 i; - lastWatchdogPetTime = 0; - watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_START; - watchdogSelfTestStatus = SELF_TEST_STATUS_IN_PROGRESS; - watchdogSelfTestTimerCount = 0; + lastWatchdogPetTime = 0; + watchdogSelfTestState = WATCHDOG_SELF_TEST_STATE_START; + watchdogSelfTestStatus = SELF_TEST_STATUS_IN_PROGRESS; + watchdogSelfTestTimerCount = 0; + // initialize task check-ins to false for ( i = 0; i < NUM_OF_TASKS; i++ ) { - watchdogTaskCheckedIn[ i ].data = FALSE; - watchdogTaskCheckedIn[ i ].ovData = FALSE; + watchdogTaskCheckedIn[ i ].data = FALSE; + watchdogTaskCheckedIn[ i ].ovData = FALSE; watchdogTaskCheckedIn[ i ].ovInitData = FALSE; - watchdogTaskCheckedIn[ i ].override = OVERRIDE_RESET; + watchdogTaskCheckedIn[ i ].override = OVERRIDE_RESET; } } @@ -107,7 +106,7 @@ allTasksCheckedIn = haveAllTasksCheckedIn(); // if all monitored tasks checked in, pet watchdog and clear the slate - if ( ( TRUE == allTasksCheckedIn ) && ( didTimeout( lastWatchdogPetTime, MIN_WATCHDOG_PET_INTERVAL_MS ) ) ) + if ( ( TRUE == allTasksCheckedIn ) && ( TRUE == didTimeout( lastWatchdogPetTime, MIN_WATCHDOG_PET_INTERVAL_MS ) ) ) { petWatchdog(); resetWDTaskCheckIns(); @@ -175,7 +174,7 @@ // Verify 24V is down when w.d. expired if ( v24 > MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED ) { - SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED, 2.0, v24 ); + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED, 2.0F, v24 ); watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; } } @@ -195,14 +194,15 @@ { F32 v24 = getIntADCVoltageConverted( INT_ADC_SECONDARY_HEATER_24_VOLTS ); - // Verify 24V is down when w.d. recovered TODO - ask EE team why 24V does not quite recover all the way to 22.6V even after 750 ms. How long should it take? -// if ( v24 < MIN_24V_LEVEL_ON_WATCHDOG_RECOVER ) -// { -// SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED, 3.0, v24 ); -// watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; -// } -// else + // Verify 24V is down when w.d. recovered TODO - If issue persisted + // ask EE team why 24V does not quite recover all the way to 22.6V even after 750 ms. How long should it take? + if ( v24 < MIN_24V_LEVEL_ON_WATCHDOG_RECOVER ) { + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED, 3.0, v24 ); + watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; + } + else + { watchdogSelfTestStatus = SELF_TEST_STATUS_PASSED; } }