RFID कोड कन्व्हर्टर

SGTIN-96 (RFID हेक्स) आणि बारकोड (GTIN) + सिरीयल नंबरमधील रूपांतरण साधन. Zebra, Chainway, Impinj, Nextwaves सारख्या प्रमाणित RFID रीडर्ससोबत सुसंगत. GS1 EPC टॅग डेटा स्टँडर्ड वर आधारित.

RFID कन्व्हर्टर

कोड लॉजिक आणि स्टेप-बाय-स्टेप

// 1. Binary Conversion

src = bin(0x) // = "?"

// 2. Extract Fields (Bit Slice)

header = src[0:8] → "00110000""?" (?)
filter = src[8:11] → "..."?
partition = src[11:14] → "..."?

// 3. Determine Partition Rule (Partition ?)

rule = PARTITIONS[?]
// Company Bits: ?, Item Bits: ?

// 4. Extract Company & Item

company = src[14:14] → "..."?
itemRef = src[14:14] → "..."?
serial = src[14:96] → "..."?

विकसक कोड

तुमच्या प्रोजेक्टमध्ये हे युटिलिटी लॉजिक वापरा. खालीलपैकी एक भाषा निवडा.

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}

स्पष्टीकरण

SGTIN & GTIN समजून घेणे

तुमच्या भौतिक बारकोड आणि इलेक्ट्रॉनिक उत्पादन कोड (EPC) मधील संबंधांचे दृष्यीकरण.

बारकोड (GTIN) आणि SGTIN-96 URI मधील कनेक्शन दर्शवणारे आकृती

SGTIN-96 ही 6 भागांमध्ये विभागलेली 96-बिट बायनरी स्ट्रिंग आहे:

HDR
FLT
PRT
COMPANY
ITEM
SERIAL (38)

विस्तृत विश्लेषण (बिट बाय बिट)

शीर्षलेख (8 बिट)Bits 0-8 (8)
00110000

हे SGTIN-96 म्हणून ओळखण्यासाठी प्रमाणित उपसर्ग (00110000).

फिल्टर (3 बिट)Bits 8-11 (3)
...

ऑब्जेक्ट प्रकार (उदा. 1 = किरकोळ किरकोळ). खालील संदर्भ मार्गदर्शक पहा.

विभाजन (3 बिट)Bits 11-14 (3)
...

पार्टिशन X याचा अर्थ: कंपनी कोड Y बिट्स घेतो, उत्पादन कोड Z बिट्स घेतो.

कंपनी प्रीफिक्सBits 14-0 (0)
...

GS1 द्वारे नियुक्त केलेला अद्वितीय कंपनी कोड.

वस्तू संदर्भBits 0-0 (0)
...

तुमचा विशिष्ट उत्पादन कोड.

अनुक्रमांक (38 बिट)Bits 0-96 (38)
...

प्रत्येक विशिष्ट भौतिक उत्पादनासाठी अद्वितीय अभिज्ञापक.

एनकोडिंग लॉजिक (step-by-step)

  1. पायरी 1: EPC स्कीमासाठी बायनरी हेडर व्हॅल्यू निश्चित करा. SGTIN-96 साठी बायनरी हेडर व्हॅल्यू “00110000” आहे.
  2. पायरी 2: पार्टीशन व्हॅल्यू टेबलमधून कंपनी प्रीफिक्समधील अंकांची संख्या यावर आधारित पार्टीशन व्हॅल्यू निवडा.
  3. पायरी 3: फिल्टर व्हॅल्यू, पार्टीशन व्हॅल्यू, कंपनी प्रीफिक्स, आयटम रेफरन्स आणि सिरीयल # बायनरी व्हॅल्यूमध्ये रूपांतरित करा.
  4. पायरी 4: बायनरी EPC तयार करण्यासाठी हेडर, फिल्टर, पार्टीशन, कंपनी प्रीफिक्स, आयटम रेफरन्स आणि सिरीयल # बायनरी व्हॅल्यू क्रमाने जोडा.

SGTIN-96 संदर्भ मार्गदर्शक

Fमूल्ये फिल्टर करा (3 बिट्स)

व्हॅल्यूवर्णन
0
इतर सर्व
इतर श्रेणींमध्ये बसत नसलेल्या वस्तूंसाठी वापरले जाते. सामान्य किरकोळ विक्रीमध्ये क्वचितच वापरले जाते.
1
विक्रीचे ठिकाण (POS) व्यापार वस्तू
विक्रीच्या ठिकाणी विकले जाणारे प्रमाणित ग्राहक युनिट. उदाहरण: शॅम्पूची एक बाटली.
2
वाहतुकीसाठी संपूर्ण केस
एकाधिक वस्तू असलेले प्रमाणित शिपिंग युनिट. उदाहरण: 12 शॅम्पूच्या बाटल्यांचे एक खोके. 'एक केस' आणि 'एक वस्तू' वेगळे करण्यासाठी लॉजिस्टिकसाठी महत्त्वाचे.
3
राखीव
भविष्यातील वापरासाठी राखीव.
4
इनर पॅक ट्रेड आयटम ग्रुपिंग
पूर्ण केसपेक्षा लहान गट, अनेकदा शेल्फ डिस्प्ले किंवा हाताळणीसाठी. उदाहरण: मुख्य खोक्याच्या आत एक श्रिंक-रॅप्ड 3-पॅक.
5
राखीव
भविष्यातील वापरासाठी राखीव.
6
युनिट लोड
एक मोठी लॉजिस्टिक युनिट, सामान्यतः एक पॅलेट ज्यामध्ये अनेक केसेस असतात.
7
ग्राहक युनिटमधील घटक
ग्राहक युनिटमधील एक विशिष्ट भाग. उदाहरण: खेळण्यातील बॅटरी कव्हर.

Pविभाजन सारणी (3 बिट्स)

व्हॅल्यू
कंपनी प्रीफिक्स
(बिट्स / अंक)
आयटम रेफरन्स
(बिट्स / अंक)
040 / 124 / 1
137 / 117 / 2
234 / 1010 / 3
330 / 914 / 4
427 / 817 / 5
524 / 720 / 6
620 / 624 / 7

SGTIN-96 वारंवार विचारले जाणारे प्रश्न