diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2020-10-13 11:46:22 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2020-10-13 11:46:22 +0300 |
| commit | baf0b4c2e4fcd9b84e9dbcb52be0a612ac8eae00 (patch) | |
| tree | 1bd20a65a115895ba676051d696ff953b9831e5e /Software | |
| parent | bf2a042718b901a7ed25e1296008d598678b2ad7 (diff) | |
| parent | b624ccf2c3bf8c16774a03d06f1d49a726934c1b (diff) | |
| download | Tango-baf0b4c2e4fcd9b84e9dbcb52be0a612ac8eae00.tar.gz Tango-baf0b4c2e4fcd9b84e9dbcb52be0a612ac8eae00.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c | 80 |
1 files changed, 78 insertions, 2 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index 6c1dcb279..c59ef6086 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -1170,7 +1170,6 @@ uint32_t HeaterBlowerMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) HeaterRecalculateHeaterParams(HEATER_TYPE__HeadCoverHeater2,0); } HeaterMaxTempFlag[index] = true; - return OK; } else { if (BlowerOverHeatCounter[index]) { @@ -1183,8 +1182,85 @@ uint32_t HeaterBlowerMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) } } } - return OK; } + + // alarm handling + if ((HeaterPreviousRead[index]) >= HeaterControl[index].sensormaxvalue) + { + if(OverHeatCounter[index]++ >=Overheat_Count_Limit) + { + OverHeatCounter[index] = Overheat_Count_Limit; + if (JobIsActive()&&(HeaterReady[index]==true)) + { + JobEndReason = JOB_TEMPERATURE_ALARM; + SendJobProgress(0.0,0,false, "Temperature Error"); + AbortJob("Over Temperature Error"); + ReportWithPackageFilter(HeatersFilter, "Temperature Error",__FILE__,__LINE__,index,RpError, 0,0); + return OK; + } + + if ((HeaterReady[index]==false)&&(HeaterPreviousRead[index]>HeaterCmd[index].targettemperatue)) + { + ReportWithPackageFilter(HeatersFilter,"DC Heater Over the max temperature, cooling off",__FILE__,index,HeaterPreviousRead[index],RpWarning, HeaterCmd[index].targettemperatue,0); + } + else + { + ReportWithPackageFilter(HeatersFilter,"DC Heater Over the max temperature, turned off",__FILE__,index,HeaterPreviousRead[index],RpWarning, HeaterReady[index],0); + ReportWithPackageFilter(HeatersFilter,"Heater over the max temperature",__FILE__,index,OverHeatCounter[index],RpWarning,HeaterControl[index].sensormaxvalue, 0); + AlarmHandlingSetAlarm(HeaterEventType[index], true); + } + } + } + else if ((HeaterPreviousRead[index]) < (HeaterControl[index].sensorminvalue)) + { + if (HeaterReady[index]==true) + { + ReportWithPackageFilter(HeatersFilter,"Heater under the min temperature",__FILE__,index,UnderHeatCounter[index],RpWarning,HeaterControl[index].sensorminvalue, 0); + ReportWithPackageFilter(HeatersFilter,"Heater under the min temperature more info",__FILE__,HeaterReady[index],GetHeaterState(index),RpWarning,HeaterPreviousRead[index], 0); + } + if(UnderHeatCounter[index]++ >= Underheat_Count_Limit) + { + UnderHeatCounter[index] = Underheat_Count_Limit; + if (JobIsActive()&&(HeaterReady[index]==true)) + { + JobEndReason = JOB_TEMPERATURE_ALARM; + SendJobProgress(0.0,0,false, "Temperature Error"); + AbortJob("Under Temperature Error"); + ReportWithPackageFilter(HeatersFilter, "Temperature Error",__FILE__,__LINE__,index,RpError, 0,0); + return OK; + } + if (HeaterReady[index]==false) + AlarmHandlingSetAlarm(HeaterUnderEventType[index], true); + else + AlarmHandlingSetAlarm(HeaterUnderEventType_B[index], true); + } + } + else //temperature within limits + { + if(UnderHeatCounter[index] ) + { + UnderHeatCounter[index]--; + if (UnderHeatCounter[index]==0) + { + if (HeaterReady[index]==false) + AlarmHandlingSetAlarm(HeaterUnderEventType[index], false); + else + AlarmHandlingSetAlarm(HeaterUnderEventType_B[index], false); + } + } + if(OverHeatCounter[index] ) + { + if ((HeaterPreviousRead[index]) <= (HeaterControl[index].sensormaxvalue-2)) + { + OverHeatCounter[index]--; + if (OverHeatCounter[index]==0) + { + AlarmHandlingSetAlarm(HeaterEventType[index], false); + } + } + } + } + return OK; } uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) |
