コード例 #1
0
ファイル: MainPage.xaml.cs プロジェクト: jorgecas/ndef-nfc
        private async void MessageReceivedHandler(ProximityDevice sender, ProximityMessage message)
        {
            // Get the raw NDEF message data as byte array
            var rawMsg = message.Data.ToArray();
            // Let the NDEF library parse the NDEF message out of the raw byte array
            var ndefMessage = NdefMessage.FromByteArray(rawMsg);

            // Analysis result
            var tagContents = new StringBuilder();

            // Parse tag contents
            try
            {
                // Clear bitmap if the last tag contained an image
                SetStatusImage(null);

                // Parse the contents of the tag
                await ParseTagContents(ndefMessage, tagContents);

                // Update status text for UI
                SetStatusOutput(string.Format(_loader.GetString("StatusTagParsed"), tagContents));
            }
            catch (Exception ex)
            {
                SetStatusOutput(string.Format(_loader.GetString("StatusNfcParsingError"), ex.Message));
            }
        }
コード例 #2
0
 void MessageReceived(ProximityDevice proximityDevice, ProximityMessage message)
 {
     var ignored = Dispatcher.RunAsync(CoreDispatcherPriority.Low, () =>
     {
         ProximityDeviceOutputText.Text += "Message received: " + message.DataAsString + "\n";
     });
 }
コード例 #3
0
        //URI message received
        //Not used for now....
        private void WindowsUriHandler(ProximityDevice sender, ProximityMessage message)
        {
            try
            {
                var buffer = message.Data.ToArray();
                var sUri   = Encoding.Unicode.GetString(buffer, 0, buffer.Length);

                //remove null charater if present
                if (sUri[sUri.Length - 1] == '\0')
                {
                    sUri = sUri.Remove(sUri.Length - 1);
                }

                var    uri = new Uri(sUri);
                string s   = "WindowsUri : \n" + uri + "\n\n";
                Dispatcher.BeginInvoke(() =>
                {
                    MessageBox.Show("Go to: " + s);
                    //update the UI
                });
            }
            catch (Exception e)
            {
                Dispatcher.BeginInvoke(() =>
                {
                    MessageBox.Show(e.Message);
                });
            }
        }
コード例 #4
0
 public void Start()
 {
     audioSource      = GetComponent <AudioSource>();
     proximityMessage = GetComponent <ProximityMessage>();
     timedMessage     = GetComponent <TimedMessage>();
     setProximityMessage();
 }
コード例 #5
0
 public void Start()
 {
     spriteRenderer   = GetComponent <SpriteRenderer>();
     proximityMessage = GetComponent <ProximityMessage>();
     SetSprite();
     SetProximityMessage();
 }
コード例 #6
0
        private void OnMessageReceived(ProximityDevice sender, ProximityMessage message)
        {
            if (state == NfcManager.ProtoState.Ready)
            {
                return;
            }

            state = NfcManager.ProtoState.NotReady;

            try
            {
                String                 msg        = message.DataAsString.Substring(0, message.DataAsString.IndexOf('\0'));
                MemoryStream           stream     = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(msg));
                DataContractSerializer serializer = new DataContractSerializer(typeof(InitialMessage));
                stream.Position = 0;
                InitialMessage adversaryTime = (InitialMessage)serializer.ReadObject(stream);
                isMaster = (initialMessage.devicetime > adversaryTime.devicetime);
                state    = NfcManager.ProtoState.Ready;
                proximityDevice.StopSubscribingForMessage(subscribeId);
                proximityDevice.StopPublishingMessage(publishId);
                subscribeId = -1;
                publishId   = -1;
                notifyReady();
            }
            catch (SerializationException)
            {
            }
        }
コード例 #7
0
 private void MessageReceivedHandler(ProximityDevice sender, ProximityMessage message)
 {
     try
     {
         using (var reader = DataReader.FromBuffer(message.Data))
         {
             reader.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE;
             string receivedString = reader.ReadString(reader.UnconsumedBufferLength / 2 - 1);
             Debug.WriteLine("Received message from NFC: " + receivedString);
             Url = receivedString;
             if (receivedString == "semc://liveware/A1/1/NT1/2/smarttags")
             {
                 tray.NFCRedDetected();
             }
             else if (receivedString == "semc://liveware/A1/1/NT1/3/smarttags")
             {
                 tray.NFCBlackDetected();
             }
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.StackTrace);
     }
 }
