Index: firmware/App/Controllers/Temperatures.c =================================================================== diff -u -r4a9872d81bae53492c124d0378028ece422f1b4d -r184261dfbd96bafe85c32c70bda406957ad0c128 --- firmware/App/Controllers/Temperatures.c (.../Temperatures.c) (revision 4a9872d81bae53492c124d0378028ece422f1b4d) +++ firmware/App/Controllers/Temperatures.c (.../Temperatures.c) (revision 184261dfbd96bafe85c32c70bda406957ad0c128) @@ -250,23 +250,25 @@ static void monitorTemperatures( void ) { TEMPERATURES_T sensor; - BOOL isAlarmTriggered; - F32 temperature = 0.0; BOOL isTempOutOfRange = FALSE; + F32 temperature = 0.0; + U32 lastFaultSensor = 0; + F32 faultSensorTemp = 0.0; for ( sensor = THERMISTOR_ONBOARD_NTC; sensor < NUM_OF_TEMPERATURES; sensor++ ) { temperature = getTemperatureValue( sensor ); - isTempOutOfRange |= ( temperature > MAX_ALLOWED_TEMPERATURE ) || ( temperature < MIN_ALLOWED_TEMPERATURE ); + if ( ( temperature > MAX_ALLOWED_TEMPERATURE ) || ( temperature < MIN_ALLOWED_TEMPERATURE ) ) + { + isTempOutOfRange = TRUE; + lastFaultSensor = sensor; + faultSensorTemp = temperature; + } } - isAlarmTriggered = isPersistentAlarmTriggered( ALARM_ID_HD_TEMPERATURES_OUT_OF_RANGE, isTempOutOfRange ); - - if ( TRUE == isAlarmTriggered ) + if ( TRUE == isPersistentAlarmTriggered( ALARM_ID_HD_TEMPERATURES_OUT_OF_RANGE, isTempOutOfRange ) ) { - ALARM_DATA_T alarmData; - alarmData.data.flt.data = temperature; - activateAlarm1Data( ALARM_ID_HD_TEMPERATURES_OUT_OF_RANGE, alarmData ); + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_TEMPERATURES_OUT_OF_RANGE, lastFaultSensor, faultSensorTemp ); } }