Well, I am sure you can find some devices lying around.
For once your USB mouse and keyboard are HID devices - but one usually
avoids messing with them for obvious reasons, in case an USB interface
claimed by a test program is not released.
Out of curiosity, just now I opened my keyboard device (046d:c517
Logitech, Inc. LX710 Cordless Desktop Laser) and interrupt data reports
came right in as I pressed keys (looks like my keyboard generates 16
bytes of data for every key press). Decoding the data though is another
problem altogether. Can't test if this also works in Windows but in
Linux appears to work ok.
But you should be safer testing with a USB game controller or Wii remote
as they are also HID devices. I was amazed that the Wii (being wireless
and all actually worked.) I also just checked and realized that my APC
UPS is also a HID device (ID 051d:0002 American Power Conversion
Uninterruptible Power Supply). In sum, plenty of devices to play around
with. Have fun!
On 8/15/19 8:28 PM, James Richters wrote:
Thanks for posting the examples and the information. I'll have a look... I am
thinking maybe I should buy some of those USB relays or something simpler just
to get SOMETHNG to work so I can figure out what's supposed to even be
happening.
James
-----Original Message-----
From: fpc-pascal <fpc-pascal-boun...@lists.freepascal.org> On Behalf Of Stefan
V. Pantazi
Sent: Thursday, August 15, 2019 5:31 PM
To: fpc-pascal@lists.freepascal.org
Subject: Re: [fpc-pascal] USB Human Interface Devices
Hi James,
I remember going through many similar difficulties with HID. A few years ago I
was trying to connect to much simpler devices than yours (game controllers,
weather station base, graphic tablet, etc). USB programming is confusing and
many abstraction layers have been created aiming at simplifying it.
Unfortunately this introduces dependencies. I remember trying to port hidapi
headers to Pascal and tried to use the hidraw backend (in linux) with mixed
results. Also tried the libhid cross-platform library. In the end I went with
libusb 1.0 for which a Pascal header already existed
(https://forum.lazarus.freepascal.org/index.php?topic=11435.0) and used it to
implement on top of it a subset of the HID API calls that suited my needs and
kept things simple. I just posted an example on github:
https://github.com/svpantazi/libusbxhid
Hope it helps.
In theory you could use the Windows HID API but, as others have suggested, the
solution would not be cross platform, or, to put it another way, Windows HID
API would become your dependency. My suggestion is also to go the libusb 1.0
route and use a Pascal HID library that depends only on libusb 1.0. Your device
appears to be HID-compliant so no additional drivers should be needed for it.
As far as I know, the Zadig generic driver is necessary only for non-HID
devices. I remember using it for a rtl-sdr USB device on Windows.
Hope you find your solution. Good luck.
On 8/15/19 9:11 AM, James Richters wrote:
Yes, in device manager I see it listed as "HID-compliant
vendor-defined device" also Zadig identifies it as "USB Input Device"
and it shows Driver: HidUsb (v10.1.17763.1)
Is there a way to use the windows system HID interface with FPC already in
place as there is for other windows APIs?
James
-----Original Message-----
From: fpc-pascal <fpc-pascal-boun...@lists.freepascal.org> On Behalf
Of José Mejuto
Sent: Thursday, August 15, 2019 8:34 AM
To: fpc-pascal@lists.freepascal.org
Subject: Re: [fpc-pascal] USB Human Interface Devices
El 14/08/2019 a las 16:29, James Richters escribió:
I'll have a look at your project.. maybe it will give me some clues.
Can you tell me how to get hid.dll? I find it all very confusing, can I just
download the dll somewhere or do I have to get this huge confusing package and
built it myself? The sample code that is able to access my device with python
on Linux uses hid.dll I would like to at least be able to try the hid.dll...
if I can get hid.dll somewhere.
Hello,
hid.dll is the windows system HID interface, the API provided by Windows.
In the other hand, the hardware you are trying to manage is 10CE:EB93 ?
Yes, I got a listing of all devices, then I plugged in the new one, and that is
the ID that was not there before.
If the answer is yes, that device is *not* HID compatible so you can
not use hid.dll for native access, you must use WinUSB API set, or
the
libusb-1.0 abstraction layer.
I'm curious how you can tell that by looking at the number of it?
No, I just look for the product and try to find its drivers, no one name the HID
interface. Do you see the device in windows device manager under the HID section
"Human Interface Devices (HID)" ?
--
_______________________________________________________
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
--
_______________________________________________________
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal