跳转到内容
本页由英文自动翻译而成。报告错误或提出修改建议。

SDK

两个官方 SDK 负责处理所有 TigerTag 芯片操作——读取 144 字节 NTAG 载荷、校验 TigerTag 格式,以及编码新的芯片数据。

  • 仓库:TigerTag-SDK-JS(Apache-2.0)
  • 以 tigertag 为名发布在 npm 上。
  • Tiger Studio 内部使用;也可独立使用,用来构建自定义的 TigerTag 兼容工具。
终端窗口
npm install tigertag
  • 仓库:TigerTag-SDK-Python(Apache-2.0)
  • 以 tigertag 为名发布在 PyPI 上——适用于脚本、工具和自动化。
终端窗口
pip install tigertag # core only — stdlib, works fully offline
pip install tigertag[sync] # + requests (database auto-update)
pip install tigertag[verify] # + cryptography (ECDSA signature check)

两个 SDK 的用法相同。读取时,传入芯片的 UID 以及从 0x04 开始的页,即你的 NFC SDK 返回的内容。写入时,用各字段构建一个标签,再把它返回的 80 个字节写入页 0x04–0x17。ID 来自参考表;示例是一卷 1 kg、1.75 mm 的红色 Rosa3D PLA。

const { TigerTag } = require('tigertag');
// Read
const tag = TigerTag.fromPages(uid, payload);
console.log(tag.pretty());
console.log(String(tag.verify())); // VALID / NOT SIGNED / INVALID
// Write
const spool = TigerTag.create({
uid,
idType: 142, // Filament
idMaterial: 38219, // PLA
idBrand: 19961, // Rosa3D
idAspect1: 104, // Basic
idDiameter: 56, // 1.75 mm
color1R: 255, color1G: 0, color1B: 0, color1A: 255,
measure: 1000, idUnit: 21, // 1000 g
nozzleTempMin: 195, nozzleTempMax: 230,
});
const bytes = spool.toBytes(); // 80 bytes
from tigertag import TigerTag
# Read
tag = TigerTag.from_pages(uid, payload)
print(tag.pretty())
print(tag.verify()) # VALID / NOT SIGNED / INVALID
# Write
spool = TigerTag.create(
uid=uid,
id_type=142, # Filament
id_material=38219, # PLA
id_brand=19961, # Rosa3D
id_aspect_1=104, # Basic
id_diameter=56, # 1.75 mm
color1_r=255, color1_g=0, color1_b=0, color1_a=255,
measure=1000, id_unit=21, # 1000 g
nozzle_temp_min=195, nozzle_temp_max=230,
)
data = spool.to_bytes() # 80 bytes

要检查你的代码写入的内容,把 toBytes() 或 to_bytes() 的十六进制粘贴到 playground:它会在浏览器中逐字段解码这张芯片。

两个示例在 tigertag 1.2.1(npm)和 1.4.0(PyPI)下可按原样运行。API 的其余部分(签名细节、TigerTag+ 云同步、修改芯片、CLI)见各 SDK 的 README,以其为准:JavaScript · Python。

能力 说明
解析 把芯片转储解码为耗材身份(品牌、材料、颜色……)
校验 检查载荷是否为有效的 TigerTag 格式
编码 构建新的 144 字节载荷,用于写入芯片

参考数据(ID → 名称对照表)来自共享数据库——参见 通用耗材身份。