Engineering tools · EPC · GS1

I-RFID Code Converter

Ithuluzi lokuguqula phakathi kwe-SGTIN-96 (RFID Hex) kanye ne-Barcode (GTIN) + Inombolo ye-Serial. Iyahambisana nabafundi be-RFID abajwayelekile abanjengo-Zebra, Chainway, Impinj, Nextwaves. Ngokusekelwe ku-GS1 EPC Tag Data Standard.

Isiguquli se-RFID

Guqula phakathi kwe-RFID Hex (SGTIN-96) ne-GS1 Barcode (GTIN) + Inombolo Yochungechunge.

Scheme:SGTIN-9696 bits / Header 0x30

I-Logic Yekhodi Nesinyathelo Ngesinyathelo

// 1. Binary Conversion

src = bin(0x3076215F0C5D974000000001) // = "001100000111011000100001010111110000110001011101100101110100000000000000000000000000000000000001"

// 2. Extract Fields (Bit Slice)

header = src[0:8] "00110000" 0x30
filter = src[8:11] "011" 3
partition = src[11:14] "101" 5

// 3. Determine Partition Rule (Partition 5)

rule = PARTITIONS[5]
// Company Bits: 24, Item Bits: 20

// 4. Extract Company, Item & Serial

company = src[14:38] "100010000101011111000011" 8935363
itemRef = src[38:58] "00010111011001011101" 095837
serial = src[58:96] "00000000000000000000000000000000000001" 1

Ikhodi Yonjiniyela

Sebenzisa le logic yensiza kuphrojekthi yakho. Khetha ulimi ngezansi.

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}

Chaza

I-SGTIN-96 iyintambo kanambambili engama-96-bit ehlukaniswe izingxenye ezi-6:

HDRFLTPRTCMP (24)ITEM (20)SERIAL (38)
Isihloko (8 bit)Bits 0-8 (8)
001100000x30

Isiqalo esijwayelekile (00110000) esikhomba lokhu njenge-SGTIN-96.

Isihlungi (3 bit)Bits 8-11 (3)
0113

Uhlobo lwento (isb. 1 = Retail Retail). Bona Umhlahlandlela Wokubhekisela ngezansi.

Ukuhlukanisa (3 bit)Bits 11-14 (3)
1015

Ukuhlukanisa 5 kusho: Ikhodi Yenkampani ithatha 24 bits, Ikhodi Yomkhiqizo ithatha 20 bits.

I-Company PrefixBits 14-38 (24)
1000100001010111110000118935363

Ikhodi yenkampani eyingqayizivele enikezwe yi-GS1.

Inkomba YentoBits 38-58 (20)
00010111011001011101095837

Ikhodi yakho yomkhiqizo ethile.

Inombolo ye-Serial (38 bit)Bits 58-96 (38)
000000000000000000000000000000000000011

Isihlonzi esiyingqayizivele somkhiqizo ngamunye othile.

Ukubona ubuhlobo phakathi kwe-barcode yakho ebonakalayo kanye nekhodi yomkhiqizo kagesi (EPC).

Umdwebo okhombisa ukuxhumana phakathi kwe-Barcode (GTIN) kanye ne-SGTIN-96 URI
  1. Isinyathelo 1: Thola inani lekhanda le-binary le-EPC schema. Inani lekhanda le-binary le-SGTIN-96 lithi “00110000.”
  2. Isinyathelo 2: Khetha Inani Lokuhlukanisa ngokuya ngenani lezinombolo ku-Company Prefix kusuka ku-Partition Value Table.
  3. Isinyathelo 3: Guqula Inani Lokuhlunga, Inani Lokuhlukanisa, Isiqalo Senkampani, Isithenjwa Sento, kanye Nenombolo ye-Serial # ibe yini ye-binary.
  4. Isinyathelo 4: Hlanganisa ngokulandelana i-Header, Filter, Partition, Company Prefix, Item Reference, kanye namanani e-binary Serial # ukwenza i-Binary EPC.

Umhlahlandlela Wokubhekisela we-SGTIN-96

