Index: firmware/App/Drivers/ConductivityTeensy.c =================================================================== diff -u -r290cac3c0557c978647cef2972800dfe137dd662 -r811395ecb8574f4190671ffdf4217675a7adfbf7 --- firmware/App/Drivers/ConductivityTeensy.c (.../ConductivityTeensy.c) (revision 290cac3c0557c978647cef2972800dfe137dd662) +++ firmware/App/Drivers/ConductivityTeensy.c (.../ConductivityTeensy.c) (revision 811395ecb8574f4190671ffdf4217675a7adfbf7) @@ -69,8 +69,6 @@ static U32 condTransmitCounter; ///< Conductivity command transmit counter. static BOOL condAutomatedDataPolling; ///< Flag indicating automated conductivity measurements polling has started. static BOOL condWriteCommandInProgress; ///< Flag indicating an Conductivity write command is in progress. -static BOOL condReadCommandInProgress; ///< Flag indicating an Conductivity read command is in progress. -static BOOL condBulkWriteAndReadInProgress; ///< Flag indicating an Conductivity bulk write and read command are in progress. static BOOL condWriteCmdRspnsRcvd; ///< Flag indicating a response to an Conductivity write command has been received. // Conductivity comm buffers @@ -127,8 +125,6 @@ // ********** private function prototypes ********** static void initCondDMAchannels( void ); -static void initEEPROMdata( void ); -static void initMeasurementSettings( void ); static COND_COMM_STATE_T handleConductivityInit( void ); static COND_COMM_STATE_T handleConductivityIdle( void ); @@ -183,17 +179,16 @@ static COND_COMM_STATE_T txSelectSensor( void ); static COND_COMM_STATE_T rxSelectSensor( void ); -static COND_PARSE_STATUS parseMeasurementSettings( const U08 *buffer, U32 len ); static COND_PARSE_STATUS parseEEPROMdata( const U08 *buffer, U32 len ); static COND_PARSE_STATUS parseConductivityMeasurements( const U08 *buffer, U32 len ); -static U32 getTeensyCondId( CONDUCTIVITY_SENSORS_T sensorId ); -static void calculateConductivity( TEENSY_SENSOR_INDEX_T sensorNum ); -static void calculateConductivityAly( TEENSY_SENSOR_INDEX_T sensorNum, BOOL isFPSensor ); -static void calculateConductivityUpdatedStandard( TEENSY_SENSOR_INDEX_T sensorNum, BOOL isFPSensor ); -static void calculateConductivityStandard( TEENSY_SENSOR_INDEX_T sensorNum, BOOL isFPSensor ); -static void calculateTemperature( TEENSY_SENSOR_INDEX_T sensorNum ); -static void calculateResistance( TEENSY_SENSOR_INDEX_T sensorNum, BOOL isFPSensor ); +static U32 getTeensyCondId( U32 sensorId ); +static void calculateConductivity( U32 sensorNum ); +static void calculateConductivityAly( U32 sensorNum, BOOL isFPSensor ); +static void calculateConductivityUpdatedStandard( U32 sensorNum, BOOL isFPSensor ); +static void calculateConductivityStandard( U32 sensorNum, BOOL isFPSensor ); +static void calculateTemperature( U32 sensorNum ); +static void calculateResistance( U32 sensorNum, BOOL isFPSensor ); /*********************************************************************//** * @brief @@ -211,8 +206,6 @@ condTransmitCounter = 0; condAutomatedDataPolling = FALSE; condWriteCommandInProgress = FALSE; - condReadCommandInProgress = FALSE; - condBulkWriteAndReadInProgress = FALSE; condWriteCmdRspnsRcvd = FALSE; memset( &condWriteCmdBuffer, 0, COND_WRITE_CMD_BUFFER_LEN ); @@ -312,68 +305,6 @@ /*********************************************************************//** * @brief - * The initEEPROMdata function populates eePromDataTX structure and enqueues - * update EEPROM data command in the the command queue. - * @details \b Inputs: none - * @details \b Outputs: eePromDataTX : EEPROM data to be updated on Teensy. - * @return none - *************************************************************************/ -static void initEEPROMdata( void ) -{ - // TODO Update real values in eePromDataTX - eePromDataTX.doubleValue[ 0 ] = 0.0; - eePromDataTX.doubleValue[ 1 ] = 0.0; - eePromDataTX.doubleValue[ 2 ] = 0.0; - eePromDataTX.doubleValue[ 3 ] = 0.0; - eePromDataTX.doubleValue[ 4 ] = 0.0; - eePromDataTX.doubleValue[ 5 ] = 0.0; - eePromDataTX.doubleValue[ 6 ] = 0.0; - eePromDataTX.doubleValue[ 7 ] = 0.0; - - eePromDataTX.floatValue[ 0 ] = 0.0; - eePromDataTX.floatValue[ 1 ] = 0.0; - eePromDataTX.floatValue[ 2 ] = 0.0; - eePromDataTX.floatValue[ 3 ] = 0.0; - eePromDataTX.floatValue[ 4 ] = 0.0; - eePromDataTX.floatValue[ 5 ] = 0.0; - eePromDataTX.floatValue[ 6 ] = 0.0; - eePromDataTX.floatValue[ 7 ] = 0.0; - eePromDataTX.floatValue[ 8 ] = 0.0; - eePromDataTX.floatValue[ 8 ] = 0.0; - eePromDataTX.floatValue[ 10 ] = 0.0; - eePromDataTX.floatValue[ 11 ] = 0.0; - eePromDataTX.floatValue[ 12 ] = 0.0; - eePromDataTX.floatValue[ 13 ] = 0.0; - eePromDataTX.floatValue[ 14 ] = 0.0; - eePromDataTX.floatValue[ 15 ] = 0.0; - - enqueue( TEENSY_CMD_UPDATE_EEPROM_DATA ); -} - -/*********************************************************************//** - * @brief - * The initMeasurementSettings function populates measurementSettingsTX structure and enqueues - * update measurement settings command in the the command queue. - * @details \b Inputs:none - * @details \b Outputs:measurementSettingsTX - Measurement settings data to updated on Teensy. - * @return none - *************************************************************************/ -static void initMeasurementSettings( void ) -{ - // TODO Update real values in measurementSettingsTX - measurementSettingsTX.SinFreq = 11000.0; - measurementSettingsTX.DacVoltPP = 400.0; - measurementSettingsTX.BiasVolt = 200.0; - measurementSettingsTX.HstiaRtiaSel = 7; - measurementSettingsTX.AdcPgaGain = 2; - measurementSettingsTX.DftNum = 256; - measurementSettingsTX.ADCAvgNum = 16; - - enqueue( TEENSY_CMD_UPDATE_MEASUREMENT_SETTINGS ); -} - -/*********************************************************************//** - * @brief * The execConductivityTeensy function manages incoming data exchanges with * the Teensy board over UART. * @details \b Inputs: condCommState - Current state. @@ -1841,40 +1772,6 @@ /*********************************************************************//** * @brief - * The parseMeasurementSettings Reads measurement settings from buffer and - * stores in measurementSettingsRX. - * @details \b Inputs : none - * @details \b Outputs: measurementSettingsRX - Received Measurement Settings - * @param buffer - Data to be parsed and stored. - * len - Length of the input data. - * @return COND_PARSE_STATUS to tell if parsing was successful or not. - *************************************************************************/ -static COND_PARSE_STATUS parseMeasurementSettings( const U08 *buffer, U32 len ) -{ - COND_PARSE_STATUS parseStatus = COND_PARSE_NONE; - U32 expectedDataLength = sizeof( COND_MEASUREMENT_SETTINGS_T ); - - // Validate buffer - if ( buffer == NULL ) - { - parseStatus = COND_PARSE_ERROR_NULL_BUFFER; - } - else if ( len != expectedDataLength ) - { - parseStatus = COND_PARSE_ERROR_INVALID_LENGTH; - } - else - { - // Parse and store the data - memcpy(&measurementSettingsRX, buffer, expectedDataLength ); - parseStatus = COND_PARSE_SUCCESS; - } - - return parseStatus; -} - -/*********************************************************************//** - * @brief * The parseEEPROMdata Reads EEPROM data from buffer and * stores in eePromDataRX. * @details \b Inputs : none @@ -1966,7 +1863,7 @@ * @param sensorId - Id of DD Conductivity Sensors * @return sensorNum - Sensor Index. *************************************************************************/ -static U32 getTeensyCondId( CONDUCTIVITY_SENSORS_T sensorId ) +static U32 getTeensyCondId( U32 sensorId ) { U32 sensorNum = 0; @@ -2004,7 +1901,7 @@ * @param sensor ID of conductivity sensor to get conductivity. * @return The current conductivity of a given conductivity sensor. *************************************************************************/ -F32 getTeensyConductivityValue( CONDUCTIVITY_SENSORS_T sensorId ) +F32 getTeensyConductivityValue( U32 sensorId ) { U32 sensorNum = getTeensyCondId( sensorId ); F32 result = 0.0F; @@ -2030,7 +1927,7 @@ * @param sensorId ID of conductivity sensor to get temperature. * @return The current temperature of a given conductivity sensor. *************************************************************************/ -F32 getTeensyConductivityTemperatureValue( CONDUCTIVITY_SENSORS_T sensorId ) +F32 getTeensyConductivityTemperatureValue( U32 sensorId ) { U32 sensorNum = getTeensyCondId( sensorId ); F32 result = 0.0F; @@ -2056,7 +1953,7 @@ * @param sensorId ID of conductivity sensor to get temperature. * @return The current temperature of a given conductivity sensor. *************************************************************************/ -F32 getTeensyConductivityResistanceValue( CONDUCTIVITY_SENSORS_T sensorId ) +F32 getTeensyConductivityResistanceValue( U32 sensorId ) { U32 sensorNum = getTeensyCondId( sensorId ); F32 result = 0.0F; @@ -2082,7 +1979,7 @@ * @param isFPSensor - T/F if sensor is on FP hardware. * @return *************************************************************************/ -static void calculateConductivity( TEENSY_SENSOR_INDEX_T sensorNum ) +static void calculateConductivity( U32 sensorNum ) { BOOL isFPSensor = FALSE; @@ -2115,7 +2012,7 @@ * @param isFPSensor - T/F if sensor is on FP hardware. * @return *************************************************************************/ -static void calculateConductivityAly( TEENSY_SENSOR_INDEX_T sensorNum, BOOL isFPSensor ) +static void calculateConductivityAly( U32 sensorNum, BOOL isFPSensor ) { F64 calculatedConductivity = 0.0; F32 B3 = 0.0; @@ -2167,7 +2064,7 @@ * @param isFPSensor - T/F if sensor is on FP hardware. * @return *************************************************************************/ -static void calculateConductivityUpdatedStandard( TEENSY_SENSOR_INDEX_T sensorNum, BOOL isFPSensor ) +static void calculateConductivityUpdatedStandard( U32 sensorNum, BOOL isFPSensor ) { F64 calculatedConductivity = 0.0; F64 alpha = 0.0; @@ -2201,7 +2098,7 @@ * @param isFPSensor - T/F if sensor is on FP hardware. * @return *************************************************************************/ -static void calculateConductivityStandard( TEENSY_SENSOR_INDEX_T sensorNum, BOOL isFPSensor ) +static void calculateConductivityStandard( U32 sensorNum, BOOL isFPSensor ) { F64 calculatedConductivity = 0.0; F64 alpha = 0.0; @@ -2245,7 +2142,7 @@ * @param isFPSensor - T/F if sensor is on FP hardware. * @return *************************************************************************/ -static void calculateResistance( TEENSY_SENSOR_INDEX_T sensorNum, BOOL isFPSensor ) +static void calculateResistance( U32 sensorNum, BOOL isFPSensor ) { F64 calculatedResistance = 0.0; @@ -2284,7 +2181,7 @@ * @param sensorNum - Teensy sensor index value. * @return *************************************************************************/ -static void calculateTemperature( TEENSY_SENSOR_INDEX_T sensorNum ) +static void calculateTemperature( U32 sensorNum ) { F64 calculatedTemperature = 0.0; @@ -2318,7 +2215,7 @@ TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &payload ); - if ( ( payload.index >= FIRST_DD_COND_SENSOR ) && ( payload.index <= LAST_FP_COND_SENSOR ) ) + if ( payload.index <= LAST_FP_COND_SENSOR ) { // D74 is not connected to Teensy and does not have a data structure to override. if ( LAST_DD_COND_SENSOR != payload.index ) @@ -2328,13 +2225,13 @@ { F32 value = payload.state.f32; - condCalculatedMeasurement[ payload.index ].Conductivity.ovData = value; - condCalculatedMeasurement[ payload.index ].Conductivity.override = OVERRIDE_KEY; + condCalculatedMeasurement[ getTeensyCondId( payload.index ) ].Conductivity.ovData = value; + condCalculatedMeasurement[ getTeensyCondId( payload.index ) ].Conductivity.override = OVERRIDE_KEY; } else { - condCalculatedMeasurement[ payload.index ].Conductivity.override = OVERRIDE_RESET; - condCalculatedMeasurement[ payload.index ].Conductivity.ovData = condCalculatedMeasurement[ payload.index ].Conductivity.ovInitData; + condCalculatedMeasurement[ getTeensyCondId( payload.index ) ].Conductivity.override = OVERRIDE_RESET; + condCalculatedMeasurement[ getTeensyCondId( payload.index ) ].Conductivity.ovData = condCalculatedMeasurement[ getTeensyCondId( payload.index ) ].Conductivity.ovInitData; } } } @@ -2357,7 +2254,7 @@ TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &payload ); - if ( ( payload.index >= FIRST_DD_COND_SENSOR ) && ( payload.index <= LAST_FP_COND_SENSOR ) ) + if ( payload.index <= LAST_FP_COND_SENSOR ) { // D74 is not connected to Teensy and does not have a data structure to override. if ( LAST_DD_COND_SENSOR != payload.index ) @@ -2397,7 +2294,7 @@ TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &payload ); - if ( ( payload.index >= FIRST_DD_COND_SENSOR ) && ( payload.index <= LAST_FP_COND_SENSOR ) ) + if ( payload.index <= LAST_FP_COND_SENSOR ) { // D74 is not connected to Teensy and does not have a data structure to override. if ( LAST_DD_COND_SENSOR != payload.index ) @@ -2407,13 +2304,13 @@ { F32 value = payload.state.f32; - condCalculatedMeasurement[ payload.index ].Resistance.ovData = value; - condCalculatedMeasurement[ payload.index ].Resistance.override = OVERRIDE_KEY; + condCalculatedMeasurement[ getTeensyCondId( payload.index ) ].Resistance.ovData = value; + condCalculatedMeasurement[ getTeensyCondId( payload.index ) ].Resistance.override = OVERRIDE_KEY; } else { - condCalculatedMeasurement[ payload.index ].Resistance.override = OVERRIDE_RESET; - condCalculatedMeasurement[ payload.index ].Resistance.ovData = condCalculatedMeasurement[ payload.index ].Resistance.ovInitData; + condCalculatedMeasurement[ getTeensyCondId( payload.index ) ].Resistance.override = OVERRIDE_RESET; + condCalculatedMeasurement[ getTeensyCondId( payload.index ) ].Resistance.ovData = condCalculatedMeasurement[ getTeensyCondId( payload.index ) ].Resistance.ovInitData; } }