Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

USB HID Set Report and Get Report #145

Open
frankmeho opened this issue Mar 21, 2024 · 10 comments
Open

USB HID Set Report and Get Report #145

frankmeho opened this issue Mar 21, 2024 · 10 comments
Assignees
Labels

Comments

@frankmeho
Copy link

Describe the bug
A clear and concise description of what the bug is.
Recently I developed my owned Java PC tool to send USB HID commands with hid4java-0.7.0.jar library. It works well on most of embedded systems such as Qualcomm platform. But one specific platform needs to send Set Report command first, then send another Get Report to receive the correct response. However, this specific platform can be sent Set Report correctly, but failed to send the Get Report, which means when I send Get Report, there's no any response. Use USB analyzer to capture USB packets, only the Set Report can be seen, not any Get Report packet was sent out.

To Reproduce
Steps to reproduce the behavior:

  1. hidDevice.write(data, len, (byte)ReportID) to send USB HID command
  2. hidDevice.read(data, 500) to receive the response data.
  3. For the specific platform, I send hidDevice.write(data, len, (byte)SetReportID), and then hidDevice.write(data, len, (byte)GetReportID), it's failed to send Get Report, its returned code is wrong.

Expected behavior
How can I let the specific platform to work with my owned Java PC tool? Use another C/C++ SimpleHIDWrite to Set Report, and then Get Report, both can work.

Screenshots
If applicable, add screenshots to help explain your problem.
None

Desktop (please complete the following information):
Windows 10

Smartphone (please complete the following information):
None

Additional context
None

@frankmeho
Copy link
Author

@gary-rowe
Hi, how are you?

I also tried the hid4java-develop which was uploaded to the GitHub.
I got the same result for the Get Report issue.

@frankmeho
Copy link
Author

@gary-rowe
For Maven Project, we can only find the hid4java-0.7.0 for dependency, so it's not really replaced with hid4java-develop, what the exact problem do you think? Thanks.

<dependency>
<groupId>org.hid4java</groupId>
<artifactId>hid4java</artifactId>
<version>0.7.0</version></dependency>
    <dependency>

@frankmeho
Copy link
Author

frankmeho commented Mar 26, 2024

@gary-rowe
Gradually found that we use hid4java-develop, got the following issue of hidapi.dll.

org.hid4java.HidException: Hidapi did not initialise: Unable to load library 'hidapi':
The specified module could not be found.

The specified module could not be found.

The specified module could not be found.

Native library (win32-x86-64/hidapi.dll) not found in resource path (D:\COG_Java_USBHID_Developer\usbhid.comms\target\classes;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\commons-codec-1.16.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\commons-collections4-4.4.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\commons-io-2.15.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\commons-math3-3.6.1.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\poi-5.2.5.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\poi-ooxml-5.2.5.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\hid4java-0.8.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\log4j-core-2.21.1.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\xmlbeans-5.2.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\log4j-api-2.21.1.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\swt.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\jna-5.13.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\jna-platform-5.13.0.jar;C:\Users\HO006043\.m2\repository\org\apache\poi\poi\5.2.5\poi-5.2.5.jar;C:\Users\HO006043\.m2\repository\commons-codec\commons-codec\1.16.0\commons-codec-1.16.0.jar;C:\Users\HO006043\.m2\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\HO006043\.m2\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\Users\HO006043\.m2\repository\commons-io\commons-io\2.15.0\commons-io-2.15.0.jar;C:\Users\HO006043\.m2\repository\com\zaxxer\SparseBitSet\1.3\SparseBitSet-1.3.jar;C:\Users\HO006043\.m2\repository\org\apache\logging\log4j\log4j-api\2.21.1\log4j-api-2.21.1.jar;C:\Users\HO006043\.m2\repository\org\apache\poi\poi-ooxml\5.2.5\poi-ooxml-5.2.5.jar;C:\Users\HO006043\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.5\poi-ooxml-lite-5.2.5.jar;C:\Users\HO006043\.m2\repository\org\apache\xmlbeans\xmlbeans\5.2.0\xmlbeans-5.2.0.jar;C:\Users\HO006043\.m2\repository\org\apache\commons\commons-compress\1.25.0\commons-compress-1.25.0.jar;C:\Users\HO006043\.m2\repository\com\github\virtuald\curvesapi\1.08\curvesapi-1.08.jar;C:\Users\HO006043\.m2\repository\org\apache\logging\log4j\log4j-core\2.21.1\log4j-core-2.21.1.jar)
	at org.hid4java.HidDeviceManager.<init>(HidDeviceManager.java:87)
	at org.hid4java.HidServices.<init>(HidServices.java:81)
	at org.hid4java.HidManager.getHidServices(HidManager.java:72)
	at usbhid.comms.AppView.<init>(AppView.java:116)
	at usbhid.comms.Runner.main(Runner.java:10)
