예제 #1
0
    public void submitButtonClick()
    {
        // handle ui
        AppManager.Prefabs[0].gameObject.SetActive(true);

        string time = (AMPM_dropdown.getValue() == 0) ? "上午 " : "下午 ";

        time += Hour_dropdown.getValue();
        time += ":";
        time += Minute_dropdown.getValue() < 10 ? "0" + Minute_dropdown.getValue() : Minute_dropdown.getValue().ToString();
        time += " ";

        EditingAlarm.TimeString.text = time;
        EditingAlarm.hr_dp_val       = Hour_dropdown.getValue();
        EditingAlarm.min_dp_val      = Minute_dropdown.getValue();
        EditingAlarm.ampm_dp_val     = AMPM_dropdown.getValue();
        EditingAlarm.repeat_dp_val   = Repeat_dropdown.value;
        EditingAlarm.ringer_dp_val   = Ringer_dropdown.value;
        EditingAlarm.label_if_val    = Label_input.text;
        EditingAlarm.Profile.sprite  = EditingAlarm.profile_sprites[EditingAlarm.ringer_dp_val];

        // handle notification
        // cancel the old one
        Notifications.RemoveAlarm(Id);
        // insert a new one
        Id = Notifications.AddAlarm(Hour_dropdown.getValue(), Minute_dropdown.getValue(), AMPM_dropdown.getValue(), Repeat_dropdown.value == 1, Label_input.text, Ringer_dropdown.value);
        EditingAlarm.Id = Id;
        AlarmList.SaveAlarmListToFile();
        Swipable.allow_swipe = true;
        // Destroy(gameObject);
        OnExiting();
    }
예제 #2
0
 private void OnDataChange(ConveyorBasicInfo info, string name)
 {
     try
     {
         if (info != null)
         {
             if (info.ActiveAlarms != null)
             {
                 var alarmToDel = from a in AlarmList
                                  where a.Unit == name && !info.ActiveAlarms.Contains(Convert.ToInt32(a.AlarmID))
                                  select a;
                 alarmToDel.ToList().ForEach(p => AlarmList.Remove(p));
                 var alarmToAdd = from a in info.ActiveAlarms
                                  where  AlarmList.FirstOrDefault(p => p.Unit == name && p.AlarmID == a.ToString("000000")) == null
                                  select new AlarmViewModel
                 {
                     AlarmID     = a.ToString("000000"),
                     Unit        = name,
                     Severity    = EnumAlarmSeverity.Error,
                     Status      = EnumAlarmStatus.Active,
                     Text        = ResourceReader.GetString(string.Format("ALARM_{0}", a.ToString("000000"))),
                     ArrivedTime = DateTime.Now,
                     AckTime     = null
                 };
                 alarmToAdd.ToList().ForEach(p => AlarmList.Add(p));
             }
         }
     }
     catch (Exception e)
     {
         _warehouse.AddEvent(Database.Event.EnumSeverity.Error, Database.Event.EnumType.Exception, e.Message);
         throw new Exception(string.Format("{0}.{1}: {2}", this.GetType().Name, (new StackTrace()).GetFrame(0).GetMethod().Name, e.Message));
     }
 }
예제 #3
0
        public WebhookManager(WhConfig config, string alarmsFilePath)
        {
            Filters   = new Filters();
            Geofences = new Dictionary <string, GeofenceItem>();

            _logger.Trace($"WebhookManager::WebhookManager [Config={config}, Port={config.WebhookPort}, AlarmsFilePath={alarmsFilePath}]");

            GeofenceService = new GeofenceService();
            _gyms           = new Dictionary <string, GymDetailsData>();
            _alarmsFilePath = alarmsFilePath;
            _alarms         = LoadAlarms(_alarmsFilePath);
            _config         = config;

            _http = new HttpServer(_config.WebhookPort);
            _http.PokemonReceived    += Http_PokemonReceived;
            _http.RaidReceived       += Http_RaidReceived;
            _http.QuestReceived      += Http_QuestReceived;
            _http.PokestopReceived   += Http_PokestopReceived;
            _http.GymReceived        += Http_GymReceived;
            _http.GymDetailsReceived += Http_GymDetailsReceived;
            _http.WeatherReceived    += Http_WeatherReceived;
            _http.IsDebug             = false;
            _http.Start();

            new System.Threading.Thread(LoadAlarmsOnChange).Start();
        }
