-
NDEF 의 TNF(Type Name Format)iOS Swift 2023. 6. 6. 14:57
NDEF 의 헤더 값 중 TNF는 레코드 내 페이로드의 타입을 설정하는 데 사용됩니다.
0 Empty Type 페이로드가 존재하지 않는다 1 NFC Forum well-known 타입 포럼에서 정의한 형식 2 MIME 타입 3 AURI(Absolute URI type) 4 NFC Forum External Type NFC 포럼에서 정의한 형식되로 임의의 타입을 만들 때 사용 5 Unknown Type 6 Unchanged 청크 레코드 에서 해당 슬라이스가 이전 슬라이스와 같은 타입임을 나타낼 때 사용 7 Reserved 사용되지 않음 NFC 포럼은TNF 1 과 TNF 4 에 대해 Record Type Definition(RTD) 규격에 이를 정의하고 있습니다. TNF 1은 Well Known Types 으로 URN Uniform Resource Name(URN) 명명 규칙을 따라, "urn:nfc:wkt:T" 형식을 따릅니다. 여기서 urn은 URN 네이밍 규칙을 말하고 nfc:wkt는 네임스페이스 식별자를 나타내고 T는 타입을 표현합니다. 잘 알려진 타입(Well Known Type)은 크게 글로벌 타입과 로컬 타입으로 나눌 수 있습니다. 클로벌 타입은 대문자로 시작합니다 예를 들어 텍스트 레코드는 "T", URI 레코드는 "U" 스마트 포인트 레코드는 "Sp" 와 같습니다. 로컬 유형은 공통 문자나 숫자로 시작합니다. 로컬 타입은 일반적으로 개발자에 의해 정의됩니다.
TNF 4는 NFC 포럼에서 정의하는 외부 타입을 나타내며 이는 NFC에서 정의한 규칙에 따라 임의로 타입을 만들어 사용할 때 지정됩니다. NFC 외부 타입으로 설정된 타입은 아래와 같은 형식을 수 있습니다.
URN: "urn:nfc:ext:object-wolrd.tstory.com:test"
nfc.ext는 외부 타입을 나타내는 네임 스페이스 식별자이고, object-world.tstory.com 이 도메인 네임, test 가 타입 이름이 됩니다. 외부 타입을 정의할 때 도메인 네임 내에 타입 이름을 설정해아 합니다.
Text Record
Text 레코드는 NFC 포럼이 정의한 잘 알려진 타입으로 타입 이름은 T("urn:nfc:wkt:T") 이고 텍스트 데이터를 포함하고 있습니다. 해당 페이로드 데이터의 포맷은 아래와 같습니다.
첫 번째 비트는 해당 UTF 코딩 방식을 설정합니다. 0 일 경우 UTF-8, 1일 경우 UTF-16을 사용합니다. 다음 비트는 Reserved 로 사용되지 않고 0으로 설정합니다. 다음은 Language Code의 길이로 나머지 6 비트를 사용합니다. 따라서 해당 값의 범위는 0 에서 63이 됩니다. Language Code는 ISO/IANA Language Code를 사용합니다.
URI Record
URI 레코드는 NFC 포럼이 정의한 잘 알려진 타입으로 이름은 U("urn:nfc:wkt:U") 로 URI 데이터를 가지고 있습니다. 해당 페이로드의 포맷은 아래와 같습니다.
URI Prefix Code는 1byte 값으로 URI Data의 크기를 줄이기 위해 축약 값을 표현합니다. 사용 가능한 값은 아래와 같습니다.
Decimal Content 0 N/A 1 http://www. 2 https://www. 3 http:// 4 https:// 5 tel: 6 mailto: 7 ftp://anonymous:anonymous@ 8 ftp://ftp. 9 ftps:// 10 sftp:// 11 smb:// 12 nfs:// 13 ftp:// 14 dav:// 15 news: 16 telnet:// 17 imap: 18 rtsp:// 19 urn: 20 pop: 21 sip: 22 sips: 23 tftp: 24 btspp:// 25 btl2cap:// 26 btgoep:// 27 tcpobex:// 28 irdaobex:// 29 file:// 30 urn:epc:id: 31 urn:epc:tag: 32 urn:epc:pat: 33 urn:epc:raw: 34 run:epc: 35 urn:nfc: 36 ~ 255 Reserved URI 데이터는 Uniform Resource Locator(URL) 과 Uniform Resource Name(URN) 데이터를 가지고 있습니다.
Smart Poster 레코드
스마트 포스터 레코드는 NFC 포럼에서 잘 알려진 정의 타입으로 타입 이름은 Sp("urn:nfc:wkt:Sp")입니다. 이는 URI 레코드를 중심으로 해당 레코드를 보조할 다른 레코드로 결합된 레코드입니다. 스마트 포스터 레코드는 하나의 URI 레코드를 가지고 다른 레코드들은 해당 URI 레코드에 첨부되는 형식입니다.
'iOS Swift' 카테고리의 다른 글
BLE 프로토콜 구조 (0) 2023.06.07 Adding Support for Background Tag Reading (0) 2023.06.06 NDEF(NFC Data Exchage Format) 메시지 구조 (3) 2023.06.06 swift 에서 C++ 사용하기 - opencv 연동 (0) 2020.09.09 Playground를 이용한 UI 프로토타입 설계 (0) 2020.09.09