Caused by: java.lang.UnsatisfiedLinkError: Unable to load library 'hidapi':
The specified module could not be found.

The specified module could not be found.

The specified module could not be found.

Native library (win32-x86-64/hidapi.dll) not found in resource path (D:\COG_Java_USBHID_Developer\usbhid.comms\target\classes;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\commons-codec-1.16.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\commons-collections4-4.4.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\commons-io-2.15.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\commons-math3-3.6.1.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\poi-5.2.5.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\poi-ooxml-5.2.5.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\hid4java-0.8.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\log4j-core-2.21.1.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\xmlbeans-5.2.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\log4j-api-2.21.1.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\swt.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\jna-5.13.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\jna-platform-5.13.0.jar;C:\Users\HO006043\.m2\repository\org\apache\poi\poi\5.2.5\poi-5.2.5.jar;C:\Users\HO006043\.m2\repository\commons-codec\commons-codec\1.16.0\commons-codec-1.16.0.jar;C:\Users\HO006043\.m2\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\HO006043\.m2\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\Users\HO006043\.m2\repository\commons-io\commons-io\2.15.0\commons-io-2.15.0.jar;C:\Users\HO006043\.m2\repository\com\zaxxer\SparseBitSet\1.3\SparseBitSet-1.3.jar;C:\Users\HO006043\.m2\repository\org\apache\logging\log4j\log4j-api\2.21.1\log4j-api-2.21.1.jar;C:\Users\HO006043\.m2\repository\org\apache\poi\poi-ooxml\5.2.5\poi-ooxml-5.2.5.jar;C:\Users\HO006043\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.5\poi-ooxml-lite-5.2.5.jar;C:\Users\HO006043\.m2\repository\org\apache\xmlbeans\xmlbeans\5.2.0\xmlbeans-5.2.0.jar;C:\Users\HO006043\.m2\repository\org\apache\commons\commons-compress\1.25.0\commons-compress-1.25.0.jar;C:\Users\HO006043\.m2\repository\com\github\virtuald\curvesapi\1.08\curvesapi-1.08.jar;C:\Users\HO006043\.m2\repository\org\apache\logging\log4j\log4j-core\2.21.1\log4j-core-2.21.1.jar)
	at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:323)
	at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:483)
	at com.sun.jna.Library$Handler.<init>(Library.java:197)
	at com.sun.jna.Native.load(Native.java:622)
	at com.sun.jna.Native.load(Native.java:596)
	at org.hid4java.jna.HidrawHidApiLibrary.<clinit>(HidrawHidApiLibrary.java:37)
	at org.hid4java.jna.HidApi.init(HidApi.java:124)
	at org.hid4java.HidDeviceManager.<init>(HidDeviceManager.java:84)
	... 4 more
	Suppressed: java.lang.UnsatisfiedLinkError: The specified module could not be found.

		at com.sun.jna.Native.open(Native Method)
		at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:211)
		... 11 more
	Suppressed: java.lang.UnsatisfiedLinkError: The specified module could not be found.

		at com.sun.jna.Native.open(Native Method)
		at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:224)
		... 11 more
	Suppressed: java.lang.UnsatisfiedLinkError: The specified module could not be found.

		at com.sun.jna.Native.open(Native Method)
		at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:284)
		... 11 more
	Suppressed: java.io.IOException: Native library (win32-x86-64/hidapi.dll) not found in resource path (D:\COG_Java_USBHID_Developer\usbhid.comms\target\classes;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\commons-codec-1.16.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\commons-collections4-4.4.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\commons-io-2.15.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\commons-math3-3.6.1.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\poi-5.2.5.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\poi-ooxml-5.2.5.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\hid4java-0.8.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\log4j-core-2.21.1.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\xmlbeans-5.2.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\log4j-api-2.21.1.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\swt.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\jna-5.13.0.jar;D:\COG_Java_USBHID_Developer\usbhid.comms\libs\jna-platform-5.13.0.jar;C:\Users\HO006043\.m2\repository\org\apache\poi\poi\5.2.5\poi-5.2.5.jar;C:\Users\HO006043\.m2\repository\commons-codec\commons-codec\1.16.0\commons-codec-1.16.0.jar;C:\Users\HO006043\.m2\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\HO006043\.m2\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\Users\HO006043\.m2\repository\commons-io\commons-io\2.15.0\commons-io-2.15.0.jar;C:\Users\HO006043\.m2\repository\com\zaxxer\SparseBitSet\1.3\SparseBitSet-1.3.jar;C:\Users\HO006043\.m2\repository\org\apache\logging\log4j\log4j-api\2.21.1\log4j-api-2.21.1.jar;C:\Users\HO006043\.m2\repository\org\apache\poi\poi-ooxml\5.2.5\poi-ooxml-5.2.5.jar;C:\Users\HO006043\.m2\repository\org\apache\poi\poi-ooxml-lite\5.2.5\poi-ooxml-lite-5.2.5.jar;C:\Users\HO006043\.m2\repository\org\apache\xmlbeans\xmlbeans\5.2.0\xmlbeans-5.2.0.jar;C:\Users\HO006043\.m2\repository\org\apache\commons\commons-compress\1.25.0\commons-compress-1.25.0.jar;C:\Users\HO006043\.m2\repository\com\github\virtuald\curvesapi\1.08\curvesapi-1.08.jar;C:\Users\HO006043\.m2\repository\org\apache\logging\log4j\log4j-core\2.21.1\log4j-core-2.21.1.jar)
		at com.sun.jna.Native.extractFromResourcePath(Native.java:1145)
		at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:295)
		... 11 more

