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--