![]() |


Rezanie a brúsenie keramického obkladu · Drevená zástena na WéCku
Jedná sa o OCR skener a čítačku magnetických pruhov v jednom, má zároveň aj vlastný indikátor stavu, ktorý kontroluje či sa karta správne prečítala a upozorní na to zvukovým signálom, resp. signalizačnou diódou. Vraj by mala čítačka vydržať viac ako 1 000 000 cyklov, ale či tomu tak v skutočnosti je netuším. Pripojenie k počítaču je zabezpečené cez USB kábel s virtuálnym COM portom, ktorý sa nastavuje pri inštalácií ovládačov.
Potreboval som teda správne prečítať meno a priezvisko, číslo občianskeho preukazu, rodné číslo, dátum narodenia, pohlavie, národnosť a zároveň aj platnosť preukazu s upozornením, že je už neplatný keď tak. Ďalej bolo celkom vhodné overovať aj kontrolné číslice ktoré sa na zadnej strane občianskeho preukazu nachádzajú. Takže ako prvé som premýšľal ako vôbec čítačku sprístupním prehliadaču. Jediné čo ma napadlo ako to asi pôjde celé spojazdniť bolo za použitia JavaScriptu, ale ako? Narazil som v Chrome na Web Serial API a tým teda možnosť sa pripojiť na COM port a čítať z neho dáta.
Ako je vidieť na obrázku vyššie, tak sa tam nachádzajú aj kontrolné číslice, no dostalo sa ku mne aj jedno PDFko, ktoré obsahuje postup ako sa dajú tieto kontrolné číslice overiť celkom jednoduchým výpočtom. Môžeme si to ukázať na prvom riadku kde je červeným podtrhnuté číslo občianskeho preukazu EA000000. Je nutné počítať zľava doprava tak, že každé číslo a znak sa vynásobí postupne 731 731 731 731 atď. Za písmena je nutné tiež dosadiť čísla a to tak že A sa nahradí číslo 10, B číslom 11 atď., ale toto je všetko v tom PDF dokumente uvedené. Čiže v tomto konkrétnom prípade dosadíme za E číslo 14, za A číslo 10, takže dostaneme čísla 14 10 0 0 0 0 0 0.
Nachádza sa tam ešte aj štvrtá kontrolná číslica v druhom riadku na konci. Tá sa počíta zo všetkých hodnôt čo sú podtrhnuté zelenou farbou. Nebudem tvrdiť, že to mám jednoznačne správne a určite tam budem mať nejakú chybu možno v nejakých posunoch, ale to si už vyriešim za pochodu keď nastane taká situácia, že mi to v nejakom prípade nebude fungovať, trebárs kvôli inému typu občianskeho preukazu. Každopádne som sa naučil niečo nové a hlavne som zistil, že na zadnej strane občianskeho preukazu je niečo takého. Nikdy som občiansky preukaz popravde neprezeral dopodrobna, resp. ma ani nezaujímalo niečo také. Dokonca som zistil, že je to iste aj na pasoch, aj keď len v dvoch riadkoch. Čiže si zakomponujem aj pasy do kódu, aby sa dalo pracovať aj s nimi, keďže pas je taktiež doklad totožnosti.