public void Init() { if (_Devices != null && _Devices.Count > 0) { foreach (var device in _Devices) { device.Dispose(); } } _Devices = new List <ETCDevice>(); var items = ETCDevice.GetAllDevices(); //初始化的时候一定要调用这一个函数 if (items != null && items.Length > 0) { foreach (var item in items) { ETCDeviceInfo dinfo = null; if (Setting.Devices != null) { dinfo = Setting.Devices.SingleOrDefault(it => it.LaneNo == item.LaneNo); } if (dinfo != null) { item.EntranceID = dinfo.EntranceID; item.DisableReader = dinfo.DisableReader; item.DisableRSU = dinfo.DisableRSU; var device = new ETCDevice(item); device.OnReadCardInfo += device_OnReadCardInfo; device.OnReadOBUInfo += device_OnReadOBUInfo; device.OnError += device_OnError; device.Init(); _Devices.Add(device); } } } if (_UploadList == null) { _UploadList = new Thread(new ThreadStart(UploadListThread)); _UploadList.IsBackground = true; _UploadList.Start(); } }
public static ETCSetting GetSetting() { try { if (_CurSetting == null) { var items = ETCDevice.GetAllDevices(); if (items != null && items.Length > 0) { _CurSetting = new ETCSetting(); _CurSetting.Devices = new List <ETCDeviceInfo>(); _CurSetting.Devices.AddRange(items); var original = new SysParaSettingsBll(AppSettings.CurrentSetting.ParkConnect).GetSetting <ETCSetting>(); if (original != null && original.Devices != null) { if (original.ReadSameCardInterval > 0) { _CurSetting.ReadSameCardInterval = original.ReadSameCardInterval; } foreach (var item in items) { var o = original.Devices.SingleOrDefault(it => it.LaneNo == item.LaneNo); item.EntranceID = o != null ? o.EntranceID : 0; item.DisableReader = o != null ? o.DisableReader : true; item.DisableRSU = o != null ? o.DisableRSU : true; } } } else { _CurSetting = new SysParaSettingsBll(AppSettings.CurrentSetting.ParkConnect).GetSetting <ETCSetting>(); } } } catch (Exception ex) { Ralid.GeneralLibrary.ExceptionHandling.ExceptionPolicy.HandleException(ex); } return(_CurSetting); }