Files
ocr_scanner/src/pn-tables.js
T
vchuser be437a5fc5 Add adapter timeouts and drop unreachable spec-merge code
- Barcode- und OCR-Adapter erhalten je eine eigene, ueberschreibbare
  Zeitobergrenze (deps.barcodeTimeoutMs / deps.ocrTimeoutMs). Ein
  Adapter, der nie einloest, blockiert recognize() damit nicht mehr
  dauerhaft und faellt stattdessen auf den Ersatzwert zurueck, genau
  wie bei einem geworfenen Fehler. Kein offener Timer bleibt zurueck.
- mergeCompatibleSpecs entfernt: vertraegliche verwertbare
  Barcode-Treffer sind wegen der Kopplung von partNumber und den
  uebrigen Feldern ohnehin identisch, der erste Treffer genuegt.
  Test entsprechend umbenannt, um das tatsaechlich gepruefte
  Verhalten zu benennen statt eine nicht mehr vorhandene
  Auffuell-Semantik zu behaupten.
- Kommentar in pn-tables.js von einer inhaltlichen Wiederholung
  befreit.
2026-07-28 15:36:52 +02:00

44 lines
1.6 KiB
JavaScript

// Herstellertabellen fuer den Teilenummer-Decoder.
//
// ACHTUNG: Nur der Samsung-Eintrag 'A8K40' und der Geschwindigkeitscode 'CRC'
// sind gegen ein reales Modul geprueft (64GB 4DRx4 PC4-2400T LRDIMM,
// M386A8K40BM1-CRC4Y). Alle uebrigen Eintraege stammen aus der veroeffentlichten
// Systematik und muessen vor produktivem Einsatz gegen reale Module bestaetigt
// werden - siehe Task 14. Ein falscher Eintrag faellt auf dem Barcode-Weg
// nicht automatisch auf, weil dort keine Texterkennung laeuft, gegen die er
// widersprechen koennte.
export const VENDOR_TABLES = [
{
vendor: 'Samsung',
// M<bauform><dichte(5)><rev(variabel)>-<speed><rest>
// Der Dichte-Code hat feste Breite: die Generationskennung 'A' plus vier
// weitere Zeichen, also fuenf insgesamt. Die Revision danach ist die
// variable Groesse und wird nicht separat erfasst. Der
// Geschwindigkeitscode sind die drei Buchstaben direkt nach dem
// Bindestrich. Achtung: Ein Dichte-Code abweichender Laenge kann von
// diesem Muster nicht erfasst werden - ein solcher Tabelleneintrag
// bliebe wirkungslos, die Tabellensuche schluege dafuer stets fehl.
pattern: /^M(\d{3})(A[A-Z0-9]{4})[A-Z0-9]*-([A-Z]{3})/,
formFactor: {
378: 'UDIMM',
391: 'UDIMM',
393: 'RDIMM',
386: 'LRDIMM',
471: 'SODIMM',
474: 'SODIMM',
},
density: {
// geprueft am Referenzmodul:
A8K40: { capacityGb: 64, rank: '4DRx4' },
},
speed: {
CPB: 'PC4-2133',
CRC: 'PC4-2400',
CTD: 'PC4-2666',
CVF: 'PC4-2933',
CWE: 'PC4-3200',
},
},
];