コード例 #8
0
        private void messageReceived(ProximityDevice proximityDevice, ProximityMessage message)
        {
            var rawMsg = WindowsRuntimeBufferExtensions.ToArray(message.Data);
            //このrawMsgをNDEF解析すればよいようだ
            //NDEF解析はOSでやってくれないらしい。OSがやるのはNFPだけか。

            string str = "メッセージ";

            switch (rawMsg[3])
            {
            case (byte)'T':
                str += "TEXT";
                break;

            case (byte)'U':
                str += "URI";
                break;

            case (byte)'S':
                if (rawMsg[4] == (byte)'p')
                {
                    str += "SmartPoster";
                }
                break;
            }
            showToast(str);
        }
コード例 #9
0
        public NdefParser(ProximityMessage message)
        {
            var rawMsg = message.Data.ToArray();

            raw     = rawMsg;
            records = new List <NdefRecord>();
        }
コード例 #10
0
 /// <summary>
 /// Callback to run whenever a message is received
 /// </summary>
 /// <param name="device"></param>
 /// <param name="message"></param>
 private void MessageReceived(ProximityDevice device, ProximityMessage message)
 {
     if (MessageReceivedCompleted != null)
     {
         MessageReceivedCompleted(message);
     }
 }
コード例 #11
0
        private void messagedReceived(ProximityDevice device, ProximityMessage m)
        {
            uint x = m.Data.Length;

            byte[] b = new byte[x];
            b = m.Data.ToArray();

            PlaySound();

            // string s = Encoding.UTF8.GetString(b, 0, b.Length);
            // Debug.WriteLine(s);


            NdefMessage ndefMessage = NdefMessage.FromByteArray(b);

            foreach (NdefRecord record in ndefMessage)
            {
                WriteMessageText("\n----------------------------");
                WriteMessageText("\nType: " + Encoding.UTF8.GetString(record.Type, 0, record.Type.Length));
                if (record.CheckSpecializedType(false) == typeof(NdefUriRecord))
                {
                    var uriRecord = new NdefUriRecord(record);
                    WriteMessageText("\nURI: " + uriRecord.Uri);
                }
                ;
            }
            WriteMessageText("\n----------------------------\n");
        }
コード例 #12
0
        private void OnMessageReceived(ProximityDevice sender, ProximityMessage message)
        {
            var stopwatch = (Stopwatch)null;

            if (Debug)
            {
                stopwatch = new Stopwatch();
                stopwatch.Start();
            }

            var rawMessage = message.Data.ToArray();

            NdefMessage ndefMessage;

            try
            {
                ndefMessage = NdefMessage.FromByteArray(rawMessage);
            }
            catch (NdefException e)
            {
                var exceptionArgs = new DeviceStatusChangedEventArgs()
                {
                    DeviceStatus = StatusEnum.DeviceArrived
                };
                if (Debug)
                {
                    stopwatch.Stop();
                    exceptionArgs.ExecutionTime = stopwatch.Elapsed;
                }
                OnDeviceStatusChanged(this, exceptionArgs);
                return;
            }

            var args = new MessageArrivedEventArgs()
            {
                DeviceStatus = StatusEnum.MessageReceived
            };

            foreach (NdefRecord record in ndefMessage)
            {
                if (NdefTextRecord.IsRecordType(record))
                {
                    NdefTextRecord textRecord = new NdefTextRecord(record);
                    args.Message = textRecord.Text;
                    break;
                }
            }

            if (Debug)
            {
                stopwatch.Stop();
                args.ExecutionTime = stopwatch.Elapsed;
                args.MethodName    = "TagReader.OnMessageReceived";
            }

            OnDeviceStatusChanged(this, args);
            OnMessageArrived(this, args);
        }
