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;
          }

      }
Esempio n. 2
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();

        }
Esempio n. 3
0
      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));

            }

        }
Esempio n. 4
0
       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);
               }
           }


       }
Esempio n. 5
0
       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();

       }
Esempio n. 6
0
       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();

       }
Esempio n. 7
0
        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);
       }
Esempio n. 10
0
        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();
        }
Esempio n. 11
0
        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);
                          ;}

                  }

              }
          }

           
          

      }
Esempio n. 12
0
        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);
                }
            }
        }
Esempio n. 13
0
      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();

      }
Esempio n. 14
0
       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();

       }
Esempio n. 15
0
       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);
               }

           }
       }
Esempio n. 16
0
        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());
           
        }
Esempio n. 17
0
           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);
            }

        }
Esempio n. 18
0
        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();
        }
Esempio n. 19
0
        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();
        }
Esempio n. 20
0
        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);
            }
        }
Esempio n. 21
0
        //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();
                }
            }
        }
Esempio n. 22
0
        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();
        }
Esempio n. 23
0
        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();
            }

        }
Esempio n. 24
0
        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);
            }
               
           
           
        }
Esempio n. 25
0
        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();
        }
Esempio n. 26
0
        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();

        }
Esempio n. 27
0
        //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);

            }



        }
Esempio n. 28
0
        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();

        }
Esempio n. 29
0
        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();
                }
            }

        }
Esempio n. 30
0
        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();
        }