Index: firmware/App/Controllers/Fans.c =================================================================== diff -u -r1510aec1871295f04541f1b932211d4ac621cc48 -r28672c1c97532a025a2ca23148760904bde814e5 --- firmware/App/Controllers/Fans.c (.../Fans.c) (revision 1510aec1871295f04541f1b932211d4ac621cc48) +++ firmware/App/Controllers/Fans.c (.../Fans.c) (revision 28672c1c97532a025a2ca23148760904bde814e5) @@ -507,13 +507,13 @@ { FANS_DATA_T fansData; - fansData.fansTargetPWM = fansStatus.targetDutyCycle * 100; - fansData.fanInlet1RPM = fansStatus.rpm[ FAN_INLET_1 ]; - fansData.fanInlet2RPM = fansStatus.rpm[ FAN_INLET_2 ]; - fansData.fanInlet3RPM = fansStatus.rpm[ FAN_INLET_3 ]; - fansData.fanOutlet1RPM = fansStatus.rpm[ FAN_OUTLET_1 ]; - fansData.fanOutlet2RPM = fansStatus.rpm[ FAN_OUTLET_2 ]; - fansData.fanOutlet3RPM = fansStatus.rpm[ FAN_OUTLET_3 ]; + fansData.fansTargetPWM = fansStatus.targetDutyCycle * 100; + fansData.fanInlet1RPM = fansStatus.rpm[ FAN_INLET_1 ]; + fansData.fanInlet2RPM = fansStatus.rpm[ FAN_INLET_2 ]; + fansData.fanInlet3RPM = fansStatus.rpm[ FAN_INLET_3 ]; + fansData.fanOutlet1RPM = fansStatus.rpm[ FAN_OUTLET_1 ]; + fansData.fanOutlet2RPM = fansStatus.rpm[ FAN_OUTLET_2 ]; + fansData.fanOutlet3RPM = fansStatus.rpm[ FAN_OUTLET_3 ]; broadcastFansData( &fansData ); Index: firmware/App/Controllers/Heaters.c =================================================================== diff -u -rc1ef106ed0f97dc998230c6e154aa2362aa476d8 -r28672c1c97532a025a2ca23148760904bde814e5 --- firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision c1ef106ed0f97dc998230c6e154aa2362aa476d8) +++ firmware/App/Controllers/Heaters.c (.../Heaters.c) (revision 28672c1c97532a025a2ca23148760904bde814e5) @@ -686,7 +686,7 @@ if ( ++trimmerHeaterTimerCounter >= CONTROLLER_CHECK_INTERVAL_COUNT ) { - F32 outletTemp = getTemperatureValue( TEMPSENSORS_OUTLET_REDUNDANCY ); + F32 outletTemp = getTemperatureValue( TEMPSENSORS_OUTLET_REDUNDANT ); trimmerHeaterDutyCycle = runPIController( PI_CONTROLLER_ID_TRIMMER_HEATER, trimmerHeaterTargetTemperature, outletTemp ); setTrimmerHeaterPWM( trimmerHeaterDutyCycle ); trimmerHeaterTimerCounter = 0; @@ -822,26 +822,14 @@ { if ( ++dataPublicationTimerCounter >= getPublishHeatersDataInterval() ) { - broadcastHeatersData( (U32)(mainPrimaryHeaterDutyCycle*100), (U32)(smallPrimaryHeaterDutyCycle*100), (U32)(trimmerHeaterDutyCycle*100) ); - //NOTE: This section will be removed -#ifdef DEBUG_ENABLED -#ifdef HEATERS_DEBUG - { - char debugTempStr[ 256 ]; - sprintf( debugTempStr, "TPo: %6.2f, PriCJ: %6.2f, PriTC: %6.2f, TpriInt: %6.2f, TRo: %6.2f, TriCJ: %6.2f, TriTC: %6.2f, TtriInt: %6.2f\r\n", - getTemperatureValue ( TEMPSENSORS_OUTLET_PRIMARY_HEATER ), - getTemperatureValue ( TEMPSENSORS_PRIMARY_HEATER_COLD_JUNCTION ), - getTemperatureValue ( TEMPSENSORS_PRIMARY_HEATER_THERMO_COUPLE ), - getTemperatureValue ( TEMPSENSORS_PRIMARY_HEATER_INTERNAL ), - getTemperatureValue ( TEMPSENSORS_OUTLET_REDUNDANCY ), - getTemperatureValue ( TEMPSENSORS_TRIMMER_HEATER_COLD_JUNCTION ), - getTemperatureValue ( TEMPSENSORS_TRIMMER_HEATER_THERMO_COUPLE ), - getTemperatureValue ( TEMPSENSORS_TRIMMER_HEATER_INTERNAL ) ); + HEATERS_DATA_T heatersData; - sendDebugData ( (U08*)debugTempStr, strlen(debugTempStr) ); - } -#endif -#endif + heatersData.mainPrimaryDutyCycle = mainPrimaryHeaterDutyCycle * 100; + heatersData.smallPrimaryDutyCycle = smallPrimaryHeaterDutyCycle * 100; + heatersData.trimmerDutyCycle = trimmerHeaterDutyCycle * 100; + + broadcastHeatersData( &heatersData ); + dataPublicationTimerCounter = 0; } } Index: firmware/App/Controllers/Heaters.h =================================================================== diff -u -r54f45c387430e440ab4607451fc84dea61f273f1 -r28672c1c97532a025a2ca23148760904bde814e5 --- firmware/App/Controllers/Heaters.h (.../Heaters.h) (revision 54f45c387430e440ab4607451fc84dea61f273f1) +++ firmware/App/Controllers/Heaters.h (.../Heaters.h) (revision 28672c1c97532a025a2ca23148760904bde814e5) @@ -28,6 +28,17 @@ * @{ */ +// ********** public definitions ********** +/// Heaters data publish structure +typedef struct +{ + F32 mainPrimaryDutyCycle; ///< Main primary heater duty cycle + F32 smallPrimaryDutyCycle; ///< Small primary heater duty cycle + F32 trimmerDutyCycle; ///< Trimmer heater duty cycle +} HEATERS_DATA_T; + +// ********** public function prototypes ********** + void initHeaters( void ); void setPrimaryHeaterTargetTemperature( F32 targetTemp ); Index: firmware/App/Controllers/TemperatureSensors.c =================================================================== diff -u -r1510aec1871295f04541f1b932211d4ac621cc48 -r28672c1c97532a025a2ca23148760904bde814e5 --- firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 1510aec1871295f04541f1b932211d4ac621cc48) +++ firmware/App/Controllers/TemperatureSensors.c (.../TemperatureSensors.c) (revision 28672c1c97532a025a2ca23148760904bde814e5) @@ -152,7 +152,7 @@ -1.228034E-2, 9.804036E-4, -4.413030E-5, 1.057734E-6, -1.052755E-8 }; -static F32 tempSensorsADCMaxCount = 0.0; +static const U32 tempSensorsADCMaxCount = 1 << 24; static const F32 tempEquationCoeffA = 3.9083E-3; ///< ADC to temperature conversion coefficient A. static const F32 tempEquationCoeffB = -5.775E-7; ///< ADC to temperature conversion coefficient B. @@ -228,9 +228,9 @@ tempSensors[ TEMPSENSORS_CONDUCTIVITY_SENSOR_2 ].zeroDegreeResistance = COND_SENSORS_TEMP_SENSOR_0_DEGREE_RESISTANCE; // Initialize TRo and TDi constants - tempSensors[ TEMPSENSORS_OUTLET_REDUNDANCY ].gain = TRIMMER_HEATER_EXT_TEMP_SENSORS_GAIN; - tempSensors[ TEMPSENSORS_OUTLET_REDUNDANCY ].refResistance = TRIMMER_HEATER_EXT_TEMP_SENSORS_REF_RESISTANCE; - tempSensors[ TEMPSENSORS_OUTLET_REDUNDANCY ].zeroDegreeResistance = TRIMMER_HEATER_EXT_TEMP_SENSORS_0_DEGREE_RESISTANCE; + tempSensors[ TEMPSENSORS_OUTLET_REDUNDANT ].gain = TRIMMER_HEATER_EXT_TEMP_SENSORS_GAIN; + tempSensors[ TEMPSENSORS_OUTLET_REDUNDANT ].refResistance = TRIMMER_HEATER_EXT_TEMP_SENSORS_REF_RESISTANCE; + tempSensors[ TEMPSENSORS_OUTLET_REDUNDANT ].zeroDegreeResistance = TRIMMER_HEATER_EXT_TEMP_SENSORS_0_DEGREE_RESISTANCE; tempSensors[ TEMPSENSORS_INLET_DIALYSATE ].gain = TRIMMER_HEATER_EXT_TEMP_SENSORS_GAIN; tempSensors[ TEMPSENSORS_INLET_DIALYSATE ].refResistance = TRIMMER_HEATER_EXT_TEMP_SENSORS_REF_RESISTANCE; @@ -252,7 +252,7 @@ tempSensors[ TEMPSENSORS_LOAD_CELL_A2_B2 ].conversionCoef = 1.0 / 13584.0; tempSensors[ TEMPSENSORS_INTERNAL_THDO_RTD ].conversionCoef = 1.0 / 13584.0; tempSensors[ TEMPSENSORS_INTERNAL_TDI_RTD ].conversionCoef = 1.0 / 13584.0; - tempSensors[ TEMPSENSORS_INTERNAL_CONDUCTIVITY ].conversionCoef = 1.0 / 13584.0; + tempSensors[ TEMPSENSORS_INTERNAL_COND_TEMP_SENSOR ].conversionCoef = 1.0 / 13584.0; // Windowed time count for FPGA temperature sensor error initTimeWindowedCount( TIME_WINDOWED_COUNT_FPGA_TEMPERATURE_SENSOR_ERROR, MAX_TEMPERATURE_SENSOR_FAILURES, @@ -616,7 +616,7 @@ case TEMPSENSORS_OUTLET_PRIMARY_HEATER: case TEMPSENSORS_CONDUCTIVITY_SENSOR_1: case TEMPSENSORS_CONDUCTIVITY_SENSOR_2: - case TEMPSENSORS_OUTLET_REDUNDANCY: + case TEMPSENSORS_OUTLET_REDUNDANT: case TEMPSENSORS_INLET_DIALYSATE: case TEMPSENSORS_PRIMARY_HEATER_THERMO_COUPLE: case TEMPSENSORS_TRIMMER_HEATER_THERMO_COUPLE: @@ -636,7 +636,7 @@ case TEMPSENSORS_LOAD_CELL_A2_B2: case TEMPSENSORS_INTERNAL_THDO_RTD: case TEMPSENSORS_INTERNAL_TDI_RTD: - case TEMPSENSORS_INTERNAL_CONDUCTIVITY: + case TEMPSENSORS_INTERNAL_COND_TEMP_SENSOR: // Temperature(C) = ((ADC - 0x800000)/13584) - 272.5 // The value 1/13584 has been calculated and stored in the conversion coefficient variable of the structure temperature = ( ( avgADCReads - ADC_BOARD_TEMP_SENSORS_CONST ) * tempSensors[ sensorIndex ].conversionCoef ) - @@ -774,7 +774,7 @@ processTempSnsrsADCRead( TEMPSENSORS_OUTLET_PRIMARY_HEATER, getFPGATPoTemp(), getFPGARTDErrorCount(), getFPGARTDReadCount() ); processTempSnsrsADCRead( TEMPSENSORS_CONDUCTIVITY_SENSOR_1, getFPGACD1Temp(), getFPGARTDErrorCount(), getFPGARTDReadCount() ); processTempSnsrsADCRead( TEMPSENSORS_CONDUCTIVITY_SENSOR_2, getFPGACD2Temp(), getFPGARTDErrorCount(), getFPGARTDReadCount() ); - processTempSnsrsADCRead( TEMPSENSORS_OUTLET_REDUNDANCY, getFPGATHDoTemp(), getFPGATHDoErrorCount(), getFPGATHDoReadCount() ); + processTempSnsrsADCRead( TEMPSENSORS_OUTLET_REDUNDANT, getFPGATHDoTemp(), getFPGATHDoErrorCount(), getFPGATHDoReadCount() ); processTempSnsrsADCRead( TEMPSENSORS_INLET_DIALYSATE, getFPGATDiTemp(), getFPGATDiErrorCount(), getFPGATDiReadCount() ); processHtrsTempSnsrsADCRead( TEMPSENSORS_PRIMARY_HEATER_THERMO_COUPLE, getFPGAPrimaryHeaterTemp(), getFPGAPrimaryHeaterFlags(), getFPGAPrimaryHeaterReadCount() ); @@ -788,7 +788,7 @@ processTempSnsrsADCRead( TEMPSENSORS_LOAD_CELL_A2_B2, getFPGALoadCellsA2B2Temp(), 0, 0 ); processTempSnsrsADCRead( TEMPSENSORS_INTERNAL_THDO_RTD, getFPGATHDoInternalTemp(), getFPGATHDoErrorCount(), getFPGATHDoReadCount() ); processTempSnsrsADCRead( TEMPSENSORS_INTERNAL_TDI_RTD, getFPGATDiInternalTemp(), getFPGATDiErrorCount(), getFPGATDiReadCount() ); - processTempSnsrsADCRead( TEMPSENSORS_INTERNAL_CONDUCTIVITY, getFPGACondSnsrInternalTemp(), getFPGARTDErrorCount(), getFPGARTDReadCount() ); + processTempSnsrsADCRead( TEMPSENSORS_INTERNAL_COND_TEMP_SENSOR, getFPGACondSnsrInternalTemp(), getFPGARTDErrorCount(), getFPGARTDReadCount() ); // Check if time has elapsed to calculate the internal temperature of the heaters if ( ++internalHeatersConversionTimer >= HEATERS_INTERNAL_TEMPERTURE_CALCULATION_INTERVAL ) Index: firmware/App/Controllers/TemperatureSensors.h =================================================================== diff -u -r1510aec1871295f04541f1b932211d4ac621cc48 -r28672c1c97532a025a2ca23148760904bde814e5 --- firmware/App/Controllers/TemperatureSensors.h (.../TemperatureSensors.h) (revision 1510aec1871295f04541f1b932211d4ac621cc48) +++ firmware/App/Controllers/TemperatureSensors.h (.../TemperatureSensors.h) (revision 28672c1c97532a025a2ca23148760904bde814e5) @@ -37,7 +37,7 @@ TEMPSENSORS_OUTLET_PRIMARY_HEATER, ///< Outlet primary heaters temperature sensor TEMPSENSORS_CONDUCTIVITY_SENSOR_1, ///< Conductivity sensor 1 temperature sensor TEMPSENSORS_CONDUCTIVITY_SENSOR_2, ///< Conductivity sensor 2 temperature sensor - TEMPSENSORS_OUTLET_REDUNDANCY, ///< Outlet redundancy temperature sensor + TEMPSENSORS_OUTLET_REDUNDANT, ///< Outlet redundant temperature sensor TEMPSENSORS_INLET_DIALYSATE, ///< Inlet dialysate temperature sensor TEMPSENSORS_PRIMARY_HEATER_THERMO_COUPLE, ///< Primary heaters internal temperature sensor TEMPSENSORS_TRIMMER_HEATER_THERMO_COUPLE, ///< Trimmer heater internal temperature sensor @@ -50,7 +50,7 @@ TEMPSENSORS_LOAD_CELL_A2_B2, ///< Load cell A2/B2 temperature sensor TEMPSENSORS_INTERNAL_THDO_RTD, ///< THDo RTD internal temperature sensor TEMPSENSORS_INTERNAL_TDI_RTD, ///< TDi RTD internal temperature sensor - TEMPSENSORS_INTERNAL_CONDUCTIVITY, ///< Conductivity sensor temperature sensor + TEMPSENSORS_INTERNAL_COND_TEMP_SENSOR, ///< Conductivity sensor temperature sensor NUM_OF_TEMPERATURE_SENSORS ///< Number of temperature sensors } TEMPERATURE_SENSORS_T; Index: firmware/App/Modes/ModeHeatDisinfect.c =================================================================== diff -u -r58129c9bb3053c39efa07f60e975f17e2a04755a -r28672c1c97532a025a2ca23148760904bde814e5 --- firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 58129c9bb3053c39efa07f60e975f17e2a04755a) +++ firmware/App/Modes/ModeHeatDisinfect.c (.../ModeHeatDisinfect.c) (revision 28672c1c97532a025a2ca23148760904bde814e5) @@ -360,7 +360,7 @@ DG_HEAT_DISINFECT_STATE_T state = DG_HEAT_DISINFECT_STATE_HEAT_WATER; F32 TDi = getTemperatureValue( TEMPSENSORS_INLET_DIALYSATE ); - F32 test = getTemperatureValue( TEMPSENSORS_OUTLET_REDUNDANCY ); //TODO remove later + F32 test = getTemperatureValue( TEMPSENSORS_OUTLET_REDUNDANT ); //TODO remove later if ( fabs( test - HEAT_DISINFECT_TARGET_TEMPERATURE ) <= MAX_TEMPERATURE_DEVIATION_FROM_TARGET ) { Index: firmware/App/Services/MessagePayloads.h =================================================================== diff -u -r1f500f8e6159a3fbab85ea68389e918a6df66400 -r28672c1c97532a025a2ca23148760904bde814e5 --- firmware/App/Services/MessagePayloads.h (.../MessagePayloads.h) (revision 1f500f8e6159a3fbab85ea68389e918a6df66400) +++ firmware/App/Services/MessagePayloads.h (.../MessagePayloads.h) (revision 28672c1c97532a025a2ca23148760904bde814e5) @@ -99,14 +99,6 @@ F32 targetTrimmerHeaterTemp; ///< Trimmer heater set temperature target } TARGET_TEMPS_PAYLOAD_T; -/// Heaters data struct. -typedef struct -{ - U32 mainPrimayHeaterDC; ///< Main primary heater DC - U32 smallPrimaryHeaterDC; ///< Small primary heater DC - U32 trimmerHeaterDC; ///< Trimmer heater DC -} HEATERS_DATA_T; - /// Accelerometer calibration data struct. typedef struct { Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rf9b3862d01ce6c64bd05b8649e69b44fa155b8e0 -r28672c1c97532a025a2ca23148760904bde814e5 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision f9b3862d01ce6c64bd05b8649e69b44fa155b8e0) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 28672c1c97532a025a2ca23148760904bde814e5) @@ -455,33 +455,25 @@ /*********************************************************************//** * @brief - * The broadcastHeatersData function sends out DG heaters data - * @details - * Inputs : heaters data - * Outputs : heatears data msg constructed and queued - * @param mainPrimaryDC main primary heater duty cycle - * @param smallPrimaryDC small primary heater duty cycle - * @param trimmerDC trimmer heater duty cycle + * The broadcastHeatersData function sends out DG heaters data. + * @details Inputs: none + * @details Outputs: heaters data msg constructed and queued + * @param heaters msg constructed and queued * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ -BOOL broadcastHeatersData ( U32 mainPrimaryDC, U32 smallPrimaryDC, U32 trimmerDC ) +BOOL broadcastHeatersData ( HEATERS_DATA_T *heatersData ) { BOOL result; MESSAGE_T msg; U08 *payloadPtr = msg.payload; - HEATERS_DATA_T payload; // create a message record blankMessage( &msg ); msg.hdr.msgID = MSG_ID_DG_HEATERS_DATA; msg.hdr.payloadLen = sizeof( HEATERS_DATA_T ); - payload.mainPrimayHeaterDC = mainPrimaryDC; - payload.smallPrimaryHeaterDC = smallPrimaryDC; - payload.trimmerHeaterDC = trimmerDC; + memcpy( payloadPtr, heatersData, sizeof( HEATERS_DATA_T ) ); - memcpy( payloadPtr, &payload, sizeof( HEATERS_DATA_T ) ); - // serialize the message (w/ sync, CRC, and appropriate CAN padding) and add serialized message data to appropriate comm buffer result = serializeMessage( msg, COMM_BUFFER_OUT_CAN_DG_BROADCAST, ACK_NOT_REQUIRED ); @@ -742,7 +734,7 @@ * @details * @details Inputs: none * @details Outputs: thermistors data msg constructed and queued - * @param UV reactors msg constructed and queued + * @param thermistors msg constructed and queued * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ BOOL broadcastThermistorsData( THERMISTORS_DATA_T *thermistorsData ) Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -rf9b3862d01ce6c64bd05b8649e69b44fa155b8e0 -r28672c1c97532a025a2ca23148760904bde814e5 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision f9b3862d01ce6c64bd05b8649e69b44fa155b8e0) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 28672c1c97532a025a2ca23148760904bde814e5) @@ -25,7 +25,8 @@ #include "UVReactors.h" #include "Thermistors.h" #include "Fans.h" -#include "ModeHeatDisinfect.h" +#include "ModeHeatDisinfect.h" +#include "Heaters.h" /** * @defgroup SystemCommMessages SystemCommMessages @@ -76,7 +77,7 @@ BOOL broadcastReservoirData( U32 resID, U32 fillToVol, U32 drainToVol ); // MSG_ID_HEATERS_READINGS -BOOL broadcastHeatersData ( U32 mainPrimaryDC, U32 smallPrimaryDC, U32 trimmerDC ); +BOOL broadcastHeatersData ( HEATERS_DATA_T *heatersData ); // MSG_ID_TEMPERATURE_SENSORS_READINGS BOOL broadcastTemperatureSensorsData ( U08 *sensorsValue, U32 byteLength ); @@ -113,9 +114,6 @@ // MSG_ID_DG_START_STOP_TRIMMER_HEATER_CMD void handleStartStopTrimmerHeaterCmd( MESSAGE_T *message ); - -// MSG_ID_HEATERS_READINGS -BOOL broadcastHeatersData ( U32 mainPrimaryDC, U32 smallPrimaryDC, U32 trimmerDC ); // MSG_ID_TEMPERATURE_SENSORS_READINGS BOOL broadcastTemperatureSensorsData ( U08 *sensorsValue, U32 byteLength );