public double GetPowerBase(int erid) { using (SecureDBEntities1 db = new SecureDBEntities1()) { tblPowerMeter meter = db.tblPowerMeter.Where(n => n.ERID == erid).FirstOrDefault(); int month = DateTime.Now.Month; if (month == 1) return meter.Power1MonthDailyAvg ?? 0; else if (month == 2) return meter.Power2MonthDailyAvg ?? 0; else if (month == 3) return meter.Power3MonthDailyAvg ?? 0; else if (month == 4) return meter.Power4MonthDailyAvg ?? 0; else if (month == 5) return meter.Power5MonthDailyAvg ?? 0; else if (month == 6) return meter.Water6MonthDailyAvg ?? 0; else if (month == 7) return meter.Water7MonthDailyAvg ?? 0; else if (month == 8) return meter.Power8MonthDailyAvg ?? 0; else if (month == 9) return meter.Power9MonthDailyAvg ?? 0; else if (month == 10) return meter.Power10MonthDailyAvg ?? 0; else if (month == 11) return meter.Power11MonthDailyAvg ?? 0; else return meter.Power12MonthDailyAvg ?? 0; } }
public CCTVManager(SecureService service) { this.service = service; SecureDBEntities1 db = new SecureDBEntities1(); var q = from n in db.tblCCTVConfig select n; foreach (tblCCTVConfig data in q) { ICCTV cctv=null ; if (data.Type == 1) //華電牌 利凌企業 LILIN cctv = new CCTV_TYPE1(data.CCTVID,data.CCTVName,data.PlaneID??0,data.IP, data.Port, data.UserName, data.Password,data.NVRID??-1,data.NVRChNO??-1,data.ScaleX,data.ScaleY,data.Rotation); else if(data.Type==2) cctv = new CCTV_TYPE2(data.CCTVID, data.CCTVName, data.PlaneID ?? 0, data.IP, data.Port, data.UserName, data.Password, data.NVRID ?? -1, data.NVRChNO ?? -1, data.ScaleX, data.ScaleY, data.Rotation); if(cctv!=null) dictCCTVs.Add(data.CCTVID, cctv); //cardreader.OnDoorEvent += cardreader_OnDoorEvent; //cardreader.OnAlarmEvent += cardreader_OnAlarmEvent; Console.WriteLine("加入CCTV:" + data.CCTVID); } //tmr = new System.Threading.Timer(OneMinTask); //tmr.Change(0, 1000 * 60); new System.Threading.Thread(TestConnectionTask).Start(); }
public void ScheduleChange(long schid) { SecureDBEntities1 db = new SecureDBEntities1(); if (list.ContainsKey(schid)) { tblSchConfig sch = db.tblSchConfig.Where(n => n.SchID == schid).FirstOrDefault(); if (sch == null || sch.Enable==false ) { list.Remove(schid); return; } list[schid] = new Schedule(sch); } else { tblSchConfig sch = db.tblSchConfig.Where(n => n.SchID == schid).FirstOrDefault(); if (sch == null) return; list.Add(schid, new Schedule(sch)); } }
public ItemGroupManager() { SecureDBEntities1 db = new SecureDBEntities1(); foreach (tblItemGroup tbl in db.tblItemGroup) { if(!dictItemGroups.ContainsKey(tbl.GroupID)) { ItemGroup itemgrp = new ItemGroup(tbl.PlaneID??0, tbl.GroupID, tbl.GroupName, SecureService.item_mgr); this.dictItemGroups.Add(tbl.GroupID, itemgrp); } } }
void FillItem() { SecureDBEntities1 db = new SecureDBEntities1(); var q = db.tblItemConfig.Where(n => n.tblItemGroup.PlaneID == PlaneID &&(n.Type=="AI" || n.Type=="DI")); System.Collections.Generic.List<Item> c = new List<Item>(); foreach (tblItemConfig tbl in q) { Item item = SecureService.item_mgr[tbl.ItemID]; if (item != null) c.Add(item); } Items = c.ToArray(); }
void FillItem() { SecureDBEntities1 db = new SecureDBEntities1(); var q= db.tblItemConfig.Where(n => n.GroupID == GroupID); System.Collections.Generic.List<Item> c = new List<Item>(); foreach (tblItemConfig tbl in q) { Item item = item_mgr[tbl.ItemID]; if (item != null) c.Add(item); } Items = c.ToArray(); }
public ScheduleManager() { SecureDBEntities1 db = new SecureDBEntities1(); var q = from n in db.tblSchConfig where n.Enable == true select n; foreach (tblSchConfig sch in q) { if (list.ContainsKey(sch.SchID)) continue; else list.Add(sch.SchID,new Schedule(sch)); } new System.Threading.Thread(CheckTask).Start(); }
public PowerMeterManager() { SecureDBEntities1 db=new SecureDBEntities1(); var q = from n in db.tblPowerMeter select n; foreach (tblPowerMeter tbl in q) { list.Add(new R23PowerMeter(tbl.ERID,tbl.RTU_IP,tbl.Port)); } // OneHourTmr_OnElapsed(null); new System.Threading.Thread(ReadingTask).Start(); OneHourTmr = new ExactIntervalTimer(10,0); OneHourTmr.OnElapsed += OneHourTmr_OnElapsed; }
// PowerControl[] controls = new PowerControl[2]; public PowerControlManager() { SecureDBEntities1 db = new SecureDBEntities1(); var q =from n in db.tblRemotePowerControl select n; foreach (tblRemotePowerControl tbl in q) { if(!dictPowerControl.ContainsKey(tbl.Inx)) { lock (dictPowerControl) dictPowerControl.Add(tbl.Inx,new PowerControl(tbl.Inx,tbl.DeviceName,tbl.IP,tbl.Port)); } } // GetAllPowerControlInfo(); //controls[0] = new PowerControl("10.21.223.20", 502); //controls[1] = new PowerControl("10.23.209.177", 502); }
public ItemManager() { SecureDBEntities1 db = new SecureDBEntities1(); var q = from n in db.tblItemConfig select n; foreach (tblItemConfig tblitem in q) { Item item = new Item(tblitem.ItemID, SecureService.rtu_mgr[tblitem.ControlID], tblitem.Type, tblitem); // item.Value = tblitem.Value ?? 0; Items.Add(tblitem.ItemID,item); item.ItemValueChanged += item_ItemValueChanged; item.ItemDegreeChanged += item_ItemDegreeChanged; } OneHourTmr = new ExactIntervalTimer(5, 0); OneHourTmr.OnElapsed += OneHourTmr_OnElapsed; // db.Dispose(); }
public PDManager() { SecureDBEntities1 db = new SecureDBEntities1(); var q = from n in db.tblPDConfig select n; Console.WriteLine("PD Manager Starting...."); foreach (tblPDConfig tbl in q) { if (!dictPDs.ContainsKey(tbl.PDName)) { if (tbl.type == 1 || tbl.type==2 || tbl.type==3 || tbl.type==4 || tbl.type==5|| tbl.type==6|| tbl.type==7) { try { PD pd = new PD(tbl.PDName, tbl.IP, (int)tbl.Port, tbl); //{ // ERID = tbl.ERID, // IP = tbl.IP, // NVRID = tbl.NVRID, // Password = tbl.Password, // PlaneID = tbl.PlaneID ?? 0, // Port = tbl.Port, // UserName = tbl.UserName //}; dictPDs.TryAdd(tbl.PDName, pd); Console.WriteLine("Add PD:" + tbl.PDName); } catch(Exception ex) { Console.WriteLine("PD Manager:"+ex.Message+","+ex.StackTrace); ;} } } } }
void TestConnectionTask() { while (true) { try { SecureDBEntities1 db = new SecureDBEntities1(); Ping ping = new Ping(); var q = db.tblCCTVConfig; foreach (tblCCTVConfig cctv in q) { try { if (ping.Send(cctv.IP).Status == IPStatus.Success) { if (cctv.Comm_state != 1) cctv.Comm_state = 1; } else { if (cctv.Comm_state != 0) cctv.Comm_state = 0; } } catch { ;} } try { db.SaveChanges(); } catch { ;} } catch { ;} finally { System.Threading.Thread.Sleep(60000); } } }
public NVRManager() { using (SecureDBEntities1 db = new SecureDBEntities1()) { var q = from n in db.tblNVRConfig select n; foreach (tblNVRConfig tbl in q) { if (!dictNvrs.ContainsKey(tbl.NVRID)) { if (tbl.Type == 1) { INVR nvr = new NVR_Type1() { ERID = tbl.ERID, IP = tbl.IP, NVRID = tbl.NVRID, Password = tbl.Password, PlaneID = tbl.PlaneID ?? 0, Port = tbl.Port, UserName = tbl.UserName }; dictNvrs.TryAdd(tbl.NVRID, nvr); Console.WriteLine("Add NVR:" + tbl.NVRName); } } } } new System.Threading.Thread(TestConnectionTask).Start(); }
void CheckDataChange(byte[] temp) { string description=""; if (data[0] == temp[0] && data[1] == temp[1]) { // Console.WriteLine("沒變化!"); return; } Console.WriteLine(this.PDName); SecureDBEntities1 db = new SecureDBEntities1(); tblPDConfig tblpd= db.tblPDConfig.Where(n=>n.PDName==this.PDName).FirstOrDefault(); if(tblpd==null) return; PDStatus d= new PDStatus(data); PDStatus t = new PDStatus(temp); if(tblPDConfig.R0!=-1) if (d.R0 != t.R0 ) { tblpd.R0 = t.R0; if (t.R0 == 0) //normal { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "R0", Timestamp = DateTime.Now, PDName = this.PDName, Status = 1}; db.tblPDAlarmLog.Add(log); } else //abnormal { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "R0", Timestamp = DateTime.Now, PDName = this.PDName, Status = 0, Memo = GetPDStatusDescription(0, tblpd), UserMemo=tblpd.Memo }; db.tblPDAlarmLog.Add(log); description += "R0 "+GetPDStatusDescription(0, tblpd); } } if (tblPDConfig.S0 != -1) if (d.S0 != t.S0) { tblpd.S0 = t.S0; if (t.S0 == 0) { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "S0", Timestamp = DateTime.Now, PDName = this.PDName, Status = 1 }; db.tblPDAlarmLog.Add(log); } else { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "S0", Timestamp = DateTime.Now, PDName = this.PDName, Status = 0, Memo = GetPDStatusDescription(0, tblpd), UserMemo = tblpd.Memo }; db.tblPDAlarmLog.Add(log); description += "S0 " + GetPDStatusDescription(0, tblpd); ; } } if (tblPDConfig.T0 != -1) if (d.T0 != t.T0 ) { tblpd.T0 =t.T0; if (t.T0 == 0) { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "T0", Timestamp = DateTime.Now, PDName = this.PDName, Status = 1 }; db.tblPDAlarmLog.Add(log); } else { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "T0", Timestamp = DateTime.Now, PDName = this.PDName, Status = 0, Memo = GetPDStatusDescription(0, tblpd), UserMemo = tblpd.Memo }; db.tblPDAlarmLog.Add(log); description += "T0 " + GetPDStatusDescription(0, tblpd); ; } } if (d.R1 != t.R1) { tblpd.R1 = t.R1; if (t.R1 == 0) { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "R1", Timestamp = DateTime.Now, PDName = this.PDName, Status = 1 }; db.tblPDAlarmLog.Add(log); } else { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "R1", Timestamp = DateTime.Now, PDName = this.PDName, Status = 0, Memo = GetPDStatusDescription(1, tblpd), UserMemo = tblpd.Memo }; db.tblPDAlarmLog.Add(log); description += "R1 "+GetPDStatusDescription(1, tblpd); } } if (d.S1 != t.S1) { tblpd.S1 = t.S1; if (t.S1 == 0) { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "S1", Timestamp = DateTime.Now, PDName = this.PDName, Status = 1 }; db.tblPDAlarmLog.Add(log); } else { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "S1", Timestamp = DateTime.Now, PDName = this.PDName, Status = 0, Memo = GetPDStatusDescription(1, tblpd), UserMemo = tblpd.Memo }; db.tblPDAlarmLog.Add(log); description += "S1 " + GetPDStatusDescription(1, tblpd); } } if (d.T1 != t.T1) { tblpd.T1 = t.T1; if (t.T1 == 0) { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "T1", Timestamp = DateTime.Now, PDName = this.PDName, Status = 1 }; db.tblPDAlarmLog.Add(log); } else { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "T1", Timestamp = DateTime.Now, PDName = this.PDName, Status = 0, Memo = GetPDStatusDescription(1, tblpd), UserMemo = tblpd.Memo }; db.tblPDAlarmLog.Add(log); description += "T1 " + GetPDStatusDescription(1, tblpd); } } if(tblPDConfig.L0!=-1) if (d.L0 != t.L0 ) { tblpd.L0 = t.L0; if (t.L0 == 0) { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "L0", Timestamp = DateTime.Now, PDName = this.PDName,Status=1 }; db.tblPDAlarmLog.Add(log); } else { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "L0", Timestamp = DateTime.Now, PDName = this.PDName, Status = 0, UserMemo = tblpd.Memo }; db.tblPDAlarmLog.Add(log); description += "L0 "; } } if (tblPDConfig.L1 != -1) if (d.L1 != t.L1) { tblpd.L1 = t.L1; if (t.L1 == 0) { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "L1", Timestamp = DateTime.Now, PDName = this.PDName,Status=1 }; db.tblPDAlarmLog.Add(log); } else { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "L1", Timestamp = DateTime.Now, PDName = this.PDName, Status = 0, UserMemo = tblpd.Memo }; db.tblPDAlarmLog.Add(log); description += "L1 "; } } if (tblPDConfig.L2 != -1) if (d.L2 != t.L2) { tblpd.L2 = t.L2; if (t.L2 == 0) { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "L2", Timestamp = DateTime.Now, PDName = this.PDName, Status = 1 }; db.tblPDAlarmLog.Add(log); } else { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "L2", Timestamp = DateTime.Now, PDName = this.PDName, Status = 0, UserMemo = tblpd.Memo }; db.tblPDAlarmLog.Add(log); description += "L2 "; } } if (tblPDConfig.L3 != -1) if (d.L3 != t.L3) { tblpd.L3 = t.L3; if (t.L3 == 0) { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "L3", Timestamp = DateTime.Now, PDName = this.PDName, Status = 1 }; db.tblPDAlarmLog.Add(log); } else { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "L3", Timestamp = DateTime.Now, PDName = this.PDName, Status = 0, UserMemo = tblpd.Memo }; db.tblPDAlarmLog.Add(log); description += "L3 "; } } if (tblPDConfig.L4 != -1) if (d.L4 != t.L4) { tblpd.L4 = t.L4; if (t.L4 == 0) { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "L4", Timestamp = DateTime.Now, PDName = this.PDName, Status = 1 }; db.tblPDAlarmLog.Add(log); } else { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "L4", Timestamp = DateTime.Now, PDName = this.PDName, Status = 0, UserMemo = tblpd.Memo }; db.tblPDAlarmLog.Add(log); description += "L4 "; } } if (d.Cabinet != t.Cabinet) { tblpd.Cabinet = t.Cabinet; if (t.Cabinet == 1) //close { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "Cabinet", Timestamp = DateTime.Now, PDName = this.PDName, Memo = "箱門關閉", Status = 1 }; db.tblPDAlarmLog.Add(log); } else //open { tblPDAlarmLog log = new tblPDAlarmLog() { PDItem = "Cabinet", Timestamp = DateTime.Now, PDName = this.PDName, Memo = "箱門開啟", Status = 0 }; db.tblPDAlarmLog.Add(log); if(description !="") description += "異常 " + "箱門開啟 "; else description += "箱門開啟 "; } } if (!description.Contains("箱門") && description != "") description += "異常"; if (description != "") { AlarmData alarmdata = new AlarmData() { TimeStamp = DateTime.Now, AlarmType = AlarmType.PD, ColorString = "Red", Description = description, // PlaneID = sender.PlaneID, IsForkCCTVEvent = false, PlaneName = this.tblPDConfig.PDName//Global.GetPlaneNameByPlaneID(this.PDName) }; try { Program.MyServiceObject.DispatchAlarmEvent(alarmdata); } catch { ;} } // Console.WriteLine("save change"); db.SaveChanges(); db.Dispose(); }
void ReadingTask() { byte[] tempdata = new byte[data.Length]; while (true) { try { if (RTUDevice!=null && RTUDevice.connected != IsConnected) { IsConnected = RTUDevice.connected; using( SecureDBEntities1 db = new SecureDBEntities1()) { tblPDConfig pdc = db.tblPDConfig.Where(n => n.PDName == this.PDName).FirstOrDefault(); if (pdc != null) { pdc.Comm_state = IsConnected ? 1 : 0; db.SaveChanges(); } db.tblPDAlarmLog.Add(new tblPDAlarmLog() { Timestamp = DateTime.Now, PDItem = "Comm_state", PDName = this.PDName, Status = IsConnected ? 1 : 0 , UserMemo=pdc.Memo}); db.SaveChanges(); } } if (RTUDevice != null && RTUDevice.connected) { lock (lockobj) { RTUDevice.ReadDiscreteInputs(1, 0, 0, 12, ref tempdata); if (tempdata == null) { Console.WriteLine(this.PDName + "讀取資料失敗"); reading_fail_cnt++; continue; } else reading_fail_cnt = 0; if ((tblPDConfig.type ?? 1) == 2) //R11 { for (int i = 0; i < tempdata.Length; i++) tempdata[i] = (byte)(~tempdata[i]); System.Collections.BitArray baryD = new System.Collections.BitArray(new byte[2]); System.Collections.BitArray baryS = new System.Collections.BitArray(tempdata); baryD.Set(0, baryS.Get(4)); //r0 baryD.Set(1, baryS.Get(5)); //s0 baryD.Set(2, baryS.Get(6)); // t0 baryD.Set(3, baryS.Get(0)); //r1 baryD.Set(4, baryS.Get(1)); //s1 baryD.Set(5, baryS.Get(2)); //t1 baryD.Set(6, baryS.Get(7)); // L0 baryD.Set(7, baryS.Get(8)); // L1 baryD.Set(8, baryS.Get(9)); // L2 baryD.Set(9, baryS.Get(10)); // L3 baryD.Set(10, baryS.Get(11)); // L4 baryD.Set(11, baryS.Get(3)); // cab baryD.CopyTo(tempdata, 0); } else if((tblPDConfig.type ?? 1) == 7) { //for (int i = 0; i < tempdata.Length; i++) // tempdata[i] = (byte)(~tempdata[i]); System.Collections.BitArray baryD = new System.Collections.BitArray(new byte[2]); System.Collections.BitArray baryS = new System.Collections.BitArray(tempdata); baryD.Set(0, baryS.Get(4)); //r0 baryD.Set(1, baryS.Get(5)); //s0 baryD.Set(2, baryS.Get(6)); // t0 baryD.Set(3, baryS.Get(0)); //r1 baryD.Set(4, baryS.Get(1)); //s1 baryD.Set(5, baryS.Get(2)); //t1 baryD.Set(6, baryS.Get(7)); // L0 baryD.Set(7, baryS.Get(8)); // L1 baryD.Set(8, baryS.Get(9)); // L2 baryD.Set(9, baryS.Get(10)); // L3 baryD.Set(10, baryS.Get(11)); // L4 baryD.Set(11, !baryS.Get(3)); // cab baryD.CopyTo(tempdata, 0); } else if ((tblPDConfig.type ?? 1) == 5) //R13 { for (int i = 0; i < tempdata.Length; i++) tempdata[i] = (byte)(~tempdata[i]); System.Collections.BitArray baryD = new System.Collections.BitArray(new byte[2]); System.Collections.BitArray baryS = new System.Collections.BitArray(tempdata); baryD.Set(0, baryS.Get(4)); //r0 baryD.Set(1, baryS.Get(5)); //s0 baryD.Set(2, baryS.Get(6)); // t0 baryD.Set(3, baryS.Get(0)); //r1 baryD.Set(4, baryS.Get(1)); //s1 baryD.Set(5, baryS.Get(2)); //t1 baryD.Set(6, baryS.Get(7)); // L0 baryD.Set(7, baryS.Get(8)); // L1 baryD.Set(8, baryS.Get(9)); // L2 baryD.Set(9, baryS.Get(10)); // L3 baryD.Set(10, baryS.Get(11)); // L4 baryD.Set(11, !baryS.Get(3)); // cab baryD.CopyTo(tempdata, 0); } else if ((tblPDConfig.type ?? 1) == 3) //R12 { for (int i = 0; i < tempdata.Length; i++) tempdata[i] = (byte)(~tempdata[i]); System.Collections.BitArray baryD = new System.Collections.BitArray(new byte[2]); System.Collections.BitArray baryS = new System.Collections.BitArray(tempdata); baryD.Set(0, baryS.Get(6)); //r0 baryD.Set(1, baryS.Get(7)); //s0 baryD.Set(2, baryS.Get(8)); // t0 baryD.Set(3, baryS.Get(0)); //r1 baryD.Set(4, baryS.Get(1)); //s1 baryD.Set(5, baryS.Get(2)); //t1 baryD.Set(6, baryS.Get(9)); // L0 baryD.Set(7, baryS.Get(10)); // L1 baryD.Set(8, baryS.Get(11)); // L2 //baryD.Set(9, 0baryS.Get(10)); // L3 //baryD.Set(10,0 baryS.Get(11)); // L4 baryD.Set(11, baryS.Get(3) && baryS.Get(4) && baryS.Get(5)); // cab baryD.CopyTo(tempdata, 0); } else if ((tblPDConfig.type ?? 1) == 4) //R23 T74 { System.Collections.BitArray baryD = new System.Collections.BitArray(tempdata); baryD.Set(11,! baryD.Get(11)); baryD.CopyTo(tempdata, 0); } else if ((tblPDConfig.type ?? 1) == 6) { System.Collections.BitArray bard = new System.Collections.BitArray(tempdata); for (int i = 0; i < 11; i++) bard.Set(i, !bard.Get(i)); bard.CopyTo(tempdata, 0); } // RTUDevice.ReadHoldingRegister((ushort)this.DevID, (byte)255, (ushort)(StartAddress - 1), this.RegisterLength, ref tempdata); if (tempdata != null && tempdata.Length != 0) { CheckDataChange(tempdata); System.Array.Copy(tempdata, data, 2); //for (int i = 0; i < tempdata.Length; i++) //{ // data[i] = tempdata[i]; //} } } } } catch (Exception ex) { Console.WriteLine(this.PDName+","+((tempdata==null)?"突然斷線":ex.Message) + "," + ex.StackTrace); } finally { System.Threading.Thread.Sleep(1000); } } }
void item_ItemValueChanged(Item sender, double NewValue) { SecureDBEntities1 db = new SecureDBEntities1(); try { tblItemConfig tbl = db.tblItemConfig.Where(n => n.ItemID == sender.ItemID).FirstOrDefault(); if (tbl != null) tbl.Value = NewValue; db.SaveChanges(); } catch (Exception ex) { Console.WriteLine(ex.Message + "," + ex.StackTrace); } finally { db.Dispose(); } if(Program.MyServiceObject!=null) Program.MyServiceObject.DispatchItemValueChangedEvent(sender.ToBindingData()); }
public CardReaderManager(SecureService service) { try { this.serivce = service; SecureDBEntities1 db = new SecureDBEntities1(); var q = from n in db.tblControllerConfig where (n.ControlType == 2 || n.ControlType == 1) && n.IsEnable == true select n; foreach (tblControllerConfig data in q) { int nvrid = -1, nvrchano = -1; if (data.TriggerCCTVID != null ) { nvrid = SecureService.cctv_mgr[(int)data.TriggerCCTVID].NVRID; nvrchano = SecureService.cctv_mgr[(int)data.TriggerCCTVID].NVRChNo; } ICardReader cardreader = new CardReader(data.ControlID, data.IP, data.ERID, (int)data.PlaneID, data.TriggerCCTVID ?? -1, nvrid, nvrchano,data.Comm_state==1?true:false); dictCardReaders.TryAdd(data.ControlID, cardreader); dictIp_CardReader.Add(data.IP, cardreader); cardreader.OnDoorEvent += cardreader_OnDoorEvent; // cardreader.OnAlarmEvent += cardreader_OnAlarmEvent; cardreader.OnStatusChanged += cardreader_OnStatusChanged; Console.WriteLine("加入卡機:" + data.ControlID); } // ServerScoket = new ClassSockets.ServerSocket(); ServerScoket.OnRead += new ServerSocket.ConnectionDelegate(Server_OnRead); if (ServerScoket.Active()) Console.WriteLine("Card Reader Server Socket is Listening!"); else Console.WriteLine("Card Reader Server Socket is not Listening!"); Task.Run(new Action(OneMinTask)); //tmr = new System.Threading.Timer(OneMinTask); //tmr.Change(0, 1000 * 60); this.LoadSystemParameter(); this.SendAllReaderParameter(); // DownloadSuperPassword(); } catch (Exception ex) { Console.WriteLine(ex.Message + "," + ex.StackTrace); } }
void rtu_OnCommStateChanged(ModbusTCP.IRTU sender, int comm_state) { SecureDBEntities1 db = new SecureDBEntities1(); tblControllerConfig ctl= db.tblControllerConfig.Where(n => n.ControlID == sender.ControlID).FirstOrDefault(); if (ctl != null) { ctl.Comm_state = comm_state; db.tblDeviceStateLog.Add( new tblDeviceStateLog() { TypeID=10, TypeCode=(short)comm_state, TimeStamp=DateTime.Now, ControlID=sender.ControlID } ); db.SaveChanges(); } db.Dispose(); //throw new NotImplementedException(); }
public void LoadSystemParameter() { SecureDBEntities1 db = new SecureDBEntities1(); //tblSysParameter tbl= db.tblSysParameter.FirstOrDefault(); //if (tbl == null) // return; //開門延時偵測警報時間 tblSysParameter tbl=db.tblSysParameter.Where(n=>n.SysID==4).FirstOrDefault(); if (tbl != null) { this.DoorOpenAlarmTime= System.Convert.ToInt32(tbl.VariableValue); } //電磁鎖回復時間 tbl = db.tblSysParameter.Where(n => n.SysID== 1).FirstOrDefault(); if (tbl != null) { this.OpenDoorAutoCloseTime = System.Convert.ToInt32(tbl.VariableValue); } //異常入侵 tbl = db.tblSysParameter.Where(n => n.SysID == 5).FirstOrDefault(); if (tbl != null) { this.EventIntrusionAlarm = tbl.VariableValue=="Y"; } //超過某時段未關門警告 tbl = db.tblSysParameter.Where(n => n.SysID == 6).FirstOrDefault(); if (tbl != null) { this.EventDoorOpenOverTimeAlarm = tbl.VariableValue == "Y"; } //無效卡讀卡超次警告 tbl = db.tblSysParameter.Where(n => n.SysID == 7).FirstOrDefault(); if (tbl != null) { this.EventInvalidCardAlarm = tbl.VariableValue == "Y"; } //讀卡機遇外力破壞或拆機警告 tbl = db.tblSysParameter.Where(n => n.SysID == 8).FirstOrDefault(); if (tbl != null) { this.EventExternalForceAlarm = tbl.VariableValue == "Y"; } //開門(電磁鎖開啟/鐵捲門開啟) tbl = db.tblSysParameter.Where(n => n.SysID == 9).FirstOrDefault(); if (tbl != null) { this.EventDoorOpenAlarm = tbl.VariableValue == "Y"; } SendAllReaderParameter(); }
public CardReaderManager(SecureService service) { try { this.serivce = service; SecureDBEntities1 db = new SecureDBEntities1(); var q = from n in db.tblControllerConfig where (n.ControlType == 2 || n.ControlType == 1) && n.IsEnable == true select n; foreach (tblControllerConfig data in q) { int nvrid = -1, nvrchano = -1; // if (data.TriggerCCTVID != null) // { //#if R13 // nvrid = SecureService.cctv_mgr[(int)data.TriggerCCTVID].NVRID; // nvrchano = SecureService.cctv_mgr[(int)data.TriggerCCTVID].NVRChNo; //#endif // } ICardReader cardreader = new CardReader23(data.ControlID, data.IP, data.ERID, (int)data.PlaneID, data.TriggerCCTVID ?? -1, nvrid, nvrchano, data); dictCardReaders.TryAdd(data.ControlID, cardreader); dictIp_CardReader.Add(data.IP, cardreader); if(!dictAdam_CardReader.ContainsKey(data.R23_ADAM)) dictAdam_CardReader.Add(data.R23_ADAM, cardreader); cardreader.OnDoorEvent += cardreader_OnDoorEvent; // cardreader.OnAlarmEvent += cardreader_OnAlarmEvent; cardreader.OnStatusChanged += cardreader_OnStatusChanged; Console.WriteLine("加入卡機:" + data.ControlID); } // RoomClient.RoomClient.RoomEvent += RoomClient_RoomEvent; //ServerScoket = new ClassSockets.ServerSocket(); //ServerScoket.OnRead += new ServerSocket.ConnectionDelegate(Server_OnRead); //if (ServerScoket.Active()) // Console.WriteLine("Card Reader Server Socket is Listening!"); //else // Console.WriteLine("Card Reader Server Socket is not Listening!"); Task.Run(new Action(OneMinTask)); //tmr = new System.Threading.Timer(OneMinTask); //System.Timers.Timer tmr = new System.Timers.Timer(3000); //tmr.Elapsed += (s, e) => // { // System.Console.Beep(); // }; //tmr.Start(); //===============2015/12/8======================== //this.LoadSystemParameter(); // this.SendAllReaderParameter(); } catch (Exception ex) { Console.WriteLine(ex.Message + "," + ex.StackTrace); } }
//void DownloadSuperPassword() //{ // SecureDBEntities1 db = new SecureDBEntities1(); // DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); // tblPasswordEveryDayDifference tbl = (from n in db.tblPasswordEveryDayDifference // where n.Timestamp // == dt // select n).FirstOrDefault(); // if (tbl == null) // return; // foreach (CardReader reader in dictCardReaders.Values) // { // try // { // if (reader.IsConnected) // { // reader.SetSuperOpenDoorPassword(int.Parse(tbl.DoorPassword)); // Console.WriteLine(reader.ControllerID + "設定每日開門密碼成功"); // db.tblEngineRoomLog.Add( // new tblEngineRoomLog() // { // ControlID = reader.ControllerID, // Result = 0, // StartTime = DateTime.Now, // ABA = "0", // TypeID = 8, // TypeCode = 40, // Memo = tbl.DoorPassword // } // ); // } // } // catch (Exception ex) // { // Console.WriteLine(ex.Message + "," + ex.StackTrace); // } // } // db.SaveChanges(); //} void CheckAndGenerateDailySuperPassword() { #if R23 return; #endif bool haschanges = false; using (SecureDBEntities1 db = new SecureDBEntities1()) { Random rnd = new Random(); var q = from n in db.tblControllerConfig where n.ControlType == 1 && n.IsEnable == true select n; DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0); foreach (tblControllerConfig control in q) { tblPasswordEveryDayDifference tbl = (from n in db.tblPasswordEveryDayDifference where n.Timestamp == dt && n.ControlID == control.ControlID select n).FirstOrDefault(); if (tbl == null) { int passwd = rnd.Next(0, 10000); string pwdString = passwd.ToString("0000"); // tblERDoorPassword tbl1 = //foreach (CardReader reader in dictCardReaders.Values) //{ try { ICardReader reader = dictCardReaders[control.ControlID]; reader.SetSuperOpenDoorPassword(passwd); Console.WriteLine(reader.ControllerID + "設定每日開門密碼成功"); db.tblPasswordEveryDayDifference.Add(new tblPasswordEveryDayDifference() { Timestamp = dt, DoorPassword = passwd.ToString("0000"), ControlID = control.ControlID }); db.tblEngineRoomLog.Add( new tblEngineRoomLog() { ControlID = reader.ControllerID, Result = 0, StartTime = DateTime.Now, ABA = "0", TypeID = 8, TypeCode = 40, Memo = pwdString } ); haschanges = true; } catch (Exception ex) { Console.WriteLine(ex.Message + "," + ex.StackTrace); } //} } } if (haschanges) { Console.WriteLine("開始寫入每日密碼!"); db.SaveChanges(); } } }
void item_ItemDegreeChanged(Item sender, int? NewValue) { SecureDBEntities1 db = new SecureDBEntities1(); if (NewValue == 2 && sender.AlarmMode=="Y") { AlarmData data=new AlarmData() { TimeStamp = DateTime.Now, AlarmType = AlarmType.RTU, ColorString = "Red", Description = sender.ItemConfig.ItemName+"警報", PlaneID = sender.PlaneID, IsForkCCTVEvent = false, PlaneName =Global.GetPlaneNameByPlaneID(sender.PlaneID) // CCTVBindingData =cctv.ToBindingData( }; if(!(sender.ItemConfig.Suppress??false)) Program.MyServiceObject.DispatchAlarmEvent(data); int typecode = 0; switch(sender.ItemType) { case "AI": typecode=3; break; case "DI": typecode=0; break; } tblAlarmLog tblalarmlog = new tblAlarmLog() { ControlID = sender.ItemConfig.ControlID, ItemID = sender.ItemID, Timestamp = DateTime.Now, TypeID = 5, TypeCode = (short)typecode, Value = sender.Value }; db.tblAlarmLog.Add(tblalarmlog); } else if (NewValue == 1 && sender.ItemType == "AI" && sender.AlarmMode == "Y") { int typecode = 0; switch (sender.ItemType) { case "AI": typecode = 2; break; //case "DI": // typecode = 1; // break; } tblAlarmLog tblalarmlog = new tblAlarmLog() { ControlID = sender.ItemConfig.ControlID, ItemID = sender.ItemID, Timestamp = DateTime.Now, TypeID = 5, TypeCode = (short)typecode, Value = sender.Value }; db.tblAlarmLog.Add(tblalarmlog); } if (NewValue == 0) { sender.ItemConfig.Suppress = false; tblItemConfig item = db.tblItemConfig.Where(n => n.ItemID == sender.ItemID).FirstOrDefault(); if (item != null) item.Suppress = false; } if( NewValue==0 && sender.AlarmMode=="Y") { int typecode=0; switch(sender.ItemType) { case "AI": typecode=4; break; case "DI": typecode=1; break; } tblAlarmLog tblalarmlog = new tblAlarmLog() { ControlID = sender.ItemConfig.ControlID, ItemID = sender.ItemID, Timestamp = DateTime.Now, TypeID = 5, TypeCode = (short)typecode, Value = sender.Value }; db.tblAlarmLog.Add(tblalarmlog); } tblItemConfig tbl = db.tblItemConfig.Where(n => n.ItemID == sender.ItemID).FirstOrDefault(); if (tbl != null) { tbl.Degree = NewValue; } db.SaveChanges(); db.Dispose(); }
public void CheckSchedule() { if (config.SchType == 0) //執行一次 { if (DateTime.Now >= config.StartTime && config.NextStartTime==null) { config.NextStartTime = config.StartTime; SecureServer.SecureDBEntities1 db = new SecureDBEntities1(); tblSchConfig sch= db.tblSchConfig.Where(n => n.SchID == config.SchID).FirstOrDefault(); if (sch != null) { sch.NextStartTime = config.NextStartTime; // sch.Enable = false; db.SaveChanges(); } try { ReportAutoPrint.ReportServer.PrintRoport(config.ReportID); Console.WriteLine("invoke rptid:" + config.ReportID); tblSchLog log = new tblSchLog() { TimeStamp = DateTime.Now, ReportID = sch.ReportID, SchID = sch.SchID, Result = true }; db.tblSchLog.Add(log); db.SaveChanges(); } catch (Exception ex) { tblSchLog log = new tblSchLog() { TimeStamp = DateTime.Now, ReportID = sch.ReportID, SchID = sch.SchID, Result = false,Memo=ex.Message }; db.tblSchLog.Add(log); db.SaveChanges(); } db.Dispose(); } } else if (config.SchType == 1)//重複執行 { DayOfWeek dayofweek = DateTime.Now.DayOfWeek; double diffmin=DiffMin( ); if(diffmin >=0 && diffmin < 10) DoRepeatSched(); return; if(dayofweek== DayOfWeek.Sunday && config.Week1==true && diffmin >=0 && diffmin < 10) DoRepeatSched(); else if(dayofweek== DayOfWeek.Monday && config.Week2==true && diffmin >=0 && diffmin < 10) DoRepeatSched(); else if(dayofweek== DayOfWeek.Tuesday && config.Week3==true && diffmin >=0 && diffmin < 10) DoRepeatSched(); else if (dayofweek == DayOfWeek.Wednesday&& config.Week4 == true && diffmin >= 0 && diffmin < 10) DoRepeatSched(); else if (dayofweek == DayOfWeek.Thursday && config.Week5 == true && diffmin >= 0 && diffmin < 10) DoRepeatSched(); else if (dayofweek == DayOfWeek.Friday && config.Week6 == true && diffmin >= 0 && diffmin < 10) DoRepeatSched(); else if (dayofweek == DayOfWeek.Saturday && config.Week7 == true && diffmin >= 0 && diffmin < 10) DoRepeatSched(); } }
void cardreader_OnStatusChanged(ICardReader reader, CardReaderEventReport rpt) { try { if (rpt.Status == (int)CardReaderStatusEnum.卡號連續錯誤 && this.EventInvalidCardAlarm || rpt.Status == (int)CardReaderStatusEnum.外力破壞 && this.EventExternalForceAlarm || rpt.Status == (int)CardReaderStatusEnum.異常入侵 && this.EventIntrusionAlarm || rpt.Status == (int)CardReaderStatusEnum.開門超時 && this.EventDoorOpenOverTimeAlarm || rpt.Status == (int)CardReaderStatusEnum.開鎖 && this.EventDoorOpenAlarm || rpt.Status == (int)CardReaderStatusEnum.號碼錯誤 && this.R23InvalidCardAlarm ) { if (this.OnAlarmEvent != null) { ICCTV cctv = (ICCTV)SecureService.cctv_mgr[reader.TriggerCCTVID]; AlarmData data = new AlarmData() { TimeStamp = DateTime.Now, AlarmType = AlarmType.Secure, ColorString = "Red", Description = reader.ControllerID + "," + rpt.StatusString, PlaneID = reader.PlaneID, IsForkCCTVEvent = true, PlaneName = Global.GetPlaneNameByPlaneID(reader.PlaneID), CCTVBindingData = cctv!=null?cctv.ToBindingData():null }; this.OnAlarmEvent(reader, data); } } if (rpt.Status == (int)CardReaderStatusEnum.開鎖 || rpt.Status == (int)CardReaderStatusEnum.按鈕開門 || rpt.Status == (int)CardReaderStatusEnum.密碼開門 || rpt.Status == (int)CardReaderStatusEnum.系統開門 || rpt.Status == (int)CardReaderStatusEnum.異常入侵 || rpt.Status == (int)CardReaderStatusEnum.開門超時) { SecureDBEntities1 db = new SecureDBEntities1(); tblEngineRoomLog log = new tblEngineRoomLog() { ControlID = reader.ControllerID, ABA = rpt.CardNo.ToString(), StartTime = DateTime.Now, TypeID = 8, Memo = rpt.StatusString, TypeCode = (short)rpt.Status, ERNo = reader.PlaneID.ToString() }; db.tblEngineRoomLog.Add( log ); db.SaveChanges(); //開門錄影 if (rpt.Status == (int)CardReaderStatusEnum.開鎖 || rpt.Status == (int)CardReaderStatusEnum.按鈕開門 || rpt.Status == (int)CardReaderStatusEnum.密碼開門 || rpt.Status == (int)CardReaderStatusEnum.系統開門) { if (reader.NVRID == -1) return; #region 擷取錄影 #if R23 #else Task task = Task.Factory.StartNew(() => { DateTime dt = DateTime.Now; System.Threading.Thread.Sleep(1000 * 20); long flowid = log.FlowID; Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("nvrid:" + reader.NVRID); try { NVR.INVR nvr = SecureService.nvr_mgr[reader.NVRID]; if (nvr == null) { Console.WriteLine(reader.NVRID + " is null"); return; } bool success = nvr.SaveRecord( // reader.NVRChNo, dt.AddSeconds(-10), dt.AddSeconds(10), @"C:\web\Secure\ClientBin\VideoRecord\" + flowid + ".avi"); reader.NVRChNo, dt.AddSeconds(-10), dt.AddSeconds(10), @"E:\web\Secure\ClientBin\VideoRecord\" + flowid + ".avi"); //bool success = nvr.SaveRecord( //reader.NVRChNo, dt.AddSeconds(-10), dt.AddSeconds(10), @"D:\" + flowid + ".avi"); log.NVRFile = flowid + ".wmv"; db.SaveChanges(); Console.WriteLine(success); } catch (Exception ex) { Console.WriteLine(ex.Message + "," + ex.StackTrace); } finally { Console.ResetColor(); } }); #endif #endregion } if (this.serivce != null && reader.TriggerCCTVID != 0) { if (InOperationCCTV.Where(n => n == reader.TriggerCCTVID).Count() > 0) { Task.Factory.StartNew(() => { try { Console.WriteLine("Trigger " + reader.TriggerCCTVID); SecureService.cctv_mgr[reader.TriggerCCTVID].Preset(2); System.Threading.Thread.Sleep(1000 * 10); SecureService.cctv_mgr[reader.TriggerCCTVID].Preset(1); } catch (Exception ex) { Console.WriteLine("May be trigger cctv not found" + ex.Message + "," + ex.StackTrace); } InOperationCCTV.Remove(reader.TriggerCCTVID); }); } } } if (rpt.Status == (int)CardReaderStatusEnum.號碼錯誤 || rpt.Status == (int)CardReaderStatusEnum.卡號連續錯誤 || rpt.Status == (int)CardReaderStatusEnum.外力破壞 ) { SecureDBEntities1 db = new SecureDBEntities1(); db.tblEngineRoomLog.Add( new tblEngineRoomLog() { ControlID = reader.ControllerID, ABA = rpt.CardNo.ToString(), StartTime = DateTime.Now, TypeID = 8, Memo = rpt.StatusString, TypeCode = (short)rpt.Status, ERNo = reader.PlaneID.ToString() } ); db.SaveChanges(); } } catch (Exception ex) { Console.WriteLine("CardManager OnStatus Change:" + ex.Message + "," + ex.StackTrace); } }
void OneHourTmr_OnElapsed(object sender) { DateTime dt=DateTime.Now; dt= dt.AddMinutes(-dt.Minute).AddSeconds(-dt.Second).AddMilliseconds(-dt.Millisecond); using (SecureDBEntities1 db1 = new SecureDBEntities1()) { foreach (Item item in Items.Values) { try { if (item.ItemType == "AI" && item.IsConnected ) { tblAIItem1HourLog tbl = new tblAIItem1HourLog() { ItemID = item.ItemID, Value = item.Value, Timestamp = dt, Memo=item.ItemConfig.Lable }; db1.tblAIItem1HourLog.Add(tbl); db1.SaveChanges(); } } catch { ;} } } //throw new NotImplementedException(); }
public RTUManager() { SecureDBEntities1 db = new SecureDBEntities1(); var q = from n in db.tblControllerConfig where n.IsEnable == true &&( n.ControlType == 3 || n.ControlType==5 || n.ControlType==6 || n.ControlType==7 || n.ControlType==8 || n.ControlType==9||n.ControlType==10) select n; //RTU control type=3 8: for TowerRTU //var q = from n in db.tblControllerConfig where n.ControlID == "AC-RTU-1" && n.ControlType == 3 && n.IsEnable==true select n; foreach (tblControllerConfig tbl in q) { ModbusTCP.IRTU rtu = null; ; if (tbl.ControlType == 3) //normal rtu { rtu = new ModbusTCP.RTU(tbl.ControlID, 1, tbl.IP, tbl.Port, (int)tbl.RTUBaseAddress, (int)tbl.RTURegisterLength, tbl.Comm_state ?? 0); rtu.OnCommStateChanged += rtu_OnCommStateChanged; } else if(tbl.ControlType==5) { rtu = new SecureServer.RTU.R23AdamRTU(tbl.ControlID, 1, tbl.IP, tbl.Port, (int)tbl.RTUBaseAddress, (int)tbl.RTURegisterLength, tbl.Comm_state ?? 0,tbl.R23_ADAM ); rtu.OnCommStateChanged += rtu_OnCommStateChanged; } else if (tbl.ControlType == 6) { rtu = new SecureServer.RTU.R13SmrRTU(tbl.ControlID, 1, tbl.IP, tbl.Port, (int)tbl.RTUBaseAddress, (int)tbl.RTURegisterLength, tbl.Comm_state ?? 0 ); rtu.OnCommStateChanged += rtu_OnCommStateChanged; } else if (tbl.ControlType == 7) //IED { int devid = 1; if (tbl.Port == 503) devid = 2; rtu = new SecureServer.RTU.R13IEDRTU(tbl.ControlID, devid, tbl.IP, tbl.Port, (int)tbl.RTUBaseAddress, (int)tbl.RTURegisterLength, tbl.Comm_state ?? 0); rtu.OnCommStateChanged += rtu_OnCommStateChanged; } else if (tbl.ControlType == 8) //TowerRTU { rtu = new SecureServer.RTU.R13TowerRTU(tbl.ControlID, 1, tbl.IP, tbl.Port, (int)tbl.RTUBaseAddress, (int)tbl.RTURegisterLength, tbl.Comm_state ?? 0); rtu.OnCommStateChanged += rtu_OnCommStateChanged; } else if (tbl.ControlType == 9) //rtu device id=3 { rtu = new SecureServer.RTU.R13BatteryPackRTU(tbl.ControlID, 1, tbl.IP, tbl.Port, (int)tbl.RTUBaseAddress, (int)tbl.RTURegisterLength, tbl.Comm_state ?? 0); rtu.OnCommStateChanged += rtu_OnCommStateChanged; //rtu = new ModbusTCP.RTU(tbl.ControlID, 3, tbl.IP, tbl.Port, (int)tbl.RTUBaseAddress, (int)tbl.RTURegisterLength, tbl.Comm_state ?? 0); //rtu.OnCommStateChanged += rtu_OnCommStateChanged; } else if (tbl.ControlType == 10) //rtu device id=3 { rtu = new SecureServer.RTU.R13NewSmrRTU(tbl.ControlID, 1, tbl.IP, tbl.Port, (int)tbl.RTUBaseAddress, (int)tbl.RTURegisterLength, tbl.Comm_state ?? 0); rtu.OnCommStateChanged += rtu_OnCommStateChanged; } if (!dictRTUs.ContainsKey(tbl.ControlID)) { dictRTUs.Add(tbl.ControlID, rtu); Console.WriteLine("Add RTU" + rtu.ControlID + ",base:" + tbl.RTUBaseAddress + ",Length:" + tbl.RTURegisterLength); } } db.Dispose(); }
//void cardreader_OnAlarmEvent(CardReader reder, AlarmData alarmdata) //{ // if (this.OnAlarmEvent != null) // this.OnAlarmEvent(reder, alarmdata); //} void cardreader_OnDoorEvent(ICardReader reader, DoorEventType enumEventType) { if (this.OnDoorEvent != null) { try { this.OnDoorEvent(reader, enumEventType); } catch { ;} } if (enumEventType == DoorEventType.Connected) { SecureDBEntities1 db = new SecureDBEntities1(); tblControllerConfig config = db.tblControllerConfig.Where(n => n.ControlID == reader.ControllerID).FirstOrDefault(); if (config != null) config.Comm_state = 1; tblEngineRoomLog log = new tblEngineRoomLog() { ControlID = reader.ControllerID, ABA = "0", StartTime = DateTime.Now, TypeID = 8, TypeCode = 31, Result = 1 }; db.tblEngineRoomLog.Add(log); db.SaveChanges(); db.Dispose(); AlarmData data = new AlarmData() { TimeStamp = DateTime.Now, AlarmType = AlarmType.Secure, ColorString = "Green", Description = reader.ControllerID + "復線", PlaneID = reader.PlaneID, IsForkCCTVEvent = false, PlaneName = Global.GetPlaneNameByPlaneID(reader.PlaneID) // CCTVBindingData =cctv.ToBindingData( }; Program.MyServiceObject.DispatchAlarmEvent(data); this.DownloadSuperPassword(reader.ControllerID); } if (enumEventType == DoorEventType.DisConnected) { SecureDBEntities1 db = new SecureDBEntities1(); tblControllerConfig config = db.tblControllerConfig.Where(n => n.ControlID == reader.ControllerID).FirstOrDefault(); if (config != null) config.Comm_state = 0; tblEngineRoomLog log=new tblEngineRoomLog(){ ControlID=reader.ControllerID, ABA="0", StartTime=DateTime.Now, TypeID=8, TypeCode=30, Result=0}; db.tblEngineRoomLog.Add(log); db.SaveChanges(); db.Dispose(); AlarmData data = new AlarmData() { TimeStamp = DateTime.Now, AlarmType = AlarmType.Secure, ColorString = "Red", Description = reader.ControllerID + "斷線警報", PlaneID = reader.PlaneID, IsForkCCTVEvent = false, PlaneName = Global.GetPlaneNameByPlaneID(reader.PlaneID) // CCTVBindingData =cctv.ToBindingData( }; Program.MyServiceObject.DispatchAlarmEvent(data); } }
public void LoadSystemParameter() { SecureDBEntities1 db = new SecureDBEntities1(); //tblSysParameter tbl= db.tblSysParameter.FirstOrDefault(); //if (tbl == null) // return; //開門延時偵測警報時間 tblSysParameter tbl = db.tblSysParameter.Where(n => n.SysID == 1).FirstOrDefault(); if (tbl != null) { this.RemoOpenTimeR23 = System.Convert.ToInt32(tbl.VariableValue); } tbl = db.tblSysParameter.Where(n => n.SysID == 2).FirstOrDefault(); if (tbl != null) { this.DelayTimeR23 = System.Convert.ToInt32(tbl.VariableValue); } tbl = db.tblSysParameter.Where(n => n.SysID == 3).FirstOrDefault(); if (tbl != null) { this.LoopErrorAlarmTimeR23 = System.Convert.ToInt32(tbl.VariableValue); } tbl = db.tblSysParameter.Where(n => n.SysID == 4).FirstOrDefault(); if (tbl != null) { this.AlarmTimeR23 = System.Convert.ToInt32(tbl.VariableValue); } SendAllReaderParameter(); }
void DoRepeatSched() { using (SecureDBEntities1 db = new SecureDBEntities1()) { tblSchConfig sch = db.tblSchConfig.Where(n => n.SchID == config.SchID).FirstOrDefault(); if (sch.NextStartTime == null || ((DateTime)sch.NextStartTime).DayOfWeek != DateTime.Now.DayOfWeek) { try { ReportAutoPrint.ReportServer.PrintRoport(config.ReportID); Console.WriteLine("invoke rptid:" + config.ReportID); tblSchLog log = new tblSchLog() { TimeStamp = DateTime.Now, ReportID = sch.ReportID, SchID = sch.SchID, Result = true }; db.tblSchLog.Add(log); // db.SaveChanges(); } catch (Exception ex) { tblSchLog log = new tblSchLog() { TimeStamp = DateTime.Now, ReportID = sch.ReportID, SchID = sch.SchID, Result = false ,Memo=ex.Message}; db.tblSchLog.Add(log); // db.SaveChanges(); } Console.WriteLine("Do report:" + config.ReportID); sch.NextStartTime = DateTime.Now; db.SaveChanges(); } } }
void DownloadSuperPassword(string readerID) { SecureDBEntities1 db = new SecureDBEntities1(); DateTime dt = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); tblERDoorPassword tbl = (from n in db.tblERDoorPassword where n.Timestamp == dt select n).FirstOrDefault(); if (tbl == null) return; dictCardReaders[readerID].SetSuperOpenDoorPassword(int.Parse(tbl.DoorPassword)); db.tblEngineRoomLog.Add( new tblEngineRoomLog() { ControlID = readerID,//reader.ControllerID, Result = 0, StartTime = DateTime.Now, ABA = "0", TypeID = 8, TypeCode = 40, Memo = tbl.DoorPassword } ); db.SaveChanges(); }