예제 #1
0
 /// <summary>
 /// 定时执行考勤机业务
 /// </summary>
 /// <param name="obj"></param>
 void tmWorkGather(object obj)
 {
     QueryDataRes query = new QueryDataRes("门禁管理");
     NameObjectList ps = new NameObjectList();
     DataTable tab = query.getTable("门禁管理", ps);
     if (null == tab || tab.Rows.Count < 1)
         return;
     myLog.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 启动定时执行");
     CommiManager commimgr = CommiManager.GlobalManager;
     for (int i = 0; i < tab.Rows.Count; i++)
     {
         DataRow dr = tab.Rows[i];
         if (null == dr || DBNull.Value == dr["ID"] || DBNull.Value == dr["站址"])
             continue;
         if ("考勤机" != Convert.ToString(dr["控制器类型"]))
             continue;
         string devid = Convert.ToString(dr["ID"]);
         int station = Convert.ToInt32(dr["站址"]);
         string devname = devname = Convert.ToString(dr["名称"]);
         myLog.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 考勤设备:" + Convert.ToString(dr["站址"]) + " " + devname);
         CommiTarget target = this.getTarget(dr);
         if (null == target) continue;
         DeviceDoor device = new DeviceDoor();
         target.setProtocol(Protocol.PTLDoor);
         device.IsPatrol = false;
         device.dtBeat = DateTime.Now;
         device.SetDevice(commimgr, target, devid, station);
         string msg = device.GatherData(true);
         string cardnum = basefun.valtag(msg, "{卡号}");
         myLog.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 采集信息   0:" + msg);
         if ("0" == cardnum || "16777215" == cardnum)
         {
             if (device.IsEndReadDevice(-1))
                 continue;
         }
         int index = 1;
         while (!string.IsNullOrEmpty(cardnum))
         {
             msg = device.GatherData(false);
             myLog.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 采集信息" + Convert.ToString(index++).PadLeft(4, ' ') + ":" + msg);
             cardnum = basefun.valtag(msg, "{卡号}");
             if ("0" == cardnum || "16777215" == cardnum)
             {
                 if (device.IsEndReadDevice(-1))
                     break;
             }
         }
     }
 }