HID deskriptor - jak precist?

Jan Kasprzak kas na fi.muni.cz
Pondělí Leden 13 09:38:39 CET 2020


Pavel Kankovsky wrote:
: 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.

	Checht. Vlákno ze záhrobí, ale zrovna přes Vánoce jsem
si říkal, že bych tento problém potřeboval oživit.

: >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ů.

	Pěkné. Vyzkouším, díky za dohledání i za oživení starého
vlákna.

-Y.

-- 
| Jan "Yenya" Kasprzak <kas at {fi.muni.cz - work | yenya.net - private}> |
| http://www.fi.muni.cz/~kas/                         GPG: 4096R/A45477D5 |
      But fortunately wifi has a few, uh, interesting design choices
      that mean we can still do something.         --Matthew Garrett


Další informace o konferenci Linux