Įvesties įrenginių paleidimas ir pritaikymas sau Android įrenginyje

Atsakyti
Vartotojo avataras

Temos autorius
bronxitas
CEO
Pranešimai: 14112
Užsiregistravo: 02 Bal 2011, 19:37
Įrenginys: Xiaomi Mi Max
Miestas: Vilnius
Suteikė padėkų: 126
Gavo padėkų: 369
Kontaktai:

Įvesties įrenginių paleidimas ir pritaikymas sau Android įrenginyje

#1

Standartinė bronxitas » 10 Geg 2017, 06:52

Sveiki,

Aprašysiu kaip man sekėsi su kilimėliu, gal rasite pagal mano pavyzdį sau kažką naudingo.

Taigi, nusipirkau tokį stebuklą:
Šokių kilimėlis Step Mania (USB jungtis prie kompiuterio)
Paveikslėlis
https://www.youtube.com/watch?v=NiKSe1gbL60
PaslėptukasRodyti
Paveikslėlis
Buvo įtarimas, kad pajungus prie TV BOX neveiks, bet man tai tik dar vienas iššūkis! Aišku prieš pirkdamas pasiaiškinau ar yra kokių žaidimų androidui ir net radau BeatX: Rhythm Game. Na galvoju blogiausiu atveju jungsiu nešiojamą kompą prie TV ir bus galima straksėt.

Atvažiavo kilimas, viskas kaip ir gerai, jungiu prie TV BOX ir... nieko :) absoliučiai jokios reakcijos. Va galvoju ir papuoliau :) ko labiausiai bijojau, tą ir gavau. Nu nenuleidžiam rankų ir pradedam. Įdiegiu į TV BOX KeyTest.apk, paleidžiu ir matau, kad ten jokios reakcijos, negauna komandų iš kilimėlio. Jungiu prie nešiojamo kompo su windows, tvarkyklė įsidiegia, viskas ok, rado kaip "USB Input Device". Paleidžiu Stepmania žaidimą, kilimėlis veikia, reaguoja užlipus. Na ką reikia pradėt sudraugavimą su Androidu. Windows Device Manager pažiūriu jo VID ir PID (Hardware Info) HID\VID_0079&PID_0011. Šios info tikrai žinau, kad reikės dar nuo Terios T3+ sudraugavimo laikų. Jungiu kilimėlį prie TV BOX ir įdiegiu USB Device Info. Programoje matau, kad Androidas prijungtą kilimėlį randa, jo vid ir pid tokie patys kaip ir mačiau windowsuose. Dabar man reikia susiieškoti tvarkyklę (driver) Androidui. Googlinu pagal VID 0079 ir PID 0011 ir randu, kad man reikia DragonRise tvarkyklės, jos pavadinimas hid-dr.ko. Dar paieškojęs interneto platybėse radau ją iš Android 6 (kaip tik Marshmallow ir reikia). Jei kam reiks ji čia.
Tvarkyklę hid-dr.ko perkeliu į system/lib/ ir failui suteikiu teises rw- r-- r--
Dabar įjungiame tvarkyklę su Terminal Emulator for Android
komanda:

Kodas: Pasirinkti visus

su
#!/system/bin/sh
insmod /system/lib/hid-dr.ko
Keliaujame vėl į KeyTest programą ir... VUALIA! Programaja jau mato kilimėlio siunčiamas komandas! Tačiau Paleidimo Priemonėje (Launcheryje), vėjai kažkokie, atrodo, kad jokios logikos neturi mygtukai, lipant ant rodyklės į kairę suveikia kaip mygtukas Atgal, vidurinis iš vis kažkokius vėjus daro, veikia kaip "scrool". Ai tiek to.. Įjungiu BeatX: Rhythm Game ir vualia, visus mygtukus galima susidraugaut pagal save. Susireguliaviau ir... viskas kaip ir puiku, tačiau vidurinysis mygtukas suveikia kaip paspaudimas žemyn, tai nebaisiai patogu taip straksėt.... Žodžiu reikia mygtukų reikšmes prisitaikyt sau, o tai jau esu daręs ir nieko ten baisaus!
system/usr/keylayout/ pasitikrinu ir.. ogi nėra mano kilimėlio mygtukų išdėstymo failo Vendor_0079_Product_0011.kl vadinasi reikšmes ima iš Generic.kl. Na belieka kurtis savo arba gal kur rasiu, ant durniaus pažiūrėjau savo ragelyje ir vau! jis toks yra :) išsilupu failiuką ir žiūriu kas jame:

Kodas: Pasirinkti visus

# Classic [S]NES Controller

key 288 BUTTON_X
key 289 BUTTON_A
key 290 BUTTON_B
key 291 BUTTON_Y
key 292 BUTTON_L1
key 293 BUTTON_R1
key 297 BUTTON_START
key 296 BUTTON_SELECT

axis 0x00 HAT_X
axis 0x01 HAT_Y
Palieku atidarytą Vendor... failą, įjungiu KeyTest programą ir dabar reguliuosiu... Lipant ant mygtuko, Programa parodo jo Scan Code, tuomet žinau kokiam mygtukui turiu priskirti reikšmę, gavosi šitaip:

Kodas: Pasirinkti visus

