Beispiel #1
0
        /// <summary>
        /// 添加监控管理的设备
        /// </summary>
        /// <param name="devid">请求的客户端</param>
        /// <param name="ispatrol">是否持续巡检</param>
        private void addDevice(string devid, bool ispatrol)
        {
            //设备已经监控,则不再增加设备信息
            DeviceBase[] devices = this.devlist.ToArray();
            for (int i = 0; i < devices.Length; i++)
            {
                if (devid == devices[i].DevID)
                {
                    return;
                }
            }

            //增加设备监控
            Estar.Common.Tools.NameObjectList ps = new Estar.Common.Tools.NameObjectList();
            ps["设备ID"] = devid;
            DataTable tab = this.query.getTable("设备通讯参数", ps);

            if (null == tab || tab.Rows.Count < 1)
            {
                return;
            }
            DataRow dr     = tab.Rows[0];
            string  dvtype = Convert.ToString(dr["通讯协议"]);

            if (string.IsNullOrEmpty(dvtype) || DBNull.Value == dr["站址"])
            {
                return;
            }
            int          station  = Convert.ToInt32(dr["站址"]);
            CommiTarget  target   = this.getTarget(dr);
            CommiManager commimgr = CommiManager.GlobalManager;
            DeviceBase   device   = null;

            switch (dvtype)
            {
            case "门禁":
                device = new DeviceDoor();
                target.setProtocol(Protocol.PTLDoor);
                break;

            case "消费":
                device = new DeviceEatery();
                target.setProtocol(Protocol.PTLEatery);
                break;

            default:
                return;
            }
            device.IsPatrol = ispatrol;
            device.SetDevice(commimgr, target, devid, station);
            this.devlist.Add(device);
            device.RecordHandle += new EventHandler <DvRecordEventArgs>(device_RecordHandle);
            device.SignalHandle += new EventHandler <DvSignalEventArgs>(device_SignalHandle);
            device.AlarmHandle  += new EventHandler <DvAlarmEventArgs>(device_AlarmHandle);
            device.StartGather();
        }
