私は2016 DP950ミニUSB数字キーパッドコンパクトキーボードを持っています。これは、2行×16文字のLCD画面とUSBコネクタを備えた数字キーパッドです。
Linux(またはWindowsまたはMac)で画面にメッセージを書き込めるようにしたいです。
キーボードが正しく動作します。デバイスを接続して期待どおりに文字を送信すると、デバイスがキーボードとして表示されます。
しかし、デバイスはUSBキーボードでしか表示されないので(USBシリアルデバイスであることを望んでいますが、そうではありません)、画面に書き込むのが難しいようです。
それが表示されたら、画面に「パスワード:」と表示され、キーを入力すると「*」と表示されます(キーが正しく送信されます)。パスワードが何であるか、どのように設定するのかわかりません。 USBシステムは一種のバーコードリーダーであると主張していますが、そうではありません。
クイックアイデア:/sys階層を見回しましたが、画面メッセージを作成できる項目が見つかりませんでした。
愚かな考え:Linux USBシステムがそれをUSBシリアルデバイスとして扱うように説得できますか?その可能性はほとんどなく、USBデバイスに関する私の知識は限られています。デバイス自体はどのようなドライバが必要かを知らせ、USBキーボードドライバはUSBシリアルドライバから100万マイル離れています。
オフトラックのアイデア:CTAPIを使用できますか?実際にはカードリーダーではありませんが、似たように見えました。 Chipcard CTAPI Perlスクリプトを使用しましたが、接続するデバイスが見つかりませんでした(USBポート番号を尋ねたようです。それは何ですか!?)。
複雑なアイデア:内部プロセッサとは何か、JTAGプログラミングが可能かどうかを学びます。ドキュメントが見つからないため、これは実現できないようです。
ハードウェアハッキング:画面内に16方向IDCコネクタがあります(どのタイプのものかわかりませんが)。何かを接続できる16x2 LCD画面と通信する共通の標準はありますか?
手がかりがある場合、関連する結果は次のとおりです。
猫/proc/バス/入力/デバイス
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
答え1
/dev/input/by-path/xxxxx-event-kbd
これにはHIDデバイスパスを使用しています。このパスは、デバイスリセットまたはデバイスシステムイベントの変更後に機能します。ただし、USBインターフェイスを124回リセットした後、システムにバスの問題が発生しました。だから毎日バスやシステムを再起動する必要があります。