コード例 #13
0
        private void messageReceivedHandler(ProximityDevice sender, ProximityMessage message)
        {
            Log($"Recieved {message.MessageType}");

            if ("Windows.Contoso" == message.MessageType)
            {
                Log($"Message is: {message.DataAsString}");
            }
        }
コード例 #14
0
        public void OnNfcMessageReceived(ProximityDevice proximityDevice, ProximityMessage proximityMessage)
        {
            using (var reader = DataReader.FromBuffer(proximityMessage.Data)) {
                reader.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE;
                string nfcData = reader.ReadString(reader.UnconsumedBufferLength / 2 - 1);

                TagScanned?.Invoke(this, nfcData);
            }
        }
コード例 #15
0
        private async void WritableTagDetectedHandler(ProximityDevice device, ProximityMessage message)
        {
            device.StopSubscribingForMessage(detectWriteableTagId);

            await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() =>
            {
                WriteTag.IsEnabled = true;
            });
        }
コード例 #16
0
 private void messageReceived(ProximityDevice sender, ProximityMessage message)
 {
     Dispatcher.BeginInvoke(() =>
     {
         textBlockTest.Text += "message modetaget: " + message.DataAsString;
         textBlockTest.Text += "Type: " + message.MessageType;
         Debug.WriteLine("Received from {0}:'{1}'", sender.DeviceId, message.DataAsString);
     });
 }
コード例 #17
0
        private void messageReceived(ProximityDevice sender, ProximityMessage message)
        {
            isConnected = controller.checkNetworkConnection();
            String tagAddress = controller.readDataFromNFCTag(message, isConnected);

            Dispatcher.BeginInvoke(() =>
            {
                gps(tagAddress, isConnected);
            });
        }
コード例 #18
0
 private void messageReceivedHandler(ProximityDevice sender, ProximityMessage message)
 {
     Log("Message recieved. Type:" + message.MessageType);
     switch (message.MessageType)
     {
     //here you can do things depending on the message received
     default:
         break;
     }
 }
コード例 #19
0
        private void MessageReceivedHandler(ProximityDevice sender, ProximityMessage message)
        {
            Dispatcher.BeginInvoke(new Action(() =>
            {
                StopSubscribingForMessage();

                TextMessage.Text        = @"Message Received!!";
                TextRecieveMessage.Text = message.DataAsString;
            }));
        }
コード例 #20
0
 private async void messageReceivedHandler(ProximityDevice sender, ProximityMessage message)
 {
     await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
                                                                   () =>
     {
         this.OutputString("Message Received");
         this.OutputString("Sender is: " + sender.DeviceId);
         this.OutputString("He said that: " + message.DataAsString);
     });
 }
コード例 #21
0
        async private void MessageReceivedHandler(ProximityDevice sender, ProximityMessage message)
        {
            await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
            {
                StopSubscribingForMessage();

                TextMessage.Text        = @"Message Received!!";
                TextRecieveMessage.Text = message.DataAsString;
            });
        }
コード例 #22
0
        private void OnWriteableTagArrived(ProximityDevice sender, ProximityMessage message)
        {
            var dataWriter = new DataWriter();

            dataWriter.UnicodeEncoding = Windows.Storage.Streams.UnicodeEncoding.Utf16LE;
            string appLauncher = string.Format(@"mywaiter:MainPage?source=3");

            dataWriter.WriteString(appLauncher);
            pubId = sender.PublishBinaryMessage("WindowsUri:WriteTag", dataWriter.DetachBuffer());
        }
コード例 #23
0
ファイル: proximity.cs プロジェクト: krisYanachkov/windows
    /**
     * Called when the proximity device sees a tag.
     *
     * @param device The device that raised the event.
     * @param message The NDEF message.
     */
    private static void GotTag(ProximityDevice device, ProximityMessage message)
    {
        // Copy the message into a byte array.
        var reader = DataReader.FromBuffer(message.Data);

        byte[] buf = new byte[message.Data.Length];
        reader.ReadBytes(buf);
        // Call back to node.
        gotTagCallback(buf);
    }
