Ejemplo n.º 1
0
        private string AlarmActionAsString(AlarmMode mode)
        {
            switch (mode)
            {
            case AlarmMode.RegularArm:
                return("r");

            case AlarmMode.ForceArm:
                return("f");

            case AlarmMode.StayArm:
                return("s");

            case AlarmMode.InstantArm:
                return("i");

            case AlarmMode.Disarm:
                return("d");

            case AlarmMode.SleepArm:
                return("p");

            default:
                throw new ArgumentOutOfRangeException("mode");
            }
        }
Ejemplo n.º 2
0
 public static Alarm Create(
     AlarmMode mode,
     Action onFinished,
     bool canStart = false)
 {
     return(Create(1f, mode, onFinished, canStart));
 }
Ejemplo n.º 3
0
        //获取报警模式
        public static List <AlarmMode> GetAlarmModes()
        {
            XmlDocument xmlDocument = GetXmlDocument();

            if (xmlDocument == null)
            {
                return(null);
            }
            List <AlarmMode> LAM = new List <AlarmMode>();

            try
            {
                XmlElement rootElement = xmlDocument.DocumentElement;
                XmlNode    ModeNode    = rootElement.SelectSingleNode("AlarmMode");
                foreach (XmlNode child in ModeNode)
                {
                    AlarmMode AM = new AlarmMode();
                    AM.Name  = child.Name;
                    AM.Value = Convert.ToInt32(child.FirstChild.Value);
                    LAM.Add(AM);
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(LAM);
        }
Ejemplo n.º 4
0
        public static Alarm Set(Entity entity, float duration, Action onComplete, AlarmMode alarmMode = AlarmMode.Oneshot)
        {
            Alarm alarm = Alarm.Create(alarmMode, onComplete, duration, true);

            entity.Add(alarm);
            return(alarm);
        }
Ejemplo n.º 5
0
 public void SetDisarmed()
 {
     if (OnOff)
     {
         ModeSignal = AlarmMode.Expectation;
         Img        = "/Content/Images/alarm-no.png";
     }
 }
Ejemplo n.º 6
0
 public void SetIsArmed()
 {
     if (OnOff)
     {
         ModeSignal = AlarmMode.Protected;
         Img        = "/Content/Images/alarm-on.png";
     }
 }
Ejemplo n.º 7
0
        public static Alarm Create(
            float duration,
            AlarmMode mode,
            Action onFinished,
            bool canStart = false)
        {
            var alarm = Cache.Count > 0 ? Cache.Pop() : new Alarm();

            alarm.Initialize(duration, mode, onFinished, canStart);
            return(alarm);
        }
Ejemplo n.º 8
0
        public static Alarm Create(AlarmMode mode, Action onComplete, float duration = 1f, bool start = false)
        {
            Alarm alarm;
            if (cached.Count == 0)
                alarm = new Alarm();
            else
                alarm = cached.Pop();

            alarm.Init(mode, onComplete, duration, start);
            return alarm;
        }
Ejemplo n.º 9
0
        public Alarm(AlarmMode mode, Action onComplete, int duration, bool start = true)
        {
            Active = false;

            Mode = mode;
            Duration = duration;
            OnComplete += onComplete;

            if (start)
                Start();
        }
Ejemplo n.º 10
0
        public void SetNobodyHome(IDictionary<string, ElectrDevice> devices)
        {
            foreach (var device in devices)
            {
                if (!((devices[device.Key] is Alarm) || (devices[device.Key] is Fridge)))
                {
                    devices[device.Key].TurnOff();
                }

            }
            modeSignal = AlarmMode.isArmedNobodyHome;
        }
Ejemplo n.º 11
0
        public static void Disarm(bool updateLoxone = true)
        {
            Mode = AlarmMode.Disarmed;

            if (updateLoxone)
            {
                UdpClient.Send("DisarmAlarm");
            }

            Led.Off();
            Sounds.Disarmed();
            Debug.WriteLine("Alarm Disarmed!");
        }
Ejemplo n.º 12
0
        public static Alarm CreateAndApply(
            Entity entity,
            float duration,
            AlarmMode mode,
            Action onFinished)
        {
            var alarm = Create(duration, mode, onFinished, true);

            if (entity != null)
            {
                entity.Components.Add(alarm);
            }
            return(alarm);
        }
Ejemplo n.º 13
0
        public Alarm(AlarmMode mode, int duration = 1, bool start = false)
            : base(false, false)
        {
            #if DEBUG
            if (duration < 1)
                throw new Exception("Alarm duration cannot be less than 1");
            #endif

            Mode = mode;
            Duration = duration;

            if (start)
                Start();
        }
Ejemplo n.º 14
0
        public async Task <ActionResult> SetAlarmMode(int area, AlarmMode mode)
        {
            IList <KeyValuePair <string, string> > formData = new List <KeyValuePair <string, string> > {
                { new KeyValuePair <string, string>("area", $"{area}") },
                { new KeyValuePair <string, string>("mode", $"{(byte)mode}") },
            };

            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "/action/panelCondPost");

            request.Content = new FormUrlEncodedContent(formData);

            ActionResult responseBody = await SendRequest <ActionResult>(request);

            return(responseBody);
        }
Ejemplo n.º 15
0
        public static Alarm Create(AlarmMode mode, Action onComplete, float duration = 1f, bool start = false)
        {
            Alarm alarm;

            if (cached.Count == 0)
            {
                alarm = new Alarm();
            }
            else
            {
                alarm = cached.Pop();
            }

            alarm.Init(mode, onComplete, duration, start);
            return(alarm);
        }
Ejemplo n.º 16
0
        void Initialize(
            float duration,
            AlarmMode mode,
            Action onFinished,
            bool canStart)
        {
            IsActive   = false;
            Duration   = Math.Max(Math.Abs(duration), float.Epsilon);
            TimeLeft   = 0f;
            Mode       = mode;
            OnFinished = onFinished;

            if (canStart)
            {
                Start();
            }
        }
Ejemplo n.º 17
0
 private void ShowAlarmMsg(string msg, AlarmMode mode)
 {
     _alarm.SetActive(true);
     _alarmText.text = msg;
     if (mode == AlarmMode.Ok)
     {
         _alarmBtnOk.gameObject.SetActive(true);
         _alarmBtnYes.gameObject.SetActive(false);
         _alarmBtnNo.gameObject.SetActive(false);
     }
     else if (mode == AlarmMode.YesNo)
     {
         _alarmBtnOk.gameObject.SetActive(false);
         _alarmBtnYes.gameObject.SetActive(true);
         _alarmBtnNo.gameObject.SetActive(true);
     }
 }
Ejemplo n.º 18
0
 public void SetNobodyHome(List <ElectrDevice> devices)
 {
     if (OnOff)
     {
         foreach (var device in devices)
         {
             if (!((device is Alarm) || (device is Fridge)))
             {
                 device.TurnOff();
             }
             if (device is Microwave)
             {
                 ((Microwave)device).Close();
             }
         }
         ModeSignal = AlarmMode.Super_Home;
         Img        = "/Content/Images/alarm-super.png";
     }
 }
Ejemplo n.º 19
0
        private void Init(AlarmMode mode, Action onComplete, float duration = 1f, bool start = false)
        {
#if DEBUG
            if (duration <= 0)
            {
                throw new Exception("Alarm duration cannot be less than zero");
            }
#endif
            Mode       = mode;
            Duration   = duration;
            OnComplete = onComplete;

            Active   = false;
            TimeLeft = 0;

            if (start)
            {
                Start();
            }
        }
Ejemplo n.º 20
0
        public void AlarmAction(PartitionNumber partitionNumber, AlarmMode mode)
        {
            lock (lockObject)
            {
                if (!IsLoggedIn)
                {
                    throw new Exception("Must login first.");
                }

                var js = driver as IJavaScriptExecutor;

                js.ExecuteScript("window.open('','action')");
                driver.SwitchTo().Window("action");

                driver.Navigate().GoToUrl(statusLiveUrl);
                js.ExecuteScript("document.getElementsByName('area')[0].value='" + (int)partitionNumber + "'");
                js.ExecuteScript("document.getElementsByName('value')[0].value='" + AlarmActionAsString(mode) + "'");

                driver.FindElement(By.Name("statuslive")).Submit();
                driver.Close();
                driver.SwitchTo().Window(MainWindowHandle);
            }
        }
Ejemplo n.º 21
0
        private void Init(AlarmMode mode, Action onComplete, float duration = 1f, bool start = false)
        {
            #if DEBUG
            if (duration <= 0)
                throw new Exception("Alarm duration cannot be less than zero");
            #endif
            Mode = mode;
            Duration = duration;
            OnComplete = onComplete;

            Active = false;
            TimeLeft = 0;

            if (start)
                Start();
        }
Ejemplo n.º 22
0
        /// <summary>
        /// 获取告警原因
        /// </summary>
        public static String GetAlarmDetail(
            String sName,
            Single alarmTemp,
            Int32 alarmMode,
            Int32 alarmType,
            Int32 alarmReason,
            Int32 alarmLevel,
            String condition)
        {
            AlarmMode mode = (AlarmMode)alarmMode;

            String type = "";
            String name = "";

            if (mode == AlarmMode.Selection)
            {
                name = sName + "(选区)";
                switch ((SelectionAlarmType)alarmType)
                {
                case SelectionAlarmType.MaxTemp:
                    type = "最高温度告警";
                    break;

                case SelectionAlarmType.MinTemp:
                    type = "最低温度告警";
                    break;

                case SelectionAlarmType.AvgTemp:
                    type = "平均温度告警";
                    break;
                }
            }
            else if (mode == AlarmMode.GroupSelection)
            {
                name = sName + "(选区组)";
                switch ((GroupAlarmType)alarmType)
                {
                case GroupAlarmType.MaxTemperature:
                    type = "最高温度告警(组)";
                    break;

                case GroupAlarmType.MaxTempDif:
                    type = "最大温差告警(组)";
                    break;

                case GroupAlarmType.MaxTempRise:
                    type = "最大温升告警(组)";
                    break;

                case GroupAlarmType.RelativeTempDif:
                    type = "相对温差告警(组)";
                    break;
                }
            }

            String Reason = "";

            switch ((AlarmReason)alarmReason)
            {
            case AlarmReason.High:
                Reason = "高于阈值";
                break;

            case AlarmReason.Low:
                Reason = "低于阈值";
                break;
            }

            String level = "";

            switch ((AlarmLevel)alarmLevel)
            {
            case AlarmLevel.General:
                level = "一般告警";
                break;

            case AlarmLevel.Serious:
                level = "严重告警";
                break;

            case AlarmLevel.Critical:
                level = "危急告警";
                break;
            }

            String detail = String.Format("{0}|温度:{1:F2}|{2}|{3}|{4}|{5}",
                                          name, alarmTemp, type, Reason, level, condition);

            return(detail);
        }
Ejemplo n.º 23
0
 static Alarm()
 {
     Mode = AlarmMode.Disarmed;
 }
Ejemplo n.º 24
0
        /// <summary>
        /// 获取告警短信内容
        /// </summary>
        public static String GetShowMessage(
            String substation,
            String deviceName,
            Int32 alarmMode,
            Int32 alarmType,
            Int32 alarmLevel,
            Single temperature,
            DateTime time)
        {
            String msg = String.Format("变电站:{0}\n", substation);

            msg += String.Format("设备:{0}\n", deviceName);

            AlarmMode mode = (AlarmMode)alarmMode;

            if (mode == AlarmMode.Selection)
            {
                SelectionAlarmType type = (SelectionAlarmType)alarmType;
                switch (type)
                {
                case SelectionAlarmType.MaxTemp:
                    msg += "监控类型:最高温度\n";
                    break;

                case SelectionAlarmType.MinTemp:
                    msg += "监控类型:最低温度\n";
                    break;

                case SelectionAlarmType.AvgTemp:
                    msg += "监控类型:平均温度\n";
                    break;
                }
                msg += String.Format("温度值:{0:F2}℃\n", temperature);
            }
            else if (mode == AlarmMode.GroupSelection)
            {
                GroupAlarmType type = (GroupAlarmType)alarmType;
                switch (type)
                {
                case GroupAlarmType.MaxTemperature:
                    msg += "监控类型:最高温度(组)\n";
                    break;

                case GroupAlarmType.MaxTempDif:
                    msg += "监控类型:最大温差(组)\n";
                    break;

                case GroupAlarmType.MaxTempRise:
                    msg += "监控类型:最大温升(组)\n";
                    break;

                case GroupAlarmType.RelativeTempDif:
                    msg += "监控类型:相对温差(组)\n";
                    break;
                }

                if (type == GroupAlarmType.RelativeTempDif)
                {
                    msg += String.Format("百分比:{0:F2}%\n", temperature);
                }
                else
                {
                    msg += String.Format("温度值:{0:F2}℃\n", temperature);
                }
            }

            AlarmLevel level = (AlarmLevel)alarmLevel;

            switch (level)
            {
            case AlarmLevel.General:
                msg += "告警等级:一般\n";
                break;

            case AlarmLevel.Serious:
                msg += "告警等级:严重\n";
                break;

            case AlarmLevel.Critical:
                msg += "告警等级:危急\n";
                break;
            }

            msg += String.Format("时间:{0}", DateTime.Now.ToString("HH:mm:ss"));

            return(msg);
        }
Ejemplo n.º 25
0
 public void SetIsArmed()
 {
     modeSignal = AlarmMode.isArmed;
 }
Ejemplo n.º 26
0
 public void SetDisarmed()
 {
     modeSignal = AlarmMode.disarmed;
 }
Ejemplo n.º 27
0
 private string AlarmActionAsString(AlarmMode mode)
 {
     switch (mode)
     {
         case AlarmMode.RegularArm:
             return "r";
         case AlarmMode.ForceArm:
             return "f";
         case AlarmMode.StayArm:
             return "s";
         case AlarmMode.InstantArm:
             return "i";
         case AlarmMode.Disarm:
             return "d";
         case AlarmMode.SleepArm:
             return "p";
         default:
             throw new ArgumentOutOfRangeException(nameof(mode));
     }
 }
Ejemplo n.º 28
0
        public void AlarmAction(PartitionNumber partitionNumber, AlarmMode mode)
        {
            lock (lockObject)
            {
                if (!IsLoggedIn)
                    throw new Exception("Must login first.");

                var js = driver as IJavaScriptExecutor;

                js.ExecuteScript("window.open('','action')");
                driver.SwitchTo().Window("action");

                driver.Navigate().GoToUrl(statusLiveUrl);
                js.ExecuteScript("document.getElementsByName('area')[0].value='" + (int)partitionNumber + "'");
                js.ExecuteScript("document.getElementsByName('value')[0].value='" + AlarmActionAsString(mode) + "'");

                driver.FindElement(By.Name("statuslive")).Submit();
                driver.Close();
                driver.SwitchTo().Window(MainWindowHandle);
            }
        }
Ejemplo n.º 29
0
 public Alarm(AlarmMode modeSignal, bool onOff, string img) : base(onOff, img)
 {
     ModeSignal = modeSignal;
 }
Ejemplo n.º 30
0
 public Alarm(AlarmMode mode, Action onComplete, int duration = 1, bool start = false)
     : this(mode, duration, start)
 {
     OnComplete += onComplete;
 }
Ejemplo n.º 31
0
 public static Alarm Set(Entity entity, float duration, Action onComplete, AlarmMode alarmMode = AlarmMode.Oneshot)
 {
     Alarm alarm = Alarm.Create(alarmMode, onComplete, duration, true);
     entity.Add(alarm);
     return alarm;
 }
Ejemplo n.º 32
0
 public static Alarm Add(Entity entity, Action onComplete, int duration, AlarmMode mode = AlarmMode.Single)
 {
     Alarm alarm = new Alarm(mode, onComplete, duration, true);
     entity.Add(alarm);
     return alarm;
 }