From 9f19849de361c6b101d287df7bbe4577ef7e79e9 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 16 Feb 2020 00:02:07 +0200 Subject: alarm handling flags n EEPROM, machine temperature debuging --- .../Embedded/Modules/AlarmHandling/AlarmHandling.c | 18 ++++++++++++++++++ .../Embedded/Modules/Diagnostics/Diagnostics.c | 1 + .../Embedded/Modules/Heaters/Heaters_print.c | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c index caa3e8df4..ec17398be 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c @@ -28,6 +28,7 @@ #include "drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.h" #include "drivers/I2C_Communication/Head_Card/ADC/Head_ADC.h" #include "Common/SWUpdate/FileSystem.h" +#include "drivers/Flash_ram/MCU_E2Prom.h" #include "modules/thread/thread_ex.h" #include "modules/heaters/heaters_ex.h" @@ -580,14 +581,31 @@ void AlarmHandlingSetCurrentLimits(double currentalarmhighlimit,double curre CurrentAlarmLowLimit = currentalarmlowlimit; ReportWithPackageFilter(AlarmFilter,"Alarm Current Limits", __FILE__,__LINE__,(int)(currentalarmhighlimit*100), RpMessage, (int)(currentalarmlowlimit*100), 0); } +void AlarmHandlingLoadFlags(void) +{ + uint32_t flags = 0; + MCU_E2PromRead(ALARM_SUPPORT_ADDR,&flags); + + CheckHardLimitAlarms = (flags && 0x0001); + CheckCurrentAlarms = (flags && 0x0002); + CheckTamperAlarms = (flags && 0x0004); + CheckMotorAlarms = (flags && 0x0008); + ReportWithPackageFilter(AlarmFilter,"Alarm group setting", __FILE__,__LINE__,0, RpMessage, 1*CheckHardLimitAlarms+2*CheckCurrentAlarms+3*CheckTamperAlarms+4*CheckMotorAlarms, 0); +} void AlarmHandlingSetFlags(bool checkHardLimitAlarms,bool checkCurrentAlarms, bool checkTamperAlarms, bool checkMotorAlarms) { + uint32_t flags = 0; CheckHardLimitAlarms = checkHardLimitAlarms; CheckCurrentAlarms = checkCurrentAlarms; CheckTamperAlarms = checkTamperAlarms; CheckMotorAlarms = checkMotorAlarms; ReportWithPackageFilter(AlarmFilter,"Alarm group setting", __FILE__,__LINE__,0, RpMessage, 1*CheckHardLimitAlarms+2*CheckCurrentAlarms+3*CheckTamperAlarms+4*CheckMotorAlarms, 0); + if (CheckHardLimitAlarms) flags |= 0x1; + if (CheckCurrentAlarms) flags |= 0x2; + if (CheckTamperAlarms) flags |= 0x4; + if (CheckMotorAlarms) flags |= 0x8; + MCU_E2PromProgram(ALARM_SUPPORT_ADDR,flags); } char AlarmReasonStr[100]; JobEndReasonEnum getEndReason(uint32_t AlarmId) diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c index 3f15e399f..4f5bec4f0 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c @@ -443,6 +443,7 @@ void DiagnosticOneMinuteCollection(void) } DiagnosticsMonitor.n_overalltemperature = 1; OverallTemperature = max(MillisecGetTemperatures(TEMP_SENSE_AN_ENCLOSURETEMP1),MillisecGetTemperatures(TEMP_SENSE_AN_ENCLOSURETEMP2)); + OverallTemperature = ((int)(MillisecGetTemperatures(TEMP_SENSE_AN_ENCLOSURETEMP1))*1000 + (int)(MillisecGetTemperatures(TEMP_SENSE_AN_ENCLOSURETEMP2))); DiagnosticsMonitor.overalltemperature = &OverallTemperature; DiagnosticsMonitor.n_midtank1level = 1; diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index b12169baf..82f7e300f 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -295,7 +295,7 @@ typedef enum{ MAX_INTERNAL_ALARMS }InternalTemperatureTestPointsEnum; int InternalAlarmCounter[MAX_INTERNAL_ALARMS] = {0,0,0}; -uint32_t InternalId2PT100Id[MAX_INTERNAL_ALARMS] = {TEMP_SENSE_AN_ENCLOSURETEMP1,TEMP_SENSE_AN_ENCLOSURETEMP1,0xFF}; +uint32_t InternalId2PT100Id[MAX_INTERNAL_ALARMS] = {TEMP_SENSE_AN_ENCLOSURETEMP1,TEMP_SENSE_AN_ENCLOSURETEMP2,0xFF}; int32_t InternalOverHeatCounter [MAX_INTERNAL_ALARMS] = {0,0,0}; bool InternalAlarmActive[MAX_INTERNAL_ALARMS] = {false,false,false}; uint32_t ControlIdtoInternalId[MAX_INTERNAL_ALARMS] = {0xFF,0xFF,0xFF}; -- cgit v1.3.1 From e437b7a3c1f1bab969228a88c254fcb21bd10fef Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 16 Feb 2020 06:03:05 +0200 Subject: fix --- .../Embedded/Modules/AlarmHandling/AlarmHandling.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules') diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c index ec17398be..e06e908bd 100644 --- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c +++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c @@ -581,15 +581,15 @@ void AlarmHandlingSetCurrentLimits(double currentalarmhighlimit,double curre CurrentAlarmLowLimit = currentalarmlowlimit; ReportWithPackageFilter(AlarmFilter,"Alarm Current Limits", __FILE__,__LINE__,(int)(currentalarmhighlimit*100), RpMessage, (int)(currentalarmlowlimit*100), 0); } +uint32_t AlarmhandlingFlags = 0; void AlarmHandlingLoadFlags(void) { - uint32_t flags = 0; - MCU_E2PromRead(ALARM_SUPPORT_ADDR,&flags); + MCU_E2PromRead(ALARM_SUPPORT_ADDR,&AlarmhandlingFlags); - CheckHardLimitAlarms = (flags && 0x0001); - CheckCurrentAlarms = (flags && 0x0002); - CheckTamperAlarms = (flags && 0x0004); - CheckMotorAlarms = (flags && 0x0008); + CheckHardLimitAlarms = (AlarmhandlingFlags && 0x0001); + CheckCurrentAlarms = (AlarmhandlingFlags && 0x0002); + CheckTamperAlarms = (AlarmhandlingFlags && 0x0004); + CheckMotorAlarms = (AlarmhandlingFlags && 0x0008); ReportWithPackageFilter(AlarmFilter,"Alarm group setting", __FILE__,__LINE__,0, RpMessage, 1*CheckHardLimitAlarms+2*CheckCurrentAlarms+3*CheckTamperAlarms+4*CheckMotorAlarms, 0); } @@ -605,7 +605,11 @@ void AlarmHandlingSetFlags(bool checkHardLimitAlarms,bool checkCurrentAlarms if (CheckCurrentAlarms) flags |= 0x2; if (CheckTamperAlarms) flags |= 0x4; if (CheckMotorAlarms) flags |= 0x8; - MCU_E2PromProgram(ALARM_SUPPORT_ADDR,flags); + if (AlarmhandlingFlags != flags) + { + MCU_E2PromProgram(ALARM_SUPPORT_ADDR,flags); + AlarmhandlingFlags = flags; + } } char AlarmReasonStr[100]; JobEndReasonEnum getEndReason(uint32_t AlarmId) -- cgit v1.3.1