コード例 #1
0
        protected override bool Execute(CodeActivityContext context)
        {
            bool   res          = false;
            string Message      = CheckStr(AlarmMessage.Get(context), 1024);
            string ShortMessage = CheckStr(ShortAlarmMessage.Get(context), 128);
            string Description  = CheckStr(AlarmDescription.Get(context), 1024);
            string UniqueKey    = CheckStr(AlarmUniqueKey.Get(context), 1024);

            try
            {
                if (MonitoringChangesAlarm.isChangesAlarm_61968Systems(Slave61968System_ID.Get(context), WorkflowActivity_ID.Get(context), UserID.Get(context),
                                                                       AlarmSeverity.Get(context), UniqueKey))
                {
                    res = ARM_Service.ALARM_WriteAlarm_Master61968SlaveSystems(Slave61968System_ID.Get(context), WorkflowActivity_ID.Get(context), UserID.Get(context),
                                                                               AlarmSettingID.Get(context), AlarmSeverity.Get(context),
                                                                               Message,
                                                                               ShortMessage,
                                                                               Description,
                                                                               UniqueKey, AlarmDateTime.Get(context));
                }
            }
            catch (Exception ex)
            {
                Error.Set(context, ex.Message);
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }
            return(string.IsNullOrEmpty(Error.Get(context)) && res);
        }
コード例 #2
0
        protected override bool Execute(CodeActivityContext context)
        {
            var res          = false;
            var message      = CheckStr(AlarmMessage.Get(context), 1024);
            var shortMessage = CheckStr(ShortAlarmMessage.Get(context), 128);
            var description  = CheckStr(AlarmDescription.Get(context), 1024);
            var uniqueKey    = CheckStr(AlarmUniqueKey.Get(context), 1024);

            try
            {
                if (MonitoringChangesAlarm.isChangesAlarm_BalanceFreeHierarchy(BalanceFreeHierarchy_UN.Get(context), WorkflowActivity_ID.Get(context), UserID.Get(context),
                                                                               AlarmSeverity.Get(context), uniqueKey))
                {
                    res = ARM_Service.ALARM_WriteAlarm_BalanceFreeHierarchy(BalanceFreeHierarchy_UN.Get(context), WorkflowActivity_ID.Get(context), UserID.Get(context),
                                                                            AlarmSettingID.Get(context), AlarmSeverity.Get(context),
                                                                            message,
                                                                            shortMessage,
                                                                            description,
                                                                            uniqueKey, AlarmDateTime.Get(context));
                }
            }
            catch (Exception ex)
            {
                Error.Set(context, ex.Message);
                if (!HideException.Get(context))
                {
                    throw ex;
                }
            }
            return(string.IsNullOrEmpty(Error.Get(context)) && res);
        }
コード例 #3
0
 /// <summary>
 /// Fires a change of the alarm status.
 /// </summary>
 /// <param name="severity">New alarm severity</param>
 /// <param name="status">New alarm status</param>
 public void TriggerAlarm(AlarmSeverity severity, AlarmStatus status)
 {
     if (CurrentAlarmSeverity != severity)
     {
         CurrentAlarmSeverity = severity;
         AlarmStatus          = status;
     }
 }
コード例 #4
0
 public void Alarm(string message, AlarmSeverity alarmType, UserType user, Exception ex = null)
 {
     if (!mEnableLog)
     {
         return;
     }
     lock (mIncomingMessage)
     {
         mIncomingMessage.Enqueue(new AlarmContent(user, alarmType, message));
         mWaitingSemaphore.Release();
         if (ex != null)
         {
             EnqueueExceptionStack(ex);
         }
     }
 }
コード例 #5
0
        // Generates an alarm tag name
        private string GetTagName(DataModels.Alarm item)
        {
            string         measurementLabel;
            StringBuilder  description = new StringBuilder("AL-");
            AlarmSeverity  severity    = item.Severity.GetEnumValueOrDefault <AlarmSeverity>(AlarmSeverity.None);
            AlarmOperation operation   = item.Operation.GetEnumValueOrDefault <AlarmOperation>(AlarmOperation.Equal);

            switch (severity)
            {
            case AlarmSeverity.None:
                description.Append("EXEMPT");
                break;

            case AlarmSeverity.Unreasonable:
                switch (operation)
                {
                case AlarmOperation.GreaterThan:
                case AlarmOperation.GreaterOrEqual:
                    description.Append("HIGH");
                    break;

                case AlarmOperation.LessThan:
                case AlarmOperation.LessOrEqual:
                    description.Append("LOW");
                    break;

                default:
                    description.Append(severity.GetDescription());
                    break;
                }
                break;

            default:
                description.Append(severity.GetDescription());
                break;
            }

            description.Append(':');

            if (m_measurementLabels.TryGetValue(item.SignalID, out measurementLabel))
            {
                description.Append(measurementLabel);
            }

            return(description.ToString());
        }
コード例 #6
0
        // Get all the highest severity alarms in a list of alarms
        private IEnumerable <Alarm> GetHighestSeverityAlarms(IEnumerable <Alarm> alarms)
        {
            AlarmSeverity highestSeverity = alarms.Max(alarm => alarm.Severity);

            return(alarms.Where(alarm => alarm.Severity == highestSeverity));
        }
コード例 #7
0
 public AlarmContent(DateTime timeStamp, UserType user, AlarmSeverity severity, string message)
     : base(timeStamp, user, message)
 {
     mSeverity    = severity;
     mMessageType = MessageType.Alarm;
 }
コード例 #8
0
 public AlarmContent(AlarmSeverity severity, string message)
     : base(UserType.Operator, message)
 {
     mSeverity    = severity;
     mMessageType = MessageType.Alarm;
 }
コード例 #9
0
 public AlarmContent(UserType user, AlarmSeverity severity, string message)
     : base(user, message)
 {
     mSeverity    = severity;
     mMessageType = MessageType.Alarm;
 }
コード例 #10
0
 /// <summary>
 /// Fires a change of the alarm status.
 /// </summary>
 /// <param name="severity">New alarm severity</param>
 /// <param name="status">New alarm status</param>
 public void TriggerAlarm(AlarmSeverity severity, AlarmStatus status)
 {
     if (CurrentAlarmSeverity != severity)
     {
         CurrentAlarmSeverity = severity;
         AlarmStatus = status;
     }
 }