Spoel-id's en QR-links
Geratificeerd op 2026-11-05 — nog niet geïmplementeerd. Apps bouwen op dit contract. De punten die nog openstaan, staan aan het eind; als er een wordt beslecht, verandert alleen wat dat punt noemt. Secties gemarkeerd als Voorgesteld zijn nog niet geratificeerd: bouw er niet op voordat ze dat zijn.
Publieke referentie: de repository TigerQR-Label bevat de link- en labelspecificaties van dit contract (
spec/links.md,spec/labels.md), de testvectoren (test-vectors/links.json), de referentiecode dieqr.tigertag.iodraait (src/parse.ts,src/links.ts) en de negen voorbeeldlabels. Documentatie onder CC-BY-4.0, code onder Apache-2.0. Controleer een lezer met de testvectoren.
Snelle uitleg
Section titled “Snelle uitleg”Een TigerTag-QR-code bevat één korte link, https://qr.tigertag.io/<path>. Het
pad zegt wat hij opent:
flowchart TD
QR["QR scanned<br/>qr.tigertag.io/#lt;path#gt;"]
QR -- "/#lt;14 hex#gt;" --> CHIP["Spool with a chip<br/>TigerTag / TigerTag+"]
QR -- "/#lt;10 or 17 digits#gt;" --> DATA["Spool without a chip<br/>TigerData / TigerData+"]
QR -- "/p/#lt;10 digits#gt;" --> PROD["Catalogue product, public<br/>page · .json · .ttag"]
CHIP --> OWNER{"Spool: is the owner<br/>signed in?"}
DATA --> OWNER
OWNER -- "yes" --> SPOOL["Their spool<br/>page · .json · .ttag"]
OWNER -- "no" --> OTHER["The product and the owner's name<br/>.json / .ttag: 303 to /p/"]
classDef private fill:#f08c0022,stroke:#f08c00,stroke-width:2px
classDef public fill:#2f9e4422,stroke:#2f9e44,stroke-width:2px
class CHIP,DATA,OWNER,SPOOL private
class PROD,OTHER public
Oranje is privé, alleen voor de eigenaar van de spoel; groen is openbaar.
| QR-code op | Pad | Voorbeeld |
|---|---|---|
| een spoel met chip (TigerTag / TigerTag+) | de UID van de chip in hex, 14 tekens, in kleine letters gedrukt; de UID van de tweelingchip opent dezelfde spoel | qr.tigertag.io/1d33dbda0d1080 |
| een spoel zonder chip (TigerData / TigerData+) | de id zonder het voorvoegsel TigerData_: 10 of 17 cijfers; de lange vorm (TigerData_6130922252, tigerdata-…) werkt ook |
qr.tigertag.io/6130922252 |
| een product (TigerQR+) | p/ + de id_product decimaal, altijd 10 cijfers, aangevuld met nullen (p/0010303748); oudere labels met 8 hex-tekens (p/9f5e0644) openen nog steeds |
qr.tigertag.io/p/2673739332 |
- Een spoellink: de eigenaar ziet, ingelogd, de spoel zelf; ieder ander
ziet het product en de naam van de eigenaar.
.jsonen.ttaggeven de spoel alleen aan de eigenaar; anderen krijgen een303naar de.json/.ttagvan het product. - Een productlink is openbaar, zonder inloggen: de cataloguspagina, de
gegevens (
p/2673739332.json) en het bestand (p/2673739332.ttag). - Links worden in hoofd- en kleine letters gelezen.
- Deel een spoel of een product met deze korte link: die staat op de labels, en
elke app leest hem. Een gedeelde link kan met een taal beginnen (
qr.tigertag.io/fr/p/2673739332): de pagina opent dan voor iedereen in die taal. Gedrukte labels dragen er nooit een.
De rest van deze pagina is het contract zelf.
De regels die elke TigerSystem-app volgt:
- hoe een spoel zonder chip (TigerData / TigerData+) zijn id krijgt;
- hoe een spoel zijn link behoudt wanneer hij een chip krijgt;
- hoe het id van een spoel in de QR-code van een geprint label wordt geschreven, en weer wordt gelezen;
- hoe een app een spoel met waarden aanroept (een gewicht, een notitie) via een link;
- hoe een product zijn eigen link krijgt;
- hoe een link antwoordt in JSON of als
.ttag-bestand. - wat een geprint label bevat, en de sjablonen ervan.
1. Spoel-id’s
Section titled “1. Spoel-id’s”Een spoel is een document in de inventaris van het account,
users/{uid}/inventory/{spoolId}. Het document-id is het spoel-id: één
account kan geen twee spoelen met hetzelfde id bevatten.
| Spoel | Id | Voorbeeld |
|---|---|---|
| Chip (TigerTag / TigerTag+) | de NFC-UID van de chip, hexadecimaal in hoofdletters, 14 tekens (de 7-byte UID van een NTAG) | 04AB12CD3E4F80 |
| Zonder chip, vanaf nu aangemaakt | TigerData_ + epoch-milliseconden (13 cijfers) + een willekeurig getal 0000–9999 (altijd 4 cijfers) |
TigerData_17623456789014213 |
| Zonder chip, aangemaakt vóór dit contract | TigerData_ + 10 willekeurige cijfers |
TigerData_4480517985 |
| Zonder chip, oud voorvoegsel | CLOUD_ + 10 willekeurige cijfers |
CLOUD_4480517985 |
| Oud decimaal (oude Android-app) | de UID decimaal geschreven, wordt gemigreerd naar hex | 1234567890123456 |
Al aangemaakte id’s worden door dit contract nooit herschreven. Lezers testen
alleen het voorvoegsel (TigerData_ / CLOUD_ → zonder chip); geen van hen hangt
af van het aantal cijfers. Het id is een identificatie, verder niets: leid er
nooit een aanmaakdatum uit af. Een 4-byte UID (een propriëtaire chip die aan een
spoel is gekoppeld) is nooit de naam van een inventarisdocument, dus hij komt
nooit in een link voor.
Een id zonder chip aanmaken
Section titled “Een id zonder chip aanmaken”Elke app die spoelen zonder chip aanmaakt (vandaag Tiger Studio, later de mobiele app) maakt het id op dezelfde manier aan:
- Samenstellen
TigerData_<Date.now()><four random digits>. - Lokale controle — als het id al in de inventaris staat die de app heeft
(de kopie van de live listener, offline cache inbegrepen) of in zijn
uidMigrationMap, stel dan een ander samen. Dit werkt offline. - Schrijven
- online: in een transactie die het document eerst leest en mislukt als het bestaat; bij mislukking terug naar stap 1;
- offline: een gewone schrijfactie, door Firestore in de wachtrij gezet tot het netwerk terug is. Stap 1 en 2 zijn de enige bescherming.
Een gewone set() op een id dat al bestaat, overschrijft de spoel die er al
stond, zonder melding. Dat is wat stap 3 voorkomt.
De vier willekeurige cijfers maken een nieuw id zonder chip bovendien praktisch uniek over alle accounts heen (ongeveer één botsing per 600 jaar bij een miljoen spoelen zonder chip per jaar), zodat een server later een link kan oplossen voor iemand anders dan de eigenaar, zonder een geprint label te wijzigen.
2. De link behouden wanneer een spoel een chip krijgt
Section titled “2. De link behouden wanneer een spoel een chip krijgt”Een chip programmeren op een spoel zonder chip verplaatst de spoel naar de UID van de chip. In één batch:
- de spoel schrijven onder de UID van de chip (en de tweeling-UID, bij een tweelingpaar);
- het
TigerData_…-document verwijderen; - de doorverwijzing
users/{uid}/uidMigrationMap/{old id}→{ hex_uid, migrated_at }schrijven.
De batch zorgt ervoor dat de drie samen gebeuren of helemaal niet. De
doorverwijzing staat in uidMigrationMap (de collectie die oude decimale id’s al
naar hex vertaalt), nooit als stubdocument in de inventaris: alles wat de
inventaris leest, telt één document als één spoel.
3. QR-links
Section titled “3. QR-links”Een geprint spoellabel draagt een QR-code met een link naar de spoel, en verder niets (geen gewicht, geen notitie — geprinte waarden raken verouderd):
https://qr.tigertag.io/<id>Naast de code wordt niets in leesbare tekst geprint: geen id, geen link. De QR-code is de weg terug naar de spoel.
<id> is het spoel-id zonder zijn voorvoegsel:
| Spoel | Link |
|---|---|
| Chip | https://qr.tigertag.io/04ab12cd3e4f80 |
| Zonder chip (nieuw) | https://qr.tigertag.io/17623456789014213 |
| Zonder chip (vóór dit contract) | https://qr.tigertag.io/4480517985 |
CLOUD_ |
geen QR-link — het label wordt zonder QR-code geprint |
| Oud decimaal | geen QR-link — migreer de spoel eerst naar hex |
Codering
Section titled “Codering”- De hele link is in kleine letters, het id inbegrepen:
https://qr.tigertag.io/04ab12cd3e4f80. Getest op 2026-11-07: de iPhone-camera opent een link in beide vormen, maar de Samsung-camera (Galaxy S24) toont een link metHTTPS://in hoofdletters als gewone tekst en opent alleen een link in kleine letters. - Eén segment in byte-modus. Een schema in kleine letters kan de alfanumerieke modus niet gebruiken, en de link in segmenten opsplitsen levert niets op (gemeten: elke variant is 29 × 29).
- Foutcorrectie M (15 %): labels raken bekrast en gevouwen.
- Resultaat: 29 × 29 modules voor elke spoel- en productlink. Teken elke module op een geheel aantal printerpunten, met de standaard stille zone van 4 modules.
Een link teruglezen
Section titled “Een link teruglezen”Lezers halen het id offline uit de link: een app die een label scant, heeft
de website nooit nodig. Ze lezen het pad zonder onderscheid tussen hoofd- en
kleine letters, negeren een afsluitende / en lossen het op naar zijn vorm:
| Pad | Spoel-id |
|---|---|
| 17 cijfers | TigerData_<17 digits> |
| 10 cijfers | TigerData_<10 digits> |
| 14 hextekens | de UID, in hoofdletters |
13 hextekens die beginnen met 4 |
een afgekapte NTAG-UID: 0 + de 13 tekens (herstelregel) |
p/ + de id_product: 10 decimale cijfers (gedrukte vorm) of 8 hextekens (oudere labels) |
een product — sectie 5 |
Een uitgang .JSON of .TTAG vraagt om het antwoord voor tools — sectie 6.
Apps schrijven de korte vorm hierboven, maar lezers accepteren ook de lange
vorm: het voorvoegsel TigerData in willekeurige schrijfwijze, gevolgd door _
of -, dan de 17 of 10 cijfers — TigerData_17623456789014213,
TigerData-17623456789014213, TIGERDATA-17623456789014213,
tigerdata_4480517985 verwijzen allemaal naar dezelfde spoel. Een link die met
de hand is getypt of gedeeld, blijft werken. Het voorvoegsel CLOUD wordt in geen
van beide vormen geaccepteerd.
Een UID kan uit alleen cijfers bestaan, maar hij is 14 tekens lang, nooit 17 of
10, dus de lengte beslist altijd. Geen enkel oud decimaal id bereikt een lezer,
omdat er nooit een wordt geprint. Elke andere vorm is een label van een
nieuwere versie: de lezer zegt dat („werk de app bij”) in plaats van te falen.
Elk ander soort ding krijgt een eigen map, een letter en een / (p/ voor een
product, later r/ voor een rack), zodat het nooit kan botsen met spoellinks die
al geprint zijn.
Taalvoorvoegsel
Section titled “Taalvoorvoegsel”Een gedeelde link kan vóór het pad de taal van de deler dragen. (2026-11-11.)
https://qr.tigertag.io/<lang>/<spool id>https://qr.tigertag.io/<lang>/p/<id_product><lang> is een van en, fr, de, es, it, zh, pt, pt-pt, pl,
ru, nl, in kleine letters geschreven en in hoofd- en kleine letters gelezen.
- De pagina opent dan voor iedereen in die taal, ook voor crawlers van
linkvoorbeelden:
/fr/p/2673739332→tigersystem.io/fr/catalog/2673739332. - Zonder voorvoegsel beslist de browsertaal van de bezoeker.
- Een onbekend voorvoegsel geeft een
404. - Gedrukte labels dragen nooit een voorvoegsel: ze blijven taalneutraal. Alleen de Delen-knoppen voegen er een toe (tigersystem.io en Tiger Studio).
Lezers halen het weg. Een lezer die een link krijgt (het plakveld in Studio, de scanner of het plakveld van de mobiele app, elke lezer van derden) haalt eerst één <lang>/ vooraan weg, ongeacht hoofd- of kleine letters, en leest de rest dan zoals hierboven: qr.tigertag.io/fr/p/2673739332 opent hetzelfde product als qr.tigertag.io/p/2673739332. Een lezer drukt of bewaart het voorvoegsel nooit: een label of export gemaakt van een gedeelde link draagt de kale link. De gedeelde link is qr.tigertag.io/fr/p/2673739332; de QR-code bevat altijd qr.tigertag.io/p/2673739332. (2026-11-11.)
De spoel opzoeken
Section titled “De spoel opzoeken”-
Zoek het id op in de eigen inventaris van de aangemelde kijker.
-
Niet daar → zoek het op in de
uidMigrationMapvan de kijker en volg de doorverwijzing. -
Een tweelingpaar heeft één label, met de hoofd-UID; elk van beide UID’s opent de spoel.
-
Een verwijderde spoel (
deleted: true) opent als „verwijderd”, niet als fout.De eigenaar ziet de spoel op de pagina zelf, in de browser gelezen uit zijn eigen inventarisdocument (de regels beperken het tot hem): het product (foto op zijn kleur), merk, materiaal, niveau, resterend gewicht van de capaciteit, nozzle-, bed- en droogtemperaturen, diameter, rack en slot, leeg-spoelgewicht. Twee knoppen: „Open in Tiger Studio” (
https://studio.tigersystem.io/?spool=<docId>, met de waarden van de link) en „See the product page”. Een eigenaar die op het apparaat bij Studio Web is aangemeld maar niet op de site, wordt naar Studio Web gestuurd: de site kan het document niet lezen zonder een eigen sessie. (2026-11-07.) De eigenaar kan daar het gewicht en de notitie wijzigen, met dezelfde schrijfactie als Studio:weight_availableofmessage(hoogstens 28 bytes UTF-8),updatedAt(servertijd),needUpdateAt(servertijd) bij een chipformaat, de tweeling in dezelfde batch. Ook de houder (lege spoel) kan daar worden gewijzigd, zoals Studio die schrijft:container_id,container_weight(met de eigen correctie van het account),updatedAt, de tweeling in dezelfde batch. De pagina heeft een afmeldknop. (2026-11-08.) -
Wie niet de eigenaar is — niet aangemeld, een ander account, een geaccepteerde vriend inbegrepen — wordt naar het product van de spoel gestuurd en krijgt de spoel nooit te zien: de server vindt de spoel via zijn id over alle accounts heen (een index op het spoel-id), leest het
id_producten verwijst door naar de productlink uit sectie 5. Hetzelfde id in twee accounts met verschillende producten (een herschreven chip waarvan een ander account het oude document heeft gehouden) → het product van het laatst bijgewerkte document (updatedAt), in praktisch elk geval juist. Geen product of geen overeenkomst → een pagina die zegt dat de spoel privé is, met „Start my inventory”. De zoekactie draait alleen voor die scans, dus de kosten volgen de scans, niet het aantal accounts. (Geratificeerd op 2026-11-06; de conflictregel op 2026-11-07.)Een bezoeker zonder sessie (geen aanmelding gevonden op het apparaat) wordt niet doorverwezen: de pagina laat hem kiezen. Ze toont een kaart van het product van de spoel (alleen het openbare product, nooit bij een privéspoel), meldt hem ter plekke aan (na de aanmelding draait de eigenaarscontrole opnieuw en komt de eigenaar bij de spoel uit) of gaat door naar de productpagina. Iemand die aangemeld is maar niet de eigenaar is, wordt zoals hierboven naar het product gestuurd. (2026-11-07.)
Van wie de spoel is. Iedereen die een spoel scant, aangemeld of niet, ziet de eigenaar: de weergavenaam en foto uit
userProfilesvan het account waarvan het document het laatst is bijgewerkt, ook als het profiel niet openbaar is en ook bij een spoel zonder product, zodat wie een spoel vindt, weet van wie hij is. Nooit de uid of het e-mailadres. (2026-11-08.)
Privacy: een id kennen toont nooit een spoel. Een gescande link opent een spoel alleen voor de eigenaar; in de apps wordt een spoel alleen getoond aan iemand die de Firestore-regels al toestaan hem te lezen (de eigenaar, een geaccepteerde vriend, een openbare inventaris). Id’s bevatten een tijdstempel en kunnen worden geraden; dat mag nooit uitmaken. Het product van een spoel is niet privé: het staat op het label geprint, en een TigerTag+-chip draagt het leesbaar voor elke NFC-telefoon. Het gewicht, de notitie en het rack gaan nooit naar buiten; de eigenaar verschijnt alleen als weergavenaam en foto (hierboven). Een scan wordt één keer per browsertabblad en spoel geteld (herladen is geen nieuwe scan), met het product, merk, materiaal en een plaats op stadsniveau, nooit het spoel-id. Het scanrapport bevat ook het IP-adres van de bezoeker, bewaard tegen overspoeling en voor analyse: het wordt alleen in de beheergeschiedenis getoond, nooit aan merken, en wordt gebruikt om de stad te controleren die de edge doorgaf. Het wordt één jaar bewaard, alleen voor de beveiliging. Een scan door een aangemelde bezoeker wordt aan zijn account gekoppeld.
4. Een spoel met waarden aanroepen
Section titled “4. Een spoel met waarden aanroepen”Een app kan een link bouwen die een spoel opent en waarden voorstelt, met gewone queryparameters (deze links worden nooit geprint, dus leesbaarheid gaat voor QR-grootte):
https://qr.tigertag.io/04AB12CD3E4F80?weight=640¬e=Opened%20in%20JuneParameters
Section titled “Parameters”| Parameter | Waarde | Grens |
|---|---|---|
weight |
netto filamentgewicht, in gram | geheel getal, van 0 tot de capaciteit van de spoel |
note |
de notitie van de spoel (het veld message) |
platte tekst, hoogstens 28 bytes UTF-8 (de ruimte op de chip) |
Namen zijn niet hoofdlettergevoelig. Een onbekende parameter wordt genegeerd, nooit een fout. Een waarde buiten de grens wordt geweigerd. Nieuwe parameters worden aan deze tabel toegevoegd, nooit door één app alleen bedacht.
Wie ze kan toepassen
Section titled “Wie ze kan toepassen”| Situatie | Wat er gebeurt |
|---|---|
| Niet aangemeld | Waarden geweigerd. De link biedt aan om aan te melden en opent de spoel daarna zonder ze. |
| Aangemeld, niet de eigenaar (de spoel van een vriend inbegrepen) | Waarden geweigerd. De spoel opent als de regels dat toestaan. |
| Aangemeld, de eigenaar | Studio: de spoel opent met de waarden vooraf ingevuld, en één handeling slaat ze op („Update: 640 g”). De Hub-pagina: een gewicht dat binnen de capaciteit past en afwijkt van het opgeslagen gewicht, wordt meteen opgeslagen, op de spoel en zijn tweeling in één batch, waarna een banner aanbiedt het vorige gewicht terug te zetten („Revert to 772 g”), voor het geval een oude link opnieuw wordt gescand. (Hub, 2026-11-08.) |
Een link van iemand anders schrijft nooit: waarden gelden alleen voor de eigen spoel van de eigenaar. Een app die zonder bevestiging moet schrijven (een weegschaal die het gewicht continu bijwerkt, een integratie) gebruikt geen links: ze schrijft via het account van de gebruiker onder de Firestore-regels (integratiegids).
5. Productlinks
Section titled “5. Productlinks”Geratificeerd op 2026-11-06.
Een product — een filament uit de catalogus, wie er ook een spoel van bezit — heeft een eigen link, voor verpakkingen, een winkelschap, een showroom of een geprinte catalogus:
https://qr.tigertag.io/p/<id_product><id_product>wordt decimaal geschreven, altijd 10 cijfers, vooraan aangevuld met nullen: eenid_productheeft nooit meer dan 10 cijfers (de grootste is4294967295). Voorbeelden: product2855882328→https://qr.tigertag.io/p/2855882328; product10303748→https://qr.tigertag.io/p/0010303748. 29 × 29 modules.- Eerder gedrukte labels dragen de oudere vorm, de
id_productin 8 hexadecimale tekens in kleine letters (p/aa394e58); die blijft voorgoed leesbaar (zie hieronder). - Een id dat niet, of niet meer, in de catalogus staat —
p/0000000000enp/4294967295(„geen product”, nooit geprint), een onbekend id, een gearchiveerd, verwijderd of samengevoegd product — opent één enkele pagina „vergeten product”: dit filament staat niet meer in de catalogus, met de zoekfunctie. Eén status voor allemaal,404(de pagina en de.json- /.ttag-antwoorden net zo): waarom een product is verdwenen, doet er voor de lezer niet toe. Eenid_productwordt nooit aan een ander product gegeven: een label dat al is opgeplakt, kan nooit het verkeerde filament openen. - De links worden geserveerd door de Hub (
tigersystem.io):qr.tigertag.iowijst ernaar. De pagina is de cataloguspagina van de Hub (hieronder); de.JSON- en.TTAG-antwoorden zijn Hub-API-routes die de catalogus lezen (gecachet). - Een spoellabel herhaalt nooit zijn product: de spoellink leidt er al naartoe (sectie 3).
Een productlink lezen
Section titled “Een productlink lezen”Een goed gevormde productlink heeft een van twee lengtes, dus hij kan nooit verkeerd gelezen worden:
- 10 cijfers → decimaal (
p/2673739332,p/0010303748). - 8 tekens
0-9/a-f→ hexadecimaal, de oudere gedrukte vorm, nog steeds geaccepteerd (p/9f5e0644opent hetzelfde product alsp/2673739332).
Als tolerantie, zonder garantie, wordt een met de hand getypt decimaal getal van
een andere lengte decimaal gelezen, behalve precies 8 cijfers: die worden eerst
hexadecimaal gelezen, dan decimaal als dat product niet bestaat. Een waarde boven
4294967295 is een onbekende link. 0 en 4294967295 betekenen in elke vorm
“geen product” (404). De uitgangen .json en .ttag werken op elke vorm,
ongeacht hoofdletters.
De pagina die hij opent
Section titled “De pagina die hij opent”p/… verwijst (302) door naar de bestaande cataloguspagina van het
product, tigersystem.io/<lang>/catalog/<id_product in decimal>, in de taal van de link (taalvoorvoegsel), anders in die van de telefoon. Er is geen aparte scanpagina: de cataloguspagina is eerst voor de
telefoon gebouwd (responsief), omdat de meeste bezoeken van een scan komen —
foto en kleurstaal, merk, materiaal en kleurnaam bovenaan, de printinstellingen
in één oogopslag leesbaar, daarna de rest van de pagina.
6. JSON- en .TTAG-antwoorden
Section titled “6. JSON- en .TTAG-antwoorden”Geratificeerd op 2026-11-06.
Een link die eindigt op .JSON (in elke schrijfwijze) — of die wordt verstuurd
met Accept: application/json — antwoordt in JSON in plaats van met een pagina.
Een link die eindigt op .TTAG antwoordt met hetzelfde record als
.ttag-bestand om te downloaden
(Content-Disposition: attachment). Dit zijn adressen voor tools, nooit
geprint.
Dezelfde logica als bij een scan (de spoel opzoeken): de eigenaar krijgt de spoel, ieder ander het product.
| Link | De eigenaar (Authorization: Bearer <Firebase ID token>) |
Ieder ander (niet aangemeld, een ander account, een vriend) |
|---|---|---|
…/p/2855882328.json |
het productrecord | hetzelfde |
…/p/2855882328.ttag |
het product als .ttag-bestand |
hetzelfde |
…/04ab12cd3e4f80.json |
de spoel | 303 → …/p/<id_product>.json; geen catalogusproduct (een TigerData, een TigerTag van een maker) → 404 |
…/04ab12cd3e4f80.ttag |
de spoel als .ttag-bestand |
303 → …/p/<id_product>.ttag; geen catalogusproduct → 404 |
Zonder catalogusproduct wordt niets van de spoel teruggegeven, zelfs niet het
materiaal: de 404 komt overeen met de pagina „privéspoel” van een scan.
- Spoel: een
.ttag-bestand met dat ene record, het inventarisdocument zoals Firestore het opslaat. Het bevatid_product; een tool die het product wil, roept daarna…/p/<id_product>.jsonaan. - Product: het catalogusrecord zoals de product-API het teruggeeft, in de
taal van
?lang=(standaard Engels). Gecachet op de server en toegestaan vanaf elke site. - Een spoelantwoord wordt nooit gecachet: het hangt af van wie het vraagt.
- Geopend in Tiger Studio wordt de
.ttagvan een spoel geïmporteerd in de modus Restore (de spoel zoals hij was, chip en back-up inbegrepen); de.ttagvan een product wordt geïmporteerd in de modus Import, als nieuwe TigerData+ met een vers id. - Een JSON- of
.TTAG-verzoek schrijft nooit: linkwaarden (?weight=,?note=) worden daar genegeerd.
7. Geprinte labels
Section titled “7. Geprinte labels”Elke app print dezelfde labels: twee soorten, één set sjablonen, zodat een label dat vanuit Tiger Studio, de mobiele app of de website is geprint, er hetzelfde uitziet en hetzelfde scant.
| Label | De QR-code | Geprint voor |
|---|---|---|
| Spoel | de spoellink (sectie 3) | elke spoel met een QR-link (niet CLOUD_, niet oud decimaal) |
| Product (kleurstaalkaart) | de productlink (sectie 5) | een spoel of een catalogusproduct met een echt id_product (TigerTag+, TigerData+) |
De eigenaar die een spoellabel scant, krijgt de spoel; ieder ander het product (de spoel opzoeken). Een productlabel opent het product voor iedereen: het is het label voor een kleurstaal, een schap of een showroom.
Wat een label bevat
Section titled “Wat een label bevat”- het merk, waar een fabrikantenlogo zou komen (fabrikantenlogo’s komen later);
- de serie in wit op een zwarte balk (
PLA Rainbow; het materiaal als er geen serie is); - de kleurnaam, en de hexcode(s) (
#F2D066, tot drie op de brede sjablonen); - op een spoellabel de naam van het label in de rechterbovenhoek, als omlijnde pil:
TigerQR+als de referentie een catalogusproduct (een echtid_product) of een TigerTag+-chip is, andersTigerQR(een TigerTag-chip zonder product geeft dusTigerQR); een product-(filament)label draagt altijdTigerQR+. Net als bij TigerTag en TigerTag+ betekent de+: gekoppeld aan de catalogus. De pil zegt niet of de spoel een chip heeft; - tot vier waardevakken, door de gebruiker gekozen uit: nozzlebereik, bedbereik, drogen (temperatuur · tijd), TD, diameter;
- de QR-code.
Alleen wat niet verandert: nooit het resterende gewicht, de notitie, het rack of de eigenaar. Niets in leesbare tekst naast de QR-code (sectie 3).
Sjablonen
Section titled “Sjablonen”Negen sjablonen, de gangbare formaten en indelingen van spoellabels:
| Sjabloon | Formaat (breedte × hoogte) | Indeling |
|---|---|---|
| Classic (standaard) | 40 × 30 mm | merk, balk, kleur + hex, vier vakken, QR rechtsonder |
| Wide | 50 × 30 mm | de Classic, bredere balk |
| Compact | 40 × 25 mm | merk, QR links, balk, kleur, hex — geen vakken |
| Slim | 40 × 12 mm | QR links, merk, balk, kleur — geen vakken |
| Slicer-friendly | 40 × 30 mm | merk, serie, kleur groot gestapeld, grote QR rechts — geen vakken |
| Vertical | 30 × 40 mm | merk, balk, kleur groot, hex, een lijn, vakken links gestapeld, QR rechtsonder |
| Vertical bold | 30 × 40 mm | merk, balk over de volle breedte, kleur, een lijn, QR gecentreerd eronder — geen vakken |
| Vertical compact | 25 × 40 mm | merk, balk, kleur, hex, een lijn, grote QR eronder — geen vakken |
| Alleen QR | 25 × 30 mm | de pil TigerQR / TigerQR+ bovenaan gecentreerd, een QR van 20 mm eronder — verder niets, geen vakken |
Elk sjabloon is één SVG, opgemaakt in tienden van een millimeter en geschaald naar de punten van de printer. De QR-code vult hetzelfde vak als op de gangbare spoellabels (≈ 14 mm op de Classic), met een geheel aantal printerpunten per module: het dichtstbijzijnde, naar boven afgerond als dat binnen 6 % van het vak blijft. De witte marges van het label zijn de stille zone. Bij 203 dpi is een code van 29 × 29 op de Classic 4 punten per module (≈ 14,5 mm).
Uitvoer
Section titled “Uitvoer”- PDF, PNG (op de resolutie van de printer) en SVG, zodat elke printer werkt, desnoods via zijn eigen app;
- direct printen naar labelprinters (Brother QL, Niimbot, Phomemo) komt later, printer voor printer, met dezelfde sjablonen.
- om ze uit te proberen maakt de TigerQR-playground het TigerQR+-label van een catalogusproduct in elk sjabloon, als PNG (203 of 300 dpi) en SVG.
Open punten
Section titled “Open punten”- App-links. iOS (
apple-app-site-association) en Android (intentfilters) vergelijken paden standaard hoofdlettergevoelig: links worden in kleine letters geprint, maar een link die met de hand is getypt of gedeeld, is dat misschien niet, dus de mobiele app declareert hoofdletterongevoelige vergelijking (iOS) en filtert het pad in code (Android). - Domein.
qr.tigertag.iowordt voor altijd geprint: verlengtigertag.iovoor een lange termijn.
Zie ook: Universele filamentidentiteit, Inventaris en cloudsynchronisatie, Overzicht voor ontwikkelaars