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)
...

ప్రతి నిర్దిష్ట భౌతిక ఉత్పత్తికి ప్రత్యేక గుర్తింపు.

ఎన్‌కోడింగ్ లాజిక్ (దశల వారీ)

  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 తరచుగా అడిగే ప్రశ్నలు