예제 #4
0
        //将报警信息存入数据库
        public void SaveAlarmList(AlarmList alarmlist)
        {
            List <qw_alarmcarmemorylocationdatas> list = GetAllList().Where(a => a.carid == alarmlist.CARID && a.alarmstrattime == alarmlist.ALARMSTRATTIME && a.alarmtype == 3).ToList();

            if (list.Count == 0)
            {
                qw_alarmcarmemorylocationdatas ta = new qw_alarmcarmemorylocationdatas();
                //ta.id = AlarmListBLL.GetNewAlarmListID();
                ta.longitude = alarmlist.LONGITUDE == null ? 0 : (double)alarmlist.LONGITUDE;
                ta.latitude  = alarmlist.LATITUDE == null ? 0 : (double)alarmlist.LATITUDE;
                //ta.X = alarmlist.X2000 == null ? 0 : (decimal)alarmlist.X2000;
                //ta.Y = alarmlist.Y2000 == null ? 0 : (decimal)alarmlist.Y2000;
                ta.speed          = alarmlist.SPEED == null ? 0 : (double)alarmlist.SPEED;
                ta.gpstime        = alarmlist.GPSTIME;
                ta.createtime     = DateTime.Now;
                ta.alarmendtime   = alarmlist.ALARMENDTIME;
                ta.alarmstrattime = alarmlist.ALARMSTRATTIME;
                ta.alarmtype      = alarmlist.ALARMTYPE;
                ta.carid          = alarmlist.CARID;
                ta.state          = 0;
                AddTeamMemoryLocationData(ta);
            }
            else
            {
                XGSaveAlarmList(alarmlist);
            }
        }
예제 #5
0
        public List <AlarmList> GetAlarmList(int UserId)
        {
            tKovanContext ctx = new tKovanContext();
            //List<DTOs.External.Environment> lstEnvironment = ctx.Environment.Where(x => x.UserId == UserId).ToList().Select(x => new DTOs.External.Environment { Id = x.Id, Name = x.Name }).ToList();
            //return lstEnvironment;
            List <AlarmList>  AlarmList = new List <AlarmList>();
            List <DeviceList> device    = ctx.Device.Where(x => x.UserId == UserId).ToList().Select(x => new DeviceList {
                CurrentToken = x.CurrentToken, DataSendInterval = x.DataSendInterval, EnvironmentName = x.Environment == null ? "" : x.Environment.Name, Id = x.Id, Name = x.Name, MacNo = x.MacNo, ProfileName = x.Profile == null ? "" : x.Profile.Name, UserName = x.User == null ? "" : x.User.UserName
            }).ToList();

            foreach (DeviceList item in device)
            {
                List <TeknolojiKovaniWebApi.Models.EntityClass.Alarm> DeviceAlarm = ctx.Alarm.Include("Device").Include("Property").Where(x => x.DeviceId == item.Id).ToList();
                foreach (TeknolojiKovaniWebApi.Models.EntityClass.Alarm it in DeviceAlarm)
                {
                    AlarmList dAlarm = new AlarmList();
                    dAlarm              = Utilities.Map <TeknolojiKovaniWebApi.Models.EntityClass.Alarm, AlarmList>(it, dAlarm);
                    dAlarm.DeviceName   = it.Device.Name;
                    dAlarm.PropertyName = it.Property.DisplayName;
                    AlarmList.Add(dAlarm);
                }
            }

            return(AlarmList);
        }
        private void _monitoringDataService_AlarmDataUpdated(object sender, AlarmDataEventArgs e)
        {
            var alarmStr = e.Data as string;

            if (!string.IsNullOrEmpty(alarmStr))
            {
                var alarmInfo = JsonConvert.DeserializeObject <AlarmInfo>(alarmStr);
                if (alarmInfo != null)
                {
                    var action = new Action(() =>
                    {
                        _soundPlayer = new System.Media.SoundPlayer();
                        _soundPlayer.SoundLocation = Alarm_Sound_FilePath;
                        _soundPlayer.PlayLooping();
                    });
                    action.BeginInvoke(null, null);

                    System.Windows.Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                    {
                        if (AlarmList.Count > ALARM_LIST_MAX_COUNT)
                        {
                            AlarmList.RemoveAt(AlarmList.Count - 1);
                        }
                        AlarmList.Add(alarmInfo);
                        CurrentAlarmInfo = alarmInfo;
                        IsShow           = true;
                        NotifiyAlarm();
                    }));
                }
            }
        }
