Tema: Q: windows, linksmakočiai ir Python
Autorius: Grzegorz Brzęczyszczykiewicz
Data: 2020-12-08 00:59:54
Laba,

škias užsiimu pornografija. Raildriver pultui nėra noro leisti €€€, 
noriu pasidaryti savo.
Joystick'as - gimbalai ir Arduino Pro Micro su HID sketch'u.


windows+python yra 2 joystick'o klausinėjimo būdai: pyGame ir "gimtasis" 
windows'ų, per winmm.dll 
[https://stackoverflow.com/questions/60309652/how-to-get-usb-controller-gamepad-to-work-with-python]

Pirmas būdas, per pyGame, manęs nedžiugina, nes pyGame langas turi būti 
fokuse. Man taip netinka, nes Ui yra kitų mygtukų. Bet mano nukopijuotas 
kodas ten veikia [1 pav].

Antras būdas pas mane veikia gretimame lange, python'as sėkmingai 
raportuoja reikšmes, bet pyGame langas jų negauna arba nenusiunčia. 
pyGame atsigauna kai jame pajudinį pelę, kas man irgi netinka [2 pav]

Amžinas klausimas: ką daryti?
a) čia pyGame bajeriukai, susitaikyk su tuo
b) ašių apklausą ir nustatymą išnešti į atskirą thread'ą
c) c# ?
c1) ?


Python todėl kad:
a) vienas žmogus parašė wraper'į raildriver.dll bibliotekai 
[https://github.com/piotrkilczuk/py-raildriver]
b) Revit pradėjo draugauti su Python
c) ką tik teko trumpai susipažinti su np ir matplotlib
d) kažkur ten ritasi pasaulis: micropython ant ESP32
e)


Kodas - elementarus. 'useJoystickPyGame' - bool, linksmakotis dirba arba 
per pyGame, arba pee winmm.dll.

Mano logika sako, kad kol neišlipau iš 'for event in 
pygame.event.get():', kodas turi būti vykdomas per 'else: axes[0] = 
cJoystick.get_axis(0) ...' ir ašių pozicija turi būti atnaujinama. 
Gretimo lango python'o koda be paliovos rašo 'print("Axes X:{} Y:{}, 
Z:{}".format(cJoystick.get_axis(0), cJoystick.get_axis(1), 
cJoystick.get_axis(2)))'

Reikiamas 'winmm.dll' kodo funkcijas prirašiau pyGame stilium, kad 
nesukti galvos.

Kodo gabalas:

while running:
     pygame.event.pump()
     event = pygame.event.wait()
     surface.fill((0,0,0))
     position = [10, 20]

     for event in pygame.event.get():
       if event.type == pygame.QUIT:
         running = False

       if useJoystickPyGame:
         if event.type == pygame.JOYAXISMOTION:
           e = event.dict
           axes[e['axis']] = e['value']
       else:
          axes[0] = cJoystick.get_axis(0)
          axes[1] = cJoystick.get_axis(1)

     image = font.render('Joystick name: ' + cJoystick.get_name(), 1, 
(180,200,180))

-- 
Grzegorz

Chrząszczyrzewoszyce, powiat Łękołody

3Dastronomyagricultureaudioautosautos.audiautos.audioautos.binariesautos.bmwautos.clubautos.fordautos.hondacrxautos.japanautos.mercedesautos.opelautos.sportautos.volvoautos.vwaviaavia.binariesbankcardsbinariesbooksbuildingcinemacommercecomp.hardwarecomp.softwarecomp.lietuvinimascomp.networksculturedarbas.ieskaudarbas.siulaudesigneconomicselectronicsfaunafauna.aquafauna.binariesfishingflorafotofoto.binariesgamesgames.csgames.onlinegsmgurmanaihumourhumour.binariesinternetlawmicrosoftmotomusicmusic.binariesmusic.instrumentsmusic.LT.binariesnavigacijaphppoliticsprogrammingrpgsportstudyingsveikatatalktesttranslationtransportationtraveltravel.binariestvunixvideovideo.binarieswatersportswwwwww.flashpdaautos.supermama.ltmobiledarbasretro.3Dretro.agricultureretro.astronomyretro.audioretro.autosretro.autos.audiretro.autos.audioretro.autos.binariesretro.autos.bmwretro.autos.clubretro.autos.fordretro.autos.hondacrxretro.autos.japanretro.autos.mercedesretro.autos.opelretro.autos.sportretro.autos.supermamaretro.autos.supermama.ltretro.autos.volvoretro.autos.vwretro.aviaretro.avia.binariesretro.bankcardsretro.beosretro.binariesretro.booksretro.buildingretro.cinemaretro.commerceretro.compretro.comp.hardwareretro.comp.lietuvinimasretro.comp.networksretro.comp.softwareretro.cultureretro.darbasretro.darbas.ieskauretro.darbas.siulauretro.designretro.economicsretro.electronicsretro.e-vejasretro.faunaretro.fauna.aquaretro.fauna.binariesretro.fishingretro.floraretro.fotoretro.foto.binariesretro.gamesretro.games.csretro.games.onlineretro.games.rpgretro.genealogijaretro.gsmretro.gurmanairetro.humourretro.humour.binariesretro.internetretro.YZFretro.YZF.nebukretro.YZF.nebuk.netikintisretro.YZF.nebuk.netikintis.bukretro.YZF.nebuk.netikintis.buk.tikintisretro.lawretro.microsoftretro.mobileretro.motoretro.musicretro.music.binariesretro.music.instrumentsretro.music.LTretro.music.LT.binariesretro.navigacijaretro.newsretro.news.taisyklesretro.newuserretro.pdaretro.phpretro.politicsretro.programmingretro.rpgretro.sportretro.studyingretro.sveikataretro.talkretro.translationretro.transportationretro.travelretro.travel.binariesretro.tvretro.unixretro.videoretro.video.binariesretro.watersportsretro.wwwretro.www.flashdiylt.rkm.news.announcelt.rkm.news.newuser