Index: firmware/App/Controllers/ConcentratePumps.c =================================================================== diff -u -re3699de422fa3ba1b8145c4cc44257702c9e336f -re7fe0454b5b2d39009dc784dc8c156856df8bc86 --- firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision e3699de422fa3ba1b8145c4cc44257702c9e336f) +++ firmware/App/Controllers/ConcentratePumps.c (.../ConcentratePumps.c) (revision e7fe0454b5b2d39009dc784dc8c156856df8bc86) @@ -542,6 +542,8 @@ * @details \b Outputs: none * @details \b Alarms: ALARM_ID_DD_SOFTWARE_FAULT when invalid pump ID is seen. * @param pumpId concentrate pump id to increase current step speed + * @Note Pump speed is referred as flow rate as they are directly related across + * the concentrate pump unit. * @return the current measured flow rate (in mL/min) for the given concentrate * pump. *************************************************************************/ @@ -1056,211 +1058,83 @@ * concentrate pump data publish interval. * @details \b Inputs: none * @details \b Outputs: concentratePumpDataPublishInterval - * @param value override concentrate pump data publish interval with (in ms) + * @param Override message from Dialin which includes the interval + * (in ms) to override the concentrate pump data broadcast interval to. * @return TRUE if override successful, FALSE if not *************************************************************************/ BOOL testConcentratePumpDataPublishIntervalOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverridePayloadFromMessage( message, &override ); + BOOL result = u32BroadcastIntervalOverride( message, &concentratePumpDataPublishInterval, TASK_GENERAL_INTERVAL ); - // Verify tester has logged in with TD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - U32 intvl = override.state.u32 / TASK_GENERAL_INTERVAL; - - concentratePumpDataPublishInterval.ovData = intvl; - concentratePumpDataPublishInterval.override = OVERRIDE_KEY; - } - else - { - concentratePumpDataPublishInterval.override = OVERRIDE_RESET; - concentratePumpDataPublishInterval.ovData = concentratePumpDataPublishInterval.ovInitData; - } - - result = TRUE; - } - return result; } /*********************************************************************//** * @brief - * The testSetConcentratePumpTargetSpeedOverride function overrides the target + * The testConcentratePumpTargetSpeedOverride function overrides the target * speed value of given concentrate pump id. * @details \b Inputs: none * @details \b Outputs: pumpTargetSpeed - * @param pumpId concentrate pump id - * @param value override concentrate pump target speed + * @param message Override message from Dialin which includes an ID of + * the pump to override and the state to override the pump to. * @return TRUE if override successful, FALSE if not * @note pump traget speed range should be between 3.0F and 45.0F. *************************************************************************/ BOOL testConcentratePumpTargetSpeedOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = f32ArrayOverride( message, &concentratePumps[0].pumpTargetSpeed, NUM_OF_CONCENTRATE_PUMPS - 1 ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 pumpId = override.index; - - // Verify concentrate pump index of override - if ( pumpId < NUM_OF_CONCENTRATE_PUMPS ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - F32 value = override.state.f32; - - concentratePumps[ pumpId ].pumpTargetSpeed.ovData = value; - concentratePumps[ pumpId ].pumpTargetSpeed.override = OVERRIDE_KEY; - } - else - { - concentratePumps[ pumpId ].pumpTargetSpeed.override = OVERRIDE_RESET; - concentratePumps[ pumpId ].pumpTargetSpeed.ovData = concentratePumps[ pumpId ].pumpTargetSpeed.ovInitData; - } - - result = TRUE; - } - } - return result; } /*********************************************************************//** * @brief - * The testSetConcentratePumpMeasuredSpeedOverride function overrides the + * The testConcentratePumpMeasuredSpeedOverride function overrides the * measured speed value of given concentrate pump id. * @details \b Inputs: none - * @details \b Outputs: measuredPumpSpeed[] - * @param pumpId concentrate pump id - * @param value override concentrate pump measured speed + * @details \b Outputs: measuredPumpSpeed + * @param message Override message from Dialin which includes an ID of + * the pump to override and the state to override the pump to. * @return TRUE if override successful, FALSE if not *************************************************************************/ BOOL testConcentratePumpMeasuredSpeedOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = f32ArrayOverride( message, &concentratePumps[0].measuredPumpSpeed, NUM_OF_CONCENTRATE_PUMPS - 1 ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 pumpId = override.index; - - // Verify concentrate pump index of override - if ( pumpId < NUM_OF_CONCENTRATE_PUMPS ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - F32 value = override.state.f32; - - concentratePumps[ pumpId ].measuredPumpSpeed.ovData = value; - concentratePumps[ pumpId ].measuredPumpSpeed.override = OVERRIDE_KEY; - } - else - { - concentratePumps[ pumpId ].measuredPumpSpeed.override = OVERRIDE_RESET; - concentratePumps[ pumpId ].measuredPumpSpeed.ovData = concentratePumps[ pumpId ].measuredPumpSpeed.ovInitData; - } - - result = TRUE; - } - } - return result; } /*********************************************************************//** * @brief - * The testSetConcentratePumpParkedOverride function overrides the parked + * The testConcentratePumpParkedOverride function overrides the parked * status of given concentrate pump id. * @details \b Inputs: none - * @details \b Outputs: parked[] - * @param pumpId concentrate pump id - * @param value override concentrate pump parked status + * @details \b Outputs: parked + * @param message Override message from Dialin which includes an ID of + * the pump to override and the state to override the pump to. * @return TRUE if override successful, FALSE if not *************************************************************************/ BOOL testConcentratePumpParkedOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = u32ArrayOverride( message, &concentratePumps[0].parked, NUM_OF_CONCENTRATE_PUMPS - 1, FALSE, TRUE ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 pumpId = override.index; - - // Verify concentrate pump index of override - if ( pumpId < NUM_OF_CONCENTRATE_PUMPS ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - U32 value = override.state.u32; - - concentratePumps[ pumpId ].parked.ovData = value; - concentratePumps[ pumpId ].parked.override = OVERRIDE_KEY; - } - else - { - concentratePumps[ pumpId ].parked.override = OVERRIDE_RESET; - concentratePumps[ pumpId ].parked.ovData = concentratePumps[ pumpId ].parked.ovInitData; - } - - result = TRUE; - } - } - return result; } /*********************************************************************//** * @brief - * The testSetConcentratePumpParkCmdFaultedOverride function overrides the + * The testConcentratePumpParkCmdFaultedOverride function overrides the * park command fault status of given concentrate pump id. * @details \b Inputs: none - * @details \b Outputs: parkFaulted[] - * @param pumpId concentrate pump id - * @param value override concentrate pump park command faulted status + * @details \b Outputs: parkFaulted + * @param message Override message from Dialin which includes an ID of + * the pump to override and the state to override the pump to. * @return TRUE if override successful, FALSE if not *************************************************************************/ BOOL testConcentratePumpParkCmdFaultedOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = u32ArrayOverride( message, &concentratePumps[0].parkFaulted, NUM_OF_CONCENTRATE_PUMPS - 1, FALSE, TRUE ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 pumpId = override.index; - - // Verify concentrate pump index of override - if ( pumpId < NUM_OF_CONCENTRATE_PUMPS ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - U32 value = override.state.u32; - - concentratePumps[ pumpId ].parkFaulted.ovData = value; - concentratePumps[ pumpId ].parkFaulted.override = OVERRIDE_KEY; - } - else - { - concentratePumps[ pumpId ].parkFaulted.override = OVERRIDE_RESET; - concentratePumps[ pumpId ].parkFaulted.ovData = concentratePumps[ pumpId ].parkFaulted.ovInitData; - } - - result = TRUE; - } - } - return result; } @@ -1270,7 +1144,8 @@ * to park request. * @details \b Inputs: concentratePumps * @details \b Outputs: concentratePumps - * @param pumpId concentrate pump id + * @param message Override message from Dialin which includes an ID of + * the pump to override and the state to override the pump to. * @return TRUE if override successful, FALSE if not *************************************************************************/ BOOL testConcentratePumpParkRequestOverride( MESSAGE_T *message ) Index: firmware/App/Controllers/Valves.c =================================================================== diff -u -rf7c714a1a09b10d85a8b013712532d37b4d7b97a -re7fe0454b5b2d39009dc784dc8c156856df8bc86 --- firmware/App/Controllers/Valves.c (.../Valves.c) (revision f7c714a1a09b10d85a8b013712532d37b4d7b97a) +++ firmware/App/Controllers/Valves.c (.../Valves.c) (revision e7fe0454b5b2d39009dc784dc8c156856df8bc86) @@ -449,29 +449,8 @@ *************************************************************************/ BOOL testValvesStatesPublishIntervalOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverridePayloadFromMessage( message, &override ); + BOOL result = u32BroadcastIntervalOverride( message, &valvesStatesPublishInterval, TASK_PRIORITY_INTERVAL ); - // Verify tester has logged in with TD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - U32 intvl = override.state.u32 / TASK_PRIORITY_INTERVAL; - - result = TRUE; - valvesStatesPublishInterval.ovData = intvl; - valvesStatesPublishInterval.override = OVERRIDE_KEY; - } - else - { - result = TRUE; - valvesStatesPublishInterval.override = OVERRIDE_RESET; - valvesStatesPublishInterval.ovData = valvesStatesPublishInterval.ovInitData; - } - } - return result; } @@ -487,35 +466,8 @@ *************************************************************************/ BOOL testValveStateOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = u32ArrayOverride( message, &valveStates[0], NUM_OF_VALVES - 1, 0, NUM_OF_VALVE_STATES - 1 ); - // Verify tester has logged in with TD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 valveID = override.index; - - // Verify bubble detector index of override - if ( valveID < NUM_OF_VALVES ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - U32 value = override.state.u32; - - valveStates[ valveID ].ovData = value; - valveStates[ valveID ].override = OVERRIDE_KEY; - result = TRUE; - } - else - { - valveStates[ valveID ].override = OVERRIDE_RESET; - valveStates[ valveID ].ovData = valveStates[ valveID ].ovInitData; - result = TRUE; - } - } - } - return result; } @@ -531,35 +483,8 @@ *************************************************************************/ BOOL testValveSensedStateOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = u32ArrayOverride( message, &valveSensedStates[0], NUM_OF_VALVES - 1, 0, NUM_OF_VALVE_STATES - 1 ); - // Verify tester has logged in with TD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 valveID = override.index; - - // Verify bubble detector index of override - if ( valveID < NUM_OF_VALVES ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - U32 value = override.state.u32; - - valveSensedStates[ valveID ].ovData = value; - valveSensedStates[ valveID ].override = OVERRIDE_KEY; - result = TRUE; - } - else - { - valveSensedStates[ valveID ].override = OVERRIDE_RESET; - valveSensedStates[ valveID ].ovData = valveStates[ valveID ].ovInitData; - result = TRUE; - } - } - } - return result; } Index: firmware/App/Drivers/ConductivitySensors.c =================================================================== diff -u -re2e51b0219db0132cebb6f65f3dbd803e1f01e30 -re7fe0454b5b2d39009dc784dc8c156856df8bc86 --- firmware/App/Drivers/ConductivitySensors.c (.../ConductivitySensors.c) (revision e2e51b0219db0132cebb6f65f3dbd803e1f01e30) +++ firmware/App/Drivers/ConductivitySensors.c (.../ConductivitySensors.c) (revision e7fe0454b5b2d39009dc784dc8c156856df8bc86) @@ -34,6 +34,7 @@ #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 @@ -886,35 +887,8 @@ *************************************************************************/ BOOL testConductivitySensorReadingsOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = f32ArrayOverride( message, ¤tConductivityReadings[0], NUM_OF_CONDUCTIVITY_SENSORS - 1 ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 sensor = override.index; - - // Verify conductivity sensor index of override - if ( sensor < NUM_OF_CONDUCTIVITY_SENSORS ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - F32 value = override.state.f32; - - currentConductivityReadings[ sensor ].ovData = value; - currentConductivityReadings[ sensor ].override = OVERRIDE_KEY; - } - else - { - currentConductivityReadings[ sensor ].override = OVERRIDE_RESET; - currentConductivityReadings[ sensor ].ovData = currentConductivityReadings[ sensor ].ovInitData; - } - - result = TRUE; - } - } - return result; } @@ -930,35 +904,8 @@ *************************************************************************/ BOOL testConductivitySensorTemperatureReadingsOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = f32ArrayOverride( message, ¤tTemperatureReadings[0], NUM_OF_CONDUCTIVITY_SENSORS - 1 ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 sensor = override.index; - - // Verify conductivity sensor index of override - if ( sensor < NUM_OF_CONDUCTIVITY_SENSORS ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - F32 value = override.state.f32; - - currentTemperatureReadings[ sensor ].ovData = value; - currentTemperatureReadings[ sensor ].override = OVERRIDE_KEY; - } - else - { - currentTemperatureReadings[ sensor ].override = OVERRIDE_RESET; - currentTemperatureReadings[ sensor ].ovData = currentTemperatureReadings[ sensor ].ovInitData; - } - - result = TRUE; - } - } - return result; } @@ -974,35 +921,8 @@ *************************************************************************/ BOOL testConductivitySensorReadCounterOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = u32ArrayOverride( message, &lastConductivityReadCounter[0], NUM_OF_CONDUCTIVITY_SENSORS - 1, 0, COND_SENSORS_READ_ERR_MAX_CNT ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 sensor = override.index; - - // Verify conductivity sensor index of override - if ( sensor < NUM_OF_CONDUCTIVITY_SENSORS ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - U32 value = override.state.u32; - - lastConductivityReadCounter[ sensor ].ovData = value; - lastConductivityReadCounter[ sensor ].override = OVERRIDE_KEY; - } - else - { - lastConductivityReadCounter[ sensor ].override = OVERRIDE_RESET; - lastConductivityReadCounter[ sensor ].ovData = lastConductivityReadCounter[ sensor ].ovInitData; - } - - result = TRUE; - } - } - return result; } @@ -1018,35 +938,8 @@ *************************************************************************/ BOOL testConductivitySensorErrorCounterOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = u32ArrayOverride( message, &lastConductivityErrorCounter[0], NUM_OF_CONDUCTIVITY_SENSORS - 1, 0, COND_SENSORS_READ_ERR_MAX_CNT ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 sensor = override.index; - - // Verify conductivity sensor index of override - if ( sensor < NUM_OF_CONDUCTIVITY_SENSORS ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - U32 value = override.state.u32; - - lastConductivityErrorCounter[ sensor ].ovData = value; - lastConductivityErrorCounter[ sensor ].override = OVERRIDE_KEY; - } - else - { - lastConductivityErrorCounter[ sensor ].override = OVERRIDE_RESET; - lastConductivityErrorCounter[ sensor ].ovData = lastConductivityErrorCounter[ sensor ].ovInitData; - } - - result = TRUE; - } - } - return result; } Index: firmware/App/Drivers/InternalADC.c =================================================================== diff -u -rf7c714a1a09b10d85a8b013712532d37b4d7b97a -re7fe0454b5b2d39009dc784dc8c156856df8bc86 --- firmware/App/Drivers/InternalADC.c (.../InternalADC.c) (revision f7c714a1a09b10d85a8b013712532d37b4d7b97a) +++ firmware/App/Drivers/InternalADC.c (.../InternalADC.c) (revision e7fe0454b5b2d39009dc784dc8c156856df8bc86) @@ -33,60 +33,47 @@ /// ADC channel number to ADC channel ID (enumeration) look-up table. const INT_ADC_CHANNEL_T adcChannelNum2ChannelId[ MAX_ADC_CHANNELS ] = { - INT_ADC_RO_PUMP_INLET_PRESSURE, // 0 - INT_ADC_RO_PUMP_OUTLET_PRESSURE, // 1 - INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE, // 2 - INT_ADC_DRAIN_PUMP_INLET_PRESSURE, // 3 - INT_ADC_MAIN_24_VOLTS, // 4 - INT_ADC_FPGA_1_8_VOLTS, // 5 - INT_ADC_FPGA_1_VOLT, // 6 - INT_ADC_SENSORS_3_3_VOLTS, // 7 - INT_ADC_PROCESSOR_1_8_VOLTS, // 8 - INT_ADC_POWER_SUPPLY_GATE_DRIVER, // 9 - INT_ADC_SENSORS_5_VOLTS, // 10 - INT_ADC_LOGIC_5_VOLTS, // 11 - INT_ADC_3_3_VOLTS, // 12 - INT_ADC_RO_PUMP_FEEDBACK_DUTY_CYCLE, // 13 - INT_ADC_AVAILABLE_CHANNEL, // 14 - INT_ADC_PROCESSOR_1_2_VOLTS, // 15 - INT_ADC_REFERENCE_VOLTAGE, // 16 - INT_ADC_TRIMMER_HEATER_24_VOLTS, // 17 - INT_ADC_SECONDARY_HEATER_24_VOLTS, // 18 - INT_ADC_REF_IN1, // 19 - INT_ADC_REF_IN2, // 20 - INT_ADC_BOARD_THERMISTOR, // 21 - INT_ADC_POWER_SUPPLY_1_THERMISTOR, // 22 - INT_ADC_MAIN_NON_ISOLATED_24_VOLTS, // 23 + INT_ADC_NOT_USED, // 0 + INT_ADC_NOT_USED, // 1 - TD specific + INT_ADC_3_3V_SENSOR_ADC_REF, // 2 + INT_ADC_24V_ACTUATORS_REG, // 3 + INT_ADC_1_2V_PROCESSOR, // 4 + INT_ADC_5V_SENSORS, // 5 + INT_ADC_NOT_USED, // 6 + INT_ADC_NOT_USED, // 7 + INT_ADC_NOT_USED, // 8 - TD specific + INT_ADC_NOT_USED, // 9 + INT_ADC_BOARD_THERMISTOR, // 10 + INT_ADC_1_25_FPGA_ADC_REF, // 11 + INT_ADC_3_3V, // 12 + INT_ADC_5V_LOGIC, // 13 + INT_ADC_NOT_USED, // 14 - TD specific + INT_ADC_NOT_USED, // 15 + INT_ADC_NOT_USED, // 16 + INT_ADC_NOT_USED, // 17 + INT_ADC_BACKUP_V, // 18 + INT_ADC_NOT_USED, // 19 + INT_ADC_NOT_USED, // 20 + INT_ADC_NOT_USED, // 21 + INT_ADC_24V_ACTUATORS, // 22 + INT_ADC_NOT_USED // 23 }; /// ADC channel read to units look-up table. const F32 ADC_CHANNEL_READ_TO_UNITS[ NUM_OF_INT_ADC_CHANNELS ] = { - 0.0, // - INT_ADC_NOT_USED - 0.06438104, // PSIA- INT_ADC_RO_PUMP_INLET_PRESSURE - 0.06438104, // PSIA- INT_ADC_RO_PUMP_OUTLET_PRESSURE - 0.06438104, // PSIA- INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE - 0.06438104, // PSIA- INT_ADC_DRAIN_PUMP_INLET_PRESSURE - 0.00073242, // V - INT_ADC_RO_PUMP_FEEDBACK_DUTY_CYCLE - 1.0, // ? - INT_ADC_AVAILABLE_CHANNEL - 0.00763285, // V - INT_ADC_TRIMMER_HEATER_24_VOLTS (varies inversely with PWM) - 0.00700441, // V - INT_ADC_SECONDARY_HEATER_24_VOLTS (varies inversely with PWM for secondary element) - 0.001221, // V - INT_ADC_BOARD_THERMISTOR - 0.0007326, // V - INT_ADC_FPGA_1_8_VOLTS - 0.0007326, // V - INT_ADC_FPGA_1_VOLT - 0.0007326, // V - INT_ADC_PROCESSOR_1_8_VOLTS - 0.0007326, // V - INT_ADC_PROCESSOR_1_2_VOLTS - 0.00117296, // V - INT_ADC_SENSORS_3_3_VOLTS - 0.0014652, // V - INT_ADC_SENSORS_5_VOLTS - 0.00700441, // V - INT_ADC_MAIN_24_VOLTS - 0.0014652, // V - INT_ADC_LOGIC_5_VOLTS - 0.00117296, // V - INT_ADC_3_3_VOLTS - 0.00117296, // V - INT_ADC_REFERENCE_VOLTAGE (3V) - 0.0014652, // V - INT_ADC_REF_IN1 (3V) - 0.0014652, // V - INT_ADC_REF_IN2 (3V) - 0.001221, // V - INT_ADC_POWER_SUPPLY_1_THERMISTOR - 0.00700441, // V - INT_ADC_MAIN_NON_ISOLATED_24_VOLTS - 0.00304608 // V - INT_ADC_POWER_SUPPLY_GATE_DRIVER (5V) + 0.0, // - INT_ADC_NOT_USED + 0.001465, // V - INT_ADC_3_3V_SENSOR_ADC_REF + 0.009420, // V - INT_ADC_24V_ACTUATORS_REG + 0.000733, // V - INT_ADC_1_2V_PROCESSOR + 0.001465, // V - INT_ADC_5V_SENSORS + 0.001221, // V - INT_ADC_BOARD_THERMISTOR + 0.000733, // V - INT_ADC_1_25_FPGA_ADC_REF + 0.001465, // V - INT_ADC_3_3V + 0.001465, // V - INT_ADC_5V_LOGIC + 0.007106, // V - INT_ADC_24V_ACTUATORS + 0.007106, // V - INT_ADC_BACKUP_V +// 0.000000, // V - INT_ADC_DUMMY }; // ********** private data ********** Index: firmware/App/Drivers/InternalADC.h =================================================================== diff -u -rf7c714a1a09b10d85a8b013712532d37b4d7b97a -re7fe0454b5b2d39009dc784dc8c156856df8bc86 --- firmware/App/Drivers/InternalADC.h (.../InternalADC.h) (revision f7c714a1a09b10d85a8b013712532d37b4d7b97a) +++ firmware/App/Drivers/InternalADC.h (.../InternalADC.h) (revision e7fe0454b5b2d39009dc784dc8c156856df8bc86) @@ -39,32 +39,19 @@ /// Enumeration of DD internal ADC channels. typedef enum Int_ADC_Channels { - INT_ADC_NOT_USED = 0, ///< DD internal ADC channel not used - INT_ADC_RO_PUMP_INLET_PRESSURE, ///< DD internal ADC RO pump inlet pressure channel - INT_ADC_RO_PUMP_OUTLET_PRESSURE, ///< DD internal ADC RO pump outlet pressure channel - INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE, ///< DD internal ADC drain pump outlet pressure channel - INT_ADC_DRAIN_PUMP_INLET_PRESSURE, ///< DD internal ADC drain pump inlet pressure channel - INT_ADC_RO_PUMP_FEEDBACK_DUTY_CYCLE, ///< DD internal ADC RO pump feedback duty cycle channel - INT_ADC_AVAILABLE_CHANNEL, ///< DD internal ADC available channel - INT_ADC_SECONDARY_HEATER_24_VOLTS, ///< DD internal ADC secondary heater 24 volt supply channel - INT_ADC_TRIMMER_HEATER_24_VOLTS, ///< DD internal ADC trimmer heater 24 volt supply channel - INT_ADC_BOARD_THERMISTOR, ///< DD internal ADC DD board thermistor channel - INT_ADC_FPGA_1_8_VOLTS, ///< DD internal ADC DD FPGA 1.8 volt supply channel - INT_ADC_FPGA_1_VOLT, ///< DD internal ADC DD FPGA 1 volt supply channel - INT_ADC_PROCESSOR_1_8_VOLTS, ///< DD internal ADC DD processor 1.8 volt supply channel - INT_ADC_PROCESSOR_1_2_VOLTS, ///< DD internal ADC DD processor 1.2 volt supply channel - INT_ADC_SENSORS_3_3_VOLTS, ///< DD internal ADC DD sensors 3.3 volt supply channel - INT_ADC_SENSORS_5_VOLTS, ///< DD internal ADC DD sensors 5 volt supply channel - INT_ADC_MAIN_24_VOLTS, ///< DD internal ADC DD 24 volt supply channel - INT_ADC_LOGIC_5_VOLTS, ///< DD internal ADC DD logic 5 volt supply channel - INT_ADC_3_3_VOLTS, ///< DD internal ADC DD 3.3 volt supply channel - INT_ADC_REFERENCE_VOLTAGE, ///< DD internal ADC reference voltage channel - INT_ADC_REF_IN1, ///< DD internal ADC external ADC1 reference voltage channel - INT_ADC_REF_IN2, ///< DD internal ADC external ADC2 reference voltage channel - INT_ADC_POWER_SUPPLY_1_THERMISTOR, ///< DD internal ADC DD power supply 1 thermistor - INT_ADC_MAIN_NON_ISOLATED_24_VOLTS, ///< DD internal ADC DD 24 volts non-isolated voltage channel - INT_ADC_POWER_SUPPLY_GATE_DRIVER, ///< DD internal ADC DD power supply gate driver - NUM_OF_INT_ADC_CHANNELS ///< Number of DD internal ADC channels + INT_ADC_NOT_USED = 0, ///< Not used + INT_ADC_3_3V_SENSOR_ADC_REF, ///< Internal ADC channel for 3.3V sensor volatge + INT_ADC_24V_ACTUATORS_REG, ///< Internal ADC channel for 24V regen (diode drop) to actuators + INT_ADC_1_2V_PROCESSOR, ///< Internal ADC channel for 1.2V to processor + INT_ADC_5V_SENSORS, ///< Internal ADC channel for 5V to sensors + INT_ADC_BOARD_THERMISTOR, ///< Internal ADC channel for PCB temperature + INT_ADC_1_25_FPGA_ADC_REF, ///< Internal ADC channel for FPGA ADC reference voltage + INT_ADC_3_3V, ///< Internal ADC channel for 3.3V + INT_ADC_5V_LOGIC, ///< Internal ADC channel for 5V to logic + INT_ADC_24V_ACTUATORS, ///< Internal ADC channel for 24V to actuators + INT_ADC_BACKUP_V, ///< Internal ADC channel for VBackup + //INT_ADC_DUMMY, ///< Internal ADC channel - not used, needed to get even number of channels + NUM_OF_INT_ADC_CHANNELS ///< Number of used internal ADC channels. } INT_ADC_CHANNEL_T; // ********** public function prototypes ********** Index: firmware/App/Drivers/PressureSensor.c =================================================================== diff -u -rfefb47e88a5285e99498efb830fdceb9e95c2c3e -re7fe0454b5b2d39009dc784dc8c156856df8bc86 --- firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision fefb47e88a5285e99498efb830fdceb9e95c2c3e) +++ firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision e7fe0454b5b2d39009dc784dc8c156856df8bc86) @@ -33,6 +33,7 @@ #define ONE_BAR_TO_MILLI_BAR 1000 ///< 1 bar to milli-bar conversion. #define COUNTS_TO_MILLI_BAR 100 ///< Counts to milli-bar conversion. #define BAR_TO_MMHG ( 750.062F ) ///< Conversion factor for converting bar to mmHg. +#define PRES_SENSORS_READ_ERR_MAX_CNT 255 ///< Pressure sensor read and error max count value /// Barometric sensor conversion coefficients typedef struct @@ -382,35 +383,8 @@ *************************************************************************/ BOOL testPressureSensorReadingsOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = f32ArrayOverride( message, ¤tPressureReadings[0], NUM_OF_PRESSURE_SENSORS - 1 ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 sensor = override.index; - - // Verify pressure sensor index of override - if ( sensor < NUM_OF_PRESSURE_SENSORS ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - F32 value = override.state.f32; - - currentPressureReadings[ sensor ].ovData = value; - currentPressureReadings[ sensor ].override = OVERRIDE_KEY; - } - else - { - currentPressureReadings[ sensor ].override = OVERRIDE_RESET; - currentPressureReadings[ sensor ].ovData = currentPressureReadings[ sensor ].ovInitData; - } - - result = TRUE; - } - } - return result; } @@ -426,35 +400,8 @@ *************************************************************************/ BOOL testPressureSensorTemperatureReadingsOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = f32ArrayOverride( message, ¤tPresTempReadings[0], NUM_OF_PRESSURE_SENSORS - 1 ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 sensor = override.index; - - // Verify pressure sensor index of override - if ( sensor < NUM_OF_PRESSURE_SENSORS ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - F32 value = override.state.f32; - - currentPresTempReadings[ sensor ].ovData = value; - currentPresTempReadings[ sensor ].override = OVERRIDE_KEY; - } - else - { - currentPresTempReadings[ sensor ].override = OVERRIDE_RESET; - currentPresTempReadings[ sensor ].ovData = currentPresTempReadings[ sensor ].ovInitData; - } - - result = TRUE; - } - } - return result; } @@ -470,35 +417,8 @@ *************************************************************************/ BOOL testPressureSensorReadCounterOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = u32ArrayOverride( message, &lastPressureReadCounter[0], NUM_OF_PRESSURE_SENSORS - 1, 0, PRES_SENSORS_READ_ERR_MAX_CNT ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 sensor = override.index; - - // Verify pressure sensor index of override - if ( sensor < NUM_OF_PRESSURE_SENSORS ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - U32 value = override.state.u32; - - lastPressureReadCounter[ sensor ].ovData = value; - lastPressureReadCounter[ sensor ].override = OVERRIDE_KEY; - } - else - { - lastPressureReadCounter[ sensor ].override = OVERRIDE_RESET; - lastPressureReadCounter[ sensor ].ovData = lastPressureReadCounter[ sensor ].ovInitData; - } - - result = TRUE; - } - } - return result; } @@ -514,35 +434,8 @@ *************************************************************************/ BOOL testPressureSensorErrorCounterOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = u32ArrayOverride( message, &lastPressureErrorCounter[0], NUM_OF_PRESSURE_SENSORS - 1, 0, PRES_SENSORS_READ_ERR_MAX_CNT ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 sensor = override.index; - - // Verify pressure sensor index of override - if ( sensor < NUM_OF_PRESSURE_SENSORS ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - U32 value = override.state.u32; - - lastPressureErrorCounter[ sensor ].ovData = value; - lastPressureErrorCounter[ sensor ].override = OVERRIDE_KEY; - } - else - { - lastPressureErrorCounter[ sensor ].override = OVERRIDE_RESET; - lastPressureErrorCounter[ sensor ].ovData = lastPressureErrorCounter[ sensor ].ovInitData; - } - - result = TRUE; - } - } - return result; } Index: firmware/App/Drivers/TemperatureSensors.c =================================================================== diff -u -re3699de422fa3ba1b8145c4cc44257702c9e336f -re7fe0454b5b2d39009dc784dc8c156856df8bc86 --- firmware/App/Drivers/TemperatureSensors.c (.../TemperatureSensors.c) (revision e3699de422fa3ba1b8145c4cc44257702c9e336f) +++ firmware/App/Drivers/TemperatureSensors.c (.../TemperatureSensors.c) (revision e7fe0454b5b2d39009dc784dc8c156856df8bc86) @@ -58,6 +58,8 @@ #define DATA_PUBLISH_COUNTER_START_COUNT 30 ///< Data publish counter start count. #define BARO_SENSOR_REFERENCE_TEMP_C 2000 ///< Barometric sensor reference temperature in C. #define BARO_SENSOR_WAIT_FOR_COEFF_TIME_OUT_MS ( 20 * MS_PER_SECOND ) ///< Barometric sensor wait for coefficients timeout in milliseconds. +#define TEMP_READ_COUNTER_MAX_VALUE 255 ///< FPGA temperature sensor read counter max value. +#define BARO_SENSOR_CRC_MAX_VALUE 65535 ///< Baro sensor coefficients CRC max value static const U32 TEMP_EQUATION_RESISTOR_CALC = 1 << ( TEMP_SENSORS_ADC_BITS - 1 ); ///< Temperature sensors resistor calculation (2^(24 - 1)). static const F32 TEMP_EQUATION_COEFF_A = 3.9083E-3; ///< ADC to temperature conversion coefficient A. @@ -593,4 +595,72 @@ *************************************************************************/ +/*********************************************************************//** + * @brief + * The testSetMeasuredTemperatureOverride function sets the override value + * for a specific temperature sensor. + * @details Inputs: tempSensors + * @details Outputs: tempSensors + * @param message Override message from Dialin which includes an ID of + * the sensor to override and the state to override the sensor to. + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testMeasuredTemperatureOverride( MESSAGE_T *message ) +{ + BOOL result = f32ArrayOverride( message, &tempSensors[0].temperatureValue, NUM_OF_TEMPERATURE_SENSORS - 1 ); + + return result; +} + +/*********************************************************************//** + * @brief + * The testTemperatureReadCounterOverride function sets the override value + * of the temperature read counter. + * @details Inputs: lastTemperatureReadCounter + * @details Outputs: lastTemperatureReadCounter + * @param message Override message from Dialin which includes the read + * counter value to override for the set of temperature sensors. + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testTemperatureReadCounterOverride( MESSAGE_T *message ) +{ + BOOL result = u32Override( message, &lastTemperatureReadCounter, 0, TEMP_READ_COUNTER_MAX_VALUE ); + + return result; +} + +/*********************************************************************//** + * @brief + * The testBaroTemperatureReadCounterOverride function sets the override value + * of the baro temperature read counter. + * @details Inputs: lastBaroTempReadCounter + * @details Outputs: lastBaroTempReadCounter + * @param message Override message from Dialin which includes the read + * counter value to override for the baro sensor. + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testBaroTemperatureReadCounterOverride( MESSAGE_T *message ) +{ + BOOL result = u32Override( message, &lastBaroTempReadCounter, 0, TEMP_READ_COUNTER_MAX_VALUE ); + + return result; +} + +/*********************************************************************//** + * @brief + * The testBaroTemperatureReadCounterOverride function sets the override value + * of the baro temperature read counter. + * @details Inputs: lastBaroTempReadCounter + * @details Outputs: lastBaroTempReadCounter + * @param message Override message from Dialin which includes the CRC + * value to override for the baro sensor. + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testBaroTemperatureCRCOverride( MESSAGE_T *message ) +{ + BOOL result = u32Override( message, &baroConvConsts.coeffsCRC, 0, BARO_SENSOR_CRC_MAX_VALUE ); + + return result; +} + /**@}*/ Index: firmware/App/Drivers/TemperatureSensors.h =================================================================== diff -u -rfefb47e88a5285e99498efb830fdceb9e95c2c3e -re7fe0454b5b2d39009dc784dc8c156856df8bc86 --- firmware/App/Drivers/TemperatureSensors.h (.../TemperatureSensors.h) (revision fefb47e88a5285e99498efb830fdceb9e95c2c3e) +++ firmware/App/Drivers/TemperatureSensors.h (.../TemperatureSensors.h) (revision e7fe0454b5b2d39009dc784dc8c156856df8bc86) @@ -57,6 +57,11 @@ U32 getBaroTempSensorsReadCount( void ); void setBaroSensorCoefficientReadStartTime( void ); +BOOL testMeasuredTemperatureOverride( MESSAGE_T *message ); +BOOL testTemperatureReadCounterOverride( MESSAGE_T *message ); +BOOL testBaroTemperatureReadCounterOverride( MESSAGE_T *message ); +BOOL testBaroTemperatureCRCOverride( MESSAGE_T *message ); + /**@}*/ #endif Index: firmware/App/Monitors/Conductivity.c =================================================================== diff -u -re2e51b0219db0132cebb6f65f3dbd803e1f01e30 -re7fe0454b5b2d39009dc784dc8c156856df8bc86 --- firmware/App/Monitors/Conductivity.c (.../Conductivity.c) (revision e2e51b0219db0132cebb6f65f3dbd803e1f01e30) +++ firmware/App/Monitors/Conductivity.c (.../Conductivity.c) (revision e7fe0454b5b2d39009dc784dc8c156856df8bc86) @@ -131,29 +131,8 @@ *************************************************************************/ BOOL testConductivitySensorDataPublishIntervalOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverridePayloadFromMessage( message, &override ); + BOOL result = u32BroadcastIntervalOverride( message, &conductivityDataPublishInterval, TASK_PRIORITY_INTERVAL ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - U32 intvl = override.state.u32 / TASK_PRIORITY_INTERVAL; - - conductivityDataPublishInterval.ovData = intvl; - conductivityDataPublishInterval.override = OVERRIDE_KEY; - } - else - { - conductivityDataPublishInterval.override = OVERRIDE_RESET; - conductivityDataPublishInterval.ovData = conductivityDataPublishInterval.ovInitData; - } - - result = TRUE; - } - return result; } Index: firmware/App/Monitors/Pressure.c =================================================================== diff -u -re3699de422fa3ba1b8145c4cc44257702c9e336f -re7fe0454b5b2d39009dc784dc8c156856df8bc86 --- firmware/App/Monitors/Pressure.c (.../Pressure.c) (revision e3699de422fa3ba1b8145c4cc44257702c9e336f) +++ firmware/App/Monitors/Pressure.c (.../Pressure.c) (revision e7fe0454b5b2d39009dc784dc8c156856df8bc86) @@ -414,29 +414,8 @@ *************************************************************************/ BOOL testPressureSensorDataPublishIntervalOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverridePayloadFromMessage( message, &override ); + BOOL result = u32BroadcastIntervalOverride( message, &pressuresDataPublishInterval, TASK_PRIORITY_INTERVAL ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - U32 intvl = override.state.u32 / TASK_PRIORITY_INTERVAL; - - result = TRUE; - pressuresDataPublishInterval.ovData = intvl; - pressuresDataPublishInterval.override = OVERRIDE_KEY; - } - else - { - result = TRUE; - pressuresDataPublishInterval.override = OVERRIDE_RESET; - pressuresDataPublishInterval.ovData = pressuresDataPublishInterval.ovInitData; - } - } - return result; } @@ -452,35 +431,8 @@ *************************************************************************/ BOOL testPressureSensorFilteredReadingsOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = f32ArrayOverride( message, &filteredcurrentPressureReadings[0], NUM_OF_PRESSURE_SENSORS - 1 ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 sensor = override.index; - - // Verify pressure sensor index of override - if ( sensor < NUM_OF_PRESSURE_SENSORS ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - F32 value = override.state.f32; - - filteredcurrentPressureReadings[ sensor ].ovData = value; - filteredcurrentPressureReadings[ sensor ].override = OVERRIDE_KEY; - } - else - { - filteredcurrentPressureReadings[ sensor ].override = OVERRIDE_RESET; - filteredcurrentPressureReadings[ sensor ].ovData = filteredcurrentPressureReadings[ sensor ].ovInitData; - } - - result = TRUE; - } - } - return result; } @@ -496,35 +448,8 @@ *************************************************************************/ BOOL testPressureSensorFilteredTemperatureReadingsOverride( MESSAGE_T *message ) { - BOOL result = FALSE; - TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + BOOL result = f32ArrayOverride( message, &filteredcurrentPresTempReadings[0], NUM_OF_PRESSURE_SENSORS - 1 ); - // Verify tester has logged in with DD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) - { - U32 sensor = override.index; - - // Verify pressure sensor index of override - if ( sensor < NUM_OF_PRESSURE_SENSORS ) - { - if ( OVERRIDE_OVERRIDE == ovType ) - { - F32 value = override.state.f32; - - filteredcurrentPresTempReadings[ sensor ].ovData = value; - filteredcurrentPresTempReadings[ sensor ].override = OVERRIDE_KEY; - } - else - { - filteredcurrentPresTempReadings[ sensor ].override = OVERRIDE_RESET; - filteredcurrentPresTempReadings[ sensor ].ovData = filteredcurrentPresTempReadings[ sensor ].ovInitData; - } - - result = TRUE; - } - } - return result; } Index: firmware/App/Monitors/Temperature.c =================================================================== diff -u -re3699de422fa3ba1b8145c4cc44257702c9e336f -re7fe0454b5b2d39009dc784dc8c156856df8bc86 --- firmware/App/Monitors/Temperature.c (.../Temperature.c) (revision e3699de422fa3ba1b8145c4cc44257702c9e336f) +++ firmware/App/Monitors/Temperature.c (.../Temperature.c) (revision e7fe0454b5b2d39009dc784dc8c156856df8bc86) @@ -225,4 +225,22 @@ *************************************************************************/ +/*********************************************************************//** + * @brief + * The testTemperatureSensorsDataPublishIntervalOverride function overrides the + * temperature sensor data publish interval. + * @details \b Inputs: none + * @details \b Outputs: tempSensorsPublishInterval + * @param Override message from Dialin which includes the interval + * (in ms) to override the temperature sensor data broadcast interval to. + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testTemperatureSensorsDataPublishIntervalOverride( MESSAGE_T *message ) +{ + BOOL result = u32BroadcastIntervalOverride( message, &tempSensorsPublishInterval, TASK_PRIORITY_INTERVAL ); + + return result; +} + + /**@}*/ Index: firmware/App/Monitors/Temperature.h =================================================================== diff -u -re3699de422fa3ba1b8145c4cc44257702c9e336f -re7fe0454b5b2d39009dc784dc8c156856df8bc86 --- firmware/App/Monitors/Temperature.h (.../Temperature.h) (revision e3699de422fa3ba1b8145c4cc44257702c9e336f) +++ firmware/App/Monitors/Temperature.h (.../Temperature.h) (revision e7fe0454b5b2d39009dc784dc8c156856df8bc86) @@ -49,6 +49,7 @@ SELF_TEST_STATUS_T execTemperatureSensorsSelfTest( void ); void execTemperatureSensors( void ); +BOOL testTemperatureSensorsDataPublishIntervalOverride( MESSAGE_T *message ); /**@}*/ Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r3a87ca0e2a722318216623d7e1f4c354c58c506c -re7fe0454b5b2d39009dc784dc8c156856df8bc86 --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 3a87ca0e2a722318216623d7e1f4c354c58c506c) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision e7fe0454b5b2d39009dc784dc8c156856df8bc86) @@ -27,6 +27,7 @@ #include "PAL.h" #include "Pressure.h" #include "SystemCommDD.h" +#include "Temperature.h" #include "Utilities.h" #include "Valves.h" @@ -78,26 +79,31 @@ MSG_ID_DD_SOFTWARE_RESET_REQUEST, MSG_ID_TD_OP_MODE_DATA, MSG_ID_DD_VALVE_PUBLISH_INTERVAL_OVERRIDE_REQUEST, - MSG_ID_DD_VALVE_STATE_OVERRIDE_REQUEST, + MSG_ID_DD_VALVE_STATE_OVERRIDE_REQUEST, //5 MSG_ID_DD_VALVE_SENSED_STATE_OVERRIDE_REQUEST, MSG_ID_DD_PRESSURE_SENSOR_READINGS_OVERRIDE_REQUEST, MSG_ID_DD_PRESSURE_SENSOR_TEMPERATURE_OVERRIDE_REQUEST, MSG_ID_DD_PRESSURE_SENSOR_READ_COUNTER_OVERRIDE_REQUEST, - MSG_ID_DD_PRESSURE_SENSOR_ERROR_COUNTER_OVERRIDE_REQUEST, + MSG_ID_DD_PRESSURE_SENSOR_ERROR_COUNTER_OVERRIDE_REQUEST, //10 MSG_ID_DD_PRESSURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST, MSG_ID_DD_PRESSURE_SENSOR_FILTER_READINGS_OVERRIDE_REQUEST, MSG_ID_DD_PRESSURE_SENSOR_FILTER_TEMPERATURE_OVERRIDE_REQUEST, MSG_ID_DD_CONDUCTIVITY_SENSOR_READINGS_OVERRIDE_REQUEST, - MSG_ID_DD_CONDUCTIVITY_SENSOR_TEMPERATURE_OVERRIDE_REQUEST, + MSG_ID_DD_CONDUCTIVITY_SENSOR_TEMPERATURE_OVERRIDE_REQUEST, //15 MSG_ID_DD_CONDUCTIVITY_SENSOR_READ_COUNTER_OVERRIDE_REQUEST, MSG_ID_DD_CONDUCTIVITY_SENSOR_ERROR_COUNTER_OVERRIDE_REQUEST, MSG_ID_DD_CONDUCTIVITY_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST, MSG_ID_DD_CONCENTRATE_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST, - MSG_ID_DD_CONCENTRATE_PUMP_TARGET_SPEED_OVERRIDE_REQUEST, + MSG_ID_DD_CONCENTRATE_PUMP_TARGET_SPEED_OVERRIDE_REQUEST, //20 MSG_ID_DD_CONCENTRATE_PUMP_MEASURED_SPEED_OVERRIDE_REQUEST, MSG_ID_DD_CONCENTRATE_PUMP_PARKED_OVERRIDE_REQUEST, MSG_ID_DD_CONCENTRATE_PUMP_PARK_FAULT_OVERRIDE_REQUEST, - MSG_ID_DD_CONCENTRATE_PUMP_PARK_REQUEST_OVERRIDE_REQUEST + MSG_ID_DD_CONCENTRATE_PUMP_PARK_REQUEST_OVERRIDE_REQUEST, + MSG_ID_DD_TEMPERATURE_SENSOR_PUBLISH_INTERVAL_OVERRIDE_REQUEST, //25 + MSG_ID_DD_TEMPERATURE_SENSOR_MEASURED_TEMPERATURE_OVERRIDE_REQUEST, + MSG_ID_DD_TEMPERATURE_SENSOR_READ_COUNTER_OVERRIDE_REQUEST, + MSG_ID_DD_TEMPERATURE_SENSOR_BARO_READ_COUNTER_OVERRIDE_REQUEST, + MSG_ID_DD_TEMPERATURE_SENSOR_BARO_CRC_OVERRIDE_REQUEST, }; /// Message handling function table @@ -106,26 +112,31 @@ &handleDDSoftwareResetRequest, &handleSetTDOperationMode, &testValvesStatesPublishIntervalOverride, - &testValveStateOverride, + &testValveStateOverride, //5 &testValveSensedStateOverride, &testPressureSensorReadingsOverride, &testPressureSensorTemperatureReadingsOverride, &testPressureSensorReadCounterOverride, - &testPressureSensorErrorCounterOverride, + &testPressureSensorErrorCounterOverride, //10 &testPressureSensorDataPublishIntervalOverride, &testPressureSensorFilteredReadingsOverride, &testPressureSensorFilteredTemperatureReadingsOverride, &testConductivitySensorReadingsOverride, - &testConductivitySensorTemperatureReadingsOverride, + &testConductivitySensorTemperatureReadingsOverride, //15 &testConductivitySensorReadCounterOverride, &testConductivitySensorErrorCounterOverride, &testConductivitySensorDataPublishIntervalOverride, &testConcentratePumpDataPublishIntervalOverride, - &testConcentratePumpTargetSpeedOverride, + &testConcentratePumpTargetSpeedOverride, //20 &testConcentratePumpMeasuredSpeedOverride, &testConcentratePumpParkedOverride, &testConcentratePumpParkCmdFaultedOverride, - &testConcentratePumpParkRequestOverride + &testConcentratePumpParkRequestOverride, + &testTemperatureSensorsDataPublishIntervalOverride, //25 + &testMeasuredTemperatureOverride, + &testTemperatureReadCounterOverride, + &testBaroTemperatureReadCounterOverride, + &testBaroTemperatureCRCOverride }; #define NUM_OF_FUNCTION_HANDLERS (sizeof(MSG_FUNCTION_HANDLERS) / sizeof(MsgFuncPtr))