RFID Kod Konvertoru
RFID Konvertoru
RFID Hex (SGTIN-96) və GS1 Məhsul kodu (GTIN) + Seriyalı Nömrə arasında çevirmə.
EPC URIs
Kod Məntiqi və Addım-addım
// 1. Binary Conversion
// 2. Extract Fields (Bit Slice)
// 3. Determine Partition Rule (Partition 5)
// 4. Extract Company, Item & Serial
Tərtibatçı Kodu
Layihənizdə bu utility məntiqdən istifadə edin. Aşağıdan bir dil seçin.
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}İzahat
SGTIN-96 6 hissəyə bölünmüş 96-bit ikili sətirdir:
001100000x30Bunu SGTIN-96 kimi müəyyən edən standart prefiks (00110000).
0113Obyekt növü (məsələn. 1 = Pərakəndə Malları). Aşağıdakı İstinad Bələdçisinə baxın.
1015Bölgü 5 o deməkdir: Şirkət Kodu 24 bit, Məhsul Kodu 20 bit tutur.
1000100001010111110000118935363GS1 tərəfindən təyin edilmiş unikal şirkət kodu.
00010111011001011101095837Xüsusi məhsul kodunuz.
000000000000000000000000000000000000011Hər bir xüsusi fiziki məhsul üçün unikal identifikator.
SGTIN və GTIN-in başa düşülməsi
Fiziki məhsul kodu ilə elektron məhsul kodu (EPC) arasındakı əlaqənin vizuallaşdırılması.

Şifrələmə Məntiqi (Addım-addım)
- Addım 1: EPC sxemi üçün ikili başlıq dəyərini müəyyən edin. SGTIN-96 üçün ikili başlıq dəyəri '00110000'-dür.
- Addım 2: Şirkət Prefiksdəki rəqəmlərin sayına əsasən Bölgü Dəyərini seçin.
- Addım 3: Filtr Dəyəri, Bölgü Dəyəri, Şirkət Prefiksi, Məhsul İstinadı və Seriyalı Nömrəni ikili dəyərə çevirin.
- Addım 4: İkili EPC yaratmaq üçün Başlıq, Filtr, Bölgü, Şirkət Prefiksi, Məhsul İstinadı və Seriyalı Nömrə ikili dəyərlərini ardıcıl olaraq birləşdirin.
SGTIN-96 İstinad Bələdçisi
| Dəyər | Təsvir |
|---|---|
| 0 | Digər Bütün Növlər Digər kateqoriyalara uymayan mallar üçün istifadə olunur. Ümumi pərakəndədə az istifadə olunur. |
| 1 | Satış Məntəqəsində (POS) Ticarət Malları Satış Məntəqəsində satılan standart istehlakçı vahidi. Nümunə: Bir şampun şüşəsi. |
| 2 | Nəqliyyat üçün Tam Qutu Bir neçə ədəd mal ehtiva edən standart göndərmə vahidi. Nümunə: 12 şampun şüşəsi olan bir karton. Loqistikada 'bir qutu' ilə 'bir ədəd' fərqini anlamaq üçün vacibdir. |
| 3 | Rezerv Gələcək istifadə üçün rezerv edilmişdir. |
| 4 | Daxili Qablaşdırma Ticarət Malları Qruplaşması Tam qutudan kiçik qruplaşma, adətən rəf nümayişi və ya idarəetmə üçün. Nümunə: Əsas qutunun içindəki büzülmüş 3-lük. |
| 5 | Rezerv Gələcək istifadə üçün rezerv edilmişdir. |
| 6 | Yük Vahidi Adətən bir neçə qutu ehtiva edən palet olan böyük loqistika vahidi. |
| 7 | İstehlakçı Vahidinin Daxili Komponenti İstehlakçı vahidinin daxilindəki xüsusi hissə. Nümunə: Oyuncağın içindəki batareya qapağı. |
| Dəyər | Şirkət Prefiksi | Məhsul İstinadı |
|---|---|---|
| 0 | 40 BIt / 12 Rəqəm | 4 BIt / 1 Rəqəm |
| 1 | 37 BIt / 11 Rəqəm | 7 BIt / 2 Rəqəm |
| 2 | 34 BIt / 10 Rəqəm | 10 BIt / 3 Rəqəm |
| 3 | 30 BIt / 9 Rəqəm | 14 BIt / 4 Rəqəm |
| 4 | 27 BIt / 8 Rəqəm | 17 BIt / 5 Rəqəm |
| 5 | 24 BIt / 7 Rəqəm | 20 BIt / 6 Rəqəm |
| 6 | 20 BIt / 6 Rəqəm | 24 BIt / 7 Rəqəm |
SGTIN-96 Tez-tez Verilən Suallar
- Bu, sistemin teqin qablaşdırma səviyyəsini bildirir. Sistem 'Qutu' teqini (Filtr 2) oxuyarsa, onun bir neçə mal ehtiva etdiyini bilir. Bu, cüt saymanın qarşısını alır (məsələn, bir qutunu yalnız bir ədəd kimi sayma) və etibarlı göndərmə təsdiqi üçün imkan verir.
- Qutu (Filtr 2) əsas daşınma vahididir. Daxili Qablaşdırma (Filtr 4) həmin qutunun daxilindəki altbölmədir, adətən asan idarəetmə və ya nümayiş üçün (24 qutu içindəki 6-lıq kimi). Loqistika sistemləri QuTu-ları izləyir; Mağaza əməliyyatları Daxili Qablaşdırmaları səmərəli şəkildə idarə edə bilər.
- Deşifrləmə uğursuz olacaq və ya səhv Məhsul kodu istehsal edəcək. Bölgü dəyəri Şirkət Prefiksinin harada bitdiyini və Məhsul İstinadının harada başladığını dəqiq müəyyən edir. Bu 'bölgü nöqtəsi' səhv olarsa, niyyət etdiyinizdən fərqli Şirkət Kodu alacaqsınız.
- Standart GTIN (Məhsul kodu) yalnız məhsul növünü müəyyən edir (məsələn, '330mlqoq'). SGTIN-96 Seriyalı Nömrə əlavə edir, hər bir qaba unikal identiklik verir. Bu, item-səviyyəli izləməyə imkan verir, hansı spesifik əşyanın satıldığını, oğurlandığını və ya müddəti keçdiyini izləməyə imkan verir.
- Bəli. Yuxarıdakı konvertorda göstərildiyi kimi, SGTIN-96 sətiri tam GTIN-14-ü ehtiva edir. Seriyalı Nömrəni və başlıq məlumatlarını çıxarmaqla, orijinal pərakəndə məhsul kodunu mükəmməl şəkildə yenidən qura bilərsiniz.
- Başlıq (0x30) GS1 tərəfindən müəyyən edilmiş standart 8-bit prefiksdır. Bu, sadəcə hər hansı RFID oxuyucusuna deyir: 'Bu teq SGTIN-96 standartı istifadə edərək şifrələnmişdir.' Digər başlıqlar digər standartlar üçün mövcuddur (pallet üçün SSCC və ya aktivlər üçün GIAI kimi).