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