Barcode Scanner Emulator
A HID billentyűzet-ékelés magyarázata
A billentyűzet-ékelés a vonalkódolvasók túlnyomó többségének alapértelmezett működési módja. Ez az útmutató elmagyarázza, mi ez, hogyan működik USB-szinten, és mit jelent az alkalmazás tesztelésekor.
Mi a billentyűzet-ékelés?
A kifejezés a régebbi soros portos olvasókból származik, amelyeket szó szerint a billentyűzet és a számítógép portja közé „ékeltek”: elfogták a billentyűzet jelét, és beleinjektálták a beolvasott karaktereket. A modern olvasóknak már nincs szükségük fizikai ékelésre — a kifejezés ma minden olyan olvasót jelöl, amely a beolvasott adatokat úgy adja át, mintha billentyűzetről érkeztek volna, a kapcsolat típusától függetlenül.
USB HID és billentyűzetemuláció
Az USB a Human Interface Device (HID) osztályt kifejezetten billentyűzetekhez, egerekhez és hasonló beviteli eszközökhöz határozza meg. Amikor egy olvasó USB-n HID-billentyűzetként jelenik meg, az operációs rendszer a saját általános, beépített billentyűzetillesztőjét tölti be — olvasóspecifikus illesztő nem kell. Az olvasó firmware-je minden dekódolt karaktert olyan HID-billentyűkóddá alakít, amelyet a fizikai billentyűzet küldene, és a jelentések ugyanazzal a megszakításos átviteli mechanizmussal érkeznek, mint bármely USB-billentyűzetnél.
Hogyan látja az alkalmazás az olvasóbemenetet
Gyors leütéssorozat a emberi gépeléshez képest: az olvasó a teljes tartalmat gyors keydown/keyup párok sorozataként küldi, és általában egy másodpercnél rövidebb idő alatt végez, a vonalkód hosszától függetlenül.
Nincsenek egéresemények: a HID billentyűzetmódú olvasók soha nem hoznak létre mutató-, kattintás- vagy fókuszeseményt. Ha a mezőnek nincs fókusza a beolvasáskor, a bemenet elvész, vagy arra az elemre kerül, amelynek éppen fókusza van.
Nincs beillesztési esemény: mivel az adatok egyedi leütésekként érkeznek, nem vágólapműveletként, a paste eseménykezelők nem látják az olvasóbemenetet, és a csak paste eseményt figyelő beviteli maszkok csendben elmulasztják.
Billentyűzetkiosztási problémák
Miért jelennek meg hibás karakterek: az olvasó a dekódolt karaktereket a saját beállított billentyűzetkiosztása szerint rendeli HID-billentyűkódokhoz. Ha ez a kiosztás nem egyezik az operációs rendszer kiosztásával, a karakterek felcserélődhetnek — klasszikus tünet, hogy a számok vagy az írásjelek QWERTY és AZERTY rendszereken hibás karakterként jelennek meg.
Területi beállítás eltérése: ez az olvasó oldali beállítási probléma, nem szoftverhiba. A legtöbb olvasó a kézikönyvben nyomtatott konfigurációs vonalkódokkal támogatja a területi beállítás váltását, és a javítás az olvasó újraprogramozását jelenti az operációs rendszer területi beállításához, nem az alkalmazáskód módosítását.
Előtagok és utótagok
Az olvasók általában beállítható előtag- és utótagsorozatokat támogatnak a tartalom körül. A leggyakoribb utótagértékek az ENTER (CR, 0x0D), a TAB (0x09) és néha egy teljes CR+LF pár. Az előtagok ritkábbak, de néha arra szolgálnak, hogy a beolvasásokat adott mezőkbe irányítsák régi terminálalkalmazásokban.
A böngészős tesztelés korlátai
A böngésző nem látja a nyers USB HID-csomagokat, nem tudja kifejezetten olvasóként felsorolni a csatlakoztatott HID-eszközöket (a WebHID API-n kívül, amelyen keresztül a legtöbb olvasó nem teszi elérhetővé az adatokat), és nem tudja megkülönböztetni a HID billentyűzetmódú olvasót a valódi billentyűzettől. A JavaScript csak a böngészőben látható billentyűeseményeket (keydown, keyup, keypress) éri el, és pontosan ezeket vizsgálják az oldal eszközei.
Kapcsolódó
A nyers billentyűesemények vizsgálatához használja a billentyűzetesemény-tesztelőt, vagy olvassa el az ENTER és TAB utótagok útmutatót az utótag beállításának részleteihez.