Index: firmware/App/Controllers/Heaters.c =================================================================== diff -u -r984a7f458ebbd83f565480d2abc7126471d2dde9 -rb77fd49e9083761003ec1f58392b1954d0956b20 --- firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 984a7f458ebbd83f565480d2abc7126471d2dde9) +++ firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision b77fd49e9083761003ec1f58392b1954d0956b20) @@ -28,6 +28,11 @@ #include "SystemCommMessages.h" #include "PIControllers.h" +/** + * @addtogroup Heaters + * @{ + */ + #define MAIN_PRIMARY_HEATER_MAX_DUTY_CYCLE 0.89 ///< Main primary heater (heater A) max duty cycle (89%) #define SMALL_PRIMAY_HEATER_MAX_DUTY_CYCLE 0.50 ///< Small Primary heater (heater B) max duty cycle (50%) #define TRIMMER_HEATER_MAX_DUTY_CYCLE 0.50 ///< Trimmer heater max duty cycle (50%) @@ -92,6 +97,8 @@ static U32 primaryHeaterTimerCounter; ///< Primary heater timer counter static U32 trimmerHeaterTimerCounter; ///< Trimmer heater timer counter static U32 dataPublicationTimerCounter; ///< Data publication timer counter +static BOOL isPrimaryHeaterOn; ///< Flag to show if the primary heater is on //TODO add to AE +static BOOL isTrimmerHeaterOn; ///< Flag to show if the trimmer heater is on //TODO add to AE // private functions prototypes @@ -156,8 +163,9 @@ * The setPrimaryHeaterTargetTemperature function sets the primary heater * target temperature * @details - * Inputs : F32 (targetTemp) + * Inputs : primaryHeaterTargetTemperature * Outputs : none + * @param targetTemp : Target temperature * @return none *************************************************************************/ void setPrimaryHeaterTargetTemperature ( F32 targetTemp ) @@ -170,8 +178,9 @@ * The setTrimmerHeaterTargetTemperature function sets the trimmer heater * target temperature * @details - * Inputs : F32 (targetTemp) + * Inputs : trimmerHeaterTargetTemperature * Outputs : none + * @param targetTemp : Target temperature * @return none *************************************************************************/ void setTrimmerHeaterTargetTemperature ( F32 targetTemp ) @@ -316,17 +325,14 @@ switch ( primaryHeatersExecState ) { case PRIMARY_HEATERS_EXEC_STATE_OFF: - primaryHeatersExecState = handlePrimaryHeaterStateOff(); break; case PRIMARY_HEATERS_EXEC_STATE_CONTROL_TO_TARGET: - primaryHeatersExecState = handlePrimaryHeaterStateControlToTarget(); break; default: - SET_ALARM_WITH_2_U32_DATA ( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_HEATERS_PRIMARY_HEATER_EXEC_INVALID_STATE, primaryHeatersExecState ); primaryHeatersExecState = PRIMARY_HEATERS_EXEC_STATE_CONTROL_TO_TARGET; @@ -347,17 +353,14 @@ switch ( trimmerHeaterExecState ) { case TRIMMER_HEATER_EXEC_STATE_OFF: - trimmerHeaterExecState = handleTrimmerHeaterStateOff(); break; case TRIMMER_HEATER_EXEC_STATE_CONTROL_TO_TARGET: - trimmerHeaterExecState = handleTrimmerHeaterControlToTarget(); break; default: - SET_ALARM_WITH_2_U32_DATA ( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_HEATERS_TRIMMER_HEATER_EXEC_INVALID_STATE, trimmerHeaterExecState ); trimmerHeaterExecState = TRIMMER_HEATER_EXEC_STATE_CONTROL_TO_TARGET; @@ -385,7 +388,7 @@ if ( TOGGLEPRIMAYHEATER() ) { setPrimaryHeaterTargetTemperature ( 37 ); - if ( getTemperatureValue ( TEMPSENSORS_INLET_PRIMARY_HEATER_TEMP_SENSOR ) > 0 ) + //if ( getTemperatureValue ( TEMPSENSORS_INLET_PRIMARY_HEATER_TEMP_SENSOR ) > 0 ) { startPrimaryHeater(); state = PRIMARY_HEATERS_EXEC_STATE_CONTROL_TO_TARGET; @@ -465,7 +468,7 @@ if ( TOGGLEPRIMAYHEATER() ) { setTrimmerHeaterTargetTemperature ( 38 ); - if ( getTemperatureValue ( TEMPSENSORS_OUTLET_REDUNDANCY_TEMP_SENSOR ) > 0 ) + //if ( getTemperatureValue ( TEMPSENSORS_OUTLET_REDUNDANCY_TEMP_SENSOR ) > 0 ) { startTrimmerHeater(); state = TRIMMER_HEATER_EXEC_STATE_CONTROL_TO_TARGET; @@ -521,6 +524,7 @@ * @details * Inputs : none * Outputs : none + * @param : pwm : To set the PWM * @return none *************************************************************************/ static void setMainPrimaryHeaterPWM ( F32 pwm ) @@ -535,6 +539,7 @@ * @details * Inputs : none * Outputs : none + * @param: pwm : To set the PWM * @return none *************************************************************************/ static void setSmallPrimaryHeaterPWM ( F32 pwm ) @@ -548,6 +553,7 @@ * @details * Inputs : none * Outputs : none + * @param : pwm : To set the PWM * @return none *************************************************************************/ static void setTrimmerHeaterPWM ( F32 pwm ) @@ -562,20 +568,17 @@ * @details * Inputs : none * Outputs : none + * @param : heater (NAME_OF_HEATER) : Name of the heater to reset * @return none *************************************************************************/ static void resetHeaterState ( NAME_OF_HEATER_T heater ) { if ( heater == PRIMARY_HEATER ) { - F32 inletTemperatrue = getTemperatureValue ( TEMPSENSORS_INLET_PRIMARY_HEATER_TEMP_SENSOR ); - //mainPrimaryHeaterDutyCycle = fabs(primaryHeaterTargetTemperature - inletTemperatrue) * DELTA_TEMP_TO_PWM_DUTY_CYCLE_CONVERSION; resetPIController ( PI_CONTROLLER_ID_PRIMARY_HEATER, MAIN_PRIMARY_HEATER_MAX_DUTY_CYCLE ); } else if ( heater == TRIMMER_HEATER ) { - F32 inletTemperatrue = getTemperatureValue ( TEMPSENSORS_OUTLET_REDUNDANCY_TEMP_SENSOR ); - //trimmerHeaterDutyCycle = fabs(trimmerHeaterTargetTemperature - inletTemperatrue) * DELTA_TEMP_TO_PWM_DUTY_CYCLE_CONVERSION; resetPIController ( PI_CONTROLLER_ID_TRIMMER_HEATER, SMALL_PRIMAY_HEATER_MAX_DUTY_CYCLE ); } } @@ -640,6 +643,3 @@ etpwmSetCmpB( etpwmREG6, 0 ); } // TODO REMOVE THE CODE - - - Index: firmware/App/Controllers/TemperatureSensors.c =================================================================== diff -u -r984a7f458ebbd83f565480d2abc7126471d2dde9 -rb77fd49e9083761003ec1f58392b1954d0956b20 --- firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 984a7f458ebbd83f565480d2abc7126471d2dde9) +++ firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision b77fd49e9083761003ec1f58392b1954d0956b20) @@ -20,7 +20,10 @@ #include "SystemCommMessages.h" #include "Timers.h" -//TODO change the incoming water for ranges +/** + * @addtogroup TemperatureSensors + * @{ + */ // Private variables @@ -100,16 +103,15 @@ static TEMPSENSORS_SELF_TEST_STATES_T tempSensorsSelfTestState; ///< TemperatureSensor self test state static TEMPSENSORS_EXEC_STATES_T tempSensorsExecState; ///< TemperatureSensor exec state static U32 sampleCount; ///< Initial ADC read index until the array if filled up for the first time -static S32 rawADCReads [ NUM_OF_TEMPERATURE_SENSORS ] ///< Raw ADC reads array - [ MAX_NUM_OF_RAW_ADC_SAMPLES ]; +static S32 rawADCReads [ NUM_OF_TEMPERATURE_SENSORS ] + [ MAX_NUM_OF_RAW_ADC_SAMPLES ]; ///< Raw ADC reads array static S32 runningSumAndIndex [ NUM_OF_TEMPERATURE_SENSORS ] ///< Running sum and next ADC index array [ NUM_OF_RUNNING_SUM_AND_INDEX_ARRAY_COLUMNS ]; -static U32 tempSensorsConstants [ NUM_OF_TEMPERATURE_SENSORS ] ///< Temperature sensors constants - [ NUM_OF_TEMP_SENSORS_CONSTANTS_ARRAY_COLUMNS ]; -static F32 avgADCReads [ NUM_OF_TEMPERATURE_SENSORS ]; //TODO remove ///< Temperature sensors averaged ADC values -static F32 temperatureValues [ NUM_OF_TEMPERATURE_SENSORS ]; +static U32 tempSensorsConstants [ NUM_OF_TEMPERATURE_SENSORS ] + [ NUM_OF_TEMP_SENSORS_CONSTANTS_ARRAY_COLUMNS ];///< Temperature sensors constants static U32 readAndErrorCounts [ NUM_OF_TEMPERATURE_SENSORS ] [ NUM_OF_READ_AND_ERROR_ARRAY_COLUMNS ]; +static F32 temperatureValues [ NUM_OF_TEMPERATURE_SENSORS ]; static U32 elapsedTime; ///< Elapsed time // Private functions prototypes @@ -127,7 +129,7 @@ // Public functions /************************************************************************* - * @brief initTemperatureSensors + * @brief * The initTemperatureSensors function initializes the module * @details * Inputs : none @@ -177,7 +179,7 @@ tempSensorsConstants [ TEMPSENSORS_TRIMMER_HEATER_INTERNAL_TEMP_SESNOR ] [ ADC_READ_0_DEG_RESISTANCE_INDEX ] = 0; } /************************************************************************* - * @brief execTemperatureSensorsSelfTest + * @brief * The execTemperatureSensorsSelfTest function runs the TemperatureSensors * POST during the self test * @details @@ -191,27 +193,22 @@ switch ( tempSensorsSelfTestState ) { case TEMPSENSORS_SELF_TEST_START: - tempSensorsSelfTestState = handleSelfTestStart(); break; case TEMPSENSORS_SELF_TEST_ADC_CHECK: - tempSensorsSelfTestState = handleSelfTestADCCheck(); break; case TEMPSENSORS_SELF_TEST_CONSISTENCY_CHECK: - tempSensorsSelfTestState = handleSelfTestConsistencyCheck(); break; case TEMPSENSORS_SELF_TEST_COMPLETE: - // Done with self test, do nothing break; default: - SET_ALARM_WITH_2_U32_DATA ( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_TEMPERATURE_SENSORS_INVALID_SELF_TEST_STATE, tempSensorsSelfTestState ); tempSensorsSelfTestState = TEMPSENSORS_SELF_TEST_COMPLETE; @@ -236,17 +233,14 @@ switch ( tempSensorsExecState ) { case TEMPSENSORS_SELF_TEST_START: - tempSensorsExecState = handleExecStart(); break; case TEMPSENSORS_EXEC_STATE_GET_ADC_VALUES: - tempSensorsExecState = handleExecGetADCValues(); break; default: - SET_ALARM_WITH_2_U32_DATA ( ALARM_ID_SOFTWARE_FAULT, SW_FAULT_ID_TEMPERATURE_SENSORS_EXEC_INVALID_STATE, tempSensorsExecState ); tempSensorsExecState = TEMPSENSORS_EXEC_STATE_GET_ADC_VALUES; @@ -491,7 +485,8 @@ static TEMPSENSORS_SELF_TEST_STATES_T handleSelfTestADCCheck ( void ) { TEMPSENSORS_SELF_TEST_STATES_T state = TEMPSENSORS_SELF_TEST_CONSISTENCY_CHECK; - + // TODo Remove + F32 avgADCReads [ NUM_OF_TEMPERATURE_SENSORS ]; //TODO remove U08 i; for ( i = 0; i < sizeof(avgADCReads); i++ ) { @@ -582,15 +577,16 @@ // Look at the error counter and the specific error flag to make sure the error is a temp sensor // Add a byte array to have bits for each sensor to find out exactly what sensor failed - processADCRead( TEMPSENSORS_INLET_PRIMARY_HEATER_TEMP_SENSOR, getFPGATPiTemp(), getFPGARTDErrorCount(), getFPGARTDReadCount() ); - processADCRead( TEMPSENSORS_OUTLET_PRIMARY_HEATER_TEMP_SENSOR, getFPGATPoTemp(), getFPGARTDErrorCount(), getFPGARTDReadCount() ); - processADCRead( TEMPSENSORS_CONDUCTIVITY_SENSOR_1_TEMP_SENSOR, getFPGACD1Temp(), 0, 0 ); - processADCRead( TEMPSENSORS_CONDUCTIVITY_SENSOR_2_TEMP_SENSOR, getFPGACD2Temp(), 0, 0 ); - processADCRead( TEMPSENSORS_OUTLET_REDUNDANCY_TEMP_SENSOR, getFPGATHDoTemp(), 0, 0 ); - processADCRead( TEMPSENSORS_INLET_DIALYSATE_TEMP_SENSOR, getFPGATDiTemp(), 0, 0 ); - processADCRead( TEMPSENSORS_PRIMARY_HEATER_INTERNAL_TEMP_SENSOR, getFPGAPrimaryHeaterTemp(), 0, 0 ); - processADCRead( TEMPSENSORS_TRIMMER_HEATER_INTERNAL_TEMP_SESNOR, getFPGATrimmerHeaterTemp(), 0, 0 ); + processADCRead( TEMPSENSORS_INLET_PRIMARY_HEATER_TEMP_SENSOR, getFPGATPiTemp(), getFPGARTDErrorCount(), getFPGARTDReadCount() ); + processADCRead( TEMPSENSORS_OUTLET_PRIMARY_HEATER_TEMP_SENSOR, getFPGATPoTemp(), getFPGARTDErrorCount(), getFPGARTDReadCount() ); + processADCRead( TEMPSENSORS_CONDUCTIVITY_SENSOR_1_TEMP_SENSOR, getFPGACD1Temp(), getFPGARTDErrorCount(), getFPGARTDReadCount() ); + processADCRead( TEMPSENSORS_CONDUCTIVITY_SENSOR_2_TEMP_SENSOR, getFPGACD2Temp(), getFPGARTDErrorCount(), getFPGARTDReadCount() ); + processADCRead( TEMPSENSORS_OUTLET_REDUNDANCY_TEMP_SENSOR, getFPGATHDoTemp(), getFPGATHDoErrorCount(), getFPGATHDoReadCount() ); + processADCRead( TEMPSENSORS_INLET_DIALYSATE_TEMP_SENSOR, getFPGATDiTemp(), getFPGATDiErrorCount(), getFPGATDiReadCount() ); + processADCRead( TEMPSENSORS_PRIMARY_HEATER_INTERNAL_TEMP_SENSOR, getFPGAPrimaryHeaterTemp(), getFPGAPrimaryHeaterFlags(), getFPGAPrimaryHeaterReadCount() ); + processADCRead( TEMPSENSORS_TRIMMER_HEATER_INTERNAL_TEMP_SESNOR, getFPGATrimmerHeaterTemp(), getFPGATrimmerHeaterFlags(), getFPGATrimmerHeaterReadCount() ); + // Check the inlet water is within temperature range at the desired time interval if ( elapsedTime == 0 ) { elapsedTime = getMSTimerCount(); Index: firmware/App/Controllers/TemperatureSensors.h =================================================================== diff -u -r83352606f453107c3ac4636c8da0e8a65b17c723 -rb77fd49e9083761003ec1f58392b1954d0956b20 --- firmware/App/Controllers/TemperatureSensors.h (.../TemperatureSensors.h) (revision 83352606f453107c3ac4636c8da0e8a65b17c723) +++ firmware/App/Controllers/TemperatureSensors.h (.../TemperatureSensors.h) (revision b77fd49e9083761003ec1f58392b1954d0956b20) @@ -40,4 +40,9 @@ F32 getTemperatureValue ( TEMPERATURE_SENSORS_T sensor ); +//DATA_GET_PROTOTYPE ( F32, ); + +BOOL testSetMeasuredTemperatureOverride ( F32 temperatrue ); +BOOL testResetMeasuredTemperatureOverride ( void ); + #endif