Tenho um teclado compacto numérico DP950 Mini USB numérico de 2016 - que é um teclado numérico com um ecrã LCD de 2 linhas por 16 caracteres e um conector USB.
O que eu gostaria de poder fazer é escrever mensagens na tela do Linux (ou mesmo do Windows ou do Mac).
O teclado funciona bem - o dispositivo aparece como um teclado quando você o conecta e envia caracteres como eu esperava.
Mas o dispositivo só aparece como um teclado USB (eu esperava que fosse um dispositivo serial USB - mas não), então escrever na tela parece ser mais complicado.
Quando aparece - a tela diz "PASSWORD:" e ecoa "*" quando você digita uma tecla (embora ela envie as chaves corretamente). Eu não vejo nenhuma pista sobre o que é a senha ou como configurá-la. O sistema USB afirma que é algum tipo de leitor de código de barras (o que não é).
Idéia rápida: examinei a hierarquia do / sys, mas não encontrei nada que parecesse um provável candidato para escrever mensagens na tela.
Idéia idiota: posso persuadir o sistema Linux USB a tratá-lo como um dispositivo serial USB? Isso parece muito improvável e meu conhecimento limitado de dispositivos USB é que o próprio dispositivo diz que tipo de driver requer e os drivers de teclado USB estão a milhões de milhas dos drivers seriais USB.
Idéia fora de pista: Posso usar o CTAPI? Não é realmente um leitor de cartões, mas parece um pouco com um. Eu brinquei com os scripts Chipcard CTAPI Perl, mas isso não conseguiu encontrar um dispositivo para conectar (parecia estar pedindo um número de porta USB - o que quer que isso seja!?).
Idéia complicada: encontre o processador interno e se eu posso programar o JTAG? Sem documentação que eu possa encontrar, isso não parece viável.
Hardware hack: Internamente, a tela tem um conector IDC de 16 vias (embora não haja pistas sobre o tipo de dispositivo). Existe um padrão comum usado para falar com telas LCD de 16x2 que eu poderia enganchar algo?
No caso de lançar alguma luz; aqui está uma saída relevante:
cat / proc / bus / input / devices
I: Bus=0003 Vendor=13ba Product=0018 Version=0110
N: Name="Barcode Reader "
P: Phys=usb-0000:00:1d.1-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/input/input10
U: Uniq=
H: Handlers=kbd event9
B: EV=120013
B: KEY=10000 7 ff800000 7ff febeffdf f3cfffff ffffffff fffffffe
B: MSC=10
B: LED=7
lsusb -v
Bus 003 Device 004: ID 13ba:0018 PCPlay Barcode PCP-BCG4209
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x13ba PCPlay
idProduct 0x0018 Barcode PCP-BCG4209
bcdDevice 0.01
iManufacturer 0
iProduct 1
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 400mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 62
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 2