aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/AlarmHandling
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-11-09 23:34:01 +0200
committerShlomo Hecht <shlomo@twine-s.com>2020-11-09 23:34:01 +0200
commite7cbb2ad47498bb072ee293baaf7fc9e2999fbec (patch)
tree073fe0b1fee57246dd639c2f21dc6b175e197a23 /Software/Embedded_SW/Embedded/Modules/AlarmHandling
parentf42acf4a2513bfb156f3323d2cd9dadf67809220 (diff)
parent313970208cf06fe7925e41a9479e619fa1aca7f6 (diff)
downloadTango-e7cbb2ad47498bb072ee293baaf7fc9e2999fbec.tar.gz
Tango-e7cbb2ad47498bb072ee293baaf7fc9e2999fbec.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/AlarmHandling')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c187
1 files changed, 75 insertions, 112 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index 127ccbabf..e754b0df2 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -1,3 +1,4 @@
+
/*
* AlarmHandling.c
@@ -491,14 +492,14 @@ uint32_t AlarmHandlingLoadFile(void)
{
FileAlarmItem[F_count].AlarmDirection = AlarmParametersTable->alarmitem[i]->alarmdirection;
FileAlarmItem[F_count].AlarmDirection = AlarmParametersTable->alarmitem[i]->alarmdirection;
- FileAlarmItem[F_count].Frequency = AlarmParametersTable->alarmitem[i]->frequency; //1/10/100/1000
+ //FileAlarmItem[F_count].Frequency = AlarmParametersTable->alarmitem[i]->frequency; //1/10/100/1000
FileAlarmItem[F_count].AlarmSource = AlarmParametersTable->alarmitem[i]->alarmsource;
FileAlarmItem[F_count].DeviceId = AlarmParametersTable->alarmitem[i]->deviceid;
FileAlarmItem[F_count].ModuleDeviceId = AlarmParametersTable->alarmitem[i]->moduledeviceid;
FileAlarmItem[F_count].AlarmValue = AlarmParametersTable->alarmitem[i]->alarmvalue;
FileAlarmItem[F_count].AlarmDirection = AlarmParametersTable->alarmitem[i]->alarmdirection;
FileAlarmItem[F_count].Severity = AlarmParametersTable->alarmitem[i]->severity;
- FileAlarmItem[F_count].Predecessor = AlarmParametersTable->alarmitem[i]->predecessor;
+ //FileAlarmItem[F_count].Predecessor = AlarmParametersTable->alarmitem[i]->predecessor;
FileAlarmItem[F_count].DebounceValue = AlarmParametersTable->alarmitem[i]->debouncevalue;
FileAlarmItem[F_count].EventType = AlarmParametersTable->alarmitem[i]->eventtype;
FileAlarmItem[F_count].isPersistent = AlarmParametersTable->alarmitem[i]->ispersistent;
@@ -1021,6 +1022,10 @@ JobEndReasonEnum AlarmHandlingPrepareJob(void *CurrentJob)
}
}
}
+ if (FoundReason == JOB_OK)
+ {
+ FoundReason = Winder_Check_Cone();
+ }
if (FoundReason != JOB_OK)
{
JobEndReason = getEndReason(AlarmId);
@@ -1080,7 +1085,7 @@ void AlarmHandlingInternalSetAlarm(uint32_t AlarmId, bool value)
if (AlarmItem[Alarm_i].EventType == AlarmId)
{
//if (0) // PERSISTENT ALARM
- if ((AlarmItem[Alarm_i].isPersistent == true)) // PERSISTENT ALARM simulate
+ if ((AlarmItem[Alarm_i].isPersistent == true)&&(value == true)) // PERSISTENT ALARM simulate Currently looking for "true" value, otherwise the currently existing OFF event appears
{
if (PersistentEventsResponse.events == NULL)
PersistentEventsResponse.events = (Event **)my_malloc(sizeof(Event*)*(PersistentEventsResponse.n_events+1));
@@ -1213,29 +1218,8 @@ uint32_t AlarmHandlingLoop(uint32_t tick)
if (AlarmItem[Alarm_i].AlarmSource > ALARM_SOURCE_TYPE__FluidLevelAlarm)
continue;
AlarmCounter++;
- if (tick%AlarmItem[Alarm_i].Frequency == 0)
+ switch (AlarmItem[Alarm_i].AlarmSource)
{
- switch (AlarmItem[Alarm_i].AlarmSource)
- {
- /*case ALARM_SOURCE_TYPE__TemperatureAlarm:
- ivalue = MillisecGetTemperatures((TEMPERATURE_SENSOR_ID_ENUM)AlarmItem[Alarm_i].DeviceId);
- if (AlarmItem[Alarm_i].AlarmDirection == true)
- {
- if (ivalue/100 >= AlarmItem[Alarm_i].AlarmValue)
- {
- //LOG_ERROR (ivalue/100,"Temperature spike");
- Status = true;
- }
- }
- else
- {
- if (ivalue/100 <= AlarmItem[Alarm_i].AlarmValue)
- {
- //LOG_ERROR (ivalue/100,"iTemperature spike");
- Status = true;
- }
- }
- break;*/
case ALARM_SOURCE_TYPE__CoversAlarm:
if (CheckTamperAlarms)
{
@@ -1261,14 +1245,6 @@ uint32_t AlarmHandlingLoop(uint32_t tick)
if (CheckHardLimitAlarms)
{
Status = AlarmState[Alarm_i].Status;
- /*if (AlarmItem[Alarm_i].AlarmDirection == true)
- {
- value = Get_Notification_Disp_UP(AlarmItem[Alarm_i].DeviceId);
- }
- else
- {
- value = Get_Notification_Disp_Down(AlarmItem[Alarm_i].DeviceId);
- } polling in the safety */
}
else
{
@@ -1422,21 +1398,6 @@ uint32_t AlarmHandlingLoop(uint32_t tick)
default:
Status = false;
}
- /*value = MotorGetStatus((TimerMotors_t)AlarmItem[Alarm_i].DeviceId);
- if (AlarmItem[Alarm_i].AlarmDirection == true)
- {
- if (value && AlarmItem[Alarm_i].AlarmValue)
- {
- Status = true;
- }
- }
- else
- {
- if ((value && AlarmItem[Alarm_i].AlarmValue)==false)
- {
- Status = true;
- }
- }*/
}
}
else
@@ -1473,7 +1434,7 @@ uint32_t AlarmHandlingLoop(uint32_t tick)
case ALARM_SOURCE_TYPE__TachoAlarm: // add by shai
Status = false;
- if (CheckTamperAlarms)
+ if (CheckMotorAlarms)
{
// ReportWithPackageFilter(AlarmFilter,"------------FANS_RPM[Alarm_i]----------------", __FILE__,__LINE__,Alarm_i, RpMessage, value, 0);
@@ -1560,16 +1521,19 @@ uint32_t AlarmHandlingLoop(uint32_t tick)
}
else
{
- value = Read_Dryer_Fan_Tacho();
+
+ value = Get_Dryer_Fan_Tacho();
if (AlarmItem[Alarm_i].Severity == DEBUG_LOG_CATEGORY__Critical )
- if ((AlarmItem[Alarm_i].AlarmDirection == UNDER_VALUE) && (value == DRYER_FAN_STOP))
+ {
+ if (value == DRYER_FAN_STOP)
{
Status = true;
- //ReportWithPackageFilter(AlarmFilter,"----------- DRYER FAN RPM Error----------------", __FILE__,__LINE__,0, RpMessage, value, 0);
}
+ //ReportWithPackageFilter(AlarmFilter,"----------- DRYER FAN RPM ----------------", __FILE__,__LINE__,msec_millisecondCounter, RpMessage, value, 0);
+ }
else if (AlarmItem[Alarm_i].Severity == DEBUG_LOG_CATEGORY__Warning)
{
- if ((AlarmItem[Alarm_i].AlarmDirection == UNDER_VALUE) && (value < DRYER_FAN_MIN_RPM))
+ if ((value>0)&&(value < DRYER_FAN_MIN_RPM))
{
Status = true;
//ReportWithPackageFilter(AlarmFilter,"----------- DRYER FAN RPM Error----------------", __FILE__,__LINE__,0, RpMessage, value, 0);
@@ -1621,78 +1585,77 @@ uint32_t AlarmHandlingLoop(uint32_t tick)
break;
default:
break;
- } //switch
- if (AlarmItem[Alarm_i].DebounceValue > 0) //handle debouncing
+ } //switch
+ if (AlarmItem[Alarm_i].DebounceValue > 0) //handle debouncing
+ {
+ if (Status == true) //increase counter
{
- if (Status == true) //increase counter
+ AlarmState[Alarm_i].DebounceCounter++;
+ if (AlarmState[Alarm_i].Status == false) // alarm is not set yet
{
- AlarmState[Alarm_i].DebounceCounter++;
- if (AlarmState[Alarm_i].Status == false) // alarm is not set yet
- {
- if (AlarmState[Alarm_i].DebounceCounter < AlarmItem[Alarm_i].DebounceValue) //had not reached the debounce value
- {
- Status = false; //do not set the alarm
- } //else alarm will be set
- }
- else // alarm is already set
+ if (AlarmState[Alarm_i].DebounceCounter < AlarmItem[Alarm_i].DebounceValue) //had not reached the debounce value
{
- AlarmState[Alarm_i].DebounceCounter = AlarmItem[Alarm_i].DebounceValue; // do not go over the debounce value
- }
+ Status = false; //do not set the alarm
+ } //else alarm will be set
}
- else //status == false - decrease counter
+ else // alarm is already set
{
- AlarmState[Alarm_i].DebounceCounter--;
- if (AlarmState[Alarm_i].Status == true) // alarm is set
- {
- if (AlarmState[Alarm_i].DebounceCounter > 0) // had not reached zero yet
- {
- Status = true; // do not reset the alarm yet
- } // else reset the alarm
- }
- else // if the alarm is off
- {
- AlarmState[Alarm_i].DebounceCounter = 0; //do not go below 0
- }
+ AlarmState[Alarm_i].DebounceCounter = AlarmItem[Alarm_i].DebounceValue; // do not go over the debounce value
}
}
- /*if (AlarmItem[Alarm_i].Predecessor!=0xFF)
+ else //status == false - decrease counter
{
- if (AlarmState[AlarmItem[Alarm_i].Predecessor].Status == true) //higher hierarchy alarm is on
- Status = false;
- }*/
- if (Status != AlarmState[Alarm_i].Status) //change in alarm Status
- {
- if (Status == true) // alarm on
+ AlarmState[Alarm_i].DebounceCounter--;
+ if (AlarmState[Alarm_i].Status == true) // alarm is set
{
- // report the alarm!
- AlarmState[Alarm_i].EventPtr = my_malloc (sizeof(Event));
- if (AlarmState[Alarm_i].EventPtr)
+ if (AlarmState[Alarm_i].DebounceCounter > 0) // had not reached zero yet
{
- event__init(AlarmState[Alarm_i].EventPtr);
- AlarmState[Alarm_i].EventPtr->has_type = true;
- AlarmState[Alarm_i].EventPtr->type = AlarmItem[Alarm_i].EventType;
- AlarmState[Alarm_i].EventPtr->message = NULL;//AlarmItem[Alarm_i].EventName;
- }
- AlarmState[Alarm_i].Status = true;
- AlarmHandlingConsequentActions(Alarm_i, AlarmItem[Alarm_i].Severity);
- ReportWithPackageFilter(AlarmFilter,"Alarm ON ", __FILE__,__LINE__,AlarmItem[Alarm_i].EventType, RpMessage, value, Alarm_i);
+ Status = true; // do not reset the alarm yet
+ } // else reset the alarm
}
- else // alarm off
+ else // if the alarm is off
{
- ReportWithPackageFilter(AlarmFilter,"Alarm OFF ", __FILE__,__LINE__,AlarmItem[Alarm_i].EventType, RpMessage, 0, Alarm_i);
- if (AlarmState[Alarm_i].EventPtr)
- {
- //ROM_IntMasterDisable();
- Save_Alarm_i = Alarm_i;
- Save_Alarm_ptr = AlarmState[Alarm_i].EventPtr;
- Save_Alarm_Type = AlarmItem[Alarm_i].EventType;
- my_free(AlarmState[Alarm_i].EventPtr);
- AlarmState[Alarm_i].EventPtr = NULL;
- //ROM_IntMasterEnable();
- }
- AlarmState[Alarm_i].Status = false;
- AlarmHandlingConsequentActions(Alarm_i, DEBUG_LOG_CATEGORY__Info);
+ AlarmState[Alarm_i].DebounceCounter = 0; //do not go below 0
+ }
+ }
+ }
+ /*if (AlarmItem[Alarm_i].Predecessor!=0xFF)
+ {
+ if (AlarmState[AlarmItem[Alarm_i].Predecessor].Status == true) //higher hierarchy alarm is on
+ Status = false;
+ }*/
+ if (Status != AlarmState[Alarm_i].Status) //change in alarm Status
+ {
+ if (Status == true) // alarm on
+ {
+ // report the alarm!
+ AlarmState[Alarm_i].EventPtr = my_malloc (sizeof(Event));
+ if (AlarmState[Alarm_i].EventPtr)
+ {
+ event__init(AlarmState[Alarm_i].EventPtr);
+ AlarmState[Alarm_i].EventPtr->has_type = true;
+ AlarmState[Alarm_i].EventPtr->type = AlarmItem[Alarm_i].EventType;
+ AlarmState[Alarm_i].EventPtr->message = NULL;//AlarmItem[Alarm_i].EventName;
+ }
+ AlarmState[Alarm_i].Status = true;
+ AlarmHandlingConsequentActions(Alarm_i, AlarmItem[Alarm_i].Severity);
+ ReportWithPackageFilter(AlarmFilter,"Alarm ON ", __FILE__,__LINE__,AlarmItem[Alarm_i].EventType, RpMessage, value, Alarm_i);
+ }
+ else // alarm off
+ {
+ ReportWithPackageFilter(AlarmFilter,"Alarm OFF ", __FILE__,__LINE__,AlarmItem[Alarm_i].EventType, RpMessage, 0, Alarm_i);
+ if (AlarmState[Alarm_i].EventPtr)
+ {
+ //ROM_IntMasterDisable();
+ Save_Alarm_i = Alarm_i;
+ Save_Alarm_ptr = AlarmState[Alarm_i].EventPtr;
+ Save_Alarm_Type = AlarmItem[Alarm_i].EventType;
+ my_free(AlarmState[Alarm_i].EventPtr);
+ AlarmState[Alarm_i].EventPtr = NULL;
+ //ROM_IntMasterEnable();
}
+ AlarmState[Alarm_i].Status = false;
+ AlarmHandlingConsequentActions(Alarm_i, DEBUG_LOG_CATEGORY__Info);
}
}
}