Tiontaire Cód RFID
Tiontaire RFID
Tiontaigh idir RFID Hex (SGTIN-96) agus Barrachód GS1 (GTIN) + Uimhir Shraithuimhreacha.
EPC URIs
Loighic Cód & Céim ar Chéim
// 1. Binary Conversion
// 2. Extract Fields (Bit Slice)
// 3. Determine Partition Rule (Partition 5)
// 4. Extract Company, Item & Serial
Cód Forbróra
Úsáid an loighic fóntais seo i do thionscadal. Roghnaigh teanga thíos.
1// TypeScript / JavaScript SGTIN-96 Utils
2
3export const GS1_PARTITION_TABLE = [
4 { value: 0, partition: 0, companyPrefixBits: 40, itemReferenceBits: 4, companyDigits: 12, itemDigits: 1 },
5 { value: 1, partition: 1, companyPrefixBits: 37, itemReferenceBits: 7, companyDigits: 11, itemDigits: 2 },
6 { value: 2, partition: 2, companyPrefixBits: 34, itemReferenceBits: 10, companyDigits: 10, itemDigits: 3 },
7 { value: 3, partition: 3, companyPrefixBits: 30, itemReferenceBits: 14, companyDigits: 9, itemDigits: 4 },
8 { value: 4, partition: 4, companyPrefixBits: 27, itemReferenceBits: 17, companyDigits: 8, itemDigits: 5 },
9 { value: 5, partition: 5, companyPrefixBits: 24, itemReferenceBits: 20, companyDigits: 7, itemDigits: 6 },
10 { value: 6, partition: 6, companyPrefixBits: 20, itemReferenceBits: 24, companyDigits: 6, itemDigits: 7 },
11];
12
13export function encodeSgtin96(gtin: string, serial: string, filter: number) {
14 gtin = gtin.padStart(14, "0");
15 const p = GS1_PARTITION_TABLE.find(rule => {
16 const cp = parseInt(gtin.slice(1, 1 + rule.companyDigits));
17 const ir = parseInt(gtin[0] + gtin.slice(1 + rule.companyDigits, 13));
18 return cp < (1 << rule.companyPrefixBits) && ir < (1 << rule.itemReferenceBits);
19 });
20 if (!p) throw new Error("Invalid GTIN for SGTIN-96");
21
22 const cpVal = parseInt(gtin.slice(1, 1 + p.companyDigits));
23 const irVal = parseInt(gtin[0] + gtin.slice(1 + p.companyDigits, 13));
24
25 let b = (0x30).toString(2).padStart(8,"0");
26 b += filter.toString(2).padStart(3,"0");
27 b += p.partition.toString(2).padStart(3,"0");
28 b += cpVal.toString(2).padStart(p.companyPrefixBits,"0");
29 b += irVal.toString(2).padStart(p.itemReferenceBits,"0");
30 b += parseInt(serial).toString(2).padStart(38,"0");
31 return binaryToHex(b);
32}
33
34export function decodeSgtin96(hex: string) {
35 const b = hexToBinary(hex);
36 const pVal = parseInt(b.substring(11, 14), 2);
37 const rule = GS1_PARTITION_TABLE.find(r => r.partition === pVal);
38 if (!rule) throw new Error("Invalid Partition");
39
40 const cp = parseInt(b.substring(14, 14 + rule.companyPrefixBits), 2);
41 const ir = parseInt(b.substring(14 + rule.companyPrefixBits, 14 + rule.companyPrefixBits + rule.itemReferenceBits), 2);
42 const serial = parseInt(b.substring(14 + rule.companyPrefixBits + rule.itemReferenceBits, 96), 2);
43
44 const cpStr = cp.toString().padStart(rule.companyDigits, "0");
45 const irStr = ir.toString().padStart(rule.itemDigits, "0");
46 const gtinCore = irStr[0] + cpStr + irStr.substring(1);
47
48 // Check digit calculation
49 let sum = 0;
50 for (let i = 0; i < 13; i++) {
51 sum += parseInt(gtinCore[i]) * (i % 2 === 0 ? 3 : 1);
52 }
53 const check = (10 - (sum % 10)) % 10;
54
55 return {
56 gtin: gtinCore + check,
57 serial: serial.toString()
58 };
59}
60
61function binaryToHex(b: string) {
62 let hex = "";
63 for (let i = 0; i < b.length; i += 4) {
64 hex += parseInt(b.substring(i, i + 4), 2).toString(16).toUpperCase();
65 }
66 return hex;
67}
68
69function hexToBinary(h: string) {
70 let bin = "";
71 for (let i = 0; i < h.length; i++) {
72 bin += parseInt(h[i], 16).toString(2).padStart(4, "0");
73 }
74 return bin;
75}Mínigh
Is teaghrán dénártha 96-giotán é SGTIN-96 atá roinnte ina 6 chuid:
001100000x30Réimír chaighdeánach (00110000) a shainaithníonn é seo mar SGTIN-96.
0113Cineál réada (e.g. 1 = Miondíol Miondíola). Féach an Treoir Thagartha thíos.
1015Ciallaíonn Deighilt 5: Tógann Cód Cuideachta 24 giotán, tógann Cód Táirge 20 giotán.
1000100001010111110000118935363Cód cuideachta uathúil arna shannadh ag GS1.
00010111011001011101095837Do chód táirge ar leith.
000000000000000000000000000000000000011Aitheantóir uathúil do gach táirge fisiceach ar leith.
SGTIN & GTIN a Thuiscint
An gaol idir do bharacód fisiciúil agus an cód táirge leictreonach (EPC) á léiriú.

