예제 #1
0
 private void StartNFC()
 {
     if (_nfcReader != null)
     {
         Stop();
     }
     if (ShuttingDown)
     {
         return;
     }
     NFCHandler.Init();
     Log("StartNFC: " + NFCHandler.Readers.Count + " NFC readers");
     foreach (NFCReader rdr in NFCHandler.Readers)
     {
         Log("NFCHandler.Readers: " + rdr.Name);
         // Tested with ACS reader
         if (rdr.Name.ToLower().Contains("acs"))
         {
             _nfcReader           = rdr;
             _nfcReader.TagFound += _nfcReader_TagFound;
             _nfcReader.TagLost  += _nfcReader_TagLost;
             _nfcReader.StartPolling();
         }
     }
 }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="readerName"></param>
        /// <returns></returns>
        protected string ReadCardUid(string readerName)
        {
            string uid = "";

            NFCReader reader = new NFCReader();

            reader.Connect(readerName);
            uid = BitConverter.ToString(reader.GetUID()).Replace("-", string.Empty);
            reader.Disconnect();

            return(uid);
        }
예제 #3
0
 public void ConnectReader()
 {
     try
     {
         reader = new NFCReader(BLOCK);
         delegates.ForEach(x =>
         {
             reader.EventCardAction += x;
         });
     }
     catch (ArgumentOutOfRangeException ex)
     {
         Console.WriteLine("Nfc connect exception: {0}", ex.Message);
     }
     catch (Exception ex)
     {
         Console.WriteLine("Nfc connect exception: {0}", ex.Message);
     }
 }
예제 #4
0
        private void InitializeNFCLogin()
        {
            try
            {
                var monitorFactory = MonitorFactory.Instance;
                var monitor        = monitorFactory.Create(SCardScope.System);
                monitor.Start("ACS ACR122 0");
                monitor.CardInserted += Monitor_CardInserted;
                monitor.CardRemoved  += Monitor_CardRemoved;

                HorekaNFCReader = new NFCReader();
                HorekaNFCReader.SelectDevice();
                HorekaNFCReader.establishContext();
            }
            catch (PCSCException)
            {
                ErrorHandler.ThrowError(501, Properties.Resources.ErrorNFCConnection);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
예제 #5
0
        private static void Main(string[] args)
        {
            Console.WriteLine("Reading NFC Readers");
            var nfc = new NFCReader();

            try
            {
                nfc.Connect();
            }
            catch (Exception e)
            {
                Console.WriteLine("failed to connect");
                Console.WriteLine(e);
            }
            var readers = nfc.GetReadersList();

            Console.WriteLine("Found " + readers.Count);
            foreach (var reader in readers)
            {
                Console.WriteLine(reader);
            }

            Console.ReadLine();
        }
예제 #6
0
 public Unknown(IntPtr Handle, int Proto, NFCReader Reader, byte[] ATRbytes) : base(Handle, Proto, Reader, ATRbytes)
 {
 }
예제 #7
0
 public void Dispose()
 {
     timer?.Dispose();
     reader = null;
 }
예제 #8
0
 public Ultralight(IntPtr Handle, int Proto, NFCReader Reader, byte[] ATRbytes) : base(Handle, Proto, Reader, ATRbytes)
 {
 }
예제 #9
0
 void Awake()
 {
     R = GetComponent <NFCReader>();
     CardReadingEnabled = false;
     DontDestroyOnLoad(this.gameObject);
 }