Lua Macros

Nástroje, utility, SW udělátka, Xdgets, doplňky ...
Odpovědět
me2d
Site Admin
Příspěvky: 181
Registrován: 29 pro 2014, 21:30
Kontaktovat uživatele:

Lua Macros

Příspěvek od me2d » 05 bře 2015, 21:46

Tak prvni pokus pro Jirku a pripadne i dalsi nedockavce.

Jak jsem psal, HidMacros jsou mrtve z nekolika duvodu
- nebavi me patlat se s GUI
- kod vznikal z pokusu "co kdyby to fungovalo" a bohuzel je to na nem videt
- a hlavne je to psane v TurboDelphi, ktery uz nejsou volne ke stazeni, takze az si reinstaluju pocitac, uz to ani nezkompiluju. Delphi kvuli tomu kupovat nebudu
- to Microsofti skriptovani s COM objekty mi stejne nikdy moc nesedlo

Ale jsou tu LuaMacros :-)
- budou zalozene ciste na skriptu
- funkcne mam v planu aby to byly zhruba HidMacros bez FSX/9, mysi, MIDI + ty COMy a dalsi, co budu potrebovat
- open source od zacatku, takze mozna casem udelam FSkarum reklamu na peraku a treba tam ten SimConnect nekdo dopise

Prvni verze lze stahnout zde: http://files.xpl.cz/me2d/luamacros.zip
Umi to zatim jen joysticky a ty COMy, do XPL to umi poslat jen commandy. Datarefy a dalsi srandy co byly v HidMacros tam ted behem par dnu napojim. Moc jsem to netestoval a zatim neresil error handling (hlavne ze skriptu), takze opatrne prosim.
Jo jak nazev napovida tak na skriptovani pouzivame jazyk Lua - je hrozne moderni, ze jo :-). Bohuzel bez zakladni znalosti skriptovani to nelze pouzivat, tedy neni to takova masovka, jako HidMacros :-).

A jen na ukazku, klicovej kod se dela cca takto:

Kód: Vybrat vše

lmc_set_handler('LB',function(button, direction)
  print('Callback for whole joystick: button ' .. button .. ', direction '..direction)
  if (button == 3) then
    lmc_xpl_command('sim/view/still_spot')
  end
end)
Demostracni skript co to zatim umi je k videni zde: https://github.com/me2d13/luamacros/blo ... c/test.lua

A jeste k pouziti: snad by k behu mely stacit ty soubory, co jsou v zipu. S XPL to komunikuje pres soucasny HidMacros plugin, pro jistotu jsem tam pribalil i prebuildenou verzi, ale melo by to fungovat i s tim z HidMacros. Kdo nevi co tim myslim tak musi chvili pockat :-), detailnejsi navody ted ne.
Obrázek

Uživatelský avatar
masa
Příspěvky: 421
Registrován: 30 pro 2014, 22:31
Bydliště: Praha 5
Kontaktovat uživatele:

Re: HID Macros - komunikace po COM

Příspěvek od masa » 05 bře 2015, 21:57

Tak to vypadá zajímavě, už se těšim, až si s tím pohraju :)
Obrázek

Uživatelský avatar
masa
Příspěvky: 421
Registrován: 30 pro 2014, 22:31
Bydliště: Praha 5
Kontaktovat uživatele:

Re: HID Macros - komunikace po COM

Příspěvek od masa » 06 bře 2015, 09:00

Tak prvni lehky zkouseni a neco to dela - Bodnara to naslo, COM port otevrelo, veci z Arduina nacita :) Akorat jsem linej, takze ty seriakovy data bych desne rad dostal vic predzvykany, abych si nemusel resit nejaky buffer a separovani tech dat... ;) Ale vypada to sympaticky, zkusim tam prebouchat to, co jsem mel v HID macros, a HID zahodit. Akorat teda trosku bojuju s LUA, ale to se podda... proc tam treba sakra nemohli nechat { a } a musim psat nejaky end :twisted:

