RFID کوڈ کنورٹر

SGTIN-96 (RFID ہیکس) اور بارکوڈ (GTIN) + سیریل نمبر کے درمیان کنورٹر ٹول۔ معیاری RFID ریڈرز جیسے Zebra, Chainway, Impinj, Nextwaves کے ساتھ مطابقت رکھتا ہے۔ 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 ایک 96-بٹ بائنری سٹرنگ ہے جو 6 حصوں میں منقسم ہے:

HDR
FLT
PRT
COMPANY
ITEM
SERIAL (38)

تفصیلی تجزیہ (بٹ بہ بٹ)

ہیڈر (8 بٹ)Bits 0-8 (8)
00110000

معیاری سابقہ (00110000) جو اس کی شناخت SGTIN-96 کے طور پر کرتا ہے۔

فلٹر (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)
...

ہر مخصوص جسمانی مصنوعات کے لیے منفرد شناخت کنندہ۔

انکوڈنگ منطق (مرحلہ وار)

  1. پہلا مرحلہ: EPC سکیم کے لیے بائنری ہیڈر ویلیو کا تعین کریں۔ SGTIN-96 کے لیے بائنری ہیڈر ویلیو “00110000” ہے۔
  2. دوسرا مرحلہ: پارٹیشن ویلیو ٹیبل سے کمپنی کے سابقے میں موجود ہندسوں کی تعداد کی بنیاد پر پارٹیشن ویلیو منتخب کریں۔
  3. تیسرا مرحلہ: فلٹر ویلیو، پارٹیشن ویلیو، کمپنی سابقہ، آئٹم ریفرنس، اور سیریل # کو بائنری ویلیو میں تبدیل کریں۔
  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 اکثر پوچھے گئے سوالات