Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Revision as of 23:41, 25 July 2013 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Entendendo as mensagens NFC Data Exchange Format (NDEF)

From Wiki
Jump to: navigation, search

Este artigo explica a estrutura de uma mensagem NDEF com simples Identificador Uniforme de Recursos (URI), (Uniform Resource Identifier, (em inglês)) que descreve o endereço da página web.

Article Metadata

Compatibilidade
Plataforma(s):
Symbian

Artigo
Tradução:
Por cronius
Última alteração feita por hamishwillee em 25 Jul 2013

Introdução

A maioria das tags NFC são elementos passivos que armazenam dados para o leitor (por telemóveis habilitados com NFC) em formato NDEF (NFC Data Exchange Format). Quando tocamos os nossos telemóveis com qualquer tag NFC habilitada, na verdade, é lida a mensagem NDEF pela nossa aplicação. Isto acontece através da aplicação NFC para pilha de protocolos, em seguida o driver de baixo nível, e finalmente as partes de rádio frequência (RF) recuperam os dados das tags.

Neste artigo, vamos tentar explicar a estrutura da mensagem NDEF com simples Uniform Resource Identifier (URI) para descrever o endereço da página web. Nós proporcionamos um exemplo de aplicação da Qt mobility que pode ser usado para testar.

Mensagem NDEF e registo NDEF

O NFC Data Exchange Format (NDEF) especificação define um formato de encapsulamento mensagem para troca de informações, por exemplo, entre um dispositivo Fórum NFC e outro dispositivo Fórum NFC ou um Tag do tipo Fórum NFC. NDEF é um formato de mensagem leve, binário que pode ser utilizado para encapsular uma ou mais cargas de aplicações definidas de tipo e tamanhos arbitrários numa única mensagem.

Uma mensagem NDEF é composto de um ou mais registos NDEF. Pode haver vários registos numa mensagem NDEF. Basicamente uma mensagem NDEF é uma matriz de registos NDEF. Quantos registos podem encapsular numa mensagem NDEF que depende da nossa aplicação e do tipo de tag. Para os nossos propósitos de análise, usamos apenas um registo NDEF. Este registo NDEF guarda lojas http://nokia.com. A seguinte imagem mostra de uma forma generalizada o formato duma mensagem NDEF[1][2].

NdefrecodPT.png

Quando nos comunicamos com os nossos dispositivos de leitura NFC (telemóveis) para ler ou gravar dadospara a tag NFC que lemos, basicamente, (por exemplo http: //nokia . com) o seguinte código hexa:

03 0e d1 01 0a 55 03 6e 6f 6b 69 61 2e 63 6f 6d fe
  • 03 - Este é um byte que define o tipo de registo é isso. Um registo NDEF é representado pelo byte hex 03, com o API da Qt mobility não oferecemos isso, aqueles que são adicionados para nós.
  • 0e - Este é um byte que diz ao leitor quantos bytes estão na carga. Com a API da Qt mobility nós não fornecemos isso, aqueles são adicionados para nós pela plataforma.
  • d1 - Os registos NDEF são registos de comprimento variável com um formato comum ilustrado na figura abaixo.
d1 é código binário (11010001) 

Ndeftnf.png

No nosso caso:

  • MB = 1 (Message Begin significa que este é o primeiro registo na mensagem NDEF)
  • ME = 1 (Message End significa que ele é o último registo na mensagem NDEF, se for 0 diz a aplicação que mais registos estão à frente)
  • CF = 0 (significa esta mensagem não é fragmentada, uma mensagem de NDEF pode conter zero ou mais cargas fragmentadas. Cada fragmento é codificado como um pedaço de registo inicial, seguido de zero ou mais blocos de registo médio e, finalmente, por um pedaço de registo final, no nosso caso simplificamos o nosso registo como não fragmentado)
  • SR = 1 (SR significa breve registo, se definida, que o campo de comprimento da carga é um único octeto. Este layout do registo curto destina-se para o encapsulamento compacto de pequenas cargas que se encaixam dentro de campos de carga de tamanho variando entre 0 e 255 octetos.)
  • IL = 0(IL representa o comprimento de identificação, caso configurado, o campo ID_LENGTH está presente no cabeçalho como um único octeto. Se o sinalizador IL é zero, o campo ID_LENGTH é omitido do cabeçalho de registo e o campo de identificação também é omitido do registo)
  • TNF = 001(O valor do campo de TNF indica a estrutura do valor do campo TYPE. O valor 0x01 (é um tipo bem conhecido no Forum NFC) indica que o campo TYPE contém um valor que segue o formato do nome do tipo RTD definido na especificação do Forum NFC RTD)
    Ndeffullrecod.png
  • 01 (Tipo Comprimento) - O campo TYPE_LENGTH é um inteiro não assinado de 8 bits que especifica o comprimento em octetos do campo TYPE. O campo TYPE_LENGTH é sempre zero para determinados valores do campo de TNF.
  • 0A (Comprimento da carga) - O campo PAYLOAD_LENGTH é um inteiro não assinado que específica o comprimento em octetos do campo da carga (a carga da aplicação). O tamanho do campo PAYLOAD_LENGTH é determinado pelo valor da bandeira SR
  • 55 (TYPE - O valor do campo TYPE é um identificador que descreve o tipo da carga, o tipo de registo URI (“U”) )
  • 03 - 0x03 identificador URI (“http://”)
  • Payload - O resto da string em UTF-8 (nokia.com)
  • Byte final FE. Este é último byte adicionado pela plataforma.

Referências

  1. http://www.developer.nokia.com/info/sw.nokia.com/id/bdaa4a0f-fcf3-4a4b-b800-c664387d6894/Introduction_to_NFC.html
  2. http://www.nfc-forum.org/specs/
This page was last modified on 25 July 2013, at 23:41.
270 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×