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 } }
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(); } } }
private void theForm_FormClosed(object sender, FormClosedEventArgs e) { if (theTag != null) { theTag.Dispose(); } NFCHandler.Release(); System.Environment.Exit(0); }
private void bRelease_Click(object sender, EventArgs e) { if (!NFCHandler.IsInitialized) { return; } NFCHandler.Release(); dReaders.Items.Clear(); }
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; } }
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; } } } }