Index: firmware/App/Drivers/ConductivitySensors.c =================================================================== diff -u -rc9d4f6bec5d48263bb2678d75d29bfef45bc0950 -r8f59899872dd14f91e1cf07c1c51f24335287ad6 --- firmware/App/Drivers/ConductivitySensors.c (.../ConductivitySensors.c) (revision c9d4f6bec5d48263bb2678d75d29bfef45bc0950) +++ firmware/App/Drivers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 8f59899872dd14f91e1cf07c1c51f24335287ad6) @@ -1226,33 +1226,73 @@ BOOL testHandleConductivitySensorVersionRequest( MESSAGE_T *message ) { BOOL result = FALSE; - U32 condSensorId = 0; - U32 msgId = 0; - U32 channelId = 0; + U32 msgId = MSG_ID_DD_CONDUCTIVITY_SENSOR_VERSION_RESPONSE; + U32 channelId = COMM_BUFFER_OUT_CAN_DD_BROADCAST; if ( message->hdr.payloadLen == sizeof( U32 ) ) { - CONDUCTIVITY_REVISIONS_T CondVersionRecord; + CONDUCTIVITY_VERSION_RESPONSE_T CondVersionRecord; - memcpy( &condSensorId, &message->payload, sizeof( U32 ) ); + memcpy( &CondVersionRecord.sensorID, &message->payload, sizeof( U32 ) ); // Build conductivity version record - if ( condSensorId < LAST_DD_COND_SENSOR ) + if ( CondVersionRecord.sensorID < LAST_DD_COND_SENSOR ) { - msgId = MSG_ID_DD_CONDUCTIVITY_SENSOR_VERSION_RESPONSE; - channelId = COMM_BUFFER_OUT_CAN_DD_BROADCAST; - memcpy( &CondVersionRecord, &conductivitySensorRevisions[ condSensorId ], sizeof( CONDUCTIVITY_REVISIONS_T ) ); + memcpy( &CondVersionRecord.sensorVersion, &conductivitySensorRevisions[ CondVersionRecord.sensorID ], sizeof( CONDUCTIVITY_REVISIONS_T ) ); } - else + else if ( ( CondVersionRecord.sensorID > LAST_DD_COND_SENSOR ) && + ( CondVersionRecord.sensorID < NUM_OF_CONDUCTIVITY_SENSORS ) ) { msgId = MSG_ID_FP_CONDUCTIVITY_SENSOR_VERSION_RESPONSE; channelId = COMM_BUFFER_OUT_CAN_FP_BROADCAST; - memcpy( &CondVersionRecord, &conductivitySensorRevisions[ condSensorId ], sizeof( CONDUCTIVITY_REVISIONS_T ) ); + memcpy( &CondVersionRecord.sensorVersion, &conductivitySensorRevisions[ CondVersionRecord.sensorID ], sizeof( CONDUCTIVITY_REVISIONS_T ) ); } - result = sendMessage( (MSG_ID_T)msgId, (COMM_BUFFER_T)channelId, (U08*)&CondVersionRecord, sizeof( CONDUCTIVITY_REVISIONS_T ) ); + + result = sendMessage( (MSG_ID_T)msgId, (COMM_BUFFER_T)channelId, (U08*)&CondVersionRecord, sizeof( CONDUCTIVITY_VERSION_RESPONSE_T ) ); } return result; } +/*********************************************************************//** + * @brief + * The testHandleConductivitySensorCalRequest function sends + * the conductivity sensor calibration response + * @details \b Inputs: conductivitySensorCoefficients[] + * @details \b Outputs: none + * @param message Override message from Dialin which includes an sensor + * ID. + * @return TRUE if response is successful, FALSE if not + *************************************************************************/ +BOOL testHandleConductivitySensorCalRequest( MESSAGE_T *message ) +{ + BOOL result = FALSE; + U32 msgId = MSG_ID_DD_CONDUCTIVITY_SENSOR_VERSION_RESPONSE; + U32 channelId = COMM_BUFFER_OUT_CAN_DD_BROADCAST; + + if ( message->hdr.payloadLen == sizeof( U32 ) ) + { + CONDUCTIVITY_CAL_RESPONSE_T CondCalRecord; + + memcpy( &CondCalRecord.sensorID, &message->payload, sizeof( U32 ) ); + + // Build conductivity version record + if ( CondCalRecord.sensorID < LAST_DD_COND_SENSOR ) + { + memcpy( &CondCalRecord.sensorCal, &conductivitySensorCoefficients[ CondCalRecord.sensorID ], sizeof( CONDUCTIVITY_COEFFICIENTS_T ) ); + } + else if ( ( CondCalRecord.sensorID > LAST_DD_COND_SENSOR ) && + ( CondCalRecord.sensorID < NUM_OF_CONDUCTIVITY_SENSORS ) ) + { + msgId = MSG_ID_FP_CONDUCTIVITY_SENSOR_VERSION_RESPONSE; + channelId = COMM_BUFFER_OUT_CAN_FP_BROADCAST; + memcpy( &CondCalRecord.sensorCal, &conductivitySensorCoefficients[ CondCalRecord.sensorID ], sizeof( CONDUCTIVITY_COEFFICIENTS_T ) ); + } + + result = sendMessage( (MSG_ID_T)msgId, (COMM_BUFFER_T)channelId, (U08*)&CondCalRecord, sizeof( CONDUCTIVITY_CAL_RESPONSE_T ) ); + } + + return result; +} + /**@}*/ Index: firmware/App/Drivers/ConductivitySensors.h =================================================================== diff -u -r5e77ff3ec89af3b613788694bacfcbd874682396 -r8f59899872dd14f91e1cf07c1c51f24335287ad6 --- firmware/App/Drivers/ConductivitySensors.h (.../ConductivitySensors.h) (revision 5e77ff3ec89af3b613788694bacfcbd874682396) +++ firmware/App/Drivers/ConductivitySensors.h (.../ConductivitySensors.h) (revision 8f59899872dd14f91e1cf07c1c51f24335287ad6) @@ -97,6 +97,17 @@ U08 hwSerial[ CONDUCTIVITY_CAL_CHAR_LENGTH ]; ///< HW Serial Number. } CONDUCTIVITY_REVISIONS_T; +typedef struct +{ + U32 sensorID; ///< Sensor ID to request + CONDUCTIVITY_REVISIONS_T sensorVersion; ///< version data for given sensor ID +} CONDUCTIVITY_VERSION_RESPONSE_T; + +typedef struct +{ + U32 sensorID; ///< Sensor ID to request + CONDUCTIVITY_COEFFICIENTS_T sensorCal; ///< Cal data for given sensor ID +} CONDUCTIVITY_CAL_RESPONSE_T; // ********** public function prototypes ********** void initConductivitySensors( void ); @@ -124,6 +135,7 @@ BOOL testFPConductivitySensorTemperatureReadCounterOverride( MESSAGE_T *message ); BOOL testFPConductivitySensorTemperatureErrorCounterOverride( MESSAGE_T *message ); BOOL testHandleConductivitySensorVersionRequest( MESSAGE_T *message ); +BOOL testHandleConductivitySensorCalRequest( MESSAGE_T *message ); /**@}*/ Index: firmware/App/Monitors/Conductivity.c =================================================================== diff -u -r669f865b7bf28ea3f3aaf249c6555715aa80ee29 -r8f59899872dd14f91e1cf07c1c51f24335287ad6 --- firmware/App/Monitors/Conductivity.c (.../Conductivity.c) (revision 669f865b7bf28ea3f3aaf249c6555715aa80ee29) +++ firmware/App/Monitors/Conductivity.c (.../Conductivity.c) (revision 8f59899872dd14f91e1cf07c1c51f24335287ad6) @@ -87,6 +87,8 @@ static U32 roRRCount; ///< RO rejection ratio Number of samples in average buffer. static F32 roRRTankFillAvg; ///< Average RO rejection ratio during permeate tank fill state. static U32 roRRSampleIntervalCounter; ///< RO rejection ratio 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 ********** @@ -126,8 +128,6 @@ roRRAvg.ovInitData = 0.0F; roRRAvg.override = OVERRIDE_RESET; roRRSampleIntervalCounter = 0; - condtempDataCollectionTimeInterval = COND_SENSOR_UPDATE_INTERVAL; - condtempSampleIntervalCounter = 0; memset( &roRRSamples, 0, sizeof( roRRSamples ) ); @@ -559,7 +559,7 @@ 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 ) + if ( FALSE == getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_1_9_HW ) ) { // publish conductivity resistance data on interval if ( ++conductivityResistancePublishTimerCounter >= getU32OverrideValue( &conductivityResistanceDataPublishInterval ) ) Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r9eae2f683887bededd2240f51ddfc667d8c1d566 -r8f59899872dd14f91e1cf07c1c51f24335287ad6 --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 9eae2f683887bededd2240f51ddfc667d8c1d566) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 8f59899872dd14f91e1cf07c1c51f24335287ad6) @@ -293,7 +293,9 @@ { MSG_ID_FP_SET_RECOVERY_VALVES_REQUEST, &testIOFPSetValveRecoveryConfig }, { MSG_ID_DD_SUBSTITUTION_PUMP_START_STOP_OVERRIDE_REQUEST, &testSubstitutionPumpStartStopOverride }, { MSG_ID_DD_SUBSTITUTION_PUMP_BROADCAST_INTERVAL_OVERRIDE_REQUEST, &testSubstitutionPumpDataPublishIntervalOverride }, - { MSG_ID_DD_SUBSTITUTION_PUMP_TARGET_RATE_OVERRIDE_REQUEST, &testSubstitutionPumpTargetRateOverride }, + { MSG_ID_DD_SUBSTITUTION_PUMP_TARGET_RATE_OVERRIDE_REQUEST, &testSubstitutionPumpTargetRateOverride }, + { MSG_ID_DD_CONDUCTIVITY_SENSOR_CAL_REQUEST, &testHandleConductivitySensorCalRequest }, + { MSG_ID_FP_CONDUCTIVITY_SENSOR_CAL_REQUEST, &testHandleConductivitySensorCalRequest }, }; /// Calculation for number of entries in the incoming message function handler look-up table.