Ejemplo n.º 1
0
        public ActionResult OnButton(string parameterName)
        {
            string result = "dummy";

            List<string> deviceNameList = new List<string>();

            NFCContext nfcContext = new NFCContext();

            NFCDevice nfcDevice = nfcContext.OpenDevice(null);

            deviceNameList = nfcContext.ListDeviceNames();

            Console.WriteLine("device count: " + deviceNameList.Count());

            foreach (string deviceName in deviceNameList)
            {
                Console.WriteLine("deviceName: " + deviceName);
            }

            int rtn = nfcDevice.initDevice();
            if (rtn < 0)
            {
                Console.WriteLine("Context init failed");
            }

            nfc_target nfcTarget = new nfc_target();
            List<nfc_modulation> nfc_modulationList = new List<nfc_modulation>();
            nfc_modulation nfcModulation = new nfc_modulation();
            nfcModulation.nbr = nfc_baud_rate.NBR_106;
            nfcModulation.nmt = nfc_modulation_type.NMT_ISO14443A;

            nfc_modulationList.Add(nfcModulation);
            rtn = nfcDevice.Pool(nfc_modulationList, 1, 2, out nfcTarget);

            if (rtn < 0)
            {
                Console.WriteLine("nfc poll targert failed");
            }
            else if (rtn > 0)
            {
                Console.WriteLine("nfc target found!!!");

                string s = nfcDevice.str_target(nfcTarget);

                Console.Write(s);
            }
            else
            {
                Console.WriteLine("no nfc target found");
            }

            Console.WriteLine(result);
            return Json(new { success = true, show = result }, JsonRequestBehavior.AllowGet);
        }
Ejemplo n.º 2
0
        static private void ThreadSmartCard()
        {
            var gpio23 = TinyGPIO.Export(23);

            gpio23.Direction = (GPIODirection)GPIODirection.Out;
            var gpio25 = TinyGPIO.Export(25);

            gpio25.Direction = (GPIODirection)GPIODirection.Out;

            List <string> deviceNameList = new List <string>();
            NFCContext    nfcContext     = new NFCContext();
            NFCDevice     nfcDevice      = nfcContext.OpenDevice(null);

            deviceNameList = nfcContext.ListDeviceNames();
            int                   rtn                = nfcDevice.initDevice();
            nfc_target            nfcTarget          = new nfc_target();
            List <nfc_modulation> nfc_modulationList = new List <nfc_modulation>();
            nfc_modulation        nfcModulation      = new nfc_modulation();

            nfcModulation.nbr = nfc_baud_rate.NBR_106;
            nfcModulation.nmt = nfc_modulation_type.NMT_ISO14443A;
            nfc_modulationList.Add(nfcModulation);

            string currentSignalRStr = null;
            string currentConsoleStr = null;
            string signalRStr;
            string consoleStr;
            string state = "---";
            Person p;

            for (; ;)
            {
                gpio23.Value = 0;

                Thread.Sleep(100);
                rtn = nfcDevice.Pool(nfc_modulationList, 1, 2, out nfcTarget);
                if (rtn < 0)
                {
                    consoleStr   = "NFC Targert Not Found!";
                    signalRStr   = "---";
                    gpio23.Value = 0;
                    gpio25.Value = 0;
                }
                else
                {
                    signalRStr = string.Join(
                        separator: "",
                        values: nfcTarget.nti.abtUid.Take((int)nfcTarget.nti.szUidLen).Select(b => b.ToString("X2").ToLower())
                        );
                    consoleStr = string.Format("NFC Target Found: uid is [{0}]", signalRStr);


                    if (File.Exists("App_Data/people.json"))
                    {
                        using (StreamReader r = new StreamReader("App_Data/people.json"))
                        {
                            string        json  = r.ReadToEnd();
                            List <Person> items = JsonConvert.DeserializeObject <List <Person> >(json);
                            p = items.FirstOrDefault(x => x.Card == signalRStr);
                            Console.WriteLine(p.Name);
                            Console.WriteLine(p.Date);
                            Console.WriteLine(p.PCNum);
                            Console.WriteLine(p.State);

                            NFC.Instance.UpdateDateStatus(p);
                            NFC.Instance.UpdateNameStatus(p);
                            NFC.Instance.UpdatePCNumStatus(p);
                            NFC.Instance.UpdateTimeStatus(p);
                            Thread.Sleep(100);
                        }
                    }
                }

                if (signalRStr != state)
                {
                    if (signalRStr != currentSignalRStr)
                    {
                        NFC.Instance.CardIDCheck(signalRStr);
                        currentSignalRStr = signalRStr;
                        gpio23.Value      = 1;
                        gpio25.Value      = 1;
                        Thread.Sleep(100);
                    }
                    else
                    {
                        gpio23.Value = 0;
                    }
                }
                else
                {
                    gpio23.Value = 0;
                    NFC.Instance.CardIDCheck(signalRStr);
                    currentSignalRStr = signalRStr;
                }

                if (consoleStr != currentConsoleStr)
                {
                    DateTime     now = DateTime.Now;
                    FileStream   ostrm;
                    StreamWriter writer;
                    TextWriter   oldOut = Console.Out;
                    try
                    {
                        ostrm  = new FileStream("Record.txt", FileMode.OpenOrCreate, FileAccess.Write);
                        writer = new StreamWriter(ostrm);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("Cannot open Record.txt for writing");
                        Console.WriteLine(e.Message);
                        return;
                    }
                    Console.SetOut(writer);
                    Console.WriteLine(now);
                    Console.WriteLine(consoleStr);
                    Console.SetOut(oldOut);
                    writer.Close();
                    ostrm.Close();
                    Console.WriteLine(now);
                    Console.WriteLine(consoleStr);
                    currentConsoleStr = consoleStr;
                }
            }
        }
