Barcode Scanner Emulator
Објашњење HID keyboard wedge
Keyboard wedge је подразумевани режим рада огромне већине скенера бар-кодова. Овај водич објашњава шта је то, како ради на нивоу USB и шта значи за тестирање апликације.
Шта је keyboard wedge?
Израз потиче од старијих скенера на серијском порту који су се дословно „уклинљавали“ између тастатуре и порта рачунара, пресретали сигнал тастатуре и убацивали скениране знакове у њега. Савремени скенери више не требају физичко уклинљавање — израз данас означава сваки скенер који скениране податке представља као да су дошли са тастатуре, без обзира на врсту везе.
USB HID и емулација тастатуре
USB дефинише класу Human Interface Device (HID) посебно за тастатуре, мишеве и сличне улазне уређаје. Када се скенер на USB пријави као тастатура HID, оперативни систем учитава свој општи уграђени драјвер тастатуре — драјвер посебан за скенер није потребан. Фирмвер скенера претвара сваки декодирани знак у код тастера HID који би послала физичка тастатура, а извештаји се испоручују истим механизмом прекидног преноса као код било које USB тастатуре.
Како апликација види унос са скенера
Брз налет притисака наспрам људског куцања: скенер шаље цео садржај као брз низ парова keydown/keyup и обично заврши за мање од секунде, без обзира на дужину бар-кода.
Нема догађаја миша: скенери у режиму тастатуре HID никада не стварају догађаје показивача, клика или фокуса. Ако поље нема фокус када се скенира, унос се губи или завршава у елементу који фокус има.
Нема догађаја лепљења: пошто подаци стижу као појединачни притисци тастера, а не као радња оставе, обрађивачи догађаја paste неће видети унос са скенера, а улазна маска која слуша само paste тихо ће га пропустити.
Проблеми са распоредом тастатуре
Зашто се појављују погрешни знакови: скенер пресликава декодиране знакове у кодове тастера HID према сопственом подешеном распореду тастатуре. Ако тај распоред не одговара распореду у оперативном систему, знакови се могу заменити — класичан симптом је да се цифре или интерпункција на системима QWERTY и AZERTY скенирају као погрешан знак.
Неслагање језика: то је проблем подешавања на страни скенера, а не грешка софтвера. Већина скенера подржава промену језика преко конфигурационих бар-кодова одштампаних у упутству, а поправка значи да се скенер поново програмира да одговара језику оперативног система, а не да се мења код апликације.
Префикси и суфикси
Скенери обично подржавају подесиве низове префикса и суфикса око садржаја. Најчешће вредности суфикса су ENTER (CR, 0x0D), TAB (0x09) и повремено цео пар CR+LF. Префикси су ређи, али се понекад користе да се скенирања усмере у одређена поља у старијим терминалским апликацијама.
Ограничења тестирања у прегледачу
Прегледач не види сирове пакете USB HID, не може да наброји повезане HID уређаје посебно као скенер (ван WebHID API, преко ког већина скенера не излаже податке) и не може да разликује скенер у режиму тастатуре HID од праве тастатуре. JavaScript-у су доступни само догађаји тастатуре видљиви у прегледачу (keydown, keyup, keypress), и управо њих испитују алати на овом сајту.
Повезано
Помоћу тестера догађаја тастатуре прегледајте сирове догађаје тастатуре или прочитајте водич Суфикси ENTER и TAB за детаље о подешавању суфикса.