/// <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); } }
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); } }
/// <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); }
/// <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); } }
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); }
public RfidController(RfidCfg pRfidCfg) { _curRfidCfg = pRfidCfg; RFIDReaderLogger.Debug(string.Format("实例化RFID读写器。IP={0},端口={1}", pRfidCfg.Ip, pRfidCfg.Port), pRfidCfg.Ip); }