USB Host "okos" billentyűzet, melyik végpont a szabványos "boot code"?
Sziasztok!
Próbálkozom STM32 Host módjával USB billentyűzetet kezelni.
Belefutottam néhány dologba, de egész szépen működik már.
Az egy dolog, hogy vannak ezek a kombinált billentyűzetek, aminek több végpontja is van, és hol az egér, hol a billentyűzet szerepel korábban a leíróban.
Ezzel nincs problémám.
Most viszont sikerült szereznem egy okosabb Genius rádiós billentyűzetet, és elakadtam vele.
Ezen három végpont van, az első egy egér, a második egy billentyűzet és a harmadik is billentyűzet.
A probléma ezzel, hogy a második eszközzel (első billentyűzettel) nem működik a billentyűzet-kezelésem, a harmadikkal viszont igen.
Nyilván ez utóbbi lesz a normál "Keyboard Boot Protocol", az előbbi pedig valamiféle bővített változat.
Nem látom viszont, hogy az eszközleíróban ezek meg lennének különböztetve, ill. mindegyiket keyboard boot code-ként azonosítja nekem.
Hogyan tudnám megállapítani, hogy több billentyűzet interfész esetén melyik az, amelyik valóban a többé-kevésbé szabványos boot protokollt implementálja?
Nem hiszem ugyanis, hogy két billentyűzet végpont esetén mindig a második a "fallback" - vagy erre kellene építenem?
Tudtok ebben segíteni?
--------------------------------------------------------------------------------------------------------------------------------------------------------
Végül azt a megoldást választottam, hogy inicializáláskor megpróbálja beállítani a num/caps/scroll lock LED-eket.
Visszaolvasni ugyan nem sikerült (tartok tőle, hogy a hostnak kell emlékezni rá), de nem is volt rá szükség, mert a speciális billentyűzet interfészen ez a setreport hibára futott.
Ha záros határidőn belül nem sikerül beállítania a LED-eket, akkor továbblép a következő interfészre.
Ha sikerült a LED-eket beállítani, akkor ~100ms-ot követően kikapcsolja őket.
Az interfészekkel növekvő sorrendben próbálkozik, de most mindegyik billentyűzetet a megfelelő interfészen megtalálja, és jó eséllyel minden további billentyűzetnek is mennie kell vele, aminek van egy alternatív billentyűzet profilja ugyan, de támogatja ezt a "Keyboard Boot Protocol" megoldást is (amennyiben azok is hibára futnak a "nem megfelelő" interfészen).
Ebben a formában jobban tetszik a megoldás mint a fix második billentyűzetet megkeresni, bár kicsit át kellett írnom hozzá a billentyűzet felismerésemet.
- Tovább (USB Host "okos" billentyűzet, melyik végpont a szabványos "boot code"?)
- 317 megtekintés