Я занимаюсь разработкой приложения для писателя nf c. Сверхлегкие метки Mifare, считыватель ACR122. Читатель показывает мне стандарт "TAG_ISO_14443_3". node.js, nf c -pcs c lib. Мне нужно написать URL-ссылку на веб-сайт, поэтому моя функция записи тега выглядит следующим образом (я нашел пример структуры NDEF ссылка ):
async function writeUrl (reader, url, block = 4) {
// +-------------------------+----------------------------------------------------------------
// | D1 | Header flags 11010001 (MB = ME = 1, CF = 0, SR = 1, IL = 0, TNF = 0x1) TNF = 0x1 is "well known NFC format"
// +-------------------------+----------------------------------------------------------------
// | 01 | Type Length (1 byte)
// +-------------------------+----------------------------------------------------------------
// | N | Payload Length (N bytes)
// +-------------------------+----------------------------------------------------------------
// | 55 | Type Name ("U")
// +-------------------------+----------------------------------------------------------------
// | 04 ... | Payload: Identifier code = 4 (prefix "https://"),
// | | truncated URI = url
// +-------------------------+----------------------------------------------------------------
let flagsByte = parseInt('D1', 16)
let typeLength = 1
let payloadLength = 1 + url.length // identifierByte + url
let typeName = parseInt('55', 16) // 'U', Url
let header = Buffer.from([flagsByte, typeLength, payloadLength, typeName]) // 4 bytes
let identifier = Buffer.from([parseInt('04', 16)]) // prefix https://, 1 byte
let urlBuffer = Buffer.from(url, 'utf8')
let payload = Buffer.concat([identifier, urlBuffer])
let length = header.length + payload.length
let remains = length % 4
length += (4 - remains) // we can write only by blocks (4 bytes)
if (length > 144) {
length = 144 // maximum bytes possible
}
let data = Buffer.concat([header, payload], length)
reader.write(block, data);
console.log(`data written`, reader, data) // data has 30+ not-zero bytes, all ok
return true;
}
В чем проблема ? После того, как я написал сообщение, мое приложение для чтения NF C (приложение GoToTags Windows) показывает мне, что мой тег пуст. !['empty' tag](https://i.stack.imgur.com/ica1o.png)
Пожалуйста, помогите. Я думаю, что пропустил что-то маленькое, но важное ...