예제 #1
0
        /// <summary>
        /// 测试按钮处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void TestButton_Click(object sender, RoutedEventArgs e)
        {
            //if (icCardMan != null)
            //{
            //    icCardMan.Stop();
            //    Thread.Sleep(2000);
            //}

            ////读取配置
            //ConfigReader cfgReader = new ConfigReader(System.IO.Path.Combine(path, curConfigFileName));
            //List<ICCard> icCardList = ConfigReader.ReadIcCard();
            //if (icCardList == null || icCardList.Count <= 0)
            //{
            //    MessageBox.Show("IC卡配置信息有误,请检查。");
            //    return;
            //}
            // icCardMan = new IcCardsController(icCardList,true);
            // icCardMan.OnShowErrorMsg += icCardMan_OnShowErrorMsg;
            //icCardMan.OnReadCardNo += icCardMan_OnReadCardNo;
            //icCardMan.OnRemoveCard += icCardMan_OnRemoveCard;
            //icCardMan.Start();

            if (rfidMain != null)
            {
                rfidMain.Stop();
            }
            try
            {
                UIIcCard ic = this.RFIDConfigDataGrid.SelectedItem as UIIcCard;
                RfidCfg  rf = new RfidCfg();
                rf.Baudrate              = ic.Baudrate;
                rf.ComPort               = ic.ComPort;
                rf.ConType               = ic.ConType;
                rf.EquDll                = ic.Driver;
                rf.Interval              = Convert.ToInt32(ic.Interval);
                rf.Ip                    = ic.Ip;
                rf.IsUse                 = ic.IsUse;
                rf.Port                  = ic.Port;
                rf.UsePassCarType        = ic.ICReadType;
                rfidMain                 = new RfidController(rf);
                rfidMain.OnReceivedData += ReceivedData;
                if (!rfidMain.Open())
                {
                    MessageBox.Show("打开Rfid读卡器失败!");
                    return;
                }

                rfidMain.Start();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
예제 #2
0
 public RfidController(RfidCfg pConfig)
 {
     curCfgList = new List <RfidCfg>();
     curCfgList.Add(pConfig);
     rfidList = new List <IRfidController>();
     for (int i = 0; i < curCfgList.Count; i++)
     {
         IRfidController rfid = CreateInstance(curCfgList[i]);
         rfid.OnShowErrorMsg += rfid_OnShowErrorMsg;
         rfid.onReceivedData += ReceivedDataMethod;
         rfidList.Add(rfid);
     }
 }
예제 #3
0
        /// <summary>
        ///  打开读写器
        /// </summary>
        /// <param name="pRfidCfg"></param>
        private bool OpenReader(RfidCfg pRfidCfg)
        {
            bool rtn = false;

            try
            {
                if (pRfidCfg.ConType == DeviceConType.Net)
                {
                    int temp = ReaderB.StaticClassReaderB.OpenNetPort(int.Parse(pRfidCfg.Port), pRfidCfg.Ip, ref _readerAddr, ref _readerHandel);
                    if (temp != 0)
                    {
                        RFIDReaderLogger.Error(string.Format("打开RFID读写器失败。IP={0},端口={1}", pRfidCfg.Ip, pRfidCfg.Port), pRfidCfg.Ip);
                    }
                    else
                    {
                        rtn = true;
                    }
                }
                else //if (pRfidCfg.ConType == "串口")
                {
                    byte indexBaud = GetBaudrateIndex(pRfidCfg.Baudrate);
                    comPort = int.Parse(pRfidCfg.ComPort.ToUpper().Replace("COM", ""));
                    if (indexBaud != byte.MaxValue)
                    {
                        int temp = StaticClassReaderB.OpenComPort(comPort, ref _readerAddr, indexBaud, ref _readerHandel);
                        if (temp != 0)
                        {
                            RFIDReaderLogger.Error(string.Format("打开RFID读写器失败。ComPort={0}", pRfidCfg.ComPort), pRfidCfg.ComPort);
                        }
                        else
                        {
                            rtn = true;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                RFIDReaderLogger.Error("连接RFID读写器异常。", pRfidCfg.Ip, ex);
            }

            return(rtn);
        }
예제 #4
0
        /// <summary>
        /// 创建RFID实例
        /// </summary>
        /// <returns></returns>
        private IRfidController CreateInstance(RfidCfg rf)
        {
            try
            {
                string driverPath = System.AppDomain.CurrentDomain.BaseDirectory;
                driverPath = Path.Combine(driverPath, rf.EquDll);
                Assembly assembly = Assembly.LoadFile(driverPath);
                RFIDReaderLogger.Debug("载入硬件封装模块。driverPath=" + driverPath, "");

                string          name  = assembly.FullName.Split(',')[0] + ".RfidController";
                Type            type  = assembly.GetType(name);
                IRfidController irfid = Activator.CreateInstance(type, rf) as IRfidController;

                return(irfid);
            }
            catch (Exception ex)
            {
                RFIDReaderLogger.Error("CreateInstance异常。", "", ex);
                return(null);
            }
        }
예제 #5
0
파일: RfidController.cs 프로젝트: rcw0125/-
        public RfidController(RfidCfg pRfidCfg)
        {
            _curRfidCfg = pRfidCfg;
            MsgBuffer   = new Byte[100];
            _rawData    = new List <byte>();
            //打开监听线程
            tsListen = new Thread(new ThreadStart(delegate
            {
                _listenSocket  = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPAddress ip   = IPAddress.Parse(_curRfidCfg.Ip);
                IPEndPoint ipe = new IPEndPoint(ip, int.Parse(_curRfidCfg.Port));
                _listenSocket.Bind(ipe);
                _listenSocket.Listen(0);
                while (true)
                {
                    _serverSocket = _listenSocket.Accept();
                    ReceiveData();
                }
            }));
            tsListen.IsBackground = true;
            tsListen.Start();

            //RFIDReaderLogger.Debug(string.Format("实例化RFID读写器。IP={0},端口={1}", pRfidCfg.Ip, pRfidCfg.Port), pRfidCfg.Ip);
        }
예제 #6
0
 public RfidController(RfidCfg pRfidCfg)
 {
     _curRfidCfg = pRfidCfg;
     RFIDReaderLogger.Debug(string.Format("实例化RFID读写器。IP={0},端口={1}", pRfidCfg.Ip, pRfidCfg.Port), pRfidCfg.Ip);
 }