예제 #7
0
        private void LoadAlarmsOnChange()
        {
            _logger.Trace($"WebhookManager::LoadAlarmsOnChange");

            var fileWatcher = new FileWatcher(_alarmsFilePath);

            fileWatcher.FileChanged += (sender, e) => _alarms = LoadAlarms(_alarmsFilePath);
            fileWatcher.Start();
        }
예제 #8
0
        public AlarmList GetAlarmById(int Id)
        {
            tKovanContext ctx = new tKovanContext();

            TeknolojiKovaniWebApi.Models.EntityClass.Alarm Alarm = ctx.Alarm.Single(x => x.Id == Id);
            AlarmList dAlarm = new AlarmList();

            dAlarm = Utilities.Map <TeknolojiKovaniWebApi.Models.EntityClass.Alarm, AlarmList>(Alarm, dAlarm);
            return(dAlarm);
        }
예제 #9
0
 public void X_button_click()
 {
     // remove the ui element
     Cover.SetActive(true);
     AlarmList.ui_alarmlist.Remove(gameObject);
     // remove the notification
     Notifications.RemoveAlarm(Id);
     AlarmList.SaveAlarmListToFile();
     // Destroy(gameObject);
     isDead = true;
 }
예제 #10
0
        /// <summary>
        /// 定时器刷新处理数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void timer1_Tick(object sender, EventArgs e)//03
        {
            //你的定时处理

            //建立与plc连接
            int result = Sharp7AndPlcComm.ConnectToPlc(client);

            //判断通讯状态
            Sharp7AndPlcComm.JudgeCommStu(result, ref labCommStu);
            //调用报警列表,刷新报警文本
            AlarmList.AlarmListView(client, listView, dbNum, dbLength, dbStartElement, dbStartBit);
        }
예제 #11
0
        //修改报警信息存入数据库
        public void XGSaveAlarmList(AlarmList alarmlist)
        {
            List <qw_alarmcarmemorylocationdatas> list = GetAllList().Where(a => a.carid == alarmlist.CARID && a.alarmstrattime == alarmlist.ALARMSTRATTIME).ToList();

            //  QWGL_ALARMMEMORYLOCATIONDATA ta = new QWGL_ALARMMEMORYLOCATIONDATA();
            foreach (var ta in list)
            {
                ta.createtime   = DateTime.Now;
                ta.alarmendtime = alarmlist.ALARMENDTIME;
                ta.alarmtype    = alarmlist.ALARMTYPE;
                EditTeamMemoryLocationData(ta);
            }
        }
예제 #12
0
    //[SyncVar]
    //public bool isActive;

    void Awake()
    {
        if (Instance != null)
        {
            GameObject.Destroy(Instance);
            Debug.Log("Alarm-List-Objekt schon vorhanden!");
        }
        else
        {
            Instance = this;
            DontDestroyOnLoad(this);
            this.gameObject.SetActive(true);
        }
    }
예제 #13
0
 //---   添加鬧鐘
 public void AddAlarm()
 {
     if (count < alarmLists.Length)
     {
         alarmLists[count] = new AlarmList();
         alarmListPanel.GetCarrier().Children.Add(alarmLists[count].GetCarrier());
         Canvas.SetTop(alarmLists[count].GetCarrier(), 80 * count + 50);
         Canvas.SetLeft(alarmLists[count].GetCarrier(), -50);
         count++;
     }
     else
     {
         MessageBox.Show("已經達到鬧鐘上限了喲");
     }
 }
