Index: firmware/App/DDCommon.h =================================================================== diff -u -rfa6a9e2d12b9077cf8acb30e7939afa90df5b614 -r82b841cdb65ac335475e02841b7b568d1f5c77b1 --- firmware/App/DDCommon.h (.../DDCommon.h) (revision fa6a9e2d12b9077cf8acb30e7939afa90df5b614) +++ firmware/App/DDCommon.h (.../DDCommon.h) (revision 82b841cdb65ac335475e02841b7b568d1f5c77b1) @@ -54,9 +54,6 @@ //Uncomment below to disable heaters debug message #define __HEATERS_DEBUG__ 1 -//Uncomment below to disable Teensy conductivity driver -#define __TEENSY_CONDUCTIVITY_DRIVER__ 1 - #include #include #endif Index: firmware/App/Drivers/ConductivitySensors.c =================================================================== diff -u -r830213bc6dcc1a684610caf78c79d55f2cb41e93 -r82b841cdb65ac335475e02841b7b568d1f5c77b1 --- firmware/App/Drivers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 830213bc6dcc1a684610caf78c79d55f2cb41e93) +++ firmware/App/Drivers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 82b841cdb65ac335475e02841b7b568d1f5c77b1) @@ -23,6 +23,7 @@ #include "Messaging.h" #include "OperationModes.h" #include "PersistentAlarm.h" +#include "TaskPriority.h" #include "Utilities.h" /** @@ -32,62 +33,72 @@ // ********** private definitions ********** -#define SIEMENS_TO_MICROSIEMENS_CONVERSION 1000000 ///< Siemens to microSiemens conversion factor. -#define COND_SENSORS_FPGA_ERROR_TIMEOUT_MS ( 2 * MS_PER_SECOND ) ///< Conductivity sensors FPGA error timeout in milliseconds. -#define COND_SENSORS_READ_ERR_MAX_CNT 255 ///< Conductivity sensors read and error count max value +#define CELL_COEFF_LOW_BOUNDS 3 ///< Low bounds for cell coefficient values. +#define CELL_COEFF_HIGH_BOUNDS 6 ///< High bounds for cell coefficient values. +#define RESISTANCE_OFFSET_LOW_BOUNDS -1000 ///< Low bounds for resistance offset values. +#define RESISTANCE_OFFSET_HIGH_BOUNDS 1000 ///< High bounds for resistance offset values. +#define RESISTANCE_SCALE_LOW_BOUNDS 0.5F ///< Low bounds for resistance scale values. +#define RESISTANCE_SCALE_HIGH_BOUNDS 3.0F ///< High bounds for resistance scale values. +#define TEMPERATURE_CORRECTION_LOW_BOUNDS 0.005F ///< Low bounds for temperature correction values. +#define TEMPERATURE_CORRECTION_HIGH_BOUNDS 0.04F ///< High bounds for temperature correction values. +#define TEMPERATURE_OFFSET_LOW_BOUNDS -10 ///< Low bounds for temperature scale values. +#define TEMPERATURE_OFFSET_HIGH_BOUNDS 10 ///< High bounds for temperature offset values. +#define TEMPERATURE_SCALE_LOW_BOUNDS 0.5F ///< Low bounds for temperature scale values. +#define TEMPERATURE_SCALE_HIGH_BOUNDS 2.0F ///< High bounds for temperature scale values. +#define LOWER_WORD_SIZE 4 ///< Size in bytes of the lower word size for retrieving revision data. +#define MID_WORD_SIZE 4 ///< Size in bytes of the middle word size for retrieving revision data. +#define UPPER_WORD_SIZE 2 ///< Size in bytes of the upper word size for retrieving revision data. +#define MAX_ALLOWED_UNCHANGED_CONDUCTIVITY_READS ( 500 / TASK_PRIORITY_INTERVAL ) ///< New reading every 333ms, expect to get valid new reading in 500ms. +#define SIEMENS_TO_MICROSIEMENS_CONVERSION 1000000 ///< Siemens to microSiemens conversion factor. +#define COND_SENSORS_FPGA_ERROR_TIMEOUT_MS ( 2 * MS_PER_SECOND ) ///< Conductivity sensors FPGA error timeout in milliseconds. +#define COND_SENSORS_READ_ERR_MAX_CNT 255 ///< Conductivity sensors read and error count max value. + /// Defined states for the conductivity write transaction. -typedef enum Conductvity_write_tx_states +typedef enum Conductvity_States { - CONDUCTIVITY_WRITE_INITIATE = 0, ///< Conductivity sensor write initiate state. - CONDUCTIVITY_WRITE_COMPLETE, ///< Conductivity sensor write complete state. - NUM_OF_CONDUCTIVITY_WR_STATES ///< Number of conductivity write states. -} CONDUCTIVITY_WRITE_STATE_T; + CONDUCTIVITY_INIT_STATE = 0, ///< Conductivity sensor write initiate state. + CONDUCTIVITY_READ_DATA_STATE, ///< Conductivity sensor write complete state. + NUM_OF_CONDUCTIVITY_STATES ///< Number of conductivity write states. +} CONDUCTIVITY_STATE_T; -/// Defined states for the conductivity read transaction. -typedef enum Conductvity_read_tx_states -{ - CONDUCTIVITY_READ_INITIATE = 0, ///< Conductivity sensor read initiate state. - CONDUCTIVITY_READ_COMPLETE, ///< Conductivity sensor read complete state. - NUM_OF_CONDUCTIVITY_RD_STATES ///< Number of conductivity read states. -} CONDUCTIVITY_READ_STATE_T; - -/// Conductivity Sensor Control group +/// Conductivity Sensor Status group typedef struct { - BOOL resetRequested; ///< Flag indicates a reset command for the given conductivity sensor. - BOOL initEnable; ///< Flag indicates a enables initialization procedure for the given conductivity sensor. - BOOL writeEnable; ///< Flag indicates a enables write transaction for the given conductivity sensor. - BOOL readEnable; ///< Flag indicates a enables read transaction for the given conductivity sensor. - BOOL writeInProgress; ///< Flag indicates write transaction in progress - BOOL readInProgress; ///< Flag indicates read transaction in progress - BOOL writeComplete; ///< Flag indicates write transaction complete state. - BOOL readComplete; ///< Flag indicates read transaction complete state. - U32 writeData; ///< Data to write for the given conductivity sensor. - U32 readData; ///< Read data from the given conductivity sensor. - CONDUCTIVITY_READ_STATE_T readExecState; ///< Read executive state from the given conductivity sensor. - CONDUCTIVITY_WRITE_STATE_T writeExecState; ///< Write executive state from the given conductivity sensor. - U16 writeAddress; ///< Write address where the data needs to be written. - U16 readAddress; ///< Read address to read the data. -} CONDUCTIVITY_SENSOR_CONTROL_T; + U08 condReadCount; ///< Conductivity read count. + U08 condErrorCount; ///< Conductivity error count. + U08 interalCondErrorCount; ///< Internal conductivity error count for stale data. + U08 tempReadCount; ///< Temperature read count. + U08 tempErrorCount; ///< Temperature error count. + U08 interalTempErrorCount; ///< Internal temperature error count for stale data. + U08 calMemCount; ///< Cal memory counter. + U32 calData; ///< Cal word data storage. +} CONDUCTIVITY_SENSOR_STATUS_T; // ********** private data ********** +static CONDUCTIVITY_STATE_T currentConductivityState; ///< Current conductivity sensor state. static OVERRIDE_F32_T currentConductivityReadings[ NUM_OF_CONDUCTIVITY_SENSORS ]; ///< Current conductivity sensor conductivity readings (overrideable). static OVERRIDE_F32_T currentTemperatureReadings[ NUM_OF_CONDUCTIVITY_SENSORS ]; ///< Current conductivity sensor temperature readings (overrideable). static OVERRIDE_U32_T lastConductivityReadCounter[ NUM_OF_CONDUCTIVITY_SENSORS ]; ///< Last conductivity sensor read count (Overrideable). static OVERRIDE_U32_T lastConductivityErrorCounter[ NUM_OF_CONDUCTIVITY_SENSORS ]; ///< Last conductivity sensor error count (Overrideable). +static OVERRIDE_U32_T lastTemperatureReadCounter[ NUM_OF_CONDUCTIVITY_SENSORS ]; ///< Last conductivity sensor read count (Overrideable). +static OVERRIDE_U32_T lastTemperatureErrorCounter[ NUM_OF_CONDUCTIVITY_SENSORS ]; ///< Last conductivity sensor error count (Overrideable). -static CONDUCTIVITY_SENSOR_CONTROL_T conductivitySensorControl[ NUM_OF_CONDUCTIVITY_SENSORS ]; ///< Conductivity sensor Control for reset, init, read and write operations. +static CONDUCTIVITY_SENSOR_STATUS_T conductivitySensorStatus[ NUM_OF_CONDUCTIVITY_SENSORS ]; ///< Conductivity sensor status array for counters and data. +static CONDUCTIVITY_COEFFICIENTS_T conductivitySensorCoefficients[ NUM_OF_CONDUCTIVITY_SENSORS ]; ///< Conductivity sensor calibration coefficient data. +static CONDUCTIVITY_REVISIONS_T conductivitySensorRevisions[ NUM_OF_CONDUCTIVITY_SENSORS ]; ///< Conductivity sensor revision and serial data. +static U32 getConductivitySensorReadCount( CONDUCTIVITY_SENSORS_T sensor ); +static U32 getConductivitySensorErrorCount( CONDUCTIVITY_SENSORS_T sensor ); +static U32 getTemperatureSensorReadCount( CONDUCTIVITY_SENSORS_T sensor ); +static U32 getTemperatureSensorErrorCount( CONDUCTIVITY_SENSORS_T sensor ); + // ********** private function prototypes ********** +static CONDUCTIVITY_STATE_T handleConductivityReadCalState( void ); +static CONDUCTIVITY_STATE_T handleConductivityReadDataState( void ); +static void checkCondCounters( U32 sensorId, U08 condReadCount, U08 condErrorCount, U08 tempReadCount, U08 tempErrorCount ); -static void checkConductivitySensors( void ); -static CONDUCTIVITY_READ_STATE_T handleConductivitySensorsReadInitiate( CONDUCTIVITY_SENSORS_T sensorID ); -static CONDUCTIVITY_WRITE_STATE_T handleConductivitySensorsWriteComplete( CONDUCTIVITY_SENSORS_T sensorID ); -static CONDUCTIVITY_WRITE_STATE_T handleConductivitySensorsWriteInitiate( CONDUCTIVITY_SENSORS_T sensorID ); -static CONDUCTIVITY_READ_STATE_T handleConductivitySensorsReadComplete( CONDUCTIVITY_SENSORS_T sensorID ); - /*********************************************************************//** * @brief * The initConductivitySensors function initializes the ConductivitySensors unit. @@ -97,45 +108,67 @@ *************************************************************************/ void initConductivitySensors( void ) { + currentConductivityState = CONDUCTIVITY_INIT_STATE; CONDUCTIVITY_SENSORS_T sensor; // Initialize override structures for each conductivity sensor for ( sensor = FIRST_DD_COND_SENSOR; sensor < NUM_OF_CONDUCTIVITY_SENSORS; sensor++ ) { - currentConductivityReadings[ sensor ].data = 0.0F; - currentConductivityReadings[ sensor ].ovData = 0.0F; - currentConductivityReadings[ sensor ].ovInitData = 0.0F; - currentConductivityReadings[ sensor ].override = OVERRIDE_RESET; + currentConductivityReadings[ sensor ].data = 0.0F; + currentConductivityReadings[ sensor ].ovData = 0.0F; + currentConductivityReadings[ sensor ].ovInitData = 0.0F; + currentConductivityReadings[ sensor ].override = OVERRIDE_RESET; - currentTemperatureReadings[ sensor ].data = 0.0F; - currentTemperatureReadings[ sensor ].ovData = 0.0F; - currentTemperatureReadings[ sensor ].ovInitData = 0.0F; - currentTemperatureReadings[ sensor ].override = OVERRIDE_RESET; + currentTemperatureReadings[ sensor ].data = 0.0F; + currentTemperatureReadings[ sensor ].ovData = 0.0F; + currentTemperatureReadings[ sensor ].ovInitData = 0.0F; + currentTemperatureReadings[ sensor ].override = OVERRIDE_RESET; - lastConductivityReadCounter[ sensor ].data = 0; - lastConductivityReadCounter[ sensor ].ovData = 0; - lastConductivityReadCounter[ sensor ].ovInitData = 0; - lastConductivityReadCounter[ sensor ].override = OVERRIDE_RESET; + lastConductivityReadCounter[ sensor ].data = 0; + lastConductivityReadCounter[ sensor ].ovData = 0; + lastConductivityReadCounter[ sensor ].ovInitData = 0; + lastConductivityReadCounter[ sensor ].override = OVERRIDE_RESET; - lastConductivityErrorCounter[ sensor ].data = 0; - lastConductivityErrorCounter[ sensor ].ovData = 0; - lastConductivityErrorCounter[ sensor ].ovInitData = 0; - lastConductivityErrorCounter[ sensor ].override = OVERRIDE_RESET; + lastConductivityErrorCounter[ sensor ].data = 0; + lastConductivityErrorCounter[ sensor ].ovData = 0; + lastConductivityErrorCounter[ sensor ].ovInitData = 0; + lastConductivityErrorCounter[ sensor ].override = OVERRIDE_RESET; - conductivitySensorControl[ sensor ].initEnable = FALSE; - conductivitySensorControl[ sensor ].readAddress = 0; - conductivitySensorControl[ sensor ].readComplete = FALSE; - conductivitySensorControl[ sensor ].readData = 0; - conductivitySensorControl[ sensor ].readEnable = FALSE; - conductivitySensorControl[ sensor ].readInProgress = FALSE; - conductivitySensorControl[ sensor ].resetRequested = FALSE; - conductivitySensorControl[ sensor ].writeAddress = 0; - conductivitySensorControl[ sensor ].writeComplete = 0; - conductivitySensorControl[ sensor ].writeData = 0; - conductivitySensorControl[ sensor ].readExecState = CONDUCTIVITY_READ_INITIATE; - conductivitySensorControl[ sensor ].writeExecState = CONDUCTIVITY_WRITE_INITIATE; - conductivitySensorControl[ sensor ].writeEnable = FALSE; - conductivitySensorControl[ sensor ].writeInProgress = FALSE; + lastTemperatureReadCounter[ sensor ].data = 0; + lastTemperatureReadCounter[ sensor ].ovData = 0; + lastTemperatureReadCounter[ sensor ].ovInitData = 0; + lastTemperatureReadCounter[ sensor ].override = OVERRIDE_RESET; + + lastTemperatureErrorCounter[ sensor ].data = 0; + lastTemperatureErrorCounter[ sensor ].ovData = 0; + lastTemperatureErrorCounter[ sensor ].ovInitData = 0; + lastTemperatureErrorCounter[ sensor ].override = OVERRIDE_RESET; + + conductivitySensorStatus[ sensor ].condReadCount = 0; + conductivitySensorStatus[ sensor ].condErrorCount = 0; + conductivitySensorStatus[ sensor ].tempReadCount = 0; + conductivitySensorStatus[ sensor ].tempErrorCount = 0; + conductivitySensorStatus[ sensor ].interalCondErrorCount = 0; + conductivitySensorStatus[ sensor ].interalTempErrorCount = 0; + conductivitySensorStatus[ sensor ].calMemCount = 0; + conductivitySensorStatus[ sensor ].calData = 0; + + conductivitySensorCoefficients[ sensor ].K_high = 0; + conductivitySensorCoefficients[ sensor ].alpha_high = 0.0F; + conductivitySensorCoefficients[ sensor ].eta_high = 0.0F; + conductivitySensorCoefficients[ sensor ].zeta_high = 0; + conductivitySensorCoefficients[ sensor ].K_low = 0; + conductivitySensorCoefficients[ sensor ].alpha_low = 0.0F; + conductivitySensorCoefficients[ sensor ].eta_low = 0.0F; + conductivitySensorCoefficients[ sensor ].zeta_low = 0; + conductivitySensorCoefficients[ sensor ].beta = 0.0F; + conductivitySensorCoefficients[ sensor ].delta = 0; + conductivitySensorCoefficients[ sensor ].reserved1 = 0; + conductivitySensorCoefficients[ sensor ].reserved2 = 0; + + memset( conductivitySensorRevisions[ sensor ].swRev, 0, sizeof( U08 ) * CONDUCTIVITY_CAL_CHAR_LENGTH ); + memset( conductivitySensorRevisions[ sensor ].hwRev, 0, sizeof( U08 ) * CONDUCTIVITY_CAL_CHAR_LENGTH ); + memset( conductivitySensorRevisions[ sensor ].hwSerial, 0, sizeof( U08 ) * CONDUCTIVITY_CAL_CHAR_LENGTH ); } // Initialize the conductivity sensor FPGA alarms @@ -164,154 +197,141 @@ void readConductivitySensors( void ) { // Read raw conductivity - currentConductivityReadings[ D17_COND ].data = (F32)getFPGAD17Cond(); - currentConductivityReadings[ D27_COND ].data = (F32)getFPGAD27Cond(); - currentConductivityReadings[ D29_COND ].data = (F32)getFPGAD29Cond(); - currentConductivityReadings[ D43_COND ].data = (F32)getFPGAD43Cond(); - currentConductivityReadings[ D74_COND ].data = (F32)getFPGAD74Cond(); - currentConductivityReadings[ P9_COND ].data = (F32)getFPGAP9Conductivity(); - currentConductivityReadings[ P18_COND ].data = (F32)getFPGAP18Conductivity(); + currentConductivityReadings[ D17_COND ].data = (F32)getFPGAD17CondData(); + currentConductivityReadings[ D27_COND ].data = (F32)getFPGAD27CondData(); + currentConductivityReadings[ D29_COND ].data = (F32)getFPGAD29CondData(); + currentConductivityReadings[ D43_COND ].data = (F32)getFPGAD43CondData(); + currentConductivityReadings[ D74_COND ].data = (F32)getFPGAD74CondData(); + currentConductivityReadings[ P9_COND ].data = (F32)getFPGAP9CondData(); + currentConductivityReadings[ P18_COND ].data = (F32)getFPGAP18CondData(); // Read temperature associated to conductivity sensor currentTemperatureReadings[ D17_COND ].data = (F32)getFPGAD17CondTemp(); currentTemperatureReadings[ D27_COND ].data = (F32)getFPGAD27CondTemp(); currentTemperatureReadings[ D29_COND ].data = (F32)getFPGAD29CondTemp(); currentTemperatureReadings[ D43_COND ].data = (F32)getFPGAD43CondTemp(); currentTemperatureReadings[ D74_COND ].data = (F32)getFPGAD74CondTemp(); - currentTemperatureReadings[ P9_COND ].data = (F32)getFPGAP9Temperature(); - currentTemperatureReadings[ P18_COND ].data = (F32)getFPGAP18Temperature(); + currentTemperatureReadings[ P9_COND ].data = (F32)getFPGAP9CondTemp(); + currentTemperatureReadings[ P18_COND ].data = (F32)getFPGAP18CondTemp(); // Update read and error counters for each conductivity sensor lastConductivityReadCounter[ D17_COND ].data = (U32)getFPGAD17CondReadCount(); lastConductivityReadCounter[ D27_COND ].data = (U32)getFPGAD27CondReadCount(); lastConductivityReadCounter[ D29_COND ].data = (U32)getFPGAD29CondReadCount(); lastConductivityReadCounter[ D43_COND ].data = (U32)getFPGAD43CondReadCount(); lastConductivityReadCounter[ D74_COND ].data = (U32)getFPGAD74CondReadCount(); - lastConductivityReadCounter[ P9_COND ].data = (U32)getFPGAP9ReadCount(); - lastConductivityReadCounter[ P18_COND ].data = (U32)getFPGAP18ReadCount(); + lastConductivityReadCounter[ P9_COND ].data = (U32)getFPGAP9CondReadCount(); + lastConductivityReadCounter[ P18_COND ].data = (U32)getFPGAP18CondReadCount(); lastConductivityErrorCounter[ D17_COND ].data = (U32)getFPGAD17CondErrorCount(); lastConductivityErrorCounter[ D27_COND ].data = (U32)getFPGAD27CondErrorCount(); lastConductivityErrorCounter[ D29_COND ].data = (U32)getFPGAD29CondErrorCount(); lastConductivityErrorCounter[ D43_COND ].data = (U32)getFPGAD43CondErrorCount(); lastConductivityErrorCounter[ D74_COND ].data = (U32)getFPGAD74CondErrorCount(); - lastConductivityErrorCounter[ P9_COND ].data = (U32)getFPGAP9ErrorCount(); - lastConductivityErrorCounter[ P18_COND ].data = (U32)getFPGAP18ErrorCount(); + lastConductivityErrorCounter[ P9_COND ].data = (U32)getFPGAP9CondErrorCount(); + lastConductivityErrorCounter[ P18_COND ].data = (U32)getFPGAP18CondErrorCount(); -#ifdef ENABLE_ALARM_1 - // Monitor conductivity sensor health - checkConductivitySensors(); -#endif + lastTemperatureReadCounter[ D17_COND ].data = (U32)getFPGAD17TempReadCount(); + lastTemperatureReadCounter[ D27_COND ].data = (U32)getFPGAD27TempReadCount(); + lastTemperatureReadCounter[ D29_COND ].data = (U32)getFPGAD29TempReadCount(); + lastTemperatureReadCounter[ D43_COND ].data = (U32)getFPGAD43TempReadCount(); + lastTemperatureReadCounter[ D74_COND ].data = (U32)getFPGAD74TempReadCount(); + lastTemperatureReadCounter[ P9_COND ].data = (U32)getFPGAP9TempReadCount(); + lastTemperatureReadCounter[ P18_COND ].data = (U32)getFPGAP18TempReadCount(); + + lastTemperatureErrorCounter[ D17_COND ].data = (U32)getFPGAD17TempErrorCount(); + lastTemperatureErrorCounter[ D27_COND ].data = (U32)getFPGAD27TempErrorCount(); + lastTemperatureErrorCounter[ D29_COND ].data = (U32)getFPGAD29TempErrorCount(); + lastTemperatureErrorCounter[ D43_COND ].data = (U32)getFPGAD43TempErrorCount(); + lastTemperatureErrorCounter[ D74_COND ].data = (U32)getFPGAD74TempErrorCount(); + lastTemperatureErrorCounter[ P9_COND ].data = (U32)getFPGAP9TempErrorCount(); + lastTemperatureErrorCounter[ P18_COND ].data = (U32)getFPGAP18TempErrorCount(); + } -/*********************************************************************//** - * @brief - * The checkConductivitySensors function checks the read and error counters for - * each conductivity sensor. - * @details \b Alarm: ALARM_ID_DD_D17_COND_SENSOR_FPGA_FAULT if the - * D17 conductivity sensor is not able to be read. - * @details \b Alarm: ALARM_ID_DD_D27_COND_SENSOR_FPGA_FAULT if the - * D27 conductivity sensor is not able to be read. - * @details \b Alarm: ALARM_ID_DD_D29_COND_SENSOR_FPGA_FAULT if the - * D29 conductivity sensor is not able to be read. - * @details \b Alarm: ALARM_ID_DD_D43_COND_SENSOR_FPGA_FAULT if the - * D43 conductivity sensor is not able to be read. - * @details \b Alarm: ALARM_ID_DD_D74_COND_SENSOR_FPGA_FAULT if the - * D74 conductivity sensor is not able to be read. - * @details \b Inputs: lastConductivityReadCounter, lastConductivityErrorCounter - * @details \b Outputs: none - * @return none - *************************************************************************/ -static void checkConductivitySensors( void ) +void execConductivitySensors( void ) { - checkFPGAPersistentAlarms( FPGA_PERS_ERROR_D17_COND_SENSOR, getConductivitySensorReadCount( D17_COND ) ); - checkFPGAPersistentAlarms( FPGA_PERS_ERROR_D27_COND_SENSOR, getConductivitySensorReadCount( D27_COND ) ); - checkFPGAPersistentAlarms( FPGA_PERS_ERROR_D29_COND_SENSOR, getConductivitySensorReadCount( D29_COND ) ); - checkFPGAPersistentAlarms( FPGA_PERS_ERROR_D43_COND_SENSOR, getConductivitySensorReadCount( D43_COND ) ); - checkFPGAPersistentAlarms( FPGA_PERS_ERROR_D74_COND_SENSOR, getConductivitySensorReadCount( D74_COND ) ); - //checkFPGAPersistentAlarms( FPGA_PERS_ERROR_P9_COND_SENSOR, getConductivitySensorReadCount( P9_COND ) ); - //checkFPGAPersistentAlarms( FPGA_PERS_ERROR_P18_COND_SENSOR, getConductivitySensorReadCount( P18_COND ) ); - - checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_D17_COND_SENSOR, getConductivitySensorErrorCount( D17_COND ) ); - checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_D27_COND_SENSOR, getConductivitySensorErrorCount( D27_COND ) ); - checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_D29_COND_SENSOR, getConductivitySensorErrorCount( D29_COND ) ); - checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_D43_COND_SENSOR, getConductivitySensorErrorCount( D43_COND ) ); - checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_D74_COND_SENSOR, getConductivitySensorErrorCount( D74_COND ) ); - //checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_P9_COND_SENSOR, getConductivitySensorErrorCount( P9_COND ) ); - //checkFPGAPersistentErrorCountAlarm( FPGA_PERS_ERROR_P18_COND_SENSOR, getConductivitySensorErrorCount( P18_COND ) ); + switch ( currentConductivityState ) + { + case CONDUCTIVITY_INIT_STATE: + currentConductivityState = handleConductivityReadCalState(); + break; + case CONDUCTIVITY_READ_DATA_STATE: + currentConductivityState = handleConductivityReadDataState(); + break; + default: + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_FP_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID, (U32)currentConductivityState ) + break; + } } -/*********************************************************************//** - * @brief - * The getConductivityValue function gets the conductivity - * value for a given conductivity sensor id. - * @details \b Inputs: currentConductivityReadings[] - * @details \b Outputs: none - * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if given sensor is invalid. - * @param sensorId conductivity sensor id - * @return conductivity value - *************************************************************************/ -F32 getConductivityValue( CONDUCTIVITY_SENSORS_T sensor ) +static CONDUCTIVITY_STATE_T handleConductivityReadCalState( void ) { - F32 result = 0.0F; + CONDUCTIVITY_STATE_T state = CONDUCTIVITY_INIT_STATE; + CONDUCTIVITY_SENSORS_T sensor; - if ( sensor < NUM_OF_CONDUCTIVITY_SENSORS ) + for ( sensor = FIRST_DD_COND_SENSOR; sensor < NUM_OF_CONDUCTIVITY_SENSORS; sensor++ ) { - result = currentConductivityReadings[ sensor ].data; - if ( OVERRIDE_KEY == currentConductivityReadings[ sensor ].override ) - { - result = currentConductivityReadings[ sensor ].ovData; - } + } - else + return state; +} + +static CONDUCTIVITY_STATE_T handleConductivityReadDataState( void ) +{ + CONDUCTIVITY_STATE_T state = CONDUCTIVITY_READ_DATA_STATE; + CONDUCTIVITY_SENSORS_T sensor; + + readConductivitySensors(); + for ( sensor = FIRST_DD_COND_SENSOR; sensor < NUM_OF_CONDUCTIVITY_SENSORS; sensor++ ) { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID, sensor ); + checkCondCounters( sensor, getConductivitySensorReadCount( sensor ), getConductivitySensorErrorCount( sensor ), + getTemperatureSensorReadCount( sensor ), getTemperatureSensorErrorCount( sensor ) ); } - - return result; + return state; } -/*********************************************************************//** - * @brief - * The getConductivityTemperatureValue function gets the temperature - * value for a given conductivity sensor id. - * @details \b Inputs: currentTemperatureReadings[] - * @details \b Outputs: none - * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if given sensor is invalid. - * @param sensorId conductivity sensor id - * @return temperature value - *************************************************************************/ -F32 getConductivityTemperatureValue( CONDUCTIVITY_SENSORS_T sensor ) +void checkCondCounters( U32 sensorId, U08 condReadCount, U08 condErrorCount, U08 tempReadCount, U08 tempErrorCount ) { - F32 result = 0.0F; - - if ( sensor < NUM_OF_CONDUCTIVITY_SENSORS ) + if ( ( 0 == condErrorCount ) && ( 0 == tempErrorCount ) ) { - result = currentTemperatureReadings[ sensor ].data; - if ( OVERRIDE_KEY == currentTemperatureReadings[ sensor ].override ) + if ( conductivitySensorStatus[ sensorId ].condReadCount != condReadCount ) { - result = currentTemperatureReadings[ sensor ].ovData; + conductivitySensorStatus[ sensorId ].interalCondErrorCount = 0; } - } - else - { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID1, sensor ); - } + else + { + if ( ++conductivitySensorStatus[ sensorId ].interalCondErrorCount > MAX_ALLOWED_UNCHANGED_CONDUCTIVITY_READS ) + { + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, sensorId ) + } + } - return result; + if ( conductivitySensorStatus[ sensorId ].tempReadCount != tempReadCount ) + { + conductivitySensorStatus[ sensorId ].interalTempErrorCount = 0; + } + else + { + if ( ++conductivitySensorStatus[ sensorId ].interalTempErrorCount > MAX_ALLOWED_UNCHANGED_CONDUCTIVITY_READS ) + { + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, sensorId ) + } + } + } } /*********************************************************************//** * @brief - * The getConductivitySensorReadCount function gets the current conductivity sensor - * read count for a given conductivity sensor. + * The getConductivitySensorReadCount function gets the current read count + * for a given conductivity sensor. * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if given sensor is invalid. * @details \b Inputs: lastConductivityReadCounter * @details \b Outputs: none - * @param sensor ID of conductivity sensor to get read count for. - * @return The current conductivity sensor read count of a given conductivity sensor. + * @param sensor ID of the conductivity sensor. + * @return The current read count for given conductivity sensor. *************************************************************************/ -U32 getConductivitySensorReadCount( CONDUCTIVITY_SENSORS_T sensor ) +static U32 getConductivitySensorReadCount( CONDUCTIVITY_SENSORS_T sensor ) { U32 result = 0; @@ -325,23 +345,23 @@ } else { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID2, sensor ) + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID, sensor ) } return result; } /*********************************************************************//** * @brief - * The getConductivitySensorErrorCount function gets the current conductivity sensor - * error count for a given conductivity sensor. + * The getConductivitySensorErrorCount function gets the current error count + * for a given conductivity sensor. * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if given sensor is invalid. * @details \b Inputs: lastConductivityErrorCounter * @details \b Outputs: none - * @param sensor ID of conductivity sensor to get error count for. - * @return The current conductivity sensor error count of a given conductivity sensor. + * @param sensor ID of the conductivity sensor. + * @return The current error count for given conductivity sensor. *************************************************************************/ -U32 getConductivitySensorErrorCount( CONDUCTIVITY_SENSORS_T sensor ) +static U32 getConductivitySensorErrorCount( CONDUCTIVITY_SENSORS_T sensor ) { U32 result = 0; @@ -355,641 +375,133 @@ } else { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID3, sensor ) + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID1, sensor ) } return result; } /*********************************************************************//** * @brief - * The requestConductivitySensorReset function commands the given - * the conductivity sensor to go for reset. - * @details \b Inputs: none - * @details \b Outputs: conductivitySensorControl + * The getTemperatureSensorReadCount function gets the current read count + * for a given temperature sensor within the conductivity. * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if given sensor is invalid. - * @param sensor conductivity sensor id - * @return none + * @details \b Inputs: lastTemperatureReadCounter + * @details \b Outputs: none + * @param sensor ID of the conductivity sensor. + * @return The current read count for given temperature sensor within the conductivity sensor. *************************************************************************/ -void requestConductivitySensorReset( CONDUCTIVITY_SENSORS_T sensor ) +static U32 getTemperatureSensorReadCount( CONDUCTIVITY_SENSORS_T sensor ) { - if ( sensor < NUM_OF_CONDUCTIVITY_SENSORS ) - { - conductivitySensorControl[ sensor ].resetRequested = TRUE; - } - else - { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID4, sensor ); - } -} + U32 result = 0; -/*********************************************************************//** - * @brief - * The setConductivitySensorInitEnable function enables the given - * the conductivity sensor (re)initialization procedure. - * @details \b Inputs: none - * @details \b Outputs: conductivitySensorControl - * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if given sensor is invalid. - * @param sensor conductivity sensor id - * @return none - *************************************************************************/ -void setConductivitySensorInitEnable( CONDUCTIVITY_SENSORS_T sensor ) -{ if ( sensor < NUM_OF_CONDUCTIVITY_SENSORS ) { - conductivitySensorControl[ sensor ].initEnable = TRUE; + result = lastTemperatureReadCounter[ sensor ].data; + if ( OVERRIDE_KEY == lastTemperatureReadCounter[ sensor ].override ) + { + result = lastTemperatureReadCounter[ sensor ].ovData; + } } else { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID5, sensor ); + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID2, sensor ) } -} -/*********************************************************************//** - * @brief - * The conductivitySensorWriteRequest function requests the write transaction - * for the given conductivity sensor. - * @details \b Inputs: none - * @details \b Outputs: conductivitySensorControl - * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if given sensor is invalid. - * @param sensor conductivity sensor id - * @param writeAddr address to write for the given conductivity sensor. - * @param data data to write in write address of given conductivity sensor. - * @return none - *************************************************************************/ -void conductivitySensorWriteRequest( CONDUCTIVITY_SENSORS_T sensor, U16 writeAddr, U32 data ) -{ - if ( sensor < NUM_OF_CONDUCTIVITY_SENSORS ) - { - conductivitySensorControl[ sensor ].writeAddress = writeAddr; - conductivitySensorControl[ sensor ].writeData = data; - conductivitySensorControl[ sensor ].writeEnable = TRUE; - } - else - { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID6, sensor ); - } + return result; } /*********************************************************************//** * @brief - * The conductivitySensorReadRequest function requests the read transaction - * for the given conductivity sensor. - * @details \b Inputs: none - * @details \b Outputs: conductivitySensorControl + * The getTemperatureSensorErrorCount function gets the current error count + * for a given temperature sensor within the conductivity. * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if given sensor is invalid. - * @param sensor conductivity sensor id - * @param readAddr for sensor read transaction. - * @return none + * @details \b Inputs: lastTemperatureErrorCounter + * @details \b Outputs: none + * @param sensor ID of the conductivity sensor. + * @return The current error count for given temperature sensor within the conductivity sensor. *************************************************************************/ -void conductivitySensorReadRequest( CONDUCTIVITY_SENSORS_T sensor, U16 readAddr ) +static U32 getTemperatureSensorErrorCount( CONDUCTIVITY_SENSORS_T sensor ) { + U32 result = 0; + if ( sensor < NUM_OF_CONDUCTIVITY_SENSORS ) { - conductivitySensorControl[ sensor ].readAddress = readAddr; - conductivitySensorControl[ sensor ].readEnable = TRUE; + result = lastTemperatureErrorCounter[ sensor ].data; + if ( OVERRIDE_KEY == lastTemperatureErrorCounter[ sensor ].override ) + { + result = lastTemperatureErrorCounter[ sensor ].ovData; + } } else { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID7, sensor ); + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID3, sensor ) } + + return result; } /*********************************************************************//** * @brief - * The conductivitySensorReadData function returns the read data - * for the given conductivity sensor. - * @details \b Inputs: conductivitySensorControl + * The getConductivityValue function gets the conductivity + * value for a given conductivity sensor id. + * @details \b Inputs: currentConductivityReadings[] * @details \b Outputs: none - * @param sensor conductivity sensor id * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if given sensor is invalid. - * @return read data for the last request + * @param sensorId conductivity sensor id + * @return conductivity value *************************************************************************/ -U32 conductivitySensorReadData( CONDUCTIVITY_SENSORS_T sensor ) +F32 getConductivityValue( CONDUCTIVITY_SENSORS_T sensor ) { - U32 data; + F32 result = 0.0F; if ( sensor < NUM_OF_CONDUCTIVITY_SENSORS ) { - data = conductivitySensorControl[ sensor ].readData; - } - else - { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID8, sensor ); - } - - return data; -} - -/*********************************************************************//** - * @brief - * The handleConductivitySensorsReset function checks the reset requested - * for all conductivity sensors and perform the sensor reset. - * @note This function should be called periodically to handle any - * reset request for all conductivity sensors. - * @details \b Inputs: conductivitySensorControl - * @details \b Outputs: conductivitySensorControl - * @return none - *************************************************************************/ -void handleConductivitySensorsReset( void ) -{ - if ( TRUE == conductivitySensorControl[ D17_COND ].resetRequested ) - { - // D17 Cond sensor reset - setFPGAD17CondReset(); - conductivitySensorControl[ D17_COND ].resetRequested = FALSE; - } - else - { - // clear D17 reset - clearFPGAD17CondReset(); - } - - if ( TRUE == conductivitySensorControl[ D27_COND ].resetRequested ) - { - // D27 reset - setFPGAD27CondReset(); - conductivitySensorControl[ D27_COND ].resetRequested = FALSE; - } - else - { - // clear D27 reset - clearFPGAD27CondReset(); - } - - if ( TRUE == conductivitySensorControl[ D29_COND ].resetRequested ) - { - // D29 reset - setFPGAD29CondReset(); - conductivitySensorControl[ D29_COND ].resetRequested = FALSE; - } - else - { - // clear D29 reset - clearFPGAD29CondReset(); - } - - if ( TRUE == conductivitySensorControl[ D43_COND ].resetRequested ) - { - // D43 reset - setFPGAD43CondReset(); - conductivitySensorControl[ D43_COND ].resetRequested = FALSE; - } - else - { - // clear D43 reset - clearFPGAD43CondReset(); - } - - if ( TRUE == conductivitySensorControl[ D74_COND ].resetRequested ) - { - // D74 reset - setFPGAD74CondReset(); - conductivitySensorControl[ D74_COND ].resetRequested = FALSE; - } - else - { - // clear D74 reset - clearFPGAD74CondReset(); - } - - if ( TRUE == conductivitySensorControl[ P9_COND ].resetRequested ) - { - // P9 reset - setFPGAP9Reset(); - conductivitySensorControl[ P9_COND ].resetRequested = FALSE; - } - else - { - // clear P9 reset - clearFPGAP9Reset(); - } - - if ( TRUE == conductivitySensorControl[ P18_COND ].resetRequested ) - { - // P18 reset - setFPGAP18Reset(); - conductivitySensorControl[ P18_COND ].resetRequested = FALSE; - } - else - { - // clear P18 reset - clearFPGAP18Reset(); - } -} - -/*********************************************************************//** - * @brief - * The handleConductivitySensorsInitProcedure function checks the (re)initialization - * of conducitviy sensors request and may perform the sensor sequencing to - * complete the initialization. - * @note This function should be called periodically to handle any - * Init request for all conductivity sensors. - * @details \b Inputs: conductivitySensorControl - * @details \b Outputs: conductivitySensorControl - * @return none - *************************************************************************/ -void handleConductivitySensorsInitProcedure( void ) -{ - if ( TRUE == conductivitySensorControl[ D17_COND ].initEnable ) - { - // D17 initialization - setFPGAD17CondInitEnable(); - conductivitySensorControl[ D17_COND ].initEnable = FALSE; - } - else - { - // clear D17 Init command - clearFPGAD17CondInitEnable(); - } - - if ( TRUE == conductivitySensorControl[ D27_COND ].initEnable ) - { - // D27 initialization - setFPGAD27CondInitEnable(); - conductivitySensorControl[ D27_COND ].initEnable = FALSE; - } - else - { - // clear D27 Init command - clearFPGAD27CondInitEnable(); - } - - if ( TRUE == conductivitySensorControl[ D29_COND ].initEnable ) - { - // D29 initialization - setFPGAD29CondInitEnable(); - conductivitySensorControl[ D29_COND ].initEnable = FALSE; - } - else - { - // clear D29 Init command - clearFPGAD29CondInitEnable(); - } - - if ( TRUE == conductivitySensorControl[ D43_COND ].initEnable ) - { - // D43 initialization - setFPGAD43CondInitEnable(); - conductivitySensorControl[ D43_COND ].initEnable = FALSE; - } - else - { - // clear D43 Init command - clearFPGAD43CondInitEnable(); - } - - if ( TRUE == conductivitySensorControl[ D74_COND ].initEnable ) - { - // D74 initialization - setFPGAD74CondInitEnable(); - conductivitySensorControl[ D74_COND ].initEnable = FALSE; - } - else - { - // clear D74 Init command - clearFPGAD74CondInitEnable(); - } - - if ( TRUE == conductivitySensorControl[ P9_COND ].initEnable ) - { - // P9 initialization - setFPGAP9InitEnable(); - conductivitySensorControl[ P9_COND ].initEnable = FALSE; - } - else - { - // clear P9 Init command - clearFPGAP9InitEnable(); - } - - if ( TRUE == conductivitySensorControl[ P18_COND ].initEnable ) - { - // P18 initialization - setFPGAP18InitEnable(); - conductivitySensorControl[ P18_COND ].initEnable = FALSE; - } - else - { - // clear P18 Init command - clearFPGAP18InitEnable(); - } -} - -/*********************************************************************//** - * @brief - * The execConductivitySensorWrite function executes the conductivity sensor write - * state machine. - * @details \b Inputs: conductivitySensorWriteState - * @details \b Outputs: conductivitySensorWriteState - * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if invalid conductivity sensor write - * state seen - * @return none - *************************************************************************/ -void execConductivitySensorWrite( void ) -{ - CONDUCTIVITY_SENSORS_T sensor; - - for ( sensor = FIRST_DD_COND_SENSOR; sensor < NUM_OF_CONDUCTIVITY_SENSORS; sensor++ ) - { - // write state machine - switch ( conductivitySensorControl[ sensor ].writeExecState ) + result = currentConductivityReadings[ sensor ].data; + if ( OVERRIDE_KEY == currentConductivityReadings[ sensor ].override ) { - case CONDUCTIVITY_WRITE_INITIATE: - conductivitySensorControl[ sensor ].writeExecState = handleConductivitySensorsWriteInitiate( sensor ); - break; - - case CONDUCTIVITY_WRITE_COMPLETE: - conductivitySensorControl[ sensor ].writeExecState = handleConductivitySensorsWriteComplete( sensor ); - break; - - default: - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_CONDUCTIVITY_WR_INVALID_EXEC_STATE, conductivitySensorControl[ sensor ].writeExecState ) - conductivitySensorControl[ sensor ].writeExecState = CONDUCTIVITY_WRITE_INITIATE; - break; + result = currentConductivityReadings[ sensor ].ovData; } } -} - -/*********************************************************************//** - * @brief - * The handleConductivitySensorsWriteInitiate function initiates the write - * transaction of given conducitviy sensors. - * @details \b Inputs: conductivitySensorControl - * @details \b Outputs: conductivitySensorControl - * @param sensorID ID of conductivity sensor to handle write initiate state for - * @return CONDUCTIVITY_WRITE_STATE_T current state of write transaction - *************************************************************************/ -static CONDUCTIVITY_WRITE_STATE_T handleConductivitySensorsWriteInitiate( CONDUCTIVITY_SENSORS_T sensorID ) -{ - CONDUCTIVITY_WRITE_STATE_T state = CONDUCTIVITY_WRITE_INITIATE; - - if ( TRUE == conductivitySensorControl[ sensorID ].writeEnable && - FALSE == conductivitySensorControl[ sensorID ].writeInProgress ) + else { - conductivitySensorControl[ sensorID ].writeComplete = FALSE; - conductivitySensorControl[ sensorID ].writeInProgress = TRUE; - - if ( D17_COND == sensorID ) - { - setFPGAD17D74Address( conductivitySensorControl[ sensorID ].writeAddress ); - setFPGAD17D74Data( conductivitySensorControl[ sensorID ].writeData ); - setFPGAD17CondWriteEnable(); - } - else if ( D27_COND == sensorID ) - { - setFPGAD27D29Address( conductivitySensorControl[ sensorID ].writeAddress ); - setFPGAD27D29Data( conductivitySensorControl[ sensorID ].writeData ); - setFPGAD27CondWriteEnable(); - } - else if ( D29_COND == sensorID ) - { - setFPGAD27D29Address( conductivitySensorControl[ sensorID ].writeAddress ); - setFPGAD27D29Data( conductivitySensorControl[ sensorID ].writeData ); - setFPGAD29CondWriteEnable(); - } - else if ( D43_COND == sensorID ) - { - setFPGAD43Address( conductivitySensorControl[ sensorID ].writeAddress ); - setFPGAD43Data( conductivitySensorControl[ sensorID ].writeData ); - setFPGAD43CondWriteEnable(); - } - else if ( D74_COND == sensorID ) - { - setFPGAD17D74Address( conductivitySensorControl[ sensorID ].writeAddress ); - setFPGAD17D74Data( conductivitySensorControl[ sensorID ].writeData ); - setFPGAD74CondWriteEnable(); - } - else if ( P9_COND == sensorID ) - { - setFPGAP9Address( conductivitySensorControl[ sensorID ].writeAddress ); - setFPGAP9Data( conductivitySensorControl[ sensorID ].writeData ); - setFPGAP9WriteEnable(); - } - else if ( P18_COND == sensorID ) - { - setFPGAP18Address( conductivitySensorControl[ sensorID ].writeAddress ); - setFPGAP18Data( conductivitySensorControl[ sensorID ].writeData ); - setFPGAP18WriteEnable(); - } - - state = CONDUCTIVITY_WRITE_COMPLETE; + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID, sensor ); } - return state; + return result; } /*********************************************************************//** * @brief - * The handleConductivitySensorsWriteComplete function updates the write - * transaction completion of given conducitviy sensors. - * @details \b Inputs: conductivitySensorControl - * @details \b Outputs: conductivitySensorControl - * @param sensorID ID of conductivity sensor to handle write complete state for - * @return CONDUCTIVITY_WRITE_STATE_T current state of write transaction + * The getConductivityTemperatureValue function gets the temperature + * value for a given conductivity sensor id. + * @details \b Inputs: currentTemperatureReadings[] + * @details \b Outputs: none + * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if given sensor is invalid. + * @param sensorId conductivity sensor id + * @return temperature value *************************************************************************/ -static CONDUCTIVITY_WRITE_STATE_T handleConductivitySensorsWriteComplete( CONDUCTIVITY_SENSORS_T sensorID ) +F32 getConductivityTemperatureValue( CONDUCTIVITY_SENSORS_T sensor ) { - CONDUCTIVITY_WRITE_STATE_T state = CONDUCTIVITY_WRITE_COMPLETE; + F32 result = 0.0F; - if ( TRUE == conductivitySensorControl[ sensorID ].writeInProgress ) + if ( sensor < NUM_OF_CONDUCTIVITY_SENSORS ) { - conductivitySensorControl[ sensorID ].writeComplete = TRUE; - conductivitySensorControl[ sensorID ].writeEnable = FALSE; - - if ( D17_COND == sensorID ) + result = currentTemperatureReadings[ sensor ].data; + if ( OVERRIDE_KEY == currentTemperatureReadings[ sensor ].override ) { - clearFPGAD17CondWriteEnable(); + result = currentTemperatureReadings[ sensor ].ovData; } - else if ( D27_COND == sensorID ) - { - clearFPGAD27CondWriteEnable(); - } - else if ( D29_COND == sensorID ) - { - clearFPGAD29CondWriteEnable(); - } - else if ( D43_COND == sensorID ) - { - clearFPGAD43CondWriteEnable(); - } - else if ( D74_COND == sensorID ) - { - clearFPGAD74CondWriteEnable(); - } - else if ( P9_COND == sensorID ) - { - clearFPGAP9WriteEnable(); - } - else if ( P18_COND == sensorID ) - { - clearFPGAP18WriteEnable(); - } - - state = CONDUCTIVITY_WRITE_INITIATE; } - - return state; -} - -/*********************************************************************//** - * @brief - * The execConductivitySensorRead function executes the conductivity sensor read - * state machine. - * @details \b Inputs: conductivitySensorReadState - * @details \b Outputs: conductivitySensorReadState - * @details \b Alarm: ALARM_ID_DD_SOFTWARE_FAULT if invalid conductivity sensor read - * state seen - * @return none - *************************************************************************/ -void execConductivitySensorRead( void ) -{ - CONDUCTIVITY_SENSORS_T sensor; - - for ( sensor = FIRST_DD_COND_SENSOR; sensor < NUM_OF_CONDUCTIVITY_SENSORS; sensor++ ) + else { - // Read state machine - switch ( conductivitySensorControl[ sensor ].readExecState ) - { - case CONDUCTIVITY_READ_INITIATE: - conductivitySensorControl[ sensor ].readExecState = handleConductivitySensorsReadInitiate( sensor ); - break; - - case CONDUCTIVITY_READ_COMPLETE: - conductivitySensorControl[ sensor ].readExecState = handleConductivitySensorsReadComplete( sensor ); - break; - - default: - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_CONDUCTIVITY_RD_INVALID_EXEC_STATE, conductivitySensorControl[ sensor ].readExecState ) - conductivitySensorControl[ sensor ].readExecState = CONDUCTIVITY_READ_INITIATE; - break; - } + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, SW_FAULT_ID_INVALID_CONDUCTIVITY_SENSOR_ID1, sensor ); } -} -/*********************************************************************//** - * @brief - * The handleConductivitySensorsReadInitiate function initiates the read - * transaction of given conducitviy sensors. - * @details \b Inputs: conductivitySensorControl - * @details \b Outputs: conductivitySensorControl - * @param sensorID ID of conductivity sensor to handle read initiate state for - * @return CONDUCTIVITY_READ_STATE_T current state of read transaction - *************************************************************************/ -static CONDUCTIVITY_READ_STATE_T handleConductivitySensorsReadInitiate( CONDUCTIVITY_SENSORS_T sensorID ) -{ - CONDUCTIVITY_READ_STATE_T state = CONDUCTIVITY_READ_INITIATE; - - if ( TRUE == conductivitySensorControl[ sensorID ].readEnable && - FALSE == conductivitySensorControl[ sensorID ].readInProgress ) - { - // D17 read request - conductivitySensorControl[ sensorID ].readComplete = FALSE; - conductivitySensorControl[ sensorID ].readInProgress = TRUE; - - if ( D17_COND == sensorID ) - { - setFPGAD17D74Address( conductivitySensorControl[ sensorID ].readAddress ); - setFPGAD17CondReadEnable(); - } - else if ( D27_COND == sensorID ) - { - setFPGAD27D29Address( conductivitySensorControl[ sensorID ].readAddress ); - setFPGAD27CondReadEnable(); - } - else if ( D29_COND == sensorID ) - { - setFPGAD27D29Address( conductivitySensorControl[ sensorID ].readAddress ); - setFPGAD29CondReadEnable(); - } - else if ( D43_COND == sensorID ) - { - setFPGAD43Address( conductivitySensorControl[ sensorID ].readAddress ); - setFPGAD43CondReadEnable(); - } - else if ( D74_COND == sensorID ) - { - setFPGAD17D74Address( conductivitySensorControl[ sensorID ].readAddress ); - setFPGAD74CondReadEnable(); - } - else if ( P9_COND == sensorID ) - { - setFPGAP9Address( conductivitySensorControl[ sensorID ].readAddress ); - setFPGAP9ReadEnable(); - } - else if ( P18_COND == sensorID ) - { - setFPGAP18Address( conductivitySensorControl[ sensorID ].readAddress ); - setFPGAP18ReadEnable(); - } - - state = CONDUCTIVITY_READ_COMPLETE; - } - - return state; + return result; } -/*********************************************************************//** - * @brief - * The handleConductivitySensorsReadComplete function updates the read - * request completion of given conducitviy sensors. - * @details \b Inputs: conductivitySensorControl - * @details \b Outputs: conductivitySensorControl - * @param sensorID ID of conductivity sensor to handle read complete state for - * @return CONDUCTIVITY_READ_STATE_T current state of write transaction - *************************************************************************/ -static CONDUCTIVITY_READ_STATE_T handleConductivitySensorsReadComplete( CONDUCTIVITY_SENSORS_T sensorID ) -{ - CONDUCTIVITY_READ_STATE_T state = CONDUCTIVITY_READ_COMPLETE; - if ( TRUE == conductivitySensorControl[ sensorID ].readInProgress ) - { - conductivitySensorControl[ sensorID ].readComplete = TRUE; - conductivitySensorControl[ sensorID ].readEnable = FALSE; - - if ( D17_COND == sensorID ) - { - conductivitySensorControl[ sensorID ].readData = getFPGAD17CondData(); - clearFPGAD17CondReadEnable(); - } - else if ( D27_COND == sensorID ) - { - conductivitySensorControl[ sensorID ].readData = getFPGAD27CondData(); - clearFPGAD27CondReadEnable(); - } - else if ( D29_COND == sensorID ) - { - conductivitySensorControl[ sensorID ].readData = getFPGAD29CondData(); - clearFPGAD29CondReadEnable(); - } - else if ( D43_COND == sensorID ) - { - conductivitySensorControl[ sensorID ].readData = getFPGAD43CondData(); - clearFPGAD43CondReadEnable(); - } - else if ( D74_COND == sensorID ) - { - conductivitySensorControl[ sensorID ].readData = getFPGAD74CondData(); - clearFPGAD74CondReadEnable(); - } - else if ( P9_COND == sensorID ) - { - conductivitySensorControl[ sensorID ].readData = getFPGAP9Data(); - clearFPGAP9ReadEnable(); - } - else if ( P18_COND == sensorID ) - { - conductivitySensorControl[ sensorID ].readData = getFPGAP18Data(); - clearFPGAP18ReadEnable(); - } - - state = CONDUCTIVITY_READ_INITIATE; - } - - return state; -} - - /************************************************************************* * TEST SUPPORT FUNCTIONS *************************************************************************/ @@ -1053,7 +565,7 @@ * ID and override value of the conductivity sensor read counter. * @return TRUE if override successful, FALSE if not *************************************************************************/ -BOOL testDDConductivitySensorReadCounterOverride( MESSAGE_T *message ) +BOOL testDDConductivitySensorConductivityReadCounterOverride( MESSAGE_T *message ) { BOOL result = FALSE; TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; @@ -1077,7 +589,7 @@ * ID and override value of the conductivity sensor error counter. * @return TRUE if override successful, FALSE if not *************************************************************************/ -BOOL testDDConductivitySensorErrorCounterOverride( MESSAGE_T *message ) +BOOL testDDConductivitySensorConductivityErrorCounterOverride( MESSAGE_T *message ) { BOOL result = FALSE; TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; @@ -1149,7 +661,7 @@ * ID and override value of the conductivity sensor read counter. * @return TRUE if override successful, FALSE if not *************************************************************************/ -BOOL testFPConductivitySensorReadCounterOverride( MESSAGE_T *message ) +BOOL testFPConductivitySensorConductivityReadCounterOverride( MESSAGE_T *message ) { BOOL result = FALSE; TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; @@ -1173,7 +685,7 @@ * ID and override value of the conductivity sensor error counter. * @return TRUE if override successful, FALSE if not *************************************************************************/ -BOOL testFPConductivitySensorErrorCounterOverride( MESSAGE_T *message ) +BOOL testFPConductivitySensorConductivityErrorCounterOverride( MESSAGE_T *message ) { BOOL result = FALSE; TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; Index: firmware/App/Drivers/ConductivitySensors.h =================================================================== diff -u -r830213bc6dcc1a684610caf78c79d55f2cb41e93 -r82b841cdb65ac335475e02841b7b568d1f5c77b1 --- firmware/App/Drivers/ConductivitySensors.h (.../ConductivitySensors.h) (revision 830213bc6dcc1a684610caf78c79d55f2cb41e93) +++ firmware/App/Drivers/ConductivitySensors.h (.../ConductivitySensors.h) (revision 82b841cdb65ac335475e02841b7b568d1f5c77b1) @@ -36,53 +36,103 @@ */ // ********** public definitions ********** +#define CONDUCTIVITY_CAL_CHAR_LENGTH 10 /// Enumeration of conductivity sensors. typedef enum ConductivitySensors { - D17_COND = 0, ///< Bicarb only conductivity sensor - 1 - FIRST_DD_COND_SENSOR = D17_COND, ///< First conductivity sensor - D27_COND, ///< Acid and Bicarb mix conductivity sensor - 1 - D29_COND, ///< Acid and Bicarb mix conductivity sensor - 2 - D43_COND, ///< Spent dialysate conductivity sensor - D74_COND, ///< Bicarb only conductivity sensor - 2 - LAST_DD_COND_SENSOR = D74_COND, ///< Last conductivity sensor - P9_COND, ///< Inlet water conductivity sensor - FIRST_FP_COND_SENSOR = P9_COND, ///< First FP conductivity sensor - P18_COND, ///< RO outlet water conductivity sensor - LAST_FP_COND_SENSOR = P18_COND, ///< Last FP conductivity sensor - NUM_OF_CONDUCTIVITY_SENSORS ///< Number of conductivity sensors + D17_COND = 0, ///< Bicarb only conductivity sensor - 1 + FIRST_DD_COND_SENSOR = D17_COND, ///< First conductivity sensor + D27_COND, ///< Acid and Bicarb mix conductivity sensor - 1 + D29_COND, ///< Acid and Bicarb mix conductivity sensor - 2 + D43_COND, ///< Spent dialysate conductivity sensor + D74_COND, ///< Bicarb only conductivity sensor - 2 + LAST_DD_COND_SENSOR = D74_COND, ///< Last conductivity sensor + P9_COND, ///< Inlet water conductivity sensor + FIRST_FP_COND_SENSOR = P9_COND, ///< First FP conductivity sensor + P18_COND, ///< RO outlet water conductivity sensor + LAST_FP_COND_SENSOR = P18_COND, ///< Last FP conductivity sensor + NUM_OF_CONDUCTIVITY_SENSORS ///< Number of conductivity sensors } CONDUCTIVITY_SENSORS_T; +typedef enum ConductivityCalDataIdx +{ + CAL_DATA_1, ///< Cal Data 1. cell coefficient, high range + FIRST_CAL_DATA = CAL_DATA_1, ///< First index of calibration data + CAL_DATA_2, ///< Cal Data 2. temperature correction, high range + CAL_DATA_3, ///< Cal Data 3. resistance scale factor, high range + CAL_DATA_4, ///< Cal Data 4. resistance offset, high range + CAL_DATA_5, ///< Cal Data 5. cell coefficient, low range + CAL_DATA_6, ///< Cal Data 6. temperature correction, low range + CAL_DATA_7, ///< Cal Data 7. resistance scale factor, low range + CAL_DATA_8, ///< Cal Data 8. resistance offset, low range + CAL_DATA_9, ///< Cal Data 9. cell coefficient, high range + CAL_DATA_10, ///< Cal Data 10. Temperature scale factor + CAL_DATA_11, ///< Cal Data 11. Reserved. + CAL_DATA_12, ///< Cal Data 12. Reserved + LAST_CAL_DATA = CAL_DATA_12, ///< Last index of calibration data + SW_REV_LOWER_WORD, ///< SW Revision. 3 - 0 bytes + FIRST_SW_REV = SW_REV_LOWER_WORD, ///< First index of SW revision + SW_REV_MID_WORD, ///< SW Revision. 7 - 4 bytes + SW_REV_UPPER_WORD, ///< SW Revision. 9 - 8 bytes + 0'd 10th & 11th byte ( 0x0000 ) + LAST_SW_REV = SW_REV_UPPER_WORD, ///< Last index of SW revision + HW_REV_LOWER_WORD, ///< HW Revision. 3 - 0 bytes + FIRST_HW_REV = HW_REV_LOWER_WORD, ///< First index of HW revision + HW_REV_MID_WORD, ///< HW Revision. 7 - 4 bytes + HW_REV_UPPER_WORD, ///< HW Revision. 9 - 8 bytes + 0'd 10th & 11th byte ( 0x0000 ) + LAST_HW_REV = HW_REV_UPPER_WORD, ///< Last index of HW revision + HW_SERIAL_LOWER_WORD, ///< HW Serial Number. 3 - 0 bytes + FIRST_SERIAL_REV = HW_SERIAL_LOWER_WORD, ///< First index of HW Serial Number + HW_SERIAL_MID_WORD, ///< HW Serial Number. 7 - 4 bytes + HW_SERIAL_UPPER_WORD, ///< HW Serial Number. 9 - 8 bytes + 0'd 10th & 11th byte ( 0x0000 ) + LAST_SERIAL_REV = HW_SERIAL_UPPER_WORD, ///< Last index of HW Serial Number + NUM_OF_CONDUCTIVTY_CAL_IDXS, ///< Number of conductivity cal indexes. +} CONDUCTIVITY_CAL_IDX_T; + +typedef struct { + U32 K_high; ///< (cell coefficient, high range), default = 4, range = [3, 6] + F32 alpha_high; ///< (temperature correction, high range), default = 0.02, range = [0.005, 0.04] + F32 eta_high; ///< (resistance scale factor, high range), default = 1, range = [0.5, 3] + S32 zeta_high; ///< (resistance offset, high range), default = 0, range = [-1000, 1000] + U32 K_low; ///< (cell coefficient, low range), default = 4, range = [3, 6] + F32 alpha_low; ///< (temperature correction, low range), default = 0.02, range = [0.005, 0.04] + F32 eta_low; ///< (resistance scale factor, low range), default = 1, range = [0.5, 3] + S32 zeta_low; ///< (resistance offset, low range), default = 0, range = [-1000, 1000] + F32 beta; ///< (Temperature scale factor), default = 1, range = [0.5, 2] + S32 delta; ///< (Temperature offset), default = 0, range = [-10, 10] + U32 reserved1; ///< Reserved cal slot. + U32 reserved2; ///< Reserved cal slot. +} CONDUCTIVITY_COEFFICIENTS_T; + +typedef struct +{ + U08 swRev[ CONDUCTIVITY_CAL_CHAR_LENGTH ]; ///< SW Revision. + U08 hwRev[ CONDUCTIVITY_CAL_CHAR_LENGTH ]; ///< HW Revision + U08 hwSerial[ CONDUCTIVITY_CAL_CHAR_LENGTH ]; ///< HW Serial Number. +} CONDUCTIVITY_REVISIONS_T; + // ********** public function prototypes ********** void initConductivitySensors( void ); +void execConductivitySensors( void ); void readConductivitySensors( void ); F32 getConductivityValue( CONDUCTIVITY_SENSORS_T sensor ); F32 getConductivityTemperatureValue( CONDUCTIVITY_SENSORS_T sensor ); -U32 getConductivitySensorReadCount( CONDUCTIVITY_SENSORS_T sensor ); -U32 getConductivitySensorErrorCount( CONDUCTIVITY_SENSORS_T sensor ); -void handleConductivitySensorsReset( void ); -void handleConductivitySensorsInitProcedure( void ); -void execConductivitySensorWrite( void ); -void execConductivitySensorRead( void ); - -void requestConductivitySensorReset( CONDUCTIVITY_SENSORS_T sensor ); -void setConductivitySensorInitEnable( CONDUCTIVITY_SENSORS_T sensor ); -void conductivitySensorWriteRequest( CONDUCTIVITY_SENSORS_T sensor, U16 writeAddr, U32 data ); -void conductivitySensorReadRequest( CONDUCTIVITY_SENSORS_T sensor, U16 readAddr ); -U32 conductivitySensorReadData( CONDUCTIVITY_SENSORS_T sensor ); - BOOL testDDConductivitySensorReadingsOverride( MESSAGE_T *message ); BOOL testDDConductivitySensorTemperatureReadingsOverride( MESSAGE_T *message ); -BOOL testDDConductivitySensorReadCounterOverride( MESSAGE_T *message ); -BOOL testDDConductivitySensorErrorCounterOverride( MESSAGE_T *message ); +BOOL testDDConductivitySensorConductivityReadCounterOverride( MESSAGE_T *message ); +BOOL testDDConductivitySensorConductivityErrorCounterOverride( MESSAGE_T *message ); +BOOL testDDConductivitySensorTemperatureReadCounterOverride( MESSAGE_T *message ); +BOOL testDDConductivitySensorTemperatureErrorCounterOverride( MESSAGE_T *message ); + BOOL testFPConductivitySensorReadingsOverride( MESSAGE_T *message ); BOOL testFPConductivitySensorTemperatureReadingsOverride( MESSAGE_T *message ); -BOOL testFPConductivitySensorReadCounterOverride( MESSAGE_T *message ); -BOOL testFPConductivitySensorErrorCounterOverride( MESSAGE_T *message ); +BOOL testFPConductivitySensorConductivityReadCounterOverride( MESSAGE_T *message ); +BOOL testFPConductivitySensorConductivityErrorCounterOverride( MESSAGE_T *message ); +BOOL testFPConductivitySensorTemperatureReadCounterOverride( MESSAGE_T *message ); +BOOL testFPConductivitySensorTemperatureErrorCounterOverride( MESSAGE_T *message ); /**@}*/ Index: firmware/App/Monitors/Conductivity.h =================================================================== diff -u -rff82c2f697e729f16098416acad3d98e337a38cd -r82b841cdb65ac335475e02841b7b568d1f5c77b1 --- firmware/App/Monitors/Conductivity.h (.../Conductivity.h) (revision ff82c2f697e729f16098416acad3d98e337a38cd) +++ firmware/App/Monitors/Conductivity.h (.../Conductivity.h) (revision 82b841cdb65ac335475e02841b7b568d1f5c77b1) @@ -22,7 +22,7 @@ #ifdef __TEENSY_CONDUCTIVITY_DRIVER__ #include "ConductivityTeensy.h" #else -#include "ConductivitySensor.h" +#include "ConductivitySensors.h" #endif /** Index: firmware/App/Monitors/Temperature.c =================================================================== diff -u -rf40a7a70ad79b1dfba9d3b19887326d0a923a775 -r82b841cdb65ac335475e02841b7b568d1f5c77b1 --- firmware/App/Monitors/Temperature.c (.../Temperature.c) (revision f40a7a70ad79b1dfba9d3b19887326d0a923a775) +++ firmware/App/Monitors/Temperature.c (.../Temperature.c) (revision 82b841cdb65ac335475e02841b7b568d1f5c77b1) @@ -19,7 +19,7 @@ #ifdef __TEENSY_CONDUCTIVITY_DRIVER__ #include "ConductivityTeensy.h" #else -#include "ConductivitySensor.h" +#include "ConductivitySensors.h" #endif #include "Conductivity.h" #include "Flow.h" Index: firmware/App/Services/FpgaDD.c =================================================================== diff -u -r4062a59e300e6e886a0aca222c2cc26a57aef783 -r82b841cdb65ac335475e02841b7b568d1f5c77b1 --- firmware/App/Services/FpgaDD.c (.../FpgaDD.c) (revision 4062a59e300e6e886a0aca222c2cc26a57aef783) +++ firmware/App/Services/FpgaDD.c (.../FpgaDD.c) (revision 82b841cdb65ac335475e02841b7b568d1f5c77b1) @@ -187,55 +187,55 @@ U16 fpgaD76PumpStepCountStatus; ///< Reg 616. UF pump revolution down count status U08 fpgaD76PumpFault; ///< Reg 618: UF pump fault U08 fpga_UnUsed_4; ///< Reg 619: Not used - S16 pressureP46; ///< Reg 620. P46 pressure data. - U16 temperatureP46; ///< Reg 622. P46 temperature data. - S16 pressureM3; ///< Reg 624. M3 pressure data. - U16 temperatureM3; ///< Reg 626. M3 temperature data. - S16 pressureP8; ///< Reg 628. P8 pressure data. - U16 temperatureP8; ///< Reg 630. P8 temperature data. - S16 pressureP13; ///< Reg 632. P13 pressure data. - U16 temperatureP13; ///< Reg 634. P13 temperature data. - S16 pressureP17; ///< Reg 636. P17 pressure data. - U16 temperatureP17; ///< Reg 638. P17 temperature data. - U16 p40PumpTachCount; ///< Reg 640. P40 pump tachometer counter. - U08 p25LevelSwitch; ///< Reg 642. P25 level switch. - U08 fpga_UnUsed_5; ///< Reg 643. Reserved. - U16 flowRateP7; ///< Reg 644. P7 flow sensor rate. - U16 flowTempP7; ///< Reg 646. P7 flow sensor temperature. - U16 p12PumpTachCount; ///< Reg 648. P12 pump tachometer counter. - U16 d79SpeedPulseWidth; ///< Reg 650. D79 pusle width feedback. - U16 flowIntTempP7; ///< Reg 652. P7 flow sensor internal temperature. - U08 valveIOControlReadback; ///< Reg 654. IO Valve control bits read back. - U08 valveFPControlReadback; ///< Reg 655. FP Valve control enable read back. - U08 valveIOPWMEnableReadback; ///< Reg 656. IO Valve PWM enable read back. - U08 valveFPPWMEnableReadback; ///< Reg 657. FP Valve PWM enable read back. - U16 p12PumpPWMReadback; ///< Reg 658. P12 pump PWM read back. - U16 p40PumpPWMReadback; ///< Reg 660. P40 pump PWM read back. - U08 p7flowReadCount; ///< Reg 662. P7 Flow sensor read counter. - U08 p7flowErrorCount; ///< Reg 663. P7 Flow sensor error counter. - U16 fpgaD87PresPressure; ///< Reg 664. D87 MPM pressure sensor RAW pressure data - U16 fpgaD87PresTemp; ///< Reg 666. D87 MPM pressure sensor RAW temperature data - U32 fpgaD99Temp; ///< Reg 668. D99 temperature sensor - U32 fpga_UnUsed_6; ///< Reg 672. Reserved. - U32 fpga_UnUsed_7; ///< Reg 676. Reserved. - U08 ad7124errcnt; ///< Reg 680. Counter which increments when an invalid transaction happen between FPGA and AD7124. - U08 ad7124readcnt; ///< Reg 681. Counter which increments when a valid transaction happens between FPGA and AD7124. - U16 flowRateP16; ///< Reg 682. P16 flow sensor rate. - U16 flowTempP16; ///< Reg 684. P16 flow sensor temperature. - U16 flowIntTempP16; ///< Reg 686. P16 flow sensor internal temperature. - U08 p16flowReadCount; ///< Reg 688. P16 Flow sensor read counter. - U08 p16flowErrorCount; ///< Reg 689. P16 Flow sensor error counter. - U32 d11HallSense; ///< Reg 690. D11 Pump hall sensor optical sensor interface pulse width. - U32 d10HallSense; ///< Reg 694. D10 Pump hall sensor optical sensor interface pulse width. - U32 d76HallSense; ///< Reg 698. D76 Pump hall sensor optical sensor interface pulse width. - U32 d16CondCalData; ///< Reg 702. D16 Cal Word - Holds current word being read from cal memory. - U32 d16CondCond; ///< Reg 706. D16 Conductivity Measurement. - U32 d16CondTemp; ///< Reg 710. D16 Temperature Measurement. - U08 d16CondCondReadCount; ///< Reg 714. D16 Conductivity successful read count. - U08 d16CondCondErrorCount; ///< Reg 715. D16 Conductivity unsuccessful error count. - U08 d16CondTempReadCount; ///< Reg 716. D16 Temperature successful read count. - U08 d16CondTempErrorCount; ///< Reg 717. D16 Temperature unsuccessful error count. - U08 d16CondMemCounter; ///< Reg 718. D16 Cal memory counter that keeps track of which cal word. + S16 pressureP46; ///< Reg 620. P46 pressure data. + U16 temperatureP46; ///< Reg 622. P46 temperature data. + S16 pressureM3; ///< Reg 624. M3 pressure data. + U16 temperatureM3; ///< Reg 626. M3 temperature data. + S16 pressureP8; ///< Reg 628. P8 pressure data. + U16 temperatureP8; ///< Reg 630. P8 temperature data. + S16 pressureP13; ///< Reg 632. P13 pressure data. + U16 temperatureP13; ///< Reg 634. P13 temperature data. + S16 pressureP17; ///< Reg 636. P17 pressure data. + U16 temperatureP17; ///< Reg 638. P17 temperature data. + U16 p40PumpTachCount; ///< Reg 640. P40 pump tachometer counter. + U08 p25LevelSwitch; ///< Reg 642. P25 level switch. + U08 fpga_UnUsed_5; ///< Reg 643. Reserved. + U16 flowRateP7; ///< Reg 644. P7 flow sensor rate. + U16 flowTempP7; ///< Reg 646. P7 flow sensor temperature. + U16 p12PumpTachCount; ///< Reg 648. P12 pump tachometer counter. + U16 d79SpeedPulseWidth; ///< Reg 650. D79 pusle width feedback. + U16 flowIntTempP7; ///< Reg 652. P7 flow sensor internal temperature. + U08 valveIOControlReadback; ///< Reg 654. IO Valve control bits read back. + U08 valveFPControlReadback; ///< Reg 655. FP Valve control enable read back. + U08 valveIOPWMEnableReadback; ///< Reg 656. IO Valve PWM enable read back. + U08 valveFPPWMEnableReadback; ///< Reg 657. FP Valve PWM enable read back. + U16 p12PumpPWMReadback; ///< Reg 658. P12 pump PWM read back. + U16 p40PumpPWMReadback; ///< Reg 660. P40 pump PWM read back. + U08 p7flowReadCount; ///< Reg 662. P7 Flow sensor read counter. + U08 p7flowErrorCount; ///< Reg 663. P7 Flow sensor error counter. + U16 fpgaD87PresPressure; ///< Reg 664. D87 MPM pressure sensor RAW pressure data + U16 fpgaD87PresTemp; ///< Reg 666. D87 MPM pressure sensor RAW temperature data + U32 fpgaD99Temp; ///< Reg 668. D99 temperature sensor + U32 fpga_UnUsed_6; ///< Reg 672. eserved. + U32 fpga_UnUsed_7; ///< Reg 676. Reserved. + U08 ad7124errcnt; ///< Reg 680. Counter which increments when an invalid transaction happen between FPGA and AD7124. + U08 ad7124readcnt; ///< Reg 681. Counter which increments when a valid transaction happens between FPGA and AD7124. + U16 flowRateP16; ///< Reg 682. P16 flow sensor rate. + U16 flowTempP16; ///< Reg 684. P16 flow sensor temperature. + U16 flowIntTempP16; ///< Reg 686. P16 flow sensor internal temperature. + U08 p16flowReadCount; ///< Reg 688. P16 Flow sensor read counter. + U08 p16flowErrorCount; ///< Reg 689. P16 Flow sensor error counter. + U32 d11HallSense; ///< Reg 690. D11 Pump hall sensor optical sensor interface pulse width. + U32 d10HallSense; ///< Reg 694. D10 Pump hall sensor optical sensor interface pulse width. + U32 d76HallSense; ///< Reg 698. D76 Pump hall sensor optical sensor interface pulse width. + U32 d17CondCalData; ///< Reg 702. D16 Cal Word - Holds current word being read from cal memory. + U32 d17CondCond; ///< Reg 706. D16 Conductivity Measurement. + U32 d17CondTemp; ///< Reg 710. D16 Temperature Measurement. + U08 d17CondCondReadCount; ///< Reg 714. D16 Conductivity successful read count. + U08 d17CondCondErrorCount; ///< Reg 715. D16 Conductivity unsuccessful error count. + U08 d17CondTempReadCount; ///< Reg 716. D16 Temperature successful read count. + U08 d17CondTempErrorCount; ///< Reg 717. D16 Temperature unsuccessful error count. + U08 d17CondMemCounter; ///< Reg 718. D16 Cal memory counter that keeps track of which cal word. U08 d74CondMemCounter; ///< Reg 719. D74 Cal memory counter that keeps track of which cal word. U32 d74CondCalData; ///< Reg 720. D74 Cal Word - Holds current word being read from cal memory. U32 d74CondCond; ///< Reg 724. D74 Conductivity Measurement. @@ -2627,4 +2627,675 @@ return fpgaSensorReadings.p40PumpTachCount; } +/*********************************************************************//** + * @brief + * The getFPGAD17CondReadCount function gets the D17 conductivity read count. + * @details \b Inputs: fpgaSensorReadings.d17CondCondReadCount + * @details \b Outputs: none + * @return D17 Conductivity sensor read count + *************************************************************************/ +U08 getFPGAD17CondReadCount( void ) +{ + return fpgaSensorReadings.d17CondCondReadCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD17CondErrorCount function gets the D17 conductivity error count. + * @details \b Inputs: fpgaSensorReadings.d17CondCondErrorCount + * @details \b Outputs: none + * @return D17 Conductivity sensor error count + *************************************************************************/ +U08 getFPGAD17CondErrorCount( void ) +{ + return fpgaSensorReadings.d17CondCondErrorCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD17TempReadCount function gets the D17 (D16) temperature read count. + * @details \b Inputs: fpgaSensorReadings.d17CondTempReadCount + * @details \b Outputs: none + * @return D17 (D16) Temperature sensor read count + *************************************************************************/ +U08 getFPGAD17TempReadCount( void ) +{ + return fpgaSensorReadings.d17CondTempReadCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD17TempErrorCount function gets the D17 (D16) temperature error count. + * @details \b Inputs: fpgaSensorReadings.d17CondTempErrorCount + * @details \b Outputs: none + * @return D17 (D16) Temperature sensor error count + *************************************************************************/ +U08 getFPGAD17TempErrorCount( void ) +{ + return fpgaSensorReadings.d17CondTempErrorCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD17CondData function gets the D17 conductivity data. + * @details \b Inputs: fpgaSensorReadings.d17CondCond + * @details \b Outputs: none + * @return D17 Conductivity data + *************************************************************************/ +U32 getFPGAD17CondData( void ) +{ + return fpgaSensorReadings.d17CondCond; +} + +/*********************************************************************//** + * @brief + * The getFPGAD17CondTemp function gets the D17 (D16) temperature data. + * @details \b Inputs: fpgaSensorReadings.d17CondTemp + * @details \b Outputs: none + * @return D17 (D16) Temperature data + *************************************************************************/ +U32 getFPGAD17CondTemp( void ) +{ + return fpgaSensorReadings.d17CondTemp; +} + +/*********************************************************************//** + * @brief + * The getFPGAD17CondData function gets the D17 cal data. + * @details \b Inputs: fpgaSensorReadings.d17CondCalData + * @details \b Outputs: none + * @return D17 calibration data + *************************************************************************/ +U32 getFPGAD17CondCalData( void ) +{ + return fpgaSensorReadings.d17CondCalData; +} + +/*********************************************************************//** + * @brief + * The getFPGAD17CalMemCounter function gets the D17 memory count. + * @details \b Inputs: fpgaSensorReadings.d17CondMemCounter + * @details \b Outputs: none + * @return D17 memory count + *************************************************************************/ +U08 getFPGAD17CalMemCounter( void ) +{ + return fpgaSensorReadings.d17CondMemCounter; +} + +/*********************************************************************//** + * @brief + * The getFPGAD27CondReadCount function gets the D27 conductivity read count. + * @details \b Inputs: fpgaSensorReadings.d27CondCondReadCount + * @details \b Outputs: none + * @return D27 Conductivity sensor read count + *************************************************************************/ +U08 getFPGAD27CondReadCount( void ) +{ + return fpgaSensorReadings.d27CondCondReadCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD27CondErrorCount function gets the D27 conductivity error count. + * @details \b Inputs: fpgaSensorReadings.d27CondCondErrorCount + * @details \b Outputs: none + * @return D27 Conductivity sensor error count + *************************************************************************/ +U08 getFPGAD27CondErrorCount( void ) +{ + return fpgaSensorReadings.d27CondCondErrorCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD27TempReadCount function gets the D27 (D28) temperature read count. + * @details \b Inputs: fpgaSensorReadings.d27CondTempReadCount + * @details \b Outputs: none + * @return D27 (D28) Temperature sensor read count + *************************************************************************/ +U08 getFPGAD27TempReadCount( void ) +{ + return fpgaSensorReadings.d27CondTempReadCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD27TempErrorCount function gets the D27 (D28) temperature error count. + * @details \b Inputs: fpgaSensorReadings.d27CondTempErrorCount + * @details \b Outputs: none + * @return D27 (D28) Temperature sensor error count + *************************************************************************/ +U08 getFPGAD27TempErrorCount( void ) +{ + return fpgaSensorReadings.d27CondTempErrorCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD27CondData function gets the D27 conductivity data. + * @details \b Inputs: fpgaSensorReadings.d27CondCond + * @details \b Outputs: none + * @return D27 Conductivity data + *************************************************************************/ +U32 getFPGAD27CondData( void ) +{ + return fpgaSensorReadings.d27CondCond; +} + +/*********************************************************************//** + * @brief + * The getFPGAD27CondTemp function gets the D27 (D28) temperature data. + * @details \b Inputs: fpgaSensorReadings.d27CondTemp + * @details \b Outputs: none + * @return D27 (D28) Temperature data + *************************************************************************/ +U32 getFPGAD27CondTemp( void ) +{ + return fpgaSensorReadings.d27CondTemp; +} + +/*********************************************************************//** + * @brief + * The getFPGAD27CondCalData function gets the D27 cal data. + * @details \b Inputs: fpgaSensorReadings.d27CondCalData + * @details \b Outputs: none + * @return D27 calibration data + *************************************************************************/ +U32 getFPGAD27CondCalData( void ) +{ + return fpgaSensorReadings.d27CondCalData; +} + +/*********************************************************************//** + * @brief + * The getFPGAD27CalMemCounter function gets the D27 memory count. + * @details \b Inputs: fpgaSensorReadings.d27CondMemCounter + * @details \b Outputs: none + * @return D27 memory count + *************************************************************************/ +U08 getFPGAD27CalMemCounter( void ) +{ + return fpgaSensorReadings.d27CondMemCounter; +} + +/*********************************************************************//** + * @brief + * The getFPGAD29CondReadCount function gets the D29 conductivity read count. + * @details \b Inputs: fpgaSensorReadings.d29CondCondReadCount + * @details \b Outputs: none + * @return D29 Conductivity sensor read count + *************************************************************************/ +U08 getFPGAD29CondReadCount( void ) +{ + return fpgaSensorReadings.d29CondCondReadCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD29CondErrorCount function gets the D29 conductivity error count. + * @details \b Inputs: fpgaSensorReadings.d29CondCondErrorCount + * @details \b Outputs: none + * @return D29 Conductivity sensor error count + *************************************************************************/ +U08 getFPGAD29CondErrorCount( void ) +{ + return fpgaSensorReadings.d29CondCondErrorCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD29TempReadCount function gets the D29 (D28) temperature read count. + * @details \b Inputs: fpgaSensorReadings.d29CondTempReadCount + * @details \b Outputs: none + * @return D29 (D28) Temperature sensor read count + *************************************************************************/ +U08 getFPGAD29TempReadCount( void ) +{ + return fpgaSensorReadings.d29CondTempReadCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD29TempErrorCount function gets the D29 (D28) temperature error count. + * @details \b Inputs: fpgaSensorReadings.d29CondTempErrorCount + * @details \b Outputs: none + * @return D29 (D28) Temperature sensor error count + *************************************************************************/ +U08 getFPGAD29TempErrorCount( void ) +{ + return fpgaSensorReadings.d29CondTempErrorCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD29CondData function gets the D29 conductivity data. + * @details \b Inputs: fpgaSensorReadings.d29CondCond + * @details \b Outputs: none + * @return D29 Conductivity data + *************************************************************************/ +U32 getFPGAD29CondData( void ) +{ + return fpgaSensorReadings.d29CondCond; +} + +/*********************************************************************//** + * @brief + * The getFPGAD29CondTemp function gets the D29 (D30) temperature data. + * @details \b Inputs: fpgaSensorReadings.d29CondTemp + * @details \b Outputs: none + * @return D29 (D28) Temperature data + *************************************************************************/ +U32 getFPGAD29CondTemp( void ) +{ + return fpgaSensorReadings.d29CondTemp; +} + +/*********************************************************************//** + * @brief + * The getFPGAD29CondCalData function gets the D29 cal data. + * @details \b Inputs: fpgaSensorReadings.d29CondCalData + * @details \b Outputs: none + * @return D29 calibration data + *************************************************************************/ +U32 getFPGAD29CondCalData( void ) +{ + return fpgaSensorReadings.d29CondCalData; +} + +/*********************************************************************//** + * @brief + * The getFPGAD29CalMemCounter function gets the D29 memory count. + * @details \b Inputs: fpgaSensorReadings.d29CondMemCounter + * @details \b Outputs: none + * @return D29 memory count + *************************************************************************/ +U08 getFPGAD29CalMemCounter( void ) +{ + return fpgaSensorReadings.d29CondMemCounter; +} + +/*********************************************************************//** + * @brief + * The getFPGAD43CondReadCount function gets the D43 conductivity read count. + * @details \b Inputs: fpgaSensorReadings.d43CondCondReadCount + * @details \b Outputs: none + * @return D437 Conductivity sensor read count + *************************************************************************/ +U08 getFPGAD43CondReadCount( void ) +{ + return fpgaSensorReadings.d43CondCondReadCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD43CondErrorCount function gets the D43 conductivity error count. + * @details \b Inputs: fpgaSensorReadings.d43CondCondErrorCount + * @details \b Outputs: none + * @return D43 Conductivity sensor error count + *************************************************************************/ +U08 getFPGAD43CondErrorCount( void ) +{ + return fpgaSensorReadings.d43CondCondErrorCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD43TempReadCount function gets the D43 (D44) temperature read count. + * @details \b Inputs: fpgaSensorReadings.d43CondTempReadCount + * @details \b Outputs: none + * @return D43 (D44) Temperature sensor read count + *************************************************************************/ +U08 getFPGAD43TempReadCount( void ) +{ + return fpgaSensorReadings.d43CondTempReadCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD43TempErrorCount function gets the D43 (D44) temperature error count. + * @details \b Inputs: fpgaSensorReadings.d43CondTempErrorCount + * @details \b Outputs: none + * @return D43 (D44) Temperature sensor error count + *************************************************************************/ +U08 getFPGAD43TempErrorCount( void ) +{ + return fpgaSensorReadings.d43CondTempErrorCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD43CondData function gets the D43 conductivity data. + * @details \b Inputs: fpgaSensorReadings.d43CondCond + * @details \b Outputs: none + * @return D43 Conductivity data + *************************************************************************/ +U32 getFPGAD43CondData( void ) +{ + return fpgaSensorReadings.d43CondCond; +} + +/*********************************************************************//** + * @brief + * The getFPGAD43CondTemp function gets the D43 (D44) temperature data. + * @details \b Inputs: fpgaSensorReadings.d43CondTemp + * @details \b Outputs: none + * @return D43 (D44) Temperature data + *************************************************************************/ +U32 getFPGAD43CondTemp( void ) +{ + return fpgaSensorReadings.d43CondTemp; +} + +/*********************************************************************//** + * @brief + * The getFPGAD43CondCalData function gets the D43 cal data. + * @details \b Inputs: fpgaSensorReadings.d43CondCalData + * @details \b Outputs: none + * @return D43 calibration data + *************************************************************************/ +U32 getFPGAD43CondCalData( void ) +{ + return fpgaSensorReadings.d43CondCalData; +} + +/*********************************************************************//** + * @brief + * The getFPGAD43CalMemCounter function gets the D43 memory count. + * @details \b Inputs: fpgaSensorReadings.d43CondMemCounter + * @details \b Outputs: none + * @return D43 memory count + *************************************************************************/ +U08 getFPGAD43CalMemCounter( void ) +{ + return fpgaSensorReadings.d43CondMemCounter; +} + +/*********************************************************************//** + * @brief + * The getFPGAD74CondReadCount function gets the D74 conductivity read count. + * @details \b Inputs: fpgaSensorReadings.d74CondCondReadCount + * @details \b Outputs: none + * @return D74 Conductivity sensor read count + *************************************************************************/ +U08 getFPGAD74CondReadCount( void ) +{ + return fpgaSensorReadings.d74CondCondReadCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD74CondErrorCount function gets the D74 conductivity error count. + * @details \b Inputs: fpgaSensorReadings.d74CondCondErrorCount + * @details \b Outputs: none + * @return D74 Conductivity sensor error count + *************************************************************************/ +U08 getFPGAD74CondErrorCount( void ) +{ + return fpgaSensorReadings.d74CondCondErrorCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD74TempReadCount function gets the D74 (D75) temperature read count. + * @details \b Inputs: fpgaSensorReadings.d74CondTempReadCount + * @details \b Outputs: none + * @return D74 (D75) Temperature sensor read count + *************************************************************************/ +U08 getFPGAD74TempReadCount( void ) +{ + return fpgaSensorReadings.d74CondTempReadCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD74TempErrorCount function gets the D74 (D75) temperature error count. + * @details \b Inputs: fpgaSensorReadings.d74CondTempErrorCount + * @details \b Outputs: none + * @return D74 (D75) Temperature sensor error count + *************************************************************************/ +U08 getFPGAD74TempErrorCount( void ) +{ + return fpgaSensorReadings.d74CondTempErrorCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAD74CondData function gets the D74 conductivity data. + * @details \b Inputs: fpgaSensorReadings.d74CondCond + * @details \b Outputs: none + * @return D74 Conductivity data + *************************************************************************/ +U32 getFPGAD74CondData( void ) +{ + return fpgaSensorReadings.d74CondCond; +} + +/*********************************************************************//** + * @brief + * The getFPGAD74CondTemp function gets the D74 (D75) temperature data. + * @details \b Inputs: fpgaSensorReadings.d74CondTemp + * @details \b Outputs: none + * @return D74 (D75) Temperature data + *************************************************************************/ +U32 getFPGAD74CondTemp( void ) +{ + return fpgaSensorReadings.d74CondTemp; +} + +/*********************************************************************//** + * @brief + * The getFPGAD74CondCalData function gets the D74 cal data. + * @details \b Inputs: fpgaSensorReadings.d74CondCalData + * @details \b Outputs: none + * @return D74 calibration data + *************************************************************************/ +U32 getFPGAD74CondCalData( void ) +{ + return fpgaSensorReadings.d74CondCalData; +} + +/*********************************************************************//** + * @brief + * The getFPGAD74CalMemCounter function gets the D74 memory count. + * @details \b Inputs: fpgaSensorReadings.d74CondMemCounter + * @details \b Outputs: none + * @return D74 memory count + *************************************************************************/ +U08 getFPGAD74CalMemCounter( void ) +{ + return fpgaSensorReadings.d74CondMemCounter; +} + +/*********************************************************************//** + * @brief + * The getFPGAP9CondReadCount function gets the P9 conductivity read count. + * @details \b Inputs: fpgaSensorReadings.p9CondCondReadCount + * @details \b Outputs: none + * @return P9 Conductivity sensor read count + *************************************************************************/ +U08 getFPGAP9CondReadCount( void ) +{ + return fpgaSensorReadings.p9CondCondReadCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAP9CondErrorCount function gets the P9 conductivity error count. + * @details \b Inputs: fpgaSensorReadings.p9CondCondErrorCount + * @details \b Outputs: none + * @return P9 Conductivity sensor error count + *************************************************************************/ +U08 getFPGAP9CondErrorCount( void ) +{ + return fpgaSensorReadings.p9CondCondErrorCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAP9TempReadCount function gets the P9 (P10) temperature read count. + * @details \b Inputs: fpgaSensorReadings.p9CondTempReadCount + * @details \b Outputs: none + * @return P9 (P10) Temperature sensor read count + *************************************************************************/ +U08 getFPGAP9TempReadCount( void ) +{ + return fpgaSensorReadings.p9CondTempReadCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAP9TempErrorCount function gets the P9 (P10) temperature error count. + * @details \b Inputs: fpgaSensorReadings.p9CondTempErrorCount + * @details \b Outputs: none + * @return P9 (P10) Temperature sensor error count + *************************************************************************/ +U08 getFPGAP9TempErrorCount( void ) +{ + return fpgaSensorReadings.p9CondTempErrorCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAP9CondData function gets the P9 conductivity data. + * @details \b Inputs: fpgaSensorReadings.p9CondCond + * @details \b Outputs: none + * @return P9 Conductivity data + *************************************************************************/ +U32 getFPGAP9CondData( void ) +{ + return fpgaSensorReadings.p9CondCond; +} + +/*********************************************************************//** + * @brief + * The getFPGAP9CondTemp function gets the P9 (P10) temperature data. + * @details \b Inputs: fpgaSensorReadings.p9CondTemp + * @details \b Outputs: none + * @return P9 (P10) Temperature data + *************************************************************************/ +U32 getFPGAP9CondTemp( void ) +{ + return fpgaSensorReadings.p9CondTemp; +} + +/*********************************************************************//** + * @brief + * The getFPGAP9CondCalData function gets the P9 cal data. + * @details \b Inputs: fpgaSensorReadings.p9CondCalData + * @details \b Outputs: none + * @return P9 calibration data + *************************************************************************/ +U32 getFPGAP9CondCalData( void ) +{ + return fpgaSensorReadings.p9CondCalData; +} + +/*********************************************************************//** + * @brief + * The getFPGAP9CalMemCounter function gets the P9 memory count. + * @details \b Inputs: fpgaSensorReadings.p9CondMemCounter + * @details \b Outputs: none + * @return P9 memory count + *************************************************************************/ +U08 getFPGAP9CalMemCounter( void ) +{ + return fpgaSensorReadings.p9CondMemCounter; +} + +/*********************************************************************//** + * @brief + * The getFPGAP18CondReadCount function gets the P18 conductivity read count. + * @details \b Inputs: fpgaSensorReadings.p18CondCondReadCount + * @details \b Outputs: none + * @return P18 Conductivity sensor read count + *************************************************************************/ +U08 getFPGAP18CondReadCount( void ) +{ + return fpgaSensorReadings.p18CondCondReadCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAP18CondErrorCount function gets the P18 conductivity error count. + * @details \b Inputs: fpgaSensorReadings.p18CondCondErrorCount + * @details \b Outputs: none + * @return P18 Conductivity sensor error count + *************************************************************************/ +U08 getFPGAP18CondErrorCount( void ) +{ + return fpgaSensorReadings.p18CondCondErrorCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAP18TempReadCount function gets the P18 (P19) temperature read count. + * @details \b Inputs: fpgaSensorReadings.p9CondTempReadCount + * @details \b Outputs: none + * @return P18 (P19) Temperature sensor read count + *************************************************************************/ +U08 getFPGAP18TempReadCount( void ) +{ + return fpgaSensorReadings.p18CondTempReadCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAP18TempErrorCount function gets the P18 (P19) temperature error count. + * @details \b Inputs: fpgaSensorReadings.p18CondTempErrorCount + * @details \b Outputs: none + * @return P18 (P19) Temperature sensor error count + *************************************************************************/ +U08 getFPGAP18TempErrorCount( void ) +{ + return fpgaSensorReadings.p18CondTempErrorCount; +} + +/*********************************************************************//** + * @brief + * The getFPGAP18CondData function gets the P18 conductivity data. + * @details \b Inputs: fpgaSensorReadings.p18CondCond + * @details \b Outputs: none + * @return P18 Conductivity data + *************************************************************************/ +U32 getFPGAP18CondData( void ) +{ + return fpgaSensorReadings.p18CondCond; +} + +/*********************************************************************//** + * @brief + * The getFPGAP18CondTemp function gets the P18 (P19) temperature data. + * @details \b Inputs: fpgaSensorReadings.p18CondTemp + * @details \b Outputs: none + * @return P18 (P19) Temperature data + *************************************************************************/ +U32 getFPGAP18CondTemp( void ) +{ + return fpgaSensorReadings.p18CondTemp; +} + +/*********************************************************************//** + * @brief + * The getFPGAP18CondCalData function gets the P18 cal data. + * @details \b Inputs: fpgaSensorReadings.p18CondCalData + * @details \b Outputs: none + * @return P18 calibration data + *************************************************************************/ +U32 getFPGAP18CondCalData( void ) +{ + return fpgaSensorReadings.p18CondCalData; +} + +/*********************************************************************//** + * @brief + * The getFPGAP18CalMemCounter function gets the P18 memory count. + * @details \b Inputs: fpgaSensorReadings.p18CondMemCounter + * @details \b Outputs: none + * @return P18 memory count + *************************************************************************/ +U08 getFPGAP18CalMemCounter( void ) +{ + return fpgaSensorReadings.p18CondMemCounter; +} /**@}*/ Index: firmware/App/Services/FpgaDD.h =================================================================== diff -u -r50144ec3e96785cf76d5bfd22ee65029c82e732b -r82b841cdb65ac335475e02841b7b568d1f5c77b1 --- firmware/App/Services/FpgaDD.h (.../FpgaDD.h) (revision 50144ec3e96785cf76d5bfd22ee65029c82e732b) +++ firmware/App/Services/FpgaDD.h (.../FpgaDD.h) (revision 82b841cdb65ac335475e02841b7b568d1f5c77b1) @@ -83,80 +83,50 @@ void setFPGAD27D29Data( U32 data ); void setFPGAD43Data( U32 data ); -void setFPGAD17CondReset( void ); -void clearFPGAD17CondReset( void ); -void setFPGAD17CondInitEnable( void ); -void clearFPGAD17CondInitEnable( void ); -void setFPGAD17CondWriteEnable( void ); -void clearFPGAD17CondWriteEnable( void ); -void setFPGAD17CondReadEnable( void ); -void clearFPGAD17CondReadEnable( void ); - -void setFPGAD27CondReset( void ); -void clearFPGAD27CondReset( void ); -void setFPGAD27CondInitEnable( void ); -void clearFPGAD27CondInitEnable( void ); -void setFPGAD27CondWriteEnable( void ); -void clearFPGAD27CondWriteEnable( void ); -void setFPGAD27CondReadEnable( void ); -void clearFPGAD27CondReadEnable( void ); - -void setFPGAD29CondReset( void ); -void clearFPGAD29CondReset( void ); -void setFPGAD29CondInitEnable( void ); -void clearFPGAD29CondInitEnable( void ); -void setFPGAD29CondWriteEnable( void ); -void clearFPGAD29CondWriteEnable( void ); -void setFPGAD29CondReadEnable( void ); -void clearFPGAD29CondReadEnable( void ); - -void setFPGAD43CondReset( void ); -void clearFPGAD43CondReset( void ); -void setFPGAD43CondInitEnable( void ); -void clearFPGAD43CondInitEnable( void ); -void setFPGAD43CondWriteEnable( void ); -void clearFPGAD43CondWriteEnable( void ); -void setFPGAD43CondReadEnable( void ); -void clearFPGAD43CondReadEnable( void ); - -void setFPGAD74CondReset( void ); -void clearFPGAD74CondReset( void ); -void setFPGAD74CondInitEnable( void ); -void clearFPGAD74CondInitEnable( void ); -void setFPGAD74CondWriteEnable( void ); -void clearFPGAD74CondWriteEnable( void ); -void setFPGAD74CondReadEnable( void ); -void clearFPGAD74CondReadEnable( void ); - U08 getFPGAD17CondReadCount( void ); U08 getFPGAD17CondErrorCount( void ); -U16 getFPGAD17Cond( void ); -U16 getFPGAD17CondTemp( void ); +U08 getFPGAD17TempReadCount( void ); +U08 getFPGAD17TempErrorCount( void ); U32 getFPGAD17CondData( void ); +U32 getFPGAD17CondTemp( void ); +U32 getFPGAD17CondCalData( void ); +U08 getFPGAD17CalMemCounter( void ); U08 getFPGAD27CondReadCount( void ); U08 getFPGAD27CondErrorCount( void ); -U16 getFPGAD27Cond( void ); -U16 getFPGAD27CondTemp( void ); +U08 getFPGAD27TempReadCount( void ); +U08 getFPGAD27TempErrorCount( void ); U32 getFPGAD27CondData( void ); +U32 getFPGAD27CondTemp( void ); +U32 getFPGAD27CondCalData( void ); +U08 getFPGAD27CalMemCounter( void ); U08 getFPGAD29CondReadCount( void ); U08 getFPGAD29CondErrorCount( void ); -U16 getFPGAD29Cond( void ); -U16 getFPGAD29CondTemp( void ); +U08 getFPGAD29TempReadCount( void ); +U08 getFPGAD29TempErrorCount( void ); U32 getFPGAD29CondData( void ); +U32 getFPGAD29CondTemp( void ); +U32 getFPGAD29CondCalData( void ); +U08 getFPGAD29CalMemCounter( void ); U08 getFPGAD43CondReadCount( void ); U08 getFPGAD43CondErrorCount( void ); -U16 getFPGAD43Cond( void ); -U16 getFPGAD43CondTemp( void ); +U08 getFPGAD43TempReadCount( void ); +U08 getFPGAD43TempErrorCount( void ); U32 getFPGAD43CondData( void ); +U32 getFPGAD43CondTemp( void ); +U32 getFPGAD43CondCalData( void ); +U08 getFPGAD43CalMemCounter( void ); U08 getFPGAD74CondReadCount( void ); U08 getFPGAD74CondErrorCount( void ); -U16 getFPGAD74Cond( void ); -U16 getFPGAD74CondTemp( void ); +U08 getFPGAD74TempReadCount( void ); +U08 getFPGAD74TempErrorCount( void ); U32 getFPGAD74CondData( void ); +U32 getFPGAD74CondTemp( void ); +U32 getFPGAD74CondCalData( void ); +U08 getFPGAD74CalMemCounter( void ); // Pumps (Dosing and Gear pumps ) void setFPGAD11PumpSetStepSpeed( U16 stepSpeed ); @@ -309,43 +279,25 @@ U16 getFPGAFlowP7Temp( void ); U16 getFPGAFlowP7InternalTemp( void ); -void setFPGAP9Control( U08 control ); -void setFPGAP9Address( U16 address ); -void setFPGAP9Data( U32 data ); -void setFPGAP18Control( U08 control ); -void setFPGAP18Address( U16 address ); -void setFPGAP18Data( U32 data ); +// Conductivity +U08 getFPGAP9CondReadCount( void ); +U08 getFPGAP9CondErrorCount( void ); +U08 getFPGAP9TempReadCount( void ); +U08 getFPGAP9TempErrorCount( void ); +U32 getFPGAP9CondData( void ); +U32 getFPGAP9CondTemp( void ); +U32 getFPGAP9CondCalData( void ); +U08 getFPGAP9CalMemCounter( void ); -void setFPGAP9Reset( void ); -void clearFPGAP9Reset( void ); -void setFPGAP9InitEnable( void ); -void clearFPGAP9InitEnable( void ); -void setFPGAP9WriteEnable( void ); -void clearFPGAP9WriteEnable( void ); -void setFPGAP9ReadEnable( void ); -void clearFPGAP9ReadEnable( void ); +U08 getFPGAP18CondReadCount( void ); +U08 getFPGAP18CondErrorCount( void ); +U08 getFPGAP18TempReadCount( void ); +U08 getFPGAP18TempErrorCount( void ); +U32 getFPGAP18CondData( void ); +U32 getFPGAP18CondTemp( void ); +U32 getFPGAP18CondCalData( void ); +U08 getFPGAP18CalMemCounter( void ); -void setFPGAP18Reset( void ); -void clearFPGAP18Reset( void ); -void setFPGAP18InitEnable( void ); -void clearFPGAP18InitEnable( void ); -void setFPGAP18WriteEnable( void ); -void clearFPGAP18WriteEnable( void ); -void setFPGAP18ReadEnable( void ); -void clearFPGAP18ReadEnable( void ); - -U08 getFPGAP9ReadCount( void ); -U08 getFPGAP9ErrorCount( void ); -U16 getFPGAP9Conductivity( void ); -U16 getFPGAP9Temperature( void ); -U32 getFPGAP9Data( void ); - -U08 getFPGAP18ReadCount( void ); -U08 getFPGAP18ErrorCount( void ); -U16 getFPGAP18Conductivity( void ); -U16 getFPGAP18Temperature( void ); -U32 getFPGAP18Data( void ); - void setFPGAP40PumpEnable( BOOL enable ); void setFPGAP40PumpPWM( U16 pwm ); U16 getFPGAP40PumpPWM( void ); Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r253b31257a3b6877624e8b83ee06c1404c1c3dd5 -r82b841cdb65ac335475e02841b7b568d1f5c77b1 --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 253b31257a3b6877624e8b83ee06c1404c1c3dd5) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 82b841cdb65ac335475e02841b7b568d1f5c77b1) @@ -131,14 +131,14 @@ #ifndef __TEENSY_CONDUCTIVITY_DRIVER__ { MSG_ID_DD_CONDUCTIVITY_SENSOR_READINGS_OVERRIDE_REQUEST, &testDDConductivitySensorReadingsOverride }, { MSG_ID_DD_CONDUCTIVITY_SENSOR_TEMPERATURE_OVERRIDE_REQUEST, &testDDConductivitySensorTemperatureReadingsOverride }, - { MSG_ID_DD_CONDUCTIVITY_SENSOR_READ_COUNTER_OVERRIDE_REQUEST, &testDDConductivitySensorReadCounterOverride }, - { MSG_ID_DD_CONDUCTIVITY_SENSOR_ERROR_COUNTER_OVERRIDE_REQUEST, &testDDConductivitySensorErrorCounterOverride }, + { MSG_ID_DD_CONDUCTIVITY_SENSOR_READ_COUNTER_OVERRIDE_REQUEST, &testDDConductivitySensorConductivityReadCounterOverride }, + { MSG_ID_DD_CONDUCTIVITY_SENSOR_ERROR_COUNTER_OVERRIDE_REQUEST, &testDDConductivitySensorConductivityErrorCounterOverride }, { MSG_ID_DD_CONDUCTIVITY_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testDDConductivitySensorDataPublishIntervalOverride }, { MSG_ID_FP_CONDUCTIVITY_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testFPConductivitySensorDataPublishIntervalOverride }, { MSG_ID_FP_CONDUCTIVITY_OVERRIDE_REQUEST, &testFPConductivitySensorReadingsOverride }, { MSG_ID_FP_CONDUCTIVITY_TEMP_OVERRIDE_REQUEST, &testFPConductivitySensorTemperatureReadingsOverride }, - { MSG_ID_FP_CONDUCTIVITY_READ_COUNT_OVERRIDE_REQUEST, &testFPConductivitySensorReadCounterOverride }, - { MSG_ID_FP_CONDUCTIVITY_ERROR_COUNT_OVERRIDE_REQUEST, &testFPConductivitySensorErrorCounterOverride }, + { MSG_ID_FP_CONDUCTIVITY_READ_COUNT_OVERRIDE_REQUEST, &testFPConductivitySensorConductivityReadCounterOverride }, + { MSG_ID_FP_CONDUCTIVITY_ERROR_COUNT_OVERRIDE_REQUEST, &testFPConductivitySensorConductivityErrorCounterOverride }, #endif { MSG_ID_DD_CONCENTRATE_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testConcentratePumpDataPublishIntervalOverride }, { MSG_ID_DD_CONCENTRATE_PUMP_TARGET_SPEED_OVERRIDE_REQUEST, &testConcentratePumpTargetSpeedOverride },