|
@@ -442,7 +442,7 @@ bool UPS_VACinputRangeAlarm(void)
|
|
|
/* Отслеживается переход через нижнию границу */
|
|
|
if (VACinputCurrent < sSettings.sAlarmManager.ac_input_range.low)
|
|
|
{
|
|
|
- if (stateCurrentVACinput == HYST_IDLE) {
|
|
|
+ if (stateCurrentVACinput == HYST_IDLE || stateCurrentVACinput == HYST_DOWN) {
|
|
|
stateCurrentVACinput = HYST_DOWN;
|
|
|
flag = true;
|
|
|
}
|
|
@@ -453,12 +453,16 @@ bool UPS_VACinputRangeAlarm(void)
|
|
|
stateCurrentVACinput = HYST_IDLE;
|
|
|
flag = false;
|
|
|
}
|
|
|
+ } else {
|
|
|
+ if (stateCurrentVACinput == HYST_DOWN) {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/* Отслеживается переход через верхнюю границу */
|
|
|
if (VACinputCurrent > sSettings.sAlarmManager.ac_input_range.high)
|
|
|
{
|
|
|
- if (stateCurrentVACinput == HYST_IDLE) {
|
|
|
+ if (stateCurrentVACinput == HYST_IDLE || stateCurrentVACinput == HYST_UP) {
|
|
|
stateCurrentVACinput = HYST_UP;
|
|
|
flag = true;
|
|
|
}
|
|
@@ -469,6 +473,10 @@ bool UPS_VACinputRangeAlarm(void)
|
|
|
stateCurrentVACinput = HYST_IDLE;
|
|
|
flag = false;
|
|
|
}
|
|
|
+ } else {
|
|
|
+ if (stateCurrentVACinput == HYST_UP) {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
}
|
|
|
return flag;
|
|
|
}
|
|
@@ -482,6 +490,8 @@ void UPS_LineFailMonitor(void)
|
|
|
static bool isValueRecv = false;
|
|
|
static uint8_t lineFailOldState = 0;
|
|
|
uint8_t lineFailCurrent;
|
|
|
+ char log_string[50];
|
|
|
+ uint8_t len;
|
|
|
|
|
|
#if defined RELAY_AC_PRESENT
|
|
|
uint8_t i = 0;
|
|
@@ -492,7 +502,8 @@ void UPS_LineFailMonitor(void)
|
|
|
CurrROtype_Sourse[i] = sSettings.sRelays[i].ro_type_source;
|
|
|
#endif
|
|
|
#ifdef HARDWARE_BT6703_RT
|
|
|
- lineFailCurrent = (((UPS.Status >> 7) & 0x01) || UPS_VACinputRangeAlarm()) ? 1 : 0;
|
|
|
+ lineFailCurrent = (((UPS.Status >> 7) & 0x01);
|
|
|
+ lineFailCurrent |= UPS_VACinputRangeAlarm()) ? 2 : 0;
|
|
|
#else
|
|
|
lineFailCurrent = (UPS.Status >> 7) & 0x01;
|
|
|
#endif
|
|
@@ -501,8 +512,14 @@ void UPS_LineFailMonitor(void)
|
|
|
isValueRecv = true;
|
|
|
lineFailOldState = lineFailCurrent;
|
|
|
|
|
|
- if (lineFailCurrent){
|
|
|
- log_event_data(LOG_ALARM_LINE, "Авария");
|
|
|
+ if (lineFailCurrent != 0){
|
|
|
+ memset(log_string, 0, sizeof(log_string));
|
|
|
+ strcat(log_string, "Авария");
|
|
|
+#ifdef HARDWARE_BT6703_RT
|
|
|
+ len = strlen(log_string);
|
|
|
+ sprintf(&log_string[len], " (%0.1f В)", UPS.VAC_in);
|
|
|
+#endif
|
|
|
+ log_event_data(LOG_ALARM_LINE, log_string);
|
|
|
SNMP_SendUserTrap(LINE_ALARM);
|
|
|
flUpdateLog = true;
|
|
|
#if defined RELAY_AC_PRESENT
|
|
@@ -521,7 +538,7 @@ void UPS_LineFailMonitor(void)
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (lineFailCurrent){
|
|
|
+ if (lineFailCurrent != 0){
|
|
|
flCriticalAlarm = true;
|
|
|
flLedAlarm = true;
|
|
|
}
|
|
@@ -529,12 +546,18 @@ void UPS_LineFailMonitor(void)
|
|
|
// Значение параметра изменилось
|
|
|
if (lineFailCurrent != lineFailOldState)
|
|
|
{
|
|
|
- if (lineFailCurrent){
|
|
|
+ if (lineFailCurrent != 0){
|
|
|
#if defined RELAY_AC_PRESENT
|
|
|
relay_setup_log(CurrROtype_Sourse, AC_PRESENT, 1);
|
|
|
#endif
|
|
|
|
|
|
- log_event_data(LOG_ALARM_LINE, "Авария");
|
|
|
+ memset(log_string, 0, sizeof(log_string));
|
|
|
+ strcat(log_string, "Авария");
|
|
|
+#ifdef HARDWARE_BT6703_RT
|
|
|
+ len = strlen(log_string);
|
|
|
+ sprintf(&log_string[len], " (%0.1f В)", UPS.VAC_in);
|
|
|
+#endif
|
|
|
+ log_event_data(LOG_ALARM_LINE, log_string);
|
|
|
SNMP_SendUserTrap(LINE_ALARM);
|
|
|
#ifdef AKB_CHANGE_MONITOR
|
|
|
if(UPS.Alarm & 0x40) {
|
|
@@ -556,7 +579,7 @@ void UPS_LineFailMonitor(void)
|
|
|
|
|
|
#if defined RELAY_AC_PRESENT
|
|
|
else{
|
|
|
- if (lineFailCurrent)
|
|
|
+ if (lineFailCurrent != 0)
|
|
|
relay_setup_log_change(CurrROtype_Sourse, OldROtype_Sourse, AC_PRESENT);
|
|
|
}
|
|
|
|