Mozna by stalo ze to zalozit tu vlakno LUA macros, at se to vsechno sepisuje tam...
Obrázek

me2d
Site Admin
Příspěvky: 181
Registrován: 29 pro 2014, 21:30
Kontaktovat uživatele:

Re: Lua Macros

Příspěvek od me2d » 06 bře 2015, 10:38

Dokonce se mi podarilo i rozdelit tema :-)

Ja jsem ten COM zkousel jenom s nejakym virtual portem a tam co jsem odeslal, to mi dorazilo - najednou.
Nevim jak ti to chodi z Arduina, ale tak maximalne si tam udelas nejakej split na string, ne?
Obrázek

Uživatelský avatar
masa
Příspěvky: 421
Registrován: 30 pro 2014, 22:31
Bydliště: Praha 5
Kontaktovat uživatele:

Re: Lua Macros

Příspěvek od masa » 06 bře 2015, 10:57

Jo, to ze nacte co mu prijde to funguje, ale prave ten split se mi moc nechtelo matlat ;) Jako takovy bezny oddelovac by sel povazovat \n - jakmile by to na nej v tom proudu dat z COMu narazilo, tak by to zavolalo tu handler funkci a jako parametr predalo string se vsim, co prislo predtim (a vycistilo si ten buffer). Urcite to je resitelny i v tom mojem skriptu, ale kdyby si to resil primo ty, tak by to cely bylo jednodussi.

Priklad...

Arduino posle:
HDG 360\nHDG 359\nHDG 350\n

Tvoje soucasny zpracovani posle do hnadler funkce:
G 360\nHD
pak
G 359\nH
pak
DG 350\n
...bude to zaviset na nacasovani, tom jak to tvoje resi nejakej buffer a tak...

A me by se desne libilo, aby mi do handler funkce pres parametr prilitly primo stringy...
HDG 360
pak
HDG 359
pak
HDG 350
Obrázek

me2d
Site Admin
Příspěvky: 181
Registrován: 29 pro 2014, 21:30
Kontaktovat uživatele:

Re: Lua Macros

Příspěvek od me2d » 06 bře 2015, 11:08

Jaky "to moje resi buffer", spatne to posila tvoje Arduino :-).
Ale ok, dodelam tam callaback handler dle separatoru, docela easy.
Obrázek

Uživatelský avatar
masa
Příspěvky: 421
Registrován: 30 pro 2014, 22:31
Bydliště: Praha 5
Kontaktovat uživatele:

Re: Lua Macros

Příspěvek od masa » 06 bře 2015, 11:27

No ja si s tim moc nehral, takze to Arduino to tam hrnulo fakt rychle, urcite poslalo "radku" nekolikrat za vterinu :)
Obrázek

Uživatelský avatar
masa
Příspěvky: 421
Registrován: 30 pro 2014, 22:31
Bydliště: Praha 5
Kontaktovat uživatele:

Re: Lua Macros

Příspěvek od masa » 06 bře 2015, 18:57

Par cvakatek mam udelany jako "pozicni kloboucek" - zpracovani cudlu ala prvni prispevek je ale nebere ;)
Obrázek

me2d
Site Admin
Příspěvky: 181
Registrován: 29 pro 2014, 21:30
Kontaktovat uživatele:

Re: Lua Macros

Příspěvek od me2d » 06 bře 2015, 19:54

A v HidMacros to slo?
Kod je stejnej, mlhave si pamatuju ze HATy se ctou trosku jinak, takze to tam muzu dopsat, az to prijde na porad dne...
Obrázek

Uživatelský avatar
masa
Příspěvky: 421
Registrován: 30 pro 2014, 22:31
Bydliště: Praha 5
Kontaktovat uživatele:

Re: Lua Macros

Příspěvek od masa » 06 bře 2015, 20:25

Ha, tak ja zil v tom, ze ty cvakatka jsem mel pres HID macros, ale ono ve skutecnosti byly primo v XPL. A HID macros je koukam taky nedetekujou, tak na to mozna cely zapomen, ono to az tak dulezity neni.
Obrázek

Odpovědět