Ejemplo n.º 3
0
        private static void ThreadSmartCard()
        {
            var gpio23 = TinyGPIO.Export(23);
            gpio23.Direction = (GPIODirection)GPIODirection.Out;

            List<string> deviceNameList = new List<string>();

            NFCContext nfcContext = new NFCContext();

            NFCDevice nfcDevice = nfcContext.OpenDevice(null);

            deviceNameList = nfcContext.ListDeviceNames();

            Console.WriteLine("Device Count: " + deviceNameList.Count());

            foreach (string deviceName in deviceNameList)
            {
                Console.WriteLine("Device Name: " + deviceName);
            }

            int rtn = nfcDevice.initDevice();
            if (rtn < 0)
            {
                Console.WriteLine("Context init failed");
            }

            nfc_target nfcTarget = new nfc_target();
            List<nfc_modulation> nfc_modulationList = new List<nfc_modulation>();
            nfc_modulation nfcModulation = new nfc_modulation();
            nfcModulation.nbr = nfc_baud_rate.NBR_106;
            nfcModulation.nmt = nfc_modulation_type.NMT_ISO14443A;

            nfc_modulationList.Add(nfcModulation);

            string currentSignalRStr = null;
            string currentConsoleStr = null;
            string signalRStr;
            string consoleStr;
            string state = "---";

            for (; ; )
            {
                gpio23.Value = 0;
                Thread.Sleep(100);
                rtn = nfcDevice.Pool(nfc_modulationList, 1, 2, out nfcTarget);

                if (rtn < 0)
                {
                    consoleStr = "NFC-Poll Targert Not Found!";
                    signalRStr = "---";
                    gpio23.Value = 0;

                }
                else
                {
                    signalRStr = string.Join(
                        separator: "",
                        values: nfcTarget.nti.abtUid.Take((int)nfcTarget.nti.szUidLen).Select(b => b.ToString("X2").ToLower())
                     );

                    signalRStr = "0x" + signalRStr;

                    consoleStr = string.Format("NFC-Poll Target Found: uid is [{0}]", signalRStr);
                }
                if (signalRStr != state)
                {
                    if (signalRStr != currentSignalRStr)
                    {
                        NFC.Instance.UpdateNFCStatus(signalRStr);
                        currentSignalRStr = signalRStr;
                        gpio23.Value = 1;
                        Thread.Sleep(100);
                    }
                    else
                    {
                        gpio23.Value = 0;
                    }
                }
                else
                {
                    gpio23.Value = 0;
                    NFC.Instance.UpdateNFCStatus(signalRStr);
                    currentSignalRStr = signalRStr;
                }

                if (consoleStr != currentConsoleStr)
                {
                    Console.WriteLine(consoleStr);
                    currentConsoleStr = consoleStr;
                }
            }
        }