コード例 #24
0
        private void MessageReceived(ProximityDevice sender, ProximityMessage message)
        {
            NdefMessage ndefMessage = new NdefMessage();

            ndefMessage.AddRecord(new NdefRecord
            {
                Data       = message.Data.ToArray(),
                RecordType = message.MessageType
            });
        }
コード例 #25
0
        /// <summary>
        /// message received
        /// </summary>
        /// <param name="proximityDevice"></param>
        /// <param name="message"></param>
        private void messageReceived(ProximityDevice proximityDevice, ProximityMessage message)
        {
            string data = message.DataAsString;

            string []    datas        = data.Split('-');
            string       des          = datas[0].ToString();
            double       pay          = double.Parse(data[1].ToString());
            WalletManage walletManage = new WalletManage();

            walletManage.Transaction(des, pay);
        }
コード例 #26
0
        /// <summary>
        /// Invoked when a message is received
        /// </summary>
        /// <param name="device">The ProximityDevice object that received the message.</param>
        /// <param name="message">The message that was received.</param>
        private void messageReceived(ProximityDevice device, ProximityMessage message)
        {
            // This will be converted into a Lua "event" table once dispatched by Corona.
            var eventProperties = CoronaLabs.Corona.WinRT.CoronaLuaEventProperties.CreateWithName("messageReceived");

            eventProperties.Set("message", message.DataAsString);

            // Dispatch the event to Lua.
            var eventArgs = new CoronaLabs.Corona.WinRT.CoronaLuaEventArgs(eventProperties);
            var result    = coronaEventArgs.CoronaRuntimeEnvironment.DispatchEvent(eventArgs);
        }
コード例 #27
0
        private void ReadCard(ProximityDevice sender, ProximityMessage message)
        {
            var rawMsg      = message.Data.ToArray();
            var ndefMessage = NdefMessage.FromByteArray(rawMsg);

            // Loop over all records contained in the NDEF message
            foreach (NdefRecord record in ndefMessage)
            {
                // here we loop through the record....
            }
        }
コード例 #28
0
        private async void MessageReceivedHandler(ProximityDevice device, ProximityMessage message)
        {
            device.StopSubscribingForMessage(subscribedMessageId);

            await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() =>
            {
                // Data:  byte array stored in the NFC tag
                var dialog = new MessageDialog("NFC Data: " + message.DataAsString);
                await dialog.ShowAsync();
            });
        }
コード例 #29
0
ファイル: MainPage.xaml.cs プロジェクト: emranB/AmazonGDC
 private void MessageReceived(ProximityDevice sender, ProximityMessage message)
 {
     Dispatcher.BeginInvoke(() => {
         var buf = DataReader.FromBuffer(message.Data);
         List <NdefRecord> recordList = new List <NdefRecord>();
         NdefRecordUtility.ReadNdefRecord(buf, recordList);
         NdefRecord firstRecord = recordList[0];
         byte[] payload         = firstRecord.Payload;
         GetBadgeData(payload);
     });
 }
コード例 #30
0
        public string readUserTokenFromTag(ProximityMessage message)
        {
            var dataReader = Windows.Storage.Streams.DataReader.FromBuffer(message.Data);

            byte[] bytes = new byte[message.Data.Length];
            dataReader.ReadBytes(bytes);
            var data      = Encoding.ASCII.GetString(bytes, 0, (int)message.Data.Length);
            var userToken = data.Substring(7);

            return(userToken);
        }
コード例 #31
0
ファイル: DoorController.cs プロジェクト: Booljayj/BREACH
    public void ProcessProximity(ProximityMessage m)
    {
        if (m == ProximityMessage.ObstacleEnter) {
            obstacles++;
            message.Send<DoorStateMessage>(DoorStateMessage.Open);
        } else if (m == ProximityMessage.ObstacleExit) {
            obstacles--;

        } else if (m == ProximityMessage.NearEnter && isAuto) {
            message.Send<ButtonMessage>(ButtonMessage.Open);
        } else if (m == ProximityMessage.NearExit && isAuto) {
            message.Send<ButtonMessage>(ButtonMessage.Close);

        } else if (m == ProximityMessage.FarExit) {
            message.Send<ButtonMessage>(ButtonMessage.Close);
        }
    }