| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Runtime.Serialization;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using Aitex.Core.RT.Event;
 
- using Aitex.Core.RT.Log;
 
- namespace MECF.Framework.Common.Event
 
- {
 
-     public interface IAlarmHandler
 
-     {
 
-         void AlarmStateChanged(AlarmEventItem item);
 
-     }
 
-     [DataContract]
 
-     [Serializable]
 
-     public class AlarmEventItem : EventItem
 
-     {
 
-         public Func<bool> ResetChecker { get; set; }
 
-         private IAlarmHandler _alarmHandler;
 
-         private bool _ignoreAlarm;
 
-         public bool CanDoReset { get; set; }
 
-         public AlarmEventItem(string source, string name, string description, Func<bool> resetChecker, IAlarmHandler handler) : base(source, name, description,
 
-             EventLevel.Alarm, EventType.EventUI_Notify)
 
-         {
 
-             ResetChecker = resetChecker;
 
-             IsAcknowledged = true;
 
-             _alarmHandler = handler;
 
-         }
 
-         public AlarmEventItem(string source, EventItem item, Func<bool> resetChecker, IAlarmHandler handler)
 
-         {
 
-             _alarmHandler = handler;
 
-             ResetChecker = resetChecker;
 
-             item.IsAcknowledged = true;
 
-             item.Source = source;
 
-             this.Clone(item);
 
-         }
 
-         public AlarmEventItem()
 
-         {
 
-         }
 
-         public void SetIgnoreError(bool ignore)
 
-         {
 
-             if (_ignoreAlarm == ignore)
 
-                 return;
 
-             _ignoreAlarm = ignore;
 
-             if (ignore)
 
-             {
 
-                 EV.PostWarningLog(Source, $"{Source} {EventEnum} error will be ignored");
 
-                 if (IsTriggered)
 
-                 {
 
-                     IsAcknowledged = true;
 
-                     if (_alarmHandler != null)
 
-                         _alarmHandler.AlarmStateChanged(this);
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 Reset();
 
-             }
 
-         }
 
-         public void Reset()
 
-         {
 
-             if (_ignoreAlarm)
 
-                 return;
 
-             if (!IsTriggered)
 
-                 return;
 
-             if (ResetChecker == null || ResetChecker())
 
-             {
 
-                 EV.PostInfoLog(Source, $"{Source} {EventEnum} is recovered");
 
-                 IsAcknowledged = true;
 
-                 if (_alarmHandler != null)
 
-                     _alarmHandler.AlarmStateChanged(this);
 
-             }
 
-         }
 
-         public void Set()
 
-         {
 
-             Set(null);
 
-         }
 
-         public void Set(string error)
 
-         {
 
-             if (_ignoreAlarm)
 
-                 return;
 
-             if (IsTriggered)
 
-             {
 
-                 //相同alarm只触发一次
 
-                 if (EV.GetAlarmEvent().FirstOrDefault(x => x.EventEnum == this.EventEnum) != null)
 
-                 {
 
-                     EV.ClearAlarmEvent(this.EventEnum);
 
-                 }
 
-             }
 
-             if (this.EventEnum!=null)
 
-             {
 
-                 var isBoatZAxisMoveFailedForInterlockAlarm = this.EventEnum.EndsWith("BoatZAxisMoveFailedForInterlock");
 
-                 if (!string.IsNullOrEmpty(error) && !isBoatZAxisMoveFailedForInterlockAlarm)
 
-                 {
 
-                     Description = error;
 
-                     AdditionalDescription = error;
 
-                 }
 
-             }
 
-        
 
-             IsAcknowledged = false;
 
-             //OccuringTime = DateTime.Now;
 
-             Count++;
 
-             if (Count >= int.MaxValue)
 
-                 Count = 0;
 
-             if (_alarmHandler != null)
 
-                 _alarmHandler.AlarmStateChanged(this);
 
-         }
 
-     }
 
- }
 
 
  |