Loighic Códaithe (Céim ar Chéim)
- Céim 1: Socraigh luach ceannteidil dhénártha don scéim EPC. Is é an luach ceannteidil dhénártha do SGTIN-96 ná “00110000.”
- Céim 2: Roghnaigh an Luach Deighilte bunaithe ar líon na n-uimhreacha sa Réimír Cuideachta ón Tábla Luacha Deighilte.
- Céim 3: Tiontaigh an Luach Scagaire, Luach Deighilte, Réimír Cuideachta, Tagairt Míre, agus # Sraithuimhreacha go luach dénártha.
- Céim 4: Comhcheangail na luachanna dénártha Ceannteideal, Scagaire, Deighilt, Réimír Cuideachta, Tagairt Míre, agus # Sraithuimhreacha d'fhonn an EPC Dénártha a chruthú.
Treoir Thagartha SGTIN-96
| Luach | Cur síos |
|---|---|
| 0 | Gach Eile Úsáidtear le haghaidh míreanna nach n-oireann do chatagóirí eile. Is annamh a úsáidtear i ngnáth-mhiondíol. |
| 1 | Mír Trádála an Díola (POS) An gnáth-aonad tomhaltóra a dhíoltar ag an Díol. Sampla: Buidéal seampú amháin. |
| 2 | Cás Iomlán le haghaidh Iompair Aonad loingseoireachta caighdeánach ina bhfuil iliomad míreanna. Sampla: Cartán de 12 buidéal seampú. Ríthábhachtach don loighistic chun 'cás amháin' a idirdhealú ó 'mhír amháin'. |
| 3 | Curtha in áirithe Curtha in áirithe le húsáid sa todhchaí. |
| 4 | Grúpáil Míreanna Trádála Pacáiste Istigh Grúpáil níos lú ná cás iomlán, go minic le haghaidh taispeána ar sheilf nó láimhseála. Sampla: 3-phacáiste fillte le crapadh taobh istigh den phríomhchartán. |
| 5 | Curtha in áirithe Curtha in áirithe le húsáid sa todhchaí. |
| 6 | Ualach Aonaid Aonad loighistice mór, pailléad de ghnáth ina bhfuil roinnt cásanna. |
| 7 | Comhpháirt taobh istigh den Aonad Tomhaltóra Cuid shonrach taobh istigh d'aonad tomhaltóra. Sampla: An clúdach ceallraí taobh istigh de bhréagán. |
| Luach | Réimír Cuideachta | Tagairt Míre |
|---|---|---|
| 0 | 40 Giotáin / 12 Digití | 4 Giotáin / 1 Digití |
| 1 | 37 Giotáin / 11 Digití | 7 Giotáin / 2 Digití |
| 2 | 34 Giotáin / 10 Digití | 10 Giotáin / 3 Digití |
| 3 | 30 Giotáin / 9 Digití | 14 Giotáin / 4 Digití |
| 4 | 27 Giotáin / 8 Digití | 17 Giotáin / 5 Digití |
| 5 | 24 Giotáin / 7 Digití | 20 Giotáin / 6 Digití |
| 6 | 20 Giotáin / 6 Digití | 24 Giotáin / 7 Digití |
Ceisteanna Coitianta SGTIN-96
- Inseoidh sé don chóras an leibhéal pacáistithe den chlib. Má léann córas clib 'Cás' (Scagaire 2), beidh a fhios aige go bhfuil iliomad míreanna ann. Cuireann sé seo cosc ar dhúbailte-chomhaireamh (e.g., cás a chomhaireamh mar aonad amháin) agus ceadaíonn sé fíorú bailí loingseoireachta.
- Cás (Scagaire 2) is é an príomh-aonad loingseoireachta a úsáidtear le haghaidh iompair. Is fo-roinn laistigh den chás é Pacáiste Istigh (Scagaire 4), de ghnáth le haghaidh láimhseáil nó taispeáint níos éasca (cosúil le 6-phacáiste taobh istigh de chás 24-canna). Rianaíonn córais lóistíochta Cásanna; d'fhéadfadh oibríochtaí Stórais Pacáistí Istigh a láimhseáil go héifeachtach.
- Theipfidh ar an díchódú nó cuirfidh sé Barcode mícheart ar fáil. Cinnfidh an Deighilt go díreach cá dtiocfaidh an Réimír Cuideachta chun críche agus cá dtosóidh an Tagairt Míre. Má tá an 'pointe scoilte' seo mícheart, gheobhaidh tú Cód Cuideachta difriúil ná mar a bhí beartaithe.
- Aithníonn GTIN (Barcode) caighdeánach an cineál táirge amháin (e.g., '12oz Soda'). Cuireann SGTIN-96 Uimhir Shraithuimhreach leis, rud a thugann aitheantas uathúil do gach canna. Cuireann sé seo ar chumas inrianaitheacht ar leibhéal na míre, rud a ligeann duit a rianú go díreach cén mhír shonrach a díoladh, a goideadh, nó a chuaigh in éag.
- Sea. Mar a thaispeántar sa tiontaire thuas, tá an GTIN-14 iomlán sa teaghrán SGTIN-96. Trí an Uimhir Shraithuimhreach agus faisnéis an cheanntásc a bhaint, is féidir leat an barrachód miondíola bunaidh a atógáil go foirfe.
- Is réimír caighdeánach 8-giotán é an Ceanntásc (0x30) arna shainmhíniú ag GS1. Inseoidh sé go simplí d'aon léitheoir RFID: "Tá an chlib seo códaithe ag baint úsáide as an gcaighdeán SGTIN-96." Tá ceanntásca eile ann do chaighdeáin éagsúla (cosúil le SSCC le haghaidh pailléid nó GIAI le haghaidh sócmhainní).