aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/General/Safety.c
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2019-10-31 10:16:10 +0200
committerShlomo Hecht <shlomo@twine-s.com>2019-10-31 10:16:10 +0200
commitcd18fb27a2499072f18cb0320ddeb85a0500a93e (patch)
treeb1bf1984813bc70ea4784e0e956497fd4fd35805 /Software/Embedded_SW/Embedded/Modules/General/Safety.c
parent4aca8247565596d6c12ba73242d599dc42887625 (diff)
downloadTango-cd18fb27a2499072f18cb0320ddeb85a0500a93e.tar.gz
Tango-cd18fb27a2499072f18cb0320ddeb85a0500a93e.zip
version 1.4.6.0 - going forward
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/General/Safety.c')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/Safety.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/General/Safety.c b/Software/Embedded_SW/Embedded/Modules/General/Safety.c
index a5a586e07..6a0b9a67b 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/Safety.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/Safety.c
@@ -33,7 +33,7 @@ bool AirFilterAlarmState = false;
bool WasteOverflowAlarmState = false;
void Safety_Init(void)
{
- SafetyControlId = AddControlCallback( Safety_Main_State, eOneSecond, TemplateDataReadCBFunction,0,0, 0 );
+ SafetyControlId = AddControlCallback("Safety", Safety_Main_State, eOneSecond, TemplateDataReadCBFunction,0,0, 0 );
//return;
}
uint32_t Safety_Main_State(uint32_t IfIndex, uint32_t BusyFlag)
@@ -110,6 +110,10 @@ uint32_t Safety_Main_State(uint32_t IfIndex, uint32_t BusyFlag)
//report dispenser over pressure
AlarmHandlingSetAlarm(EVENT_TYPE__DISPENSER_1_OVERPRESSURE+Disp_i, true);
DispenserAlarm[Disp_i] = EVENT_TYPE__DISPENSER_1_OVERPRESSURE+Disp_i;
+ if (DispenserAlarm[Disp_i] == false)
+ {
+ IDS_Dispenser_Alarm_On(Disp_i);
+ }
DispenserOverPressure[Disp_i] = true;
Report("Dispenser Safety - over pressure", __FILE__,__LINE__,Disp_i, RpFatalError, (int)(1000*GetDispenserPressure(Disp_i)), 0);
}
@@ -117,6 +121,10 @@ uint32_t Safety_Main_State(uint32_t IfIndex, uint32_t BusyFlag)
{
AlarmHandlingSetAlarm(EVENT_TYPE__DISPENSER_1_UPPER_HARD_LIMIT+Disp_i, true);
DispenserAlarm[Disp_i] = EVENT_TYPE__DISPENSER_1_UPPER_HARD_LIMIT+Disp_i;
+ if (DispenserAlarm[Disp_i] == false)
+ {
+ IDS_Dispenser_Alarm_On(Disp_i);
+ }
DispenserOverPressure[Disp_i] = true;
Report("Dispenser upper hard limit", __FILE__,__LINE__,Disp_i, RpFatalError, Get_Notification_Disp_UP(Disp_i), 0);
}
@@ -124,12 +132,16 @@ uint32_t Safety_Main_State(uint32_t IfIndex, uint32_t BusyFlag)
{
AlarmHandlingSetAlarm(EVENT_TYPE__DISPENSER_1_LOWER_HARD_LIMIT+Disp_i, true);
DispenserAlarm[Disp_i] = EVENT_TYPE__DISPENSER_1_LOWER_HARD_LIMIT+Disp_i;
+ if (DispenserAlarm[Disp_i] == false)
+ {
+ IDS_Dispenser_Alarm_On(Disp_i);
+ }
DispenserOverPressure[Disp_i] = true;
Report("Dispenser lower hard limit", __FILE__,__LINE__,Disp_i, RpFatalError, Get_Notification_Disp_Down(Disp_i), 0);
}
else
{
- Report("Dispenser unknown safety alarm", __FILE__,__LINE__,Disp_i, RpFatalError, 1-DispenserBypass, 0);
+ Report("Dispenser unknown safety alarm", __FILE__,__LINE__,Disp_i, RpFatalError,Get_Notification_Disp_Full(Disp_i), 0);
}
}
@@ -144,8 +156,11 @@ uint32_t Safety_Main_State(uint32_t IfIndex, uint32_t BusyFlag)
{
if (Check_Disp_Safety_Stop_Indication(Disp_i) == false)
{
- //report dispenser over pressure
AlarmHandlingSetAlarm(DispenserAlarm[Disp_i], false);
+ if (DispenserAlarm[Disp_i] == true)
+ {
+ IDS_Dispenser_Alarm_Off(Disp_i);
+ }
DispenserAlarm[Disp_i] = 0;
DispenserOverPressure[Disp_i] = false;
}