Index: firmware/App/Controllers/ConductivitySensors.c =================================================================== diff -u -r83b12013a84403fe4d7d6f70b516d623bfb2fcfd -r9b1ae2d7327c0b865be12685641dea8668368ac1 --- firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 83b12013a84403fe4d7d6f70b516d623bfb2fcfd) +++ firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 9b1ae2d7327c0b865be12685641dea8668368ac1) @@ -99,7 +99,6 @@ CONDUCTIVITY_SENSORS_T condSnsr; ///< Emstat conductivity sensor on the board. TEMPERATURE_SENSORS_T condSnsrTempSnsr; ///< Emstat conductivity sensor temperature sensor. ALARM_ID_T condSnsrHex2StrAlarm; ///< Emstat conductivity sensor hex to string alarm. - U32 invalidCharCounter; } EMSTAT_COND_SENSORS_T; /// Emstat board structure @@ -109,8 +108,6 @@ U08 packageIndex; ///< Emstat package index number. U08 package[ EMSTAT_PACKAGE_BUFFER_SIZE ]; ///< Emstat read buffer package. EMSTAT_COND_SENSORS_T sensors[ EMSTAT_NUM_OF_SENSORS_PER_BOARD ]; ///< Emstat conductivity and corresponding temperature sensors. - U08 packetIndex; - U08 packetData[100]; } EMSTAT_READ_T; /// Conductivity sensors structure @@ -185,22 +182,17 @@ emstatBoardRead[ EMSTAT_CPI_CPO_BOARD ].sensors[ EMSTAT_CPI_OR_CD1_INDEX ].condSnsr = CONDUCTIVITYSENSORS_CPI_SENSOR; emstatBoardRead[ EMSTAT_CPI_CPO_BOARD ].sensors[ EMSTAT_CPI_OR_CD1_INDEX ].condSnsrTempSnsr = TEMPSENSORS_INLET_PRIMARY_HEATER; emstatBoardRead[ EMSTAT_CPI_CPO_BOARD ].sensors[ EMSTAT_CPI_OR_CD1_INDEX ].condSnsrHex2StrAlarm = ALARM_ID_DG_CPI_COND_SENSOR_INVALID_CHAR; - emstatBoardRead[ EMSTAT_CPI_CPO_BOARD ].sensors[ EMSTAT_CPI_OR_CD1_INDEX ].invalidCharCounter = 0; emstatBoardRead[ EMSTAT_CPI_CPO_BOARD ].sensors[ EMSTAT_CPO_OR_CD2_INDEX ].condSnsr = CONDUCTIVITYSENSORS_CPO_SENSOR; emstatBoardRead[ EMSTAT_CPI_CPO_BOARD ].sensors[ EMSTAT_CPO_OR_CD2_INDEX ].condSnsrTempSnsr = TEMPSENSORS_OUTLET_PRIMARY_HEATER; emstatBoardRead[ EMSTAT_CPI_CPO_BOARD ].sensors[ EMSTAT_CPO_OR_CD2_INDEX ].condSnsrHex2StrAlarm = ALARM_ID_DG_CPO_COND_SENSOR_INVALID_CHAR; - emstatBoardRead[ EMSTAT_CPI_CPO_BOARD ].sensors[ EMSTAT_CPO_OR_CD2_INDEX ].invalidCharCounter = 0; - // CD1/CD2 Emstat board conductivity sensors and their corresponding temperature sensors emstatBoardRead[ EMSTAT_CD1_CD2_BOARD ].sensors[ EMSTAT_CPI_OR_CD1_INDEX ].condSnsr = CONDUCTIVITYSENSORS_CD1_SENSOR; emstatBoardRead[ EMSTAT_CD1_CD2_BOARD ].sensors[ EMSTAT_CPI_OR_CD1_INDEX ].condSnsrTempSnsr = TEMPSENSORS_CONDUCTIVITY_SENSOR_1; emstatBoardRead[ EMSTAT_CD1_CD2_BOARD ].sensors[ EMSTAT_CPI_OR_CD1_INDEX ].condSnsrHex2StrAlarm = ALARM_ID_DG_CD1_COND_SENSOR_INVALID_CHAR; - emstatBoardRead[ EMSTAT_CD1_CD2_BOARD ].sensors[ EMSTAT_CPI_OR_CD1_INDEX ].invalidCharCounter = 0; emstatBoardRead[ EMSTAT_CD1_CD2_BOARD ].sensors[ EMSTAT_CPO_OR_CD2_INDEX ].condSnsr = CONDUCTIVITYSENSORS_CD2_SENSOR; emstatBoardRead[ EMSTAT_CD1_CD2_BOARD ].sensors[ EMSTAT_CPO_OR_CD2_INDEX ].condSnsrTempSnsr = TEMPSENSORS_CONDUCTIVITY_SENSOR_2; emstatBoardRead[ EMSTAT_CD1_CD2_BOARD ].sensors[ EMSTAT_CPO_OR_CD2_INDEX ].condSnsrHex2StrAlarm = ALARM_ID_DG_CD2_COND_SENSOR_INVALID_CHAR; - emstatBoardRead[ EMSTAT_CD1_CD2_BOARD ].sensors[ EMSTAT_CPO_OR_CD2_INDEX ].invalidCharCounter = 0; // For V3 conductivity sensors setFPGACPiProbeType( COND_CPI_SENSOR_PROBE_TYPE ); @@ -594,8 +586,6 @@ { readPackage->packageStarted = TRUE; readPackage->packageIndex = 0; - readPackage->packetIndex = 0; - readPackage->packetData[readPackage->packetIndex++] = emstatByte; } break; @@ -604,7 +594,6 @@ { processEmstatMeasurementDataPackets( EMSTAT_CPI_OR_CD1_INDEX, readPackage, (EMSTAT_VARIABLE_T*)readPackage->package ); readPackage->packageIndex = 0; - readPackage->packetData[readPackage->packetIndex++] = emstatByte; } break; @@ -613,14 +602,12 @@ { processEmstatMeasurementDataPackets( EMSTAT_CPO_OR_CD2_INDEX, readPackage, (EMSTAT_VARIABLE_T*)readPackage->package ); readPackage->packageStarted = FALSE; - readPackage->packetData[readPackage->packetIndex++] = emstatByte; } break; default: if ( TRUE == readPackage->packageStarted ) { - readPackage->packetData[readPackage->packetIndex++] = emstatByte; if (readPackage->packageIndex < EMSTAT_PACKAGE_BUFFER_SIZE ) { readPackage->package[ readPackage->packageIndex++ ] = emstatByte; @@ -654,10 +641,7 @@ { U32 prefix = prefixStrToSIFactor( receivedPackets->prefix ); convStatus = hexStrToDec( receivedPackets->value, &condSensorStatus[ sensorId ].rawEmstatCondValue, sizeof( receivedPackets->value ) ); - if (FALSE == convStatus) - { - readPackage->sensors[ boardSensorIndex ].invalidCharCounter++; - } + F32 resistance = ( ( F32 )( condSensorStatus[ sensorId ].rawEmstatCondValue - EMSTAT_PICO_MEASUREMENT_OFFSET ) / prefix ); F32 temperature = getTemperatureValue( readPackage->sensors[ boardSensorIndex ].condSnsrTempSnsr ); F32 conductivity = ( 1.0F / resistance ) * SIEMENS_TO_MICROSIEMENS_CONVERSION; Index: firmware/App/Controllers/Voltages.c =================================================================== diff -u -r83b12013a84403fe4d7d6f70b516d623bfb2fcfd -r9b1ae2d7327c0b865be12685641dea8668368ac1 --- firmware/App/Controllers/Voltages.c (.../Voltages.c) (revision 83b12013a84403fe4d7d6f70b516d623bfb2fcfd) +++ firmware/App/Controllers/Voltages.c (.../Voltages.c) (revision 9b1ae2d7327c0b865be12685641dea8668368ac1) @@ -318,7 +318,7 @@ MONITORED_VOLTAGES_T channel; // Check range - for ( channel = 0; channel <= MONITORED_LINE_LAST_RANGE_CHECKED_LINE; channel++ ) + for ( channel = MONITORED_LINE_FIRST_VOLTAGE; channel <= MONITORED_LINE_LAST_RANGE_CHECKED_LINE; channel++ ) { F32 volts = getMonitoredLineLevel( channel ); Index: firmware/App/Controllers/Voltages.h =================================================================== diff -u -rb8f298547eb578000b3ff3cf55732fda7a689ce0 -r9b1ae2d7327c0b865be12685641dea8668368ac1 --- firmware/App/Controllers/Voltages.h (.../Voltages.h) (revision b8f298547eb578000b3ff3cf55732fda7a689ce0) +++ firmware/App/Controllers/Voltages.h (.../Voltages.h) (revision 9b1ae2d7327c0b865be12685641dea8668368ac1) @@ -33,8 +33,9 @@ /// Enumeration of voltages monitored by this module. typedef enum Voltages -{ - MONITORED_LINE_24V_MAIN = 0, ///< Main voltage (24V) (non-isolated) +{ + MONITORED_LINE_FIRST_VOLTAGE = 0, ///< First voltage in list + MONITORED_LINE_24V_MAIN = MONITORED_LINE_FIRST_VOLTAGE, ///< Main voltage (24V) (non-isolated) MONITORED_LINE_1_8V_FPGA, ///< FPGA logic voltage (1.8V) MONITORED_LINE_1V_FPGA, ///< FPGA reference voltage (1V) MONITORED_LINE_3_3V_SENSORS, ///< Sensors voltage (3.3V) Index: firmware/App/Services/FPGA.c =================================================================== diff -u -r83b12013a84403fe4d7d6f70b516d623bfb2fcfd -r9b1ae2d7327c0b865be12685641dea8668368ac1 --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision 83b12013a84403fe4d7d6f70b516d623bfb2fcfd) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision 9b1ae2d7327c0b865be12685641dea8668368ac1) @@ -356,10 +356,6 @@ static DG_FPGA_SENSORS_T fpgaSensorReadings; ///< DG FPGA sensors structure. static FPGA_ACTUATORS_T fpgaActuatorSetPoints; ///< FPGA actuator set points structure. static U08 fpgaReadByteSize; ///< FPGA read byte size. -#ifndef DEBUG_ENABLED -static U16 currentFPGATimerCount_ms; ///< Current FPGA timer count in ms. -static U32 currentTimerCount_ms; ///< Current processor timer count in ms. -#endif // ********** private function prototypes ********** @@ -379,7 +375,6 @@ static void startDMAReceiptOfReadResp( void ); static void consumeUnexpectedData( void ); -static void monitorFPGAPowerStatus( void ); static BOOL checkFPGACommFailure( void ); @@ -499,9 +494,6 @@ // there shouldn't be any data pending yet consumeUnexpectedData(); - // Initialize the persistent alarm for FPGA power out - initPersistentAlarm( ALARM_ID_DG_FPGA_POWER_OUT_TIMEOUT, FPGA_POWER_OUT_TIMEOUT_MS, FPGA_POWER_OUT_TIMEOUT_MS ); - // initialize FPGA clock speed error time windowed count initTimeWindowedCount( TIME_WINDOWED_COUNT_FPGA_COMM_FAILURES, MAX_FPGA_COMM_FAILURES, MAX_FPGA_COMM_FAILURES_WINDOW_MS); @@ -615,18 +607,14 @@ } // if retries for commands exceeds limit or FPGA reports comm error, fault -#ifdef _RELEASE_ if ( fpgaSensorReadings.fpgaIOErrorCntProcessor > MAX_COMM_ERROR_RETRIES ) { SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_FPGA_COMM_TIMEOUT, MAX_FPGA_COMM_FAILURES, (U32)fpgaSensorReadings.fpgaIOErrorCntProcessor ) } -#endif // reset comm flags after processing incoming responses resetFPGACommFlags(); - // Check the FPGA power status - monitorFPGAPowerStatus(); } /*********************************************************************//** @@ -932,21 +920,20 @@ * @brief * The execFPGAClockSpeedTest function verifies the processor clock speed * against the FPGA clock. - * @details Inputs: fpgaHeader + * @details Inputs: fpgaHeader, + * window timer TIME_WINDOWED_COUNT_FPGA_CLOCK_SPEED_ERROR * @details Outputs: none - * @return passed, or failed + * @return: none *************************************************************************/ void execFPGAClockSpeedTest( void ) { - -#ifndef DEBUG_ENABLED static U16 currentFPGATimerCount_ms = 0; - static U32 currentTimerCount_ms = 0; + static U32 currentTimerCount_ms = 0; U16 const newFPGATimerCount_ms = getFPGATimerCount(); - U32 const newTimerCount_ms = getMSTimerCount(); - U32 const diffFPGATimerCount = (U32)u16DiffWithWrap( currentFPGATimerCount_ms, newFPGATimerCount_ms ); - U32 const diffTimerCount = u32DiffWithWrap( currentTimerCount_ms, newTimerCount_ms ); + U32 const newTimerCount_ms = getMSTimerCount(); + U32 const diffFPGATimerCount = (U32)u16DiffWithWrap( currentFPGATimerCount_ms, newFPGATimerCount_ms ); + U32 const diffTimerCount = u32DiffWithWrap( currentTimerCount_ms, newTimerCount_ms ); if ( getCurrentOperationMode() != DG_MODE_INIT ) { @@ -960,8 +947,7 @@ } currentFPGATimerCount_ms = newFPGATimerCount_ms; - currentTimerCount_ms = newTimerCount_ms; -#endif + currentTimerCount_ms = newTimerCount_ms; } /*********************************************************************//** @@ -1133,22 +1119,6 @@ /*********************************************************************//** * @brief - * The monitorFPGAPowerStatus function monitors the status of the FPGA power source. - * @details Inputs: none - * @details Outputs: none - * @return none - *************************************************************************/ -static void monitorFPGAPowerStatus( void ) -{ - // If the GIO bit returned a 0 it mean the power is out, otherwise the power is not out - BOOL isPowerOut = ( TRUE == (BOOL)gioGetBit( gioPORTA, FPGA_GPIO_POWER_STATUS_PIN ) ? FALSE : TRUE ); - - // TODO check to make sure alarm is not raised when the power is good - checkPersistentAlarm( ALARM_ID_DG_FPGA_POWER_OUT_TIMEOUT, isPowerOut, 0, FPGA_POWER_OUT_TIMEOUT_MS ); -} - -/*********************************************************************//** - * @brief * The setFPGAValveStates function sets the DG valve states with a 16-bit * set of states - one bit per valve, with a 1 meaning "energized" and a 0 * meaning "de-energized". The bit positions for these bit states are as follows: Index: firmware/App/Services/WatchdogMgmt.c =================================================================== diff -u -r9e5ee62245eb2a73b167eabd6c274a71a76a7b0e -r9b1ae2d7327c0b865be12685641dea8668368ac1 --- firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 9e5ee62245eb2a73b167eabd6c274a71a76a7b0e) +++ firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 9b1ae2d7327c0b865be12685641dea8668368ac1) @@ -119,9 +119,7 @@ if ( ( WATCHDOG_SELF_TEST_STATE_COMPLETE == watchdogSelfTestState ) || ( getCurrentOperationMode() != DG_MODE_INIT ) ) { -#ifndef DEBUG_ENABLED activateAlarmNoData( ALARM_ID_DG_WATCHDOG_EXPIRED ); -#endif } } }