private void ProductSlideGallery_Loaded(object sender, RoutedEventArgs e) { //只有试衣间才支持加载初始屏时启动感应输入 if (Global.UserInterface == UserInterface.ShoppingAssistant) { return; } if (!System.IO.File.Exists(readerConfigPath)) { throw new Exception("找不到读写器配置文件!"); } var file = System.IO.File.ReadAllText(readerConfigPath); var localReaderSettings = JsonConvert.DeserializeObject <ReaderWithAntennaDto>(file); if (localReaderSettings == null) { throw new Exception("请先维护设备!"); } if (localReaderSettings.Reader.Model == "R500") { readerControllerImpler = new ImpinjR500ReaderControllerImpl(); readerControllerImpler.ReaderTagsHandle += readerControllerImpler_ReaderTagsHandle; try { //_readerControllerImpler.StopAndDisconnect(); readerControllerImpler.ConnectAndStart(); } catch (Exception ex) { //WPFMessageBox.Show("连接设备失败!" + ex.Message); } } else { var reader = new Reader() { Code = localReaderSettings.Reader.Code, IpAddress = localReaderSettings.Reader.Ip, Port = localReaderSettings.Reader.Port, MemoryBank = 0, ReaderAntennas = localReaderSettings.ReaderAntennaList.Select(v => new ReaderAntenna { Enable = true, MaxRxSensitivity = v.MaxRxSensitivity, MaxTransmitPower = v.MaxTransmitPower, PortNumber = (ushort)v.AntennaIndex, RxSensitivityInDbm = v.RxSensitivityInDbm, TxPowerInDbm = v.TxPowerInDbm }).ToList() }; readerController = new MotorolaRfidReaderControllerImpl(reader); readerController.ReaderTagsHandle += readerControllerImpler_ReaderTagsHandle; try { readerController.ConnectAndStart(); } catch (Exception ex) { //WPFMessageBox.Show("连接设备失败!" + ex.Message); } } }
/// <summary> /// 点击查询按钮后开始读取 /// </summary> private void menuButtons_senseReaderOpened() { if (!System.IO.File.Exists(Global.readerConfigPath)) { throw new Exception("找不到读写器配置文件!"); } var file = System.IO.File.ReadAllText(Global.readerConfigPath); var localReaderSettings = JsonConvert.DeserializeObject <ReaderWithAntennaDto>(file); if (localReaderSettings == null) { throw new Exception("请先维护设备!"); } if (localReaderSettings.Reader.Model == "R500") { readerControllerImpler = new ImpinjR500ReaderControllerImpl(); readerControllerImpler.ReaderTagsHandle += readerControllerImpler_ReaderTagsHandle; try { readerControllerImpler.ConnectAndStart(); } catch (Exception ex) { WPFMessageBox.Show("连接设备失败!" + ex.Message); } } else { var reader = new Reader() { Code = localReaderSettings.Reader.Code, IpAddress = localReaderSettings.Reader.Ip, Port = localReaderSettings.Reader.Port, MemoryBank = 0, ReaderAntennas = localReaderSettings.ReaderAntennaList.Select(v => new ReaderAntenna { Enable = true, MaxRxSensitivity = v.MaxRxSensitivity, MaxTransmitPower = v.MaxTransmitPower, PortNumber = (ushort)v.AntennaIndex, RxSensitivityInDbm = v.RxSensitivityInDbm, TxPowerInDbm = v.TxPowerInDbm }).ToList() }; readerController = new MotorolaRfidReaderControllerImpl(reader); readerController.ReaderTagsHandle += readerControllerImpler_ReaderTagsHandle; try { readerController.ConnectAndStart(); } catch (Exception ex) { WPFMessageBox.Show("连接设备失败!" + ex.Message); } } //超时关闭感应输入 System.Timers.Timer t = new System.Timers.Timer(3000); t.Elapsed += (s, e) => { if (readerControllerImpler != null) { readerControllerImpler.ReaderTagsHandle -= readerControllerImpler_ReaderTagsHandle; readerControllerImpler.StopAndDisconnect(); } if (readerController != null) { readerController.ReaderTagsHandle -= readerControllerImpler_ReaderTagsHandle; readerController.StopAndDisconnect(); } }; t.AutoReset = false; t.Enabled = true; }