Skip to content

Navigation Menu

Sign in
Sign up

cannot read input reports for volume up/down for Jabra Evolve2 40 #659

Answered by Youw
Codeskb asked this question in Q&A
Discussion options

Hello team,
I am trying to build an windows console app leveraging hidapi, while I am testing with 'Jabra Evolve2 40' device, I see that hid_read_timeout does not return any data when I press volume up/down buttons, however if I press button to answer/end call I can see the data is being returned. I wrote a small javascript app to verify on chrome browser, in contract I can see some data is being returned when I press volume up/down in chrome browser.

I have attached a pic where the highlighted lines shows 'answer/end call button' reports which is working, later I pressed volume up and volume down, the browser shows the reports but the app on the right hand side does not show any data being received.
What could be the reason, some buttons not working and some buttons work well ? Any guidance you can provide ?

hid_read_notworking_jabraevolve240

You must be logged in to vote

I suspect it is because your device has several Usage/UsagePages. On Windows, each Top Level Collection (a pair of Usage/UsagePage) is represented as independent device.
It might be the case that the report(s) you're waiting is(are) under a different collection.

If you happen to use hid_open with specific VID/PID - you're opening a "first" (of unspecified order) Device/Collection.

If you need to open a different one - you need to use hid_enumerate, then find the device with a specific vid+pid+usage+usage_page, and then use hid_open_path to open it.

Replies: 2 comments

Comment options

I suspect it is because your device has several Usage/UsagePages. On Windows, each Top Level Collection (a pair of Usage/UsagePage) is represented as independent device.
It might be the case that the report(s) you're waiting is(are) under a different collection.

If you happen to use hid_open with specific VID/PID - you're opening a "first" (of unspecified order) Device/Collection.

If you need to open a different one - you need to use hid_enumerate, then find the device with a specific vid+pid+usage+usage_page, and then use hid_open_path to open it.

You must be logged in to vote
0 replies
Answer selected by Codeskb
Comment options

Thank you! that resolved, once I started listening to other pseudo devices (same physical device) based on the path I can see the data coming.
Now I am bit confused in other part, the APIs which take hid_device * as parameter like hid_get_feature_report, hid_send_feature_report, hid_write etc, which pesudo device should I give as input ?

example:
hid_device* handle1 = hid_open_path("path1");
hid_device* handle2 = hid_open_path("path2");
hid_device* handle3 = hid_open_path("path3");

All path1, path2, path3 belongs to same physical device. When using hid_get_feature_report, hid_send_feature_report, hid_write APIs, do I need to operate on all handles ? (handle1, handle2, handle3)

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants

AltStyle によって変換されたページ (->オリジナル) /