Пример #1
0
        public override void FireEvent(string eventName)
        {
            var eventType = new Assad.CPeventType();

            eventType.deviceId = DeviceId;
            eventType.eventTime = DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss");
            eventType.eventId = eventName;
            eventType.alertLevel = "0";

            var counters = new List<StateTypeCounter>();

            for (int i = 0; i < 9; i++)
                counters.Add(new StateTypeCounter(i));

            foreach (var deviceState in FiresecManager.DeviceStates.DeviceStates)
            {
                var stateType = deviceState.StateType;
                var stateTypeCounter = counters.FirstOrDefault(x => x.StateType == stateType);
                stateTypeCounter.HasOne = true;
            }

            bool diff = false;

            foreach (var counter in _stateTypeCounters)
            {
                var tempcounter = counters.FirstOrDefault(x => x.StateType == counter.StateType);

                if (tempcounter.StateType == StateType.Norm)
                    continue;

                if (tempcounter.HasOne != counter.HasOne)
                {
                    diff = true;
                    counter.HasOne = tempcounter.HasOne;
                }
            }

            if (diff == false)
                return;

            var states = new List<Assad.CPeventTypeState>();

            foreach (var stateTypeCounter in counters)
            {
                var AlarmState = new Assad.CPeventTypeState();
                AlarmState.state = EnumsConverter.StateTypeToClassName(stateTypeCounter.StateType);
                AlarmState.value = (stateTypeCounter.HasOne == true) ? "Есть" : "Нет";
                states.Add(AlarmState);
            }

            eventType.state = states.ToArray();

            NetManager.Send(eventType, null);
        }
Пример #2
0
        public override void FireEvent(string eventName)
        {
            var eventType = new Assad.CPeventType();

            eventType.deviceId = DeviceId;
            eventType.eventTime = DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss");
            eventType.eventId = eventName;
            eventType.alertLevel = "0";

            var deviceState = ConfigurationHelper.GetDeviceState(Id);
            if (deviceState != null)
            {
                var states = new List<Assad.CPeventTypeState>();

                var mainState = new Assad.CPeventTypeState();
                mainState.state = "Состояние";
                mainState.value = EnumsConverter.StateTypeToClassName(deviceState.StateType);
                states.Add(mainState);

                foreach (var parameter in deviceState.Parameters)
                {
                    if (parameter.Visible)
                    {
                        var parameterState = new Assad.CPeventTypeState();
                        parameterState.state = parameter.Name;
                        parameterState.value = parameter.Value;

                        if ((string.IsNullOrEmpty(parameter.Value)) || (parameter.Value == "<NULL>"))
                        {
                            parameterState.value = " ";
                        }
                        states.Add(parameterState);
                    }
                }
                eventType.state = states.ToArray();
            }
            NetManager.Send(eventType, null);
        }