Beispiel #2
0
        /// <summary>
        /// 添加监控管理的设备
        /// </summary>
        /// <param name="devid">请求的客户端</param>
        /// <param name="ispatrol">是否持续巡检</param>
        private DeviceBase addDevice(string devid, bool ispatrol)
        {
            //增加设备监控
            Estar.Common.Tools.NameObjectList ps = new Estar.Common.Tools.NameObjectList();
            ps["设备ID"] = devid;
            DataTable tab = this.query.getTable("设备通讯参数", ps);

            if (null == tab || tab.Rows.Count < 1)
            {
                return(null);
            }
            DataRow dr     = tab.Rows[0];
            string  dvtype = Convert.ToString(dr["通讯协议"]);

            if (string.IsNullOrEmpty(dvtype) || DBNull.Value == dr["站址"])
            {
                return(null);
            }
            int          station  = Convert.ToInt32(dr["站址"]);
            CommiTarget  target   = this.getTarget(dr);
            CommiManager commimgr = CommiManager.GlobalManager;
            DeviceBase   device   = null;

            switch (dvtype)
            {
            case "门禁":
                device = new DeviceDoor();
                target.setProtocol(Protocol.PTLDoor);
                break;

            case "消费":
                device = new DeviceEatery();
                target.setProtocol(Protocol.PTLEatery);
                break;

            default:
                return(null);
            }
            device.IsPatrol = ispatrol;
            device.dtBeat   = DateTime.Now;
            device.SetDevice(commimgr, target, devid, station);
            this.devlist.Add(device);
            device.StartGather();
            return(device);
        }
        /// <summary>
        /// 添加监控管理的设备
        /// </summary>
        /// <param name="devid">请求的客户端</param>
        /// <param name="ispatrol">是否持续巡检</param>
        private DeviceBase addDevice(string devid, bool ispatrol)
        {
            //增加设备监控
            NameObjectList ps = new NameObjectList();

            ps["设备ID"] = devid;
            DataTable tab = this.query.getTable("设备通讯参数", ps);

            if (null == tab || tab.Rows.Count < 1)
            {
                return(null);
            }
            DataRow dr = tab.Rows[0];

            if (!tab.Columns.Contains("通讯协议"))
            {
                string msg = "";
                foreach (object obj in dr.ItemArray)
                {
                    msg += Convert.ToString(obj) + " ";
                }
                Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 设备通讯参数值:" + msg);
                myLog.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 设备通讯参数值:" + msg);
                return(null);
            }
            string dvtype = Convert.ToString(dr["通讯协议"]);

            if (string.IsNullOrEmpty(dvtype) || DBNull.Value == dr["站址"])
            {
                return(null);
            }
            int         station = Convert.ToInt32(dr["站址"]);
            CommiTarget target  = this.getTarget(dr);

            if (null == target)
            {
                return(null);
            }
            CommiManager commimgr = CommiManager.GlobalManager;
            DeviceBase   device   = null;

            switch (dvtype)
            {
            case "门禁":
                Debug.WriteLine("门禁");
                string ctrltype = Convert.ToString(dr["控制器类型"]);
                if ("进出口" == ctrltype || "出入口" == ctrltype)
                {
                    device = new DeviceChannel();
                }
                else
                {
                    device = new DeviceDoor();
                }
                target.setProtocol(Protocol.PTLDoor);
                device.AlarmHandle += new EventHandler <DvAlarmEventArgs>(device_AlarmHandle);
                break;

            case "消费":
                device = new DeviceEatery();
                target.setProtocol(Protocol.PTLEatery);
                break;

            default:
                return(null);
            }
            device.RecordHandle += new EventHandler <DvRecordEventArgs>(device_RecordHandle);
            Monitor.Enter(devlist);
            this.devlist.Add(device);
            Monitor.PulseAll(devlist);
            Monitor.Exit(devlist);
            device.IsPatrol = ispatrol;
            device.dtBeat   = DateTime.Now;
            device.SetDevice(commimgr, target, devid, station);
            device.StartGather();
            Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 启动:" + Convert.ToString(station) + " 设备ID:" + devid);
            myLog.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 启动:" + Convert.ToString(station) + " 设备ID:" + devid);
            return(device);
        }
        /// <summary>
        /// 添加监控管理的设备
        /// </summary>
        /// <param name="devid">请求的客户端</param>
        /// <param name="ispatrol">是否持续巡检</param>
        private void addDevice(string devid, bool ispatrol)
        {
            //设备已经监控,则不再增加设备信息
            DeviceBase[] devices = this.devlist.ToArray();
            for (int i = 0; i < devices.Length; i++)
                if (devid == devices[i].DevID)
                    return;

            //增加设备监控
            Estar.Common.Tools.NameObjectList ps = new Estar.Common.Tools.NameObjectList();
            ps["设备ID"] = devid;
            DataTable tab = this.query.getTable("设备通讯参数", ps);
            if (null == tab || tab.Rows.Count < 1)
                return;
            DataRow dr = tab.Rows[0];
            string dvtype = Convert.ToString(dr["通讯协议"]);
            if (string.IsNullOrEmpty(dvtype) || DBNull.Value == dr["站址"])
                return;
            int station = Convert.ToInt32(dr["站址"]);
            CommiTarget target = this.getTarget(dr);
            CommiManager commimgr = CommiManager.GlobalManager;
            DeviceBase device = null;
            switch (dvtype)
            {
                case "门禁":
                    device = new DeviceDoor();
                    target.setProtocol(Protocol.PTLDoor);
                    break;
                case "消费":
                    device = new DeviceEatery();
                    target.setProtocol(Protocol.PTLEatery);
                    break;
                default:
                    return;
            }
            device.IsPatrol = ispatrol;
            device.SetDevice(commimgr, target, devid, station);
            this.devlist.Add(device);
            device.RecordHandle += new EventHandler<DvRecordEventArgs>(device_RecordHandle);
            device.SignalHandle += new EventHandler<DvSignalEventArgs>(device_SignalHandle);
            device.AlarmHandle += new EventHandler<DvAlarmEventArgs>(device_AlarmHandle);
            device.StartGather();
        }
 /// <summary>
 /// ��Ӽ�ع�����豸
 /// </summary>
 /// <param name="devid">����Ŀͻ���</param>
 /// <param name="ispatrol">�Ƿ����Ѳ��</param>
 private DeviceBase addDevice(string devid, bool ispatrol)
 {
     //�����豸���
     Estar.Common.Tools.NameObjectList ps = new Estar.Common.Tools.NameObjectList();
     ps["�豸ID"] = devid;
     DataTable tab = this.query.getTable("�豸ͨѶ����", ps);
     if (null == tab || tab.Rows.Count < 1)
         return null;
     DataRow dr = tab.Rows[0];
     string dvtype = Convert.ToString(dr["ͨѶЭ��"]);
     if (string.IsNullOrEmpty(dvtype) || DBNull.Value == dr["վַ"])
         return null;
     int station = Convert.ToInt32(dr["վַ"]);
     CommiTarget target = this.getTarget(dr);
     CommiManager commimgr = CommiManager.GlobalManager;
     DeviceBase device = null;
     switch (dvtype)
     {
         case "�Ž�":
             device = new DeviceDoor();
             target.setProtocol(Protocol.PTLDoor);
             break;
         case "����":
             device = new DeviceEatery();
             target.setProtocol(Protocol.PTLEatery);
             break;
         default:
             return null;
     }
     device.IsPatrol = ispatrol;
     device.dtBeat = DateTime.Now;
     device.SetDevice(commimgr, target, devid, station);
     this.devlist.Add(device);
     device.StartGather();
     return device;
 }
 /// <summary>
 /// 添加监控管理的设备
 /// </summary>
 /// <param name="devid">请求的客户端</param>
 /// <param name="ispatrol">是否持续巡检</param>
 private DeviceBase addDevice(string devid, bool ispatrol)
 {
     //增加设备监控
     NameObjectList ps = new NameObjectList();
     ps["设备ID"] = devid;
     DataTable tab = this.query.getTable("设备通讯参数", ps);
     if (null == tab || tab.Rows.Count < 1)
         return null;
     DataRow dr = tab.Rows[0];
     if (!tab.Columns.Contains("通讯协议"))
     {
         string msg = "";
         foreach (object obj in dr.ItemArray)
             msg += Convert.ToString(obj) + " ";
         Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 设备通讯参数值:" + msg);
         myLog.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 设备通讯参数值:" + msg);
         return null;
     }
     string dvtype = Convert.ToString(dr["通讯协议"]);
     if (string.IsNullOrEmpty(dvtype) || DBNull.Value == dr["站址"])
         return null;
     int station = Convert.ToInt32(dr["站址"]);
     CommiTarget target = this.getTarget(dr);
     if (null == target) return null;
     CommiManager commimgr = CommiManager.GlobalManager;
     DeviceBase device = null;
     switch (dvtype)
     {
             
         case "门禁":
             Debug.WriteLine("门禁");
             string ctrltype = Convert.ToString(dr["控制器类型"]);
             if ("进出口" == ctrltype || "出入口" == ctrltype)
                 device = new DeviceChannel();
             else
                 device = new DeviceDoor();
             target.setProtocol(Protocol.PTLDoor);
             device.AlarmHandle += new EventHandler<DvAlarmEventArgs>(device_AlarmHandle);
             break;
         case "消费":
             device = new DeviceEatery();
             target.setProtocol(Protocol.PTLEatery);
             break;
         default:
             return null;
     }
     device.RecordHandle += new EventHandler<DvRecordEventArgs>(device_RecordHandle);
     Monitor.Enter(devlist);
     this.devlist.Add(device);
     Monitor.PulseAll(devlist);
     Monitor.Exit(devlist);
     device.IsPatrol = ispatrol;
     device.dtBeat = DateTime.Now;
     device.SetDevice(commimgr, target, devid, station);
     device.StartGather();
     Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 启动:" + Convert.ToString(station) + " 设备ID:" + devid);
     myLog.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 启动:" + Convert.ToString(station) + " 设备ID:" + devid);
     return device;
 }