@gary-rowe gary-rowe added the in progress This issue is under active development in the develop branch or a feature label Mar 28, 2024
@gary-rowe gary-rowe self-assigned this Mar 29, 2024
@gary-rowe
Copy link
Owner

Looking over your output, it appears that there is a reference to hid4java-0.8.0.jar when the current latest release is 0.7.0 - could be a typo.

In general hid4java is referenced by downstream projects in Maven as follows:

<dependencies>

  <!-- hid4java for cross-platform HID USB -->
  <dependency>
    <groupId>org.hid4java</groupId>
    <artifactId>hid4java</artifactId>
    <version>0.7.0</version>
  </dependency>

</dependencies>

@gary-rowe gary-rowe added support and removed in progress This issue is under active development in the develop branch or a feature labels Mar 29, 2024
@frankmeho
Copy link
Author

frankmeho commented Apr 1, 2024 via email

@gary-rowe
Copy link
Owner

Hi @frankmeho. I've release the 0.8.0 version of the library. Does this resolved the issue? Also, can you provide the exact platform id (e.g. linex-aarch64 that is causing the issue?

@frankmeho
Copy link
Author

frankmeho commented Apr 17, 2024 via email

@frankmeho
Copy link
Author

frankmeho commented Apr 17, 2024 via email

@frankmeho
Copy link
Author

frankmeho commented Apr 25, 2024 via email

@frankmeho
Copy link
Author

frankmeho commented Apr 25, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants