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);
                }
            }
        }
示例#2
0
        /// <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;
        }