Exemple #1
0
        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();
            }
        }
Exemple #2
0
 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);
 }