Re: reading from HID keyboard [message #180513 is a reply to message #180512] |
Sat, 23 February 2013 00:21 |
Ben Barker
Messages: 5 Registered: October 2011
Karma:
|
Junior Member |
|
|
On Friday, 22 February 2013 22:29:01 UTC, b...@bbarker.co.uk wrote:
>>
>
>>
>
>>
>
>>> Hi,
>
>>
>
>>> I have a device that appears to my machine as a HID keyboard (though actually it is an RFID reader)
>
>>
>
>>>
>
>>
>
>>> I can read from it locally in php by using fopen("php://stdin",r)
>
>>
>
>>>
>
>>
>
>>> The problem is if I shell into this machine via ssh, then stdin comes from the remote keyboard, not from the local HID device, and the above does not return any data.
>
>>
>
>>>
>
>>
>
>>> I can read from /dev/input/by-id/<my device>
>
>>
>
>>>
>
>>
>
>>> But this returns a very large number of bytes that it is not immediately obvious how to decode
>
>>
>
>>>
>
>>
>
>>> Can anyone suggest a way forward here?
>
>>
>
>>
>
>>
>
>> It's hard to say without further information, but hazarding a guess,
>
>>
>
>> you are reading raw keyboard scan codes in the latter case. If I was
>
>>
>
>> in your situation, I'd look at the documentation for the device in
>
>>
>
>> question, and take it from there. If your documentation is lacking,
>
>>
>
>> try to look at the table of PS2 scan codes, and see if they match up
>
>>
>
>> with your input.
>
>>
>
>>
>
>>
>
>> http://www.computer-engineering.org/ps2keyboard/scancodes2.html
>
>>
>
>>
>
>>
>
>> --
>
>>
>
>> /Wegge
>
>>
>
>>
>
>>
>
>> Leder efter redundant peering af dk.*,linux.debian.*
>
>
>
> Ah - a useful little program fro the repositories call "evtest" has helped sort things out.
>
>
>
> It seems that the data consists of a series of bytes, and for every key press/ character generated there are 8 bytes produced
>
>
>
> Event: time 1361571412.662329, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70027
>
> Event: time 1361571412.662343, type 1 (EV_KEY), code 11 (KEY_0), value 1
>
>
>
> Interspersed with
>
>
>
> Event: time 1361571412.688401, -------------- SYN_REPORT ------------
>
>
>
> It should be fairly easy to decode now :-)
This was also of much use:
http://stackoverflow.com/questions/5060710/format-of-dev-input-event
|
|
|