Odczyt dowolnego zrzutu
fromPages(), fromDump() i fromFile() przyjmują UID z 80 lub 144 bajtami albo pełny zrzut 180 bajtów. pretty(), describe(), toDict() i toRawDict() zwracają tekst, akapit prostym językiem lub obiekty gotowe do JSON.
Odczytuj, weryfikuj i zapisuj chipy NFC TigerTag w JavaScript.
SDK otwartego protokołu TigerTag dla filamentu i żywicy do druku 3D: zamienia bajty chipu na materiał, kolor, ustawienia druku i ilość, sprawdza jego podpis ECDSA-P256 offline i buduje nowe tagi bajt po bajcie.
npm install tigertag
const { TigerTag } = require('tigertag');
const tag = TigerTag.fromPages(uid, payload); // from your NFC SDK
console.log(tag.pretty()); // human-readable summary
console.log(String(tag.verify())); // VALID / NOT SIGNED / INVALID
console.log(tag.toDict()); // JSON-ready object
Zainstaluj pakiet, odczytaj chip swoją biblioteką NFC i zapisz nowy. Dołączone tabele referencyjne pozwalają na pierwsze uruchomienie bez sieci.
Z rejestru npm. pnpm, yarn i bun instalują ten sam pakiet.
npm install tigertag
pnpm add tigertag
yarn add tigertag
bun add tigertagPrzekaż 7-bajtowy UID i 144 bajty odczytane przez bibliotekę NFC. Tutaj z nfc-pcsc i czytnikiem ACR122U.
// Node.js — nfc-pcsc (ACR122U / PN532)
reader.on('card', async (card) => {
const uid = Buffer.from(card.uid, 'hex'); // 7 bytes
const payload = await reader.read(4, 144, 4); // pages 4–39, 144 bytes
const tag = TigerTag.fromPages(uid, payload);
console.log(tag.pretty());
console.log(String(tag.verify())); // VALID / NOT SIGNED
});Każda zmiana zwraca nowy TigerTag; toBytes() daje bajty do zapisania. erase() daje pusty chip.
// Immutable surgical update — returns a new TigerTag, original unchanged
const patched = tag.patch({ nozzleTempMin: 200, dryTemp: 55 });
// Erase a chip — write the returned 80 bytes to the NFC chip
const blankBytes = TigerTag.erase();Jeden pakiet do wszystkiego, co dotyczy chipu TigerTag: odczytu, sprawdzania, zapisu i aktualizacji danych.
fromPages(), fromDump() i fromFile() przyjmują UID z 80 lub 144 bajtami albo pełny zrzut 180 bajtów. pretty(), describe(), toDict() i toRawDict() zwracają tekst, akapit prostym językiem lub obiekty gotowe do JSON.
verify() sprawdza podpis ECDSA-P256, który wiąże UID chipu z danymi produktu, kluczem publicznym dołączonym do pakietu. Wynik to valid, invalid, unsigned, no_key lub no_uid.
create(), asInit(), patch() i erase() budują bajty chipu. TigerTag jest niezmienny: patch() zwraca nowy obiekt i nie pozwala zmienić idTigertag, idProduct, uid ani podpisu.
TigerTag.fromCatalog(productId) buduje kompletny TigerTag+ z oficjalnego katalogu produktów, pobieranego przy pierwszym użyciu i przechowywanego w pamięci podręcznej użytkownika.
Dla chipów TigerTag+ rawApi(), diffApi() i patchFromApi() pobierają aktualne dane produktu marki, pokazują różnice względem chipu i je stosują.
Tabele materiałów, marek, wyglądu, typów, średnic i jednostek są w pakiecie. Sprawdzenie w tle aktualizuje je najwyżej raz dziennie; offline: true lub TIGERTAG_OFFLINE=1 oznacza zero połączeń sieciowych.
SDK odczytuje i zapisuje trzy typy tagów protokołu TigerTag v2.2 na chipach NTAG213, NTAG215 i NTAG216.
Wszystkie pola na chipie, czytelne całkowicie offline.
Pusty szablon, gotowy do zaprogramowania. Tworzy go TigerTag.asInit().
Wszystkie pola na chipie oraz identyfikator produktu powiązany z API w chmurze, z którego pochodzą aktualizacje producenta. Podpisany chip sprawdza się przez verify().
Pakiet instaluje polecenie tigertag i działa w procesie głównym aplikacji Electron.
Odczytuje zrzut jako tekst, JSON lub surowe pola i na żądanie aktualizuje tabele referencyjne.
# Parse a dump file
tigertag dump.bin
# JSON output
tigertag dump.bin --json
# Update the reference tables now (into the data dir)
tigertag updateOdczyt chipów w procesie głównym, bez dodatkowego podprocesu.
// main.js — replace parseTigerTag() subprocess dependency
const { TigerTag, TigerTagDB } = require('tigertag');
function parseTigerTag(payload, uid) {
const tag = TigerTag.fromPages(Buffer.from(uid), Buffer.from(payload));
const db = new TigerTagDB();
return {
dict: tag.toDict(db),
raw: tag.toRawDict(),
sig: tag.verify(db).toDict(),
};
}Lokalna strona internetowa, serwowana przez samo SDK, która buduje i dekoduje chipy TigerTag i pokazuje każdy bajt. Sprzęt NFC nie jest potrzebny.
npm run playground
# then open http://localhost:7432/tools/playground.html
# Enable live reader support (one-time install)
npm install ws nfc-pcsc
SDK implementuje otwartą specyfikację TigerTag, obok pozostałych oficjalnych narzędzi.
Otwarta specyfikacja implementowana przez SDK: układ pamięci, typy tagów, schemat podpisu i referencyjna baza danych.
Repozytorium: TigerTag-RFID-GuideWersja w Pythonie: odczyt, weryfikacja, zapis i porównywanie. Strona playground to ten sam plik w obu SDK.
Repozytorium: TigerTag-SDK-PythonOtwartoźródłowy program do zarządzania magazynem dla Windows, macOS i Linuksa, współpracujący z TigerTag Pod i czytnikami ACR122U.
Repozytorium: TigerTag-Studio-ManagerOficjalna aplikacja mobilna: odczyt i zapis chipów wbudowanym NFC telefonu.
Uruchom npm install tigertag albo pnpm add tigertag, yarn add tigertag lub bun add tigertag. Wymaga Node.js 18 lub nowszego i żadnego innego pakietu do odczytu i weryfikacji.
Nie. Tabele referencyjne i klucz publiczny podpisu są w pakiecie, więc odczyt i weryfikacja działają offline. Sieć służy tylko do codziennego sprawdzenia tabel, katalogu produktów i metod chmurowych TigerTag+; offline: true lub TIGERTAG_OFFLINE=1 ją wyłącza.
TigerTag używa chipów NTAG213, NTAG215 i NTAG216 (ISO 14443-3). SDK przyjmuje UID i bajty odczytane przez bibliotekę NFC, więc nie jest związane z jednym czytnikiem; README pokazuje nfc-pcsc z ACR122U.
verify() sprawdza podpis ECDSA-P256 chipu obejmujący jego UID i identyfikatory produktu, kluczem publicznym dołączonym do pakietu. Zwraca valid, invalid, unsigned (tag Maker), no_key lub no_uid, bez łączenia się z serwerem.
Buduje bajty: create(), patch(), asInit(), erase() i fromCatalog() zwracają TigerTag, którego toBytes() to zawartość zapisywana przez bibliotekę NFC. Przycisk Burn w playground zapisuje ją na chipach podłączonych czytników.
Tak: TigerTag-SDK-Python to wersja tego samego API w Pythonie, a oba SDK serwują tę samą stronę playground.
Apache-2.0, która zawiera wyraźne udzielenie praw patentowych. Implementacja samego protokołu TigerTag nie wymaga żadnej licencji.
npm install tigertag, a potem TigerTag.fromPages(uid, payload).