Index: firmware/App/Monitors/Conductivity.c =================================================================== diff -u -r0bcac6885c8461b05da276fd245b580b7339ddfd -r5e77ff3ec89af3b613788694bacfcbd874682396 --- firmware/App/Monitors/Conductivity.c (.../Conductivity.c) (revision 0bcac6885c8461b05da276fd245b580b7339ddfd) +++ firmware/App/Monitors/Conductivity.c (.../Conductivity.c) (revision 5e77ff3ec89af3b613788694bacfcbd874682396) @@ -34,7 +34,10 @@ #define COND_SENSOR_REPORT_PERIOD ( MS_PER_SECOND / TASK_PRIORITY_INTERVAL ) ///< Broadcast conductivity values message every second. #define COND_SENSOR_UPDATE_INTERVAL ( 700 / TASK_PRIORITY_INTERVAL ) ///< Time in task intervals for new sensor data -#define DATA_PUBLISH_COUNTER_START_COUNT 40 ///< Data publish counter start count. +#define DD_CONDUCTIVITY_DATA_PUBLISH_COUNTER_START_COUNT 40 ///< Data publish counter start count. +#define FP_CONDUCTIVITY_DATA_PUBLISH_COUNTER_START_COUNT 41 ///< Data publish counter start count. +#define RO_DATA_PUBLISH_COUNTER_START_COUNT 42 ///< Data publish counter start count. +#define RESISTANCE_DATA_PUBLISH_COUNTER_START_COUNT 43 ///< Data publish counter start count. #define CONDUCTIVITY_SAMPLE_FILTER_MS ( 50 ) ///< Filter conductivity data for given time. Currently set to have 5 samples over 3.5s ( 700ms sample rate ) #define CONDUCTIVITY_TEMP_SAMPLE_FILTER_MS ( 50 ) ///< Filter conductivity temperature data for given time. Currently set to have 5 samples over 3.5s ( 700ms sample rate ) #define SIZE_OF_COND_ROLLING_AVG ( CONDUCTIVITY_SAMPLE_FILTER_MS / TASK_PRIORITY_INTERVAL ) ///< Filtered conductivity moving average sample count. @@ -53,7 +56,7 @@ } FILTER_CONDUCTIVITY_READINGS_T; /// Filter conductivity sensor temperature readings record. -typedef struct +typedef struct publishConductivitySensorsData { F32 conductivityTempReadings[ SIZE_OF_COND_TEMP_ROLLING_AVG ]; ///< Holds conductivity sample rolling average. U32 conductivityTempReadingsIdx; ///< Index for next sample in rolling average array. @@ -88,6 +91,8 @@ static U32 condtempSampleIntervalCounter; ///< Conductivity Temperature sensor sample collection timer counter. static U32 condDataCollectionTimeInterval; ///< Conductivity data collection time interval in task counts. static U32 condSampleIntervalCounter; ///< Conductivity sensor sample collection timer counter. +static U32 conductivityResistancePublishTimerCounter; ///< DD and FP Conductivity data publication counter. +static OVERRIDE_U32_T conductivityResistanceDataPublishInterval; ///< DD and FP Conductivity sensors publish time interval override. // ********** private function prototypes ********** @@ -112,22 +117,23 @@ initConductivityTeensy(); initConductivitySensors(); - ddConductivityPublishTimerCounter = DATA_PUBLISH_COUNTER_START_COUNT; - fpConductivityPublishTimerCounter = DATA_PUBLISH_COUNTER_START_COUNT; - roRRPublishTimerCounter = DATA_PUBLISH_COUNTER_START_COUNT; - roRejectionRatio = 0.0F; - roRejectionRatioTankFill = 0.0F; - roRRRunningSum = 0.0F; - roRRSamplesNextIndex = 0; - roRRCount = 0; - roRRTankFillAvg = 0.0F; - roRRAvg.data = 0.0F; - roRRAvg.ovData = 0.0F; - roRRAvg.ovInitData = 0.0F; - roRRAvg.override = OVERRIDE_RESET; - roRRSampleIntervalCounter = 0; - condtempDataCollectionTimeInterval= COND_SENSOR_UPDATE_INTERVAL; - condtempSampleIntervalCounter = 0; + ddConductivityPublishTimerCounter = DD_CONDUCTIVITY_DATA_PUBLISH_COUNTER_START_COUNT; + fpConductivityPublishTimerCounter = FP_CONDUCTIVITY_DATA_PUBLISH_COUNTER_START_COUNT; + roRRPublishTimerCounter = RO_DATA_PUBLISH_COUNTER_START_COUNT; + conductivityResistancePublishTimerCounter = RESISTANCE_DATA_PUBLISH_COUNTER_START_COUNT; + roRejectionRatio = 0.0F; + roRejectionRatioTankFill = 0.0F; + roRRRunningSum = 0.0F; + roRRSamplesNextIndex = 0; + roRRCount = 0; + roRRTankFillAvg = 0.0F; + roRRAvg.data = 0.0F; + roRRAvg.ovData = 0.0F; + roRRAvg.ovInitData = 0.0F; + roRRAvg.override = OVERRIDE_RESET; + roRRSampleIntervalCounter = 0; + condtempDataCollectionTimeInterval = COND_SENSOR_UPDATE_INTERVAL; + condtempSampleIntervalCounter = 0; memset( &roRRSamples, 0, sizeof( roRRSamples ) ); @@ -156,20 +162,26 @@ condTempPrevReadCount[ sensor ] = 0; } - ddConductivityDataPublishInterval.data = COND_SENSOR_REPORT_PERIOD; - ddConductivityDataPublishInterval.ovData = COND_SENSOR_REPORT_PERIOD; - ddConductivityDataPublishInterval.ovInitData = 0; - ddConductivityDataPublishInterval.override = OVERRIDE_RESET; + ddConductivityDataPublishInterval.data = COND_SENSOR_REPORT_PERIOD; + ddConductivityDataPublishInterval.ovData = COND_SENSOR_REPORT_PERIOD; + ddConductivityDataPublishInterval.ovInitData = 0; + ddConductivityDataPublishInterval.override = OVERRIDE_RESET; - fpConductivityDataPublishInterval.data = COND_SENSOR_REPORT_PERIOD; - fpConductivityDataPublishInterval.ovData = COND_SENSOR_REPORT_PERIOD; - fpConductivityDataPublishInterval.ovInitData = 0; - fpConductivityDataPublishInterval.override = OVERRIDE_RESET; + fpConductivityDataPublishInterval.data = COND_SENSOR_REPORT_PERIOD; + fpConductivityDataPublishInterval.ovData = COND_SENSOR_REPORT_PERIOD; + fpConductivityDataPublishInterval.ovInitData = 0; + fpConductivityDataPublishInterval.override = OVERRIDE_RESET; - roRRDataPublishInterval.data = COND_SENSOR_REPORT_PERIOD; - roRRDataPublishInterval.ovData = COND_SENSOR_REPORT_PERIOD; - roRRDataPublishInterval.ovInitData = 0; - roRRDataPublishInterval.override = OVERRIDE_RESET; + roRRDataPublishInterval.data = COND_SENSOR_REPORT_PERIOD; + roRRDataPublishInterval.ovData = COND_SENSOR_REPORT_PERIOD; + roRRDataPublishInterval.ovInitData = 0; + roRRDataPublishInterval.override = OVERRIDE_RESET; + + conductivityResistanceDataPublishInterval.data = COND_SENSOR_REPORT_PERIOD; + conductivityResistanceDataPublishInterval.ovData = COND_SENSOR_REPORT_PERIOD; + conductivityResistanceDataPublishInterval.ovInitData = 0; + conductivityResistanceDataPublishInterval.override = OVERRIDE_RESET; + } /*********************************************************************//** @@ -552,6 +564,33 @@ broadcastData( MSG_ID_FP_RO_REJECTION_RATIO_DATA, COMM_BUFFER_OUT_CAN_FP_BROADCAST, (U08*)&data, sizeof( RO_REJECTION_RATIO_DATA_T ) ); } + + if ( getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) == TRUE ) + { + // publish conductivity resistance data on interval + if ( ++conductivityResistancePublishTimerCounter >= getU32OverrideValue( &conductivityResistanceDataPublishInterval ) ) + { + CONDUCTIVITY_RESISTANCE_DATA_T data; + + data.d17CondResist = getConductivityRawResistance( D17_COND ); + data.d27CondResist = getConductivityRawResistance( D27_COND ); + data.d29CondResist = getConductivityRawResistance( D29_COND ); + data.d43CondResist = getConductivityRawResistance( D43_COND ); + data.d74CondResist = getConductivityRawResistance( D74_COND ); + data.p9CondResist = getConductivityRawResistance( P9_COND ); + data.p18CondResist = getConductivityRawResistance( P18_COND ); + data.d17RTDResist = getConductivityRawRTD( D17_COND ); + data.d27RTDResist = getConductivityRawRTD( D27_COND ); + data.d29RTDResist = getConductivityRawRTD( D29_COND ); + data.d43RTDResist = getConductivityRawRTD( D43_COND ); + data.d74RTDResist = getConductivityRawRTD( D74_COND ); + data.p9RTDResist = getConductivityRawRTD( P9_COND ); + data.p18RTDResist = getConductivityRawRTD( P18_COND ); + conductivityResistancePublishTimerCounter = 0; + + broadcastData( MSG_ID_DD_CONDUCTIVITY_SENSOR_RESISTANCE_DATA, COMM_BUFFER_OUT_CAN_DD_BROADCAST, (U08*)&data, sizeof( CONDUCTIVITY_RESISTANCE_DATA_T ) ); + } + } }