key 288 DPAD_UP
key 289 DPAD_DOWN
key 290 DPAD_LEFT
key 291 DPAD_RIGHT
key 292 DPAD_LEFT
key 293 DPAD_RIGHT
key 294 DPAD_LEFT
key 295 DPAD_RIGHT
key 296 BUTTON_B #Atgal kitaip vadinamas Back
key 297 DPAD_CENTER #Pasirinkimo mygtukas
DPAD tai labai universali reikšmė skirta žaidimų pulteliams, dauguma programų jas supranta ir taip galima išgauti geriausią suderinamumą su visomis programomis. Į kairę ir į dešinę tiek mygtukų pasidariau todėl, kad straksint sunku pataikyt tiksliai ant to mygtalo nežiūrint žemyn, tai pasidariau lai visas kairys šonas būna kairėn ir dešinys šonas dešinėn. kai jau pramoksim, tuomet įstrižiems mygtukams priskirsiu kitas reikšmes, pvz garso reguliavimo.
Kadangi kilimėlis ašių neturi, tai apatinės reikšmės kaip ir nereikalingos. Tačiau spaudžiant vidurinį mygtuką negaunu jokio Scan Code, bet KeyKode jis yra, vadinasi Androidas mato, kad spaudžiama ir reaguoja savaip! tai man gudriausia būtų šitai atjungt nes vidurinis mygtukas noriu, kad būtų neveiksnus. Kadangi Scan Code jo nėra, tuomet darau prielaidą, kad tai ašis, o ašies reišmės aprašytos Vendor faile, tai paimu jas ir užkomentuoju

Kodas: Pasirinkti visus

#axis 0x00 HAT_X
#axis 0x01 HAT_Y
Taip jos nebus imamos iš Generic.kl failo ir joms nebus suteikiama jokia reikšmė.

Kad suveiktų kl failų keitimas reikia kiekvieną kartą paleisti Android įrenginį iš naujo, tačiau tuomet reikia vėl Terminale pakišinėti tvarkyklę, o tas jau pradeda nervuoti...
Atsisiunčiame SManager, pasidarome skripto failiuką ką vedame terminale, va maniškis, pasirenkame jį SManager, nustatome, kad reikalingas root bei būtų paleistas įsijungimo metu (Boot). Va ir viskas :)

Rezultate ūkyje atsirado dar vienas distancinis :D bei nauja straksėjimo pramoga :)

visai šitai machinacijai ir tyrinėjimams užtrukau ~4 valandas.


Nemėgstu asmeninių žinučių! Galbūt perskaitysiu, bet didelė tikimybė, kad neatrašysiu. Savo klausimus uždavinėkite tam skirtose temose.
Vertimas į lietuvių kalbą
Xiaomi Mi Max + Nvidia Shield Gaming Edition + Dell Chromebook 3189


pasas
Pranešimai: 72
Užsiregistravo: 11 Spa 2011, 19:56
Suteikė padėkų: 14
Gavo padėkų: 11

#2

Standartinė pasas » 16 Geg 2017, 11:32

Info, kaip ir vertinga, bet prajuokinote kapitaliai Čiuju, kam virš 30, o dabar pradėkime ant kilimėlio straksėti, blyn negaliu susilaikyti

Išsiųsta naudojantis GT-I9505 Tapatalk 4 Lt




Vartotojo avataras

Temos autorius
bronxitas
CEO
Pranešimai: 14112
Užsiregistravo: 02 Bal 2011, 19:37
Įrenginys: Xiaomi Mi Max
Miestas: Vilnius
Suteikė padėkų: 126
Gavo padėkų: 369
Kontaktai:

#3

Standartinė bronxitas » 16 Geg 2017, 11:34

pataikei :D


Nemėgstu asmeninių žinučių! Galbūt perskaitysiu, bet didelė tikimybė, kad neatrašysiu. Savo klausimus uždavinėkite tam skirtose temose.
Vertimas į lietuvių kalbą
Xiaomi Mi Max + Nvidia Shield Gaming Edition + Dell Chromebook 3189

Vartotojo avataras

Temos autorius
bronxitas
CEO
Pranešimai: 14112
Užsiregistravo: 02 Bal 2011, 19:37
Įrenginys: Xiaomi Mi Max
Miestas: Vilnius
Suteikė padėkų: 126
Gavo padėkų: 369
Kontaktai:

#4

Standartinė bronxitas » 14 Bir 2017, 22:22

Prisiverčiau pagaliau pasijungti žaidimų vairą prie tv box

Logitech Formula Force EX
Paveikslėlis

Pasiknisau kaip reikiant, kelis kartus jau norėjosi rankas nuleist, bet vis gi noras pasileist nugalėjo :)

Vendor_046d_Product_c294.kl + hid-logitech.ko

Kokiu būdu paleidžiama aprašiau pirmame poste. Į skriptą reikia įterpti:

Kodas: Pasirinkti visus

insmod /system/lib/hid-logitech.ko
Mygtukų išdėstymo failas jau buvo sistemoje, tačiau su juo neveikė vairas (į sukinėjimą nereagavo). Išdėstymo faile jau šitai sutvarkyta ;) Gaila FFB neveikia, nu bet ką padarysi :)

Kol kas išbandžiau su Real Racing 3, Riptide ir Beach Buggy Racing. Viskas kuo puikiausiai valdosi. Reiks dar įsirašyt Need for Speed™ Most Wanted


Nemėgstu asmeninių žinučių! Galbūt perskaitysiu, bet didelė tikimybė, kad neatrašysiu. Savo klausimus uždavinėkite tam skirtose temose.
Vertimas į lietuvių kalbą
Xiaomi Mi Max + Nvidia Shield Gaming Edition + Dell Chromebook 3189

Atsakyti

Dabar prisijungę

Vartotojai naršantys šį forumą: 1 ir 0 svečių