Re: HID deskriptor - jak precist?

Pavel Kankovsky <[email protected]> Sat, 11 Jan 2020 21:19:15 +0100 (CET)
Newsgroups gmane.linux.region.czech
Message-ID <[email protected]>
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--1908607772-484818536-1578769280=:14166
Content-Type: TEXT/PLAIN; CHARSET=UTF-8; format=flowed
Content-Transfer-Encoding: 8BIT
Content-ID: <[email protected]>

On Sat, 6 May 2017, Jan Kasprzak wrote:

> 	Jednalo se o sestikanalovy joystick, ktery mel kanaly oznacene X, 
> Y, Z, Rx, Ry, Rz, minimalni hodnota 0, maximalni hodnota 255. Pak jsem 
> to chtel vylepsit o to, ze ja mam zdroj dat s vetsim rozlisenim nez 8 
> bitu (radove 10-11 bitu). Tak jsem zkusil nechat minimalni hodnotu 0 a 
> maximum jsem dal na 2048. Musel jsem zvetsit maximalni velikost packetu, 
> aby to nehlasilo tuto chybu:
>
> [951127.597263] usb 3-11: input irq status -75 received

Náhodou jsem zkoumal problém s jedním starým konvertorem gameportu na USB, 
který fungoval jen napůl a někdy produkoval tyto chyby, a našel jsem tuto 
zprávu... i když hodně starou a možná je už zbytečné odpovídat, ale 
stejně to zkusím.

> Mam snahu posilat na kazdy ze sesti kanalu dva bajty, nicmene mi to
> nefunguje. Linuxova aplikace vidi na joysticku pohyb pouze prvnich ctyr
> kanalu. Kdyz to vratim zpet do 8-bitovych dat, funguje vsech sest.
>
> 	Tusite nekdo kam se jeste podivat, pripadne co dalsiho
> v HID deskriptoru nebo nekde upravit? Pripadne - nemate nekdo joystick
> s vetsim rozlisenim nez 256 hodnot na kanal, ze byste mi poslali
> jeho HID deskriptor?

*Možná* je problém v tom, že joystick je typicky low speed zařízení a to 
nesmí posílat větší než osmibajtové pakety. (A to je asi právě problém 
s tím mým konvertorem: nějaká trubka to naprogramovala tak, že posílá pakety 
devítibajtové a na nějakých kombinacích hardwaru a OS to funguje, na 
jiných už nikoli.)

Pokud mám šest os a každá bude mít 2 bajty, tak mám dohromady 12 bajtů. 
Možná se ty 4 bajty odpovídající 5. a 6. ose, které jsou nad 8 bajtů, 
někde ztrácejí.

Nemám přímo příklad z vlastní zkušenosti, ale "report size" je v bitech a 
asi to nemusí být nějak přímo zarovnané na bajty. Možná by prostě stačilo 
místo 16 bitů na osu dát jen 10 bitů, jako je to např. u myši (Logitech 
MX510) na konci této stránky, která má 12-bitové X a Y:

<https://github.com/tmk/tmk_keyboard/wiki/USB:-HID-Report-Descriptor>

Takže by to bylo 6 krát 10 bitů = 60 bitů, plus 4 bity vycpávka a bylo by 
to rovných osm bajtů.

-- 
Pavel Kankovsky aka Peak                      "Que sçay-je?"
--1908607772-484818536-1578769280=:14166
Content-Type: text/plain; charset="iso-8859-2"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

_______________________________________________
Linux mailing list
[email protected]
http://www.linux.cz/mailman/listinfo/linux
--1908607772-484818536-1578769280=:14166--