InaniIncazelo
0Bonke Abanye
Isetshenziselwa izinto ezingangeni ezigabeni ezinye. Ayisetshenziswa kakhulu ekuthengiseni okujwayelekile.
1Iphoyinti Lokuthengisa (POS) Into Yokuhweba
Iyunithi ejwayelekile yabathengi ethengiswa ePhoyintini Lokuthengisa. Isibonelo: Ibhodlela elilodwa le-shampoo.
2Ikesi Eliphelele Lokuthutha
Iyunithi yokuthumela ejwayelekile equkethe izinto eziningi. Isibonelo: Ikhathoni lamabhodlela e-shampoo ayi-12. Kubalulekile ukuthi izinto zokuhamba zihlukanise 'ikesi elilodwa' 'nento eyodwa'.
3Okugciniwe
Okugciniwe ukuze kusetshenziswe esikhathini esizayo.
4Iqembu Lezinto Zokuhweba Zangaphakathi
Iqembu elincane kunesikhwama esigcwele, ngokuvamile lokubonisa eshalofini noma ukuphatha. Isibonelo: I-3-pack esongwe ngesihlabathi ngaphakathi kwekhathoni elikhulu.
5Okugciniwe
Okugciniwe ukuze kusetshenziswe esikhathini esizayo.
6Umthwalo Weyunithi
Iyunithi enkulu yezokuthutha, ngokuvamile iphalethi eliqukethe amacala amaningi.
7Isici ngaphakathi kweyunithi yabathengi
Ingxenye ethile ngaphakathi kweyunithi yabathengi. Isibonelo: Isivalo sebhethri ngaphakathi kwethoyizi.
InaniIsiqalo SenkampaniInkomba Yento
040 Ama-Bits / 12 Izinombolo4 Ama-Bits / 1 Izinombolo
137 Ama-Bits / 11 Izinombolo7 Ama-Bits / 2 Izinombolo
234 Ama-Bits / 10 Izinombolo10 Ama-Bits / 3 Izinombolo
330 Ama-Bits / 9 Izinombolo14 Ama-Bits / 4 Izinombolo
427 Ama-Bits / 8 Izinombolo17 Ama-Bits / 5 Izinombolo
524 Ama-Bits / 7 Izinombolo20 Ama-Bits / 6 Izinombolo
620 Ama-Bits / 6 Izinombolo24 Ama-Bits / 7 Izinombolo

Imibuzo Evame Ukubuzwa ye-SGTIN-96

  • Itshela uhlelo izinga lokupakisha lethegi. Uma uhlelo lifunda ithegi 'Ye-Case' (Isihlungi 2), liyazi ukuthi liqukethe izinto eziningi. Lokhu kuvimbela ukuphinda kubalwa (isb., ukubala icala njengeyunithi eyodwa nje) futhi kuvumela ukuqinisekiswa kokuthunyelwa okusemthethweni.
  • I-Case (Isihlungi 2) iyiyunithi eyinhloko yokuthumela esetshenziselwa ukuthutha. I-Inner Pack (Isihlungi 4) iyisigaba ngaphakathi kwalelo cala, ngokuvamile ukuze kube lula ukusingatha noma ukubonisa (njenge-6-pack ngaphakathi kwecala lama-24-can). Izinhlelo ze-Logistics zilandelela Ama-Case; Ukusebenza Kwesitolo kungase kuphathe ngempumelelo ama-Inner Packs.
  • Ukuhumusha kuzohluleka noma kukhiqize Ibhakhodi engalungile. I-Partition inquma ngqo lapho i-Company Prefix iphela khona futhi i-Item Reference iqala khona. Uma le 'split point' ingalungile, uzothola Ikhodi Yenkampani ehlukile kunaleyo obuyihlosile.
  • I-GTIN ejwayelekile (Ibhakhodi) ikhomba kuphela uhlobo lomkhiqizo (isb., '12oz Soda'). I-SGTIN-96 yengeza Inombolo Ye-Serial, inikeze ngalinye ithini ubuwena obuyingqayizivele. Lokhu kunika amandla ukulandwa kwezinga lezinto, okukuvumela ukuthi ulandelele ukuthi yini ethile ethengisiwe, yebiwe, noma ephelelwe yisikhathi.
  • Yebo. Njengoba kuboniswe ku-converter engenhla, intambo ye-SGTIN-96 iqukethe i-GTIN-14 ephelele. Ngokususa Inombolo Ye-Serial kanye nolwazi lwesihloko, ungalakha kabusha ngokuphelele ibhakhodi yasekuqaleni yokuthengisa.
  • Isihloko (0x30) siyisandulela esijwayelekile esingu-8-bit esichazwe yi-GS1. Vele itshela noma yimuphi umfundi we-RFID: "Le thegi ifakwe ikhodi kusetshenziswa izinga le-SGTIN-96." Ezinye izihloko zikhona emazingeni ahlukene (njenge-SSCC yama-pallet noma i-GIAI yempahla).