Ejemplo n.º 1
0
 public void Stop()
 {
     if (!NFCHandler.IsInitialized)
     {
         return;
     }
     if (_currentTag != null)
     {
         _currentTag.Dispose();
     }
     try
     {
         if (_nfcReader != null)
         {
             _nfcReader.StopPolling();
             // spin for a second to allow the NFC reader to timeout
             for (var i = 0; i < 100; i++)
             {
                 Thread.Sleep(10);
             }
         }
         NFCHandler.Release();
     }
     catch (Exception ex)
     {
         // ignore errors on cleanup
     }
 }
Ejemplo n.º 2
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();
         }
     }
 }
Ejemplo n.º 3
0
 private void theForm_FormClosed(object sender, FormClosedEventArgs e)
 {
     if (theTag != null)
     {
         theTag.Dispose();
     }
     NFCHandler.Release();
     System.Environment.Exit(0);
 }
Ejemplo n.º 4
0
        private void bRelease_Click(object sender, EventArgs e)
        {
            if (!NFCHandler.IsInitialized)
            {
                return;
            }

            NFCHandler.Release();
            dReaders.Items.Clear();
        }
Ejemplo n.º 5
0
        private void bInitialize_Click(object sender, EventArgs e)
        {
            NFCHandler.Init();

            dReaders.Items.Clear();
            foreach (NFCReader rdr in NFCHandler.Readers)
            {
                dReaders.Items.Add(rdr.Name);
            }

            if (dReaders.Items.Count > 0)
            {
                dReaders.SelectedIndex = 0;
            }
        }
Ejemplo n.º 6
0
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            getid.IsEnabled = false;
            NFCHandler.Init();
            dReaders.Items.Clear();
            foreach (NFCReader rdr in NFCHandler.Readers)
            {
                dReaders.Items.Add(rdr.Name);
            }
            if (dReaders.Items.Count > 0)
            {
                dReaders.SelectedIndex = 0;
            }

            if (!NFCHandler.IsInitialized)
            {
                MessageBox.Show("card not installed");
                getid.IsEnabled = true;
            }
            else if (dReaders.Items.Count == 0)
            {
                MessageBox.Show("Reader Not Found!!!"); getid.IsEnabled = true;
            }

            else
            {
                while (true)
                {
                    theTag = NFCHandler.Readers[dReaders.SelectedIndex].Connect();
                    if (theTag != null)
                    {
                        var tagId = (BitConverter.ToUInt32(theTag.bUID, 0) % 10000000);  //this is an example to play with your card number, if you are developing a system, you may need something like this
                        //var tagId = theTag.bUID;   //original tagid
                        //var tagId = (BitConverter.ToUInt32(theTag.bUID, 0); //sometimes some rfid uses this format to show tag number
                        idno.Text  = tagId.ToString();
                        refno.Text = theTag.ATR.ToString();

                        await Task.Delay(2000);

                        NFCHandler.Release();
                        getid.IsEnabled = true;
                        break;
                    }
                }
            }
        }