예제 #14
0
 public bool SaveAlarm(AlarmList AlarmList)
 {
     try
     {
         tKovanContext ctx = new tKovanContext();
         TeknolojiKovaniWebApi.Models.EntityClass.Alarm Alarm = new Models.EntityClass.Alarm();
         Alarm = Utilities.Map <AlarmList, TeknolojiKovaniWebApi.Models.EntityClass.Alarm>(AlarmList, Alarm);
         ctx.Alarm.Add(Alarm);
         ctx.SaveChanges();
         return(true);
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
예제 #15
0
        private Configuration(string path = "")
        {
            mbase_path = (string.IsNullOrEmpty(path)) ? Mobile.GetPath() : path;

            device = "PC";
            Config config = new Config();

            mtuTypes   = config.GetMtu(Path.Combine(mbase_path, XML_MTUS));
            meterTypes = config.GetMeters(Path.Combine(mbase_path, XML_METERS));
            global     = config.GetGlobal(Path.Combine(mbase_path, XML_GLOBAL));
            interfaces = config.GetInterfaces(Path.Combine(mbase_path, XML_INTERFACE));
            alarms     = config.GetAlarms(Path.Combine(mbase_path, XML_ALARMS));
            demands    = config.GetDemandConf(Path.Combine(mbase_path, XML_DEMANDS));
            users      = config.GetUsers(Path.Combine(mbase_path, XML_USERS)).List;
            errors     = config.GetErrors(Path.Combine(mbase_path, XML_ERRORS)).List;
        }
예제 #16
0
        public AlarmManagerViewModel()
        {
            DeleteCommand = new RelayCommand(
                x => AlarmList.Remove(SelectedAlarmDetail),
                x => AlarmList.Any() && SelectedAlarmDetail != null
                );

            AddCommand = new RelayCommand(
                x => AlarmList.Add(new AlarmItemViewModel
            {
                AlarmName = $"{DefaultAlarmName} {AlarmList.Count + 1}",
                Type      = AlarmType.Min
            }
                                   ),
                x => AlarmList.Count < 10
                );
        }
예제 #17
0
 public void Handle(AlarmItem message)
 {
     if (!message.Value)
     {
         if (AlarmList.Any(x => x.Address == message.Address))
         {
             var a = AlarmList.Where(x => x.Address == message.Address);
             foreach (var v in a)
             {
                 AlarmList.Remove(v);
             }
         }
     }
     else
     {
         AlarmList.Add(message);
     }
 }
예제 #18
0
        public override async Task GetAlarmList(AlarmListRequest e, IServerStreamWriter <AlarmList> s, ServerCallContext context)
        {
            AlarmList         alarmListR = new AlarmList();
            List <AlarmProto> alarms     = new List <AlarmProto>();

            for (int i = 0; i < 6; i++)
            {
                AlarmProto a = new AlarmProto();
                a.Ack              = false;
                a.AckDate          = new Timestamp();
                a.AckUser          = "******";
                a.Active           = true;
                a.Count            = 49;
                a.Description      = "Centrale / Area 01 / Status";
                a.EndDate          = new Timestamp();
                a.Flag             = "";
                a.Gravity          = 50;
                a.GroupDescription = "CIABI_ELMO";
                a.GroupId          = 2;
                a.Id         = 16;
                a.Info       = "";
                a.PreAck     = false;
                a.PreAckDate = new Timestamp();
                a.PreAckUser = "";
                a.ReportId   = 1;
                a.StartDate  = new Timestamp();
                a.Type       = 1;
                a.VariableId = 65;
                a.VariableStatusDescription = "Disinserimento " + i;

                alarms.Add(a);
                alarmListR.Alarms.Add(alarms);
                await Task.Delay(3000);

                await s.WriteAsync(alarmListR);

                //AlarmList alarmListR = new AlarmList();
                //alarmListR.Alarms.Add(alarms);
                //return alarmListR;
            }
        }
예제 #19
0
        public static bool CheckLoadXML()
        {
            string configPath = Mobile.ConfigPath;

            try
            {
                // Load configuration files ( xml's )
                MtuTypes   auxMtus   = Utils.DeserializeXml <MtuTypes>(Path.Combine(configPath, XML_MTUS));
                MeterTypes auxMeters = Utils.DeserializeXml <MeterTypes>(Path.Combine(configPath, XML_METERS));
                Global     auxGlobal = Utils.DeserializeXml <Global>(Path.Combine(configPath, XML_GLOBAL));
                AlarmList  auxAlarm  = Utils.DeserializeXml <AlarmList>(Path.Combine(configPath, XML_ALARMS));
                DemandConf auxDemand = Utils.DeserializeXml <DemandConf>(Path.Combine(configPath, XML_DEMANDS));
                User[]     auxUsers  = Utils.DeserializeXml <UserList>(Path.Combine(configPath, XML_USERS)).List;
                return(true);
            }
            catch (Exception)
            {
                //throw new ConfigurationFilesCorruptedException();
                return(false);
            }
        }
예제 #20
0
        public RestorationAlarmList GetRestorationAlarmPoint(AlarmList al, IEnumerable <DigitalPointInfo> groupByStations)
        {
            var RestorationAlarm = new RestorationAlarmList();

            var pointInfo = groupByStations.Where(c => c.PointName.Trim() == al.PointName.Trim()).FirstOrDefault();

            if (pointInfo == null)
            {
                return(null);
            }

            try
            {
                RestorationAlarm.DateTime    = al.Time;
                RestorationAlarm.PointType   = (Byte)al.pointType;
                RestorationAlarm.FkIndexID   = (int)al.FkIndex;
                RestorationAlarm.StationName = al.StationName;
                RestorationAlarm.PointName   = al.PointName;
                RestorationAlarm.ShortName   = pointInfo.ShortName;
                RestorationAlarm.AlarmType   = (int)al.AlarmType;
                RestorationAlarm.Flashing    = al.Flashing;
                RestorationAlarm.ActualValue = al.ActualValue;
                RestorationAlarm.Message     = al.Message;
                RestorationAlarm.SourceName  = al.SourceName;
                RestorationAlarm.SourceID    = al.SourceID;
                RestorationAlarm.SourceType  = (Byte)al.SourceType;
                RestorationAlarm.AlarmFlag   = (Byte)al.AlarmFlag;
                RestorationAlarm.DeviceID    = pointInfo.DeviceID;
                RestorationAlarm.DeviceType  = pointInfo.DeviceType;
                RestorationAlarm.MACName     = pointInfo.MACName;
                RestorationAlarm.Priority    = pointInfo.Priority;

                return(RestorationAlarm);
            }
            catch
            {
                Console.WriteLine($"Convertion Error");
                return(null);
            }
        }
예제 #21
0
        public bool UpdateAlarm(AlarmList AlarmList)
        {
            try
            {
                tKovanContext ctx = new tKovanContext();
                TeknolojiKovaniWebApi.Models.EntityClass.Alarm Alarm = ctx.Alarm.Single(x => x.Id == AlarmList.Id);

                Alarm.AlarmParameter = AlarmList.AlarmParameter;
                Alarm.AlarmType      = AlarmList.AlarmType;
                Alarm.DeviceId       = AlarmList.DeviceId;
                Alarm.Level          = AlarmList.Level;
                Alarm.Max            = AlarmList.Max;
                Alarm.Min            = AlarmList.Min;
                Alarm.PinNo          = AlarmList.PinNo;
                Alarm.PropertyId     = AlarmList.PropertyId;
                ctx.SaveChanges();
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
예제 #22
0
        //修改报警信息存入数据库
        public void XGSaveAlarmList(AlarmList alarmlist)
        {
            List <qw_alarmmemorylocationdatas> list = GetAllLiat().Where(a => a.userid == alarmlist.USERID && a.alarmstrattime == alarmlist.ALARMSTRATTIME).ToList();

            //  QWGL_ALARMMEMORYLOCATIONDATA ta = new QWGL_ALARMMEMORYLOCATIONDATA();
            foreach (var ta in list)
            {
                //ta.ID = AlarmListBLL.GetNewAlarmListID();
                // ta.LONGITUDE = alarmlist.X84 == null ? 0 : (decimal)alarmlist.X84;
                //  ta.LATITUDE = alarmlist.Y84 == null ? 0 : (decimal)alarmlist.Y84;
                // ta.X = alarmlist.X2000 == null ? 0 : (decimal)alarmlist.X2000;
                // ta.Y = alarmlist.Y2000 == null ? 0 : (decimal)alarmlist.Y2000;
                //  ta.SPEED = alarmlist.SPEED == null ? 0 : (decimal)alarmlist.SPEED;
                //  ta.GPSTIME = alarmlist.GPSTIME;
                ta.createtime   = DateTime.Now;
                ta.alarmendtime = alarmlist.ALARMENDTIME;
                //  ta.ALARMSTRATTIME = alarmlist.ALARMSTRATTIME;
                ta.alarmtype = alarmlist.ALARMTYPE;
                //  ta.USERID = alarmlist.USERID;
                // ta.STATE = 0;
                EditTeamMemoryLocationData(ta);
            }
        }
예제 #23
0
    public void submitButtonClick()
    {
        // AlarmList界面设为可见
        AppManager.Prefabs[0].SetActive(true);
        var newAlarm = Instantiate(AlarmElementPrefab, AppManager.Prefabs[2].transform);

        string time = (AMPM_dropdown.getValue() == 0) ? "上午 " : "下午 ";

        time += Hour_dropdown.getValue().ToString();
        time += ":";
        time += Minute_dropdown.getValue() < 10 ? "0" + Minute_dropdown.getValue() : Minute_dropdown.getValue().ToString();

        var ae = newAlarm.GetComponent <AlarmElement>();

        ae.TimeString.text = time;
        ae.profile_idx     = CharacterSetting._ins.curCharacter;
        ae.ringer_dp_val   = Ringer_drowndown.value;
        ae.Profile.sprite  = ae.profile_sprites[ae.ringer_dp_val];
        ae.hr_dp_val       = Hour_dropdown.getValue();
        ae.min_dp_val      = Minute_dropdown.getValue();
        ae.ampm_dp_val     = AMPM_dropdown.getValue();
        ae.repeat_dp_val   = Repeat_dropdown.value;
        ae.label_if_val    = Label_input.text;
        ae.Id = Notifications.AddAlarm(ae.hr_dp_val, ae.min_dp_val, ae.ampm_dp_val, ae.repeat_dp_val == 1, ae.label_if_val, ae.ringer_dp_val);

        // add the alarm to list
        AlarmList.ui_alarmlist.Add(newAlarm);
        // reorder the list
        AppManager.Prefabs[0].GetComponent <AlarmList>().Reorder();
        // save
        AlarmList.SaveAlarmListToFile();
        // 此界面任务完成,把自身设为不可见
        Swipable.allow_swipe = true;
        // gameObject.SetActive(false);
        OnExiting();
    }
예제 #24
0
        public async Task ExecuteRefresh()
        {
            try
            {
                var si = SelectedItem;

                var al  = AlarmList;
                var als = await _warehouse.DBService.GetAlarms(DateFrom.TimeStamp, DateTo.TimeStamp, Unit, ID, Status);

                al.Clear();
                foreach (var a in als)
                {
                    al.Add(new AlarmViewModel
                    {
                        Alarm = a,
                        Text  = ResourceReader.GetString(string.Format("ALARM_{0}", a.AlarmID.PadLeft(6, '0')))
                    });
                }
                AlarmList = al;

                if (si != null)
                {
                    SelectedItem = AlarmList.FirstOrDefault(p => p.ArrivedTime == si.ArrivedTime &&
                                                            p.AlarmID == si.AlarmID &&
                                                            p.Unit == si.Unit &&
                                                            p.Status == si.Status);
                }

                Records = AlarmList.Count;
            }
            catch (Exception e)
            {
                _warehouse.AddEvent(Event.EnumSeverity.Error, Event.EnumType.Exception,
                                    string.Format("{0}.{1}: {2}", this.GetType().Name, (new StackTrace()).GetFrame(0).GetMethod().Name, e.Message));
            }
        }
        private void DeleteAlarm(object obj)
        {
            var info = obj as AlarmInfo;

            AlarmList.Remove(info);
        }
예제 #26
0
        //=============================================================================
        //Timed events
        //=============================================================================
        #region Timed Events
        private async void _dispatchTimer_TickAsync(object sender, object e)
        {
            try
            {
                // Get room data
                await HomeHub.GetData();

                await zwaveHomeHub.GetAsync();

                ;

                //=============================================================
                // Alarms
                //=============================================================
                #region Alarms
                HomeHub.TempAlarmVal     = MinimumTemperature;
                HomeHub.HumidityAlarmVal = MaximumHumidity;

                AlarmHandler(HomeHub.RoomData.Livingroom, "Livingroom");
                AlarmHandler(HomeHub.RoomData.MasterBedroom, "Master Bedroom");
                //AlarmHandler(HomeHub.RoomData.Bedroom, "Bedroom");



                void AlarmHandler(EnvironmentSensor.Room room, string roomName)
                {
                    //Humidity Alarm
                    if (HomeHub.HumidityAlarm(room.Humidity))
                    {
                        if (!AlarmList.Contains(roomName + " humidity alarm"))
                        {
                            AlarmList.Add(roomName + " humidity alarm");
                        }
                    }
                    else
                    {
                        AlarmList.Remove(roomName + " humidity alarm");
                    }

                    //Temperature alarm
                    if (HomeHub.TempAlarm(room.Temp))
                    {
                        if (!AlarmList.Contains(roomName + " temperature alarm"))
                        {
                            AlarmList.Add(roomName + " temperature alarm");
                        }
                    }
                    else
                    {
                        AlarmList.Remove(roomName + " temperature alarm");
                    }

                    if (AlarmList != null && AlarmList.Count != 0)
                    {
                        AlarmIndicatorShow = Visibility.Visible;
                    }
                    else
                    {
                        AlarmIndicatorShow = Visibility.Collapsed;
                    }
                }


                #endregion

                //=============================================================
                // Living Room Environment
                //=============================================================
                #region Livingroom Environment
                //Update Display
                LivingRoomTemperature =
                    Math.Round(HomeHub.RoomData.Livingroom.Temp) + "°C";
                LivingRoomTemperatureScaled =
                    HomeHub.LivingRoomScaledTemp;
                LivingRoomHumidityScaled =
                    HomeHub.RoomData.Livingroom.Humidity;
                LivingRoomHumidity =
                    Math.Round(HomeHub.RoomData.Livingroom.Humidity) + "%";
                #endregion

                //=============================================================
                // Master Bedroom Environment
                //=============================================================
                #region Master Bedroom Environment
                //Update Display
                MasterBedroomTemperature =
                    Math.Round(HomeHub.RoomData.MasterBedroom.Temp) + "°C";
                MasterBedroomTemperatureScaled =
                    HomeHub.MasterBedroomScaledTemp;
                MasterBedroomHumidityScaled =
                    HomeHub.RoomData.MasterBedroom.Humidity;
                MasterBedroomHumidity =
                    Math.Round(HomeHub.RoomData.MasterBedroom.Humidity) + "%";
                #endregion
            }
            // log any exception that occurs
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }
        }
예제 #27
0
        private void MenuLookAlarms_Click(object sender, RoutedEventArgs e)
        {
            var win = new AlarmList();

            win.Show();
        }
예제 #28
0
        public List <AlarmList> exeGetListCSV()
        {
            RestEventArgs args = new RestEventArgs();

            args.UpdatePost = (int)EventLogPosition.CSV_STATUS;

            this._listAlarm.Clear();

            try
            {
                //_CSVFile = @"\\10.20.86.210\ExportDB\AlarmList.csv";
                // string csvFile = @"c:\ExportDB\AlarmList.csv";


#if true
                FileInfo file             = new FileInfo(this._connCfg.CsvFile);
                var      DateModification = file.LastWriteTime;

                if (_CSVLastModify == DateModification)
                {
                    Console.WriteLine("CSV not Update");
                    return(null);
                }

                _CSVLastModify = DateModification;
                Console.WriteLine("CSV Last Modification : " + DateModification);

                int nRetry_read = 0;

                do //Retry tor Read CSV File
                {
                    Thread.Sleep(TimeSpan.FromSeconds(1));
                    if (nRetry_read++ >= 10)
                    {
                        args.message   = "Read CSV Fail";
                        args.TimeStamp = DateTime.Now;
                        //args.UpdatePost = (int)EventLogPosition.CSV_STATUS;
                        //this.m_dLastReadCSV = args.TimeStamp;
                        onRestAlarmCSVChanged(args); //Raise the Event
                        return(null);
                    }
                } while (IsFileLocked(this._connCfg.CsvFile));

                this._listAlarm = File.ReadLines(this._connCfg.CsvFile)
                                  .Skip(1)
                                  .Select(line => AlarmList.GetLineAlarmListCsv(line))
                                  .ToList();

                dLastReadCSV   = DateTime.Now;
                args.message   = "Read CSV Success";
                args.TimeStamp = this.dLastReadCSV;
                onRestAlarmCSVChanged(args); //Raise the Event

                return(this._listAlarm);
#else
                //Oldcode
                DataTable dt = new DataTable("AlarmList");
                using (TextFieldParser parser = new TextFieldParser(csvFile))
                {
                    parser.Delimiters = new string[] { "," };
                    int iLine = 0;
                    while (true)
                    {
                        string[] parts = parser.ReadFields();
                        if (parts == null)
                        {
                            break;
                        }
                        if (iLine++ == 0)
                        {
                            for (int iCol = 0; iCol < parts.Length; iCol++)
                            {
                                dt.Columns.Add(parts[iCol]);
                            }
                            continue;
                        }
                        dt.Rows.Add(parts);
                    }

                    //dt.DefaultView.Sort = "DATETIME";
                    dt = dt.DefaultView.ToTable();

                    for (int iRow = 0; iRow < dt.Rows.Count; iRow++)
                    {
                        DataRow      row = dt.Rows[iRow];
                        DigitalAlarm al  = new DigitalAlarm(row);
                        this.m_listAlarm.Add(al);
                    }

                    this.m_dLastReadCSV = DateTime.Now;
                    return(true);
                }
#endif
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                args.message   = "Read CSV Fail";
                args.TimeStamp = DateTime.Now;
                //this.m_dLastReadCSV = args.TimeStamp;
                onRestAlarmCSVChanged(args); //Raise the Event
                return(null);
            }
        }
예제 #29
0
        private Configuration(string path = "", bool avoidXmlError = false)
        {
            string configPath = Mobile.ConfigPath;

            device = "PC";

            try
            {
                // Load configuration files ( xml's )
                mtuTypes   = Utils.DeserializeXml <MtuTypes>        (Path.Combine(configPath, XML_MTUS));
                meterTypes = Utils.DeserializeXml <MeterTypes>      (Path.Combine(configPath, XML_METERS));
                Global     = Utils.DeserializeXml <Global>          (Path.Combine(configPath, XML_GLOBAL));
                alarms     = Utils.DeserializeXml <AlarmList>       (Path.Combine(configPath, XML_ALARMS));
                demands    = Utils.DeserializeXml <DemandConf>      (Path.Combine(configPath, XML_DEMANDS));
                users      = Utils.DeserializeXml <UserList>        (Path.Combine(configPath, XML_USERS)).List;
                interfaces = Utils.DeserializeXml <InterfaceConfig> (XML_INTERFACE, true);  // From resources

                // Preload port types, because some ports use a letter but other a list of Meter IDs
                // Done here because Xml project has no reference to MTUComm ( cross references )
                List <string> portTypes;
                foreach (Mtu mtu in mtuTypes.Mtus)
                {
                    foreach (Port port in mtu.Ports)
                    {
                        bool isNumeric = MeterAux.GetPortTypes(port.Type, out portTypes);

                        if (!isNumeric)
                        {
                            port.TypeString = portTypes[0];
                        }
                        else
                        {
                            port.TypeString = meterTypes.FindByMterId(int.Parse(portTypes[0])).Type;
                        }

                        Utils.Print("MTU " + mtu.Id + ": Type " + port.TypeString);
                    }
                }

                // Regenerate certificate from base64 string
                Mobile.configData.GenerateCert();
                //Mobile.configData.LoadCertFromKeychain ();

                // Check global min date allowed
                if (!string.IsNullOrEmpty(Global.MinDate) &&
                    DateTime.Compare(DateTime.ParseExact(Global.MinDate, "MM/dd/yyyy", null), DateTime.Today) < 0)
                {
                    throw new DeviceMinDateAllowedException();
                }
            }
            catch (Exception e)
            {
                if (!avoidXmlError)
                {
                    if (Errors.IsOwnException(e))
                    {
                        throw e;
                    }
                    else if (e is FileNotFoundException)
                    {
                        throw new ConfigurationFilesNotFoundException();
                    }
                    else
                    {
                        throw new ConfigurationFilesCorruptedException();
                    }
                }
            }
        }
예제 #30
0
 private List <Alarm> GetIntervalAlarms(int id)
 {
     //Returns a list of all alarms that are created as interval alarms
     SortAlarms();
     return(AlarmList.Where(alarm => alarm.PartOfIntervalSet && alarm.IntervalSetId == id).ToList());
 }