Пређи на садржај

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 за детаље о подешавању суфикса.