Index: firmware/App/Controllers/ConductivitySensors.c =================================================================== diff -u -rc593086f741b1776d8bdff43d40bc4d569d7b1f4 -rd4e5e5e155cd938823ee8eb8b090355e1fcc37a2 --- firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision c593086f741b1776d8bdff43d40bc4d569d7b1f4) +++ firmware/App/Controllers/ConductivitySensors.c (.../ConductivitySensors.c) (revision d4e5e5e155cd938823ee8eb8b090355e1fcc37a2) @@ -64,6 +64,10 @@ #define EMSTAT_PICO_MEASUREMENT_OFFSET 0x8000000 ///< Measurement offset for emstat pico measurement data. #define EMSTAT_PICO_GOOD_STATUS 0x10 ///< Measurement good status. +#define ASCII_CODE_LETTER_A 0x41 ///< ASCII code in hex for letter A. +#define ASCII_CODE_NUMBER_ZERO 0x30 ///< ASCII code in hex for number zero. +#define ASCII_CODE_NUMBER_SEVEN 0x37 ///< ASCII code in hex for number seven. + #pragma pack(push,1) /// Emstat pico measurement data package structure typedef struct @@ -167,10 +171,18 @@ if ( ++conductivityDataPublicationTimerCounter >= getConductivityDataPublishInterval() ) { - conductivityDataPublicationTimerCounter = 0; + CONDUCTIVITY_DATA_T data; + calcRORejectionRatio(); - broadcastConductivityData( roRejectionRatio, getConductivityValue(CONDUCTIVITYSENSORS_CPI_SENSOR), getConductivityValue(CONDUCTIVITYSENSORS_CPO_SENSOR), - getConductivityValue(CONDUCTIVITYSENSORS_CD1_SENSOR), getConductivityValue(CONDUCTIVITYSENSORS_CD2_SENSOR) ); + + conductivityDataPublicationTimerCounter = 0; + data.roRejectionRatio = roRejectionRatio; + data.cpi = getConductivityValue(CONDUCTIVITYSENSORS_CPI_SENSOR); + data.cpo = getConductivityValue(CONDUCTIVITYSENSORS_CPO_SENSOR); + data.cd1 = getConductivityValue(CONDUCTIVITYSENSORS_CD1_SENSOR); + data.cd2 = getConductivityValue(CONDUCTIVITYSENSORS_CD2_SENSOR); + + broadcastConductivityData( &data ); } } @@ -362,14 +374,14 @@ for ( ii = 0; ii < size; ++ii ) { - if ( valuePtr[ii] < 0x40 ) + if ( valuePtr[ii] < ASCII_CODE_LETTER_A ) { - value = ( valuePtr[ii] - 0x30 ); + value = ( valuePtr[ii] - ASCII_CODE_NUMBER_ZERO ); result = ( result << 4 ) | value; } else { - value = ( valuePtr[ii] - 0x37 ); + value = ( valuePtr[ii] - ASCII_CODE_NUMBER_SEVEN ); result = ( result << 4 ) | value; } } @@ -393,9 +405,11 @@ case 'm': result = 1000; break; + case 'u': result = 1000000; break; + default: result = 1; break; @@ -461,20 +475,23 @@ packageStarted = TRUE; packageIndex = 0; break; + case ';': if ( packageStarted ) { processMeasurementDataPackage( CONDUCTIVITYSENSORS_CD1_SENSOR ); packageIndex = 0; } break; + case '\n': if ( packageStarted ) { processMeasurementDataPackage( CONDUCTIVITYSENSORS_CD2_SENSOR ); packageStarted = FALSE; } break; + default: if ( packageStarted ) {