Beispiel #1
0
        private void WriteButton_Click(object sender, EventArgs e)
        {
            if (NFCWrapper == null)
            {
                return;
            }
            UInt32 Result;
            //Create Smart Poster NDEF Message
            // INFORMACION NECESARIO PARA ENVIARLE A TNFCWRAPPER.CS COMO PARAMETRO

            string URI        = Texto.Text.ToString();
            string Comment    = "";
            string Language   = "en-US";
            string TargetType = "";
            UInt32 Size       = 0;
            byte   Action     = 0;
            UInt32 NDEFSize   = 1000;

            byte[] NDEF = new byte[NDEFSize];
            Result = TNFCWrapper.CreateNDEFSp(URI, Comment, Language, ref Action, ref Size, TargetType, ref NDEF[0], ref NDEFSize);
            LogMessage("CreateNDEFSp: " + NFCWrapper.NFCWrapperErrorToString(Result));
            if (Result != TNFCWrapper.ERR_SUCCESS)
            {
                return;
            }

            // convert NDEF into XML
            string XML = "";

            Result = NFCWrapper.NDEF2XML(ref NDEF[0], NDEFSize, ref XML);
            LogMessage("NDEF2XML: " + NFCWrapper.NFCWrapperErrorToString(Result));
            if (Result != TNFCWrapper.ERR_SUCCESS)
            {
                return;
            }

            // print NDEF as XML
            LogMessage(XML);
            LogMessage(" ");

            // ESCRIBIMOS EL NDEF A LA ETIQUETA
            LogMessage("Ponga una NFC Tag en los proximos 5 segundos...");
            Texto.Clear();
            TNFCAddress  NFCAddress  = new TNFCAddress();
            TMessageInfo MessageInfo = new TMessageInfo();

            Result = TNFCWrapper.WriteNDEF(ref NFCAddress, ref MessageInfo, ref NDEF[0], ref NDEFSize, false, true, 5);
            LogMessage("NDEF2XML: " + NFCWrapper.NFCWrapperErrorToString(Result));
            LogMessage("");
        }
Beispiel #2
0
        private void StartButton_Click(object sender, EventArgs e)
        {
            // Verificar que exista la libreria
            if (LoadLibrary("SCM_NFC.dll") == 0)
            {
                LogMessage("NFC Wrapper no encontrada");
                LogMessage("Asegurate que el archivo SCM_NFC.dll este presente");
                return;
            }
            LogMessage("SCM_NFC.DLL Cargada exitosamente.");
            StartButton.Enabled = false;
            WriteButton.Enabled = true; // SE HABILITA EL BOTON PARA ESCRIBIR EN LA TARJETA

            //Init NFC Wrapper
            NFCWrapper = new TNFCWrapper();
            TNFCWrapper.Initialize((UInt32)Handle.ToInt32());

            //DECIRLE A NFC WRAPPER QUE EMPIECE CON LA LECTURA
            TNFCWrapper.StartListening();
            LogMessage("Por favor coloca una tag NFC");
        }
Beispiel #3
0
        private void ReadNDEF()
        {
            UInt32 DeviceCount     = 0;
            UInt32 MessageCount    = 0;
            UInt32 NextMessageSize = 0;
            UInt32 Result;

            if (NFCWrapper == null)
            {
                return;
            }

            // Get information about the message queue
            Result = TNFCWrapper.GetNDEFQueueInfo(ref DeviceCount, ref MessageCount, ref NextMessageSize);
            LogMessage("GetNDEFQueueInfo: " + NFCWrapper.NFCWrapperErrorToString(Result));
            if (Result != TNFCWrapper.ERR_SUCCESS)
            {
                return;
            }

            LogMessage("  DeviceCount     = " + DeviceCount.ToString());
            LogMessage("  MessageCount    = " + MessageCount.ToString());
            LogMessage("  NextMessageSize = " + NextMessageSize.ToString());

            //Resize the NDEF buffer accordingly to the site of the next message in the queue
            byte[]       NDEF        = new byte[NextMessageSize];
            UInt32       NDEFSize    = NextMessageSize;
            TNFCAddress  NFCAddress  = new TNFCAddress();
            TMessageInfo MessageInfo = new TMessageInfo();

            //Read the NDEF message from the message queue
            Result = TNFCWrapper.ReadNDEF(ref NFCAddress, ref MessageInfo, ref NDEF[0], ref NDEFSize);
            LogMessage("ReadNDEF: " + NFCWrapper.NFCWrapperErrorToString(Result));
            if (Result != TNFCWrapper.ERR_SUCCESS)
            {
                return;
            }

            // CONVERTIR A XML
            string XML  = "";
            string XML1 = null;
            string XML2 = null;

            Result = NFCWrapper.NDEF2XML(ref NDEF[0], NDEFSize, ref XML);
            LogMessage("NDEF2XML: " + NFCWrapper.NFCWrapperErrorToString(Result));
            if (Result != TNFCWrapper.ERR_SUCCESS)
            {
                return;
            }

            // print NDEF as XML
            textBox2.Clear();
            LogMessage(XML);

            // PRIMER FILTRADO del string donde, tomaremos linea por linea el string XML y tomamos como delimitador los saltos de linea
            // es alli donde se encuentra la linea del mensaje o url.  este es el resultado: <NDEF_URI:URI>Mensaje</NDEF_URI:URI>
            XML1 = XML.Split('\n')[12];
            // SEGUNDO FILTRADO del string anterior donde, tomaremos linea por linea el string XML1, y tomamos como delimitador ">"
            // este es el resultado en la posicion 1:  <NDEF_URI:URI>Mensaje
            XML2 = XML1.Split('<')[1];
            // ULTIMO FILTRADO del string anterior donde, tomaremos linea por linea el string XML2, y tomamos como delimitador ">"
            // este es el resultado en la posicion 1 :  Mensaje
            Mensaje = XML2.Split('>')[1];

            if (ValidateUrl(Mensaje) == true)  // VALIDAMOS QUE SI MENSAJE ES UNA URL ENTONCES
            {
                webBrowser1.Navigate(Mensaje); // ENVIAR URL AL NAVEGADOR Y EJECUTARSE
            }
            else
            {
                MessageBox.Show(Mensaje, "Mensaje"); // SINO ES UNA URL ENTONCES ENVIAR ALERTA CON EL MENSAJE
            }
            LogMessage(" ");
        }