Ejemplo n.º 4
0
        private static void ThreadSmartCard()
        {
            RaspPiGPIOMemLcdTransferProvider lcdProvider = new RaspPiGPIOMemLcdTransferProvider(
            GPIOPins.V2_GPIO_07,
            GPIOPins.V2_GPIO_08,
            GPIOPins.V2_GPIO_25,
            GPIOPins.V2_GPIO_24,
            GPIOPins.V2_GPIO_23,
            GPIOPins.V2_GPIO_18);
            Lcd lcd = new Lcd(lcdProvider);
            lcd.Begin(16, 2);
            lcd.Clear();
            lcd.SetCursorPosition(0, 0);
            lcd.Write("No NFC Card!");

            var gpio22 = TinyGPIO.Export(22);
            gpio22.Direction = (GPIODirection)GPIODirection.Out;

            List<string> deviceNameList = new List<string>();
            NFCContext nfcContext = new NFCContext();
            NFCDevice nfcDevice = nfcContext.OpenDevice(null);
            deviceNameList = nfcContext.ListDeviceNames();
            Console.WriteLine("Device Count: " + deviceNameList.Count());
            foreach (string deviceName in deviceNameList)
            {
                Console.WriteLine("Device Name: " + deviceName);
            }
            int rtn = nfcDevice.initDevice();
            if (rtn < 0)
            {
                Console.WriteLine("Context init failed");
            }

            nfc_target nfcTarget = new nfc_target();
            List<nfc_modulation> nfc_modulationList = new List<nfc_modulation>();
            nfc_modulation nfcModulation = new nfc_modulation();
            nfcModulation.nbr = nfc_baud_rate.NBR_106;
            nfcModulation.nmt = nfc_modulation_type.NMT_ISO14443A;
            nfc_modulationList.Add(nfcModulation);

            string currentSignalRStr = null;
            string currentConsoleStr = null;
            string currentlcdStr = null;
            string signalRStr;
            string consoleStr;
            string lcdStr;
            string state = "---";

            for (; ; )
            {
                gpio22.Value = 0;
                Thread.Sleep(100);
                rtn = nfcDevice.Pool(nfc_modulationList, 1, 2, out nfcTarget);

                if (rtn < 0)
                {
                    consoleStr = "NFC-Poll Targert Not Found!";
                    signalRStr = "---";
                    lcdStr = "No NFC Card!";
                    gpio22.Value = 0;
                }
                else
                {
                    signalRStr = string.Join(
                        separator: "",
                        values: nfcTarget.nti.abtUid.Take((int)nfcTarget.nti.szUidLen).Select(b => b.ToString("X2").ToLower())
                     );
                    signalRStr = "0x" + signalRStr;
                    consoleStr = string.Format("NFC-Poll Target Found: uid is [{0}]", signalRStr);
                    lcdStr = "NFC Detected!";
                }
                if (signalRStr != state)
                {
                    if (signalRStr != currentSignalRStr)
                    {
                        NFC.Instance.UpdateNFCStatus(signalRStr);
                        currentSignalRStr = signalRStr;
                        gpio22.Value = 1;
                        lcd.Begin(16, 2);
                        lcd.Clear();
                        lcd.SetCursorPosition(0, 0);
                        lcd.Write("NFC Detected!");
                        lcd.SetCursorPosition(0, 1);
                        lcd.Write(signalRStr);
                        currentlcdStr = lcdStr;
                        Thread.Sleep(100);
                    }
                    else
                    {
                        gpio22.Value = 0;
                    }
                }
                else
                {
                    if (lcdStr != currentlcdStr)
                    {
                        gpio22.Value = 0;
                        NFC.Instance.UpdateNFCStatus(signalRStr);
                        currentSignalRStr = signalRStr;
                        lcd.Begin(16, 2);
                        lcd.Clear();
                        lcd.SetCursorPosition(0, 0);
                        lcd.Write("No NFC Card!");
                        currentlcdStr = lcdStr;
                    }
                }
                if (consoleStr != currentConsoleStr)
                {
                    Console.WriteLine(consoleStr);
                    currentConsoleStr = consoleStr;
                }
            }
        }