Lua Macros
Re: Lua Macros
No jsem zvedavy, s cim prijde Petr Pokud se to neodladi v LUAmacros, tak asi prispecham s prosikem a vnutim se se svym Arduinem do tveho pluginu (neuvazujes o tom, mit commandy a datarefy v nejakym konfiguraku?) By to chtelo, aby ten plugin bezel v jinem vlakne a samotny XPL nebrzdil... Jinak v podezreni byl i plugin od netscenery, ale ten vypada ze zaseky nedela.
Re: Lua Macros
Mám nějaké tipy na ladění
1) zkusit snížit frekvenci předávání řízení pluginu (parametr funkce XPLMRegisterFlightLoopCallback). Jak je to nastaveno teď?
2) zredukovat množství předávaných dat přes sériovou linku.
Já u svého pluginu posílám hodnoty jen při změně. Zjistil jsem ale, že float hodnoty z XPL se hrozně často mění na nějakém desetinném místě, takže se posílají pořád. Jelikož na LCD nevykresluji všechna místa, tak hodnoty zaokrouhluji... tím pádem se tolik nemění. Ověřil jsem, že arduino má pro sériovou linku buffer 64B. Pokud arduino nestíhá dat přijímat a vyčerpá se tento buffer, může to začít v XPL pluginu čekat na zápis.
Načítání datarefs a commands z konfiguračního souboru udělat lze. Dobrý nápad A asi bych mohl udělat build i pro Windows
Nápadů mám hodně... největší výzvou by bylo přidat možnost definovat celý LCD panel v konfiguráku XPL pluginu, aby se nemusel měnit kód v Arduinu pro různá rozložení zobrazovaných údajů. Každý by si mohl udělat libovolnou kompozici
1) zkusit snížit frekvenci předávání řízení pluginu (parametr funkce XPLMRegisterFlightLoopCallback). Jak je to nastaveno teď?
2) zredukovat množství předávaných dat přes sériovou linku.
Já u svého pluginu posílám hodnoty jen při změně. Zjistil jsem ale, že float hodnoty z XPL se hrozně často mění na nějakém desetinném místě, takže se posílají pořád. Jelikož na LCD nevykresluji všechna místa, tak hodnoty zaokrouhluji... tím pádem se tolik nemění. Ověřil jsem, že arduino má pro sériovou linku buffer 64B. Pokud arduino nestíhá dat přijímat a vyčerpá se tento buffer, může to začít v XPL pluginu čekat na zápis.
Načítání datarefs a commands z konfiguračního souboru udělat lze. Dobrý nápad A asi bych mohl udělat build i pro Windows
Nápadů mám hodně... největší výzvou by bylo přidat možnost definovat celý LCD panel v konfiguráku XPL pluginu, aby se nemusel měnit kód v Arduinu pro různá rozložení zobrazovaných údajů. Každý by si mohl udělat libovolnou kompozici
Re: Lua Macros
Vy s tim nadelate, kdysi mi cely XPL zamrzlo, nez pani v LuaMacros domluvi, nez jsem ten speech engine soupnul do samostatneho threadu .
Ale k veci, zpomalovat to samozrejme muze, ted se rozdily hodnot kontroluji kazdy simulation frame. Nicmene ten LUA kod uz by mel bezet asynchrone, takze brzdi jenom ta komunikace mezi XPL a Luamacros. Pod windows to myslim jede pres pipy.
Pouzivas u tech on var change ty casovy okna na ignore? Viz dokumentace. To je prave navrzene, aby to neposilalo moc zprav a koukal jsem ze ten cas se kontroluje uz v pluginu. Pak uz bych to moh jenom upravit, at ty promene nekontroluje kazdy frame, ale treba po urcitem intervalu.
Ale k veci, zpomalovat to samozrejme muze, ted se rozdily hodnot kontroluji kazdy simulation frame. Nicmene ten LUA kod uz by mel bezet asynchrone, takze brzdi jenom ta komunikace mezi XPL a Luamacros. Pod windows to myslim jede pres pipy.
Pouzivas u tech on var change ty casovy okna na ignore? Viz dokumentace. To je prave navrzene, aby to neposilalo moc zprav a koukal jsem ze ten cas se kontroluje uz v pluginu. Pak uz bych to moh jenom upravit, at ty promene nekontroluje kazdy frame, ale treba po urcitem intervalu.
Re: Lua Macros
U tech co se meni casto tam mam neco takovyho, coz by melo znamenat, ze co 2 vteriny.
lmc_on_xpl_var_change('sim/flightmodel/position/magpsi', function(value, count)
lmc_send_to_com('COM', 'GP7_' .. string.format("%d", value) .. '|')
end, 2000)
Tohle tam mam ale 6x a asi se to trefi vzdycky do stejneho okamziku, kdy vsech tech 6 chce poslat ven. Muzu jim treba zkusit dat ty intervaly lehounce odlisny. Tim ze bych mel jenom jeden xpl_var_change a uvnitr neho vice lmc_get_xpl_variable si predpokladam nijak nepomuzu.
Jinak cely mi to zaclo vadit po porizeni novy graficky karty, ktera celkem v pohode utahne XPL stabilne na 60 FPS... a pri tech 60 FPS si proste clovek vsimne, kdyz to chvilkama trochu zadrhne. Kdyz predtim XPL bezel spis na 30 FPS, tak jsem si toho vubec nevsiml
lmc_on_xpl_var_change('sim/flightmodel/position/magpsi', function(value, count)
lmc_send_to_com('COM', 'GP7_' .. string.format("%d", value) .. '|')
end, 2000)
Tohle tam mam ale 6x a asi se to trefi vzdycky do stejneho okamziku, kdy vsech tech 6 chce poslat ven. Muzu jim treba zkusit dat ty intervaly lehounce odlisny. Tim ze bych mel jenom jeden xpl_var_change a uvnitr neho vice lmc_get_xpl_variable si predpokladam nijak nepomuzu.
Jinak cely mi to zaclo vadit po porizeni novy graficky karty, ktera celkem v pohode utahne XPL stabilne na 60 FPS... a pri tech 60 FPS si proste clovek vsimne, kdyz to chvilkama trochu zadrhne. Kdyz predtim XPL bezel spis na 30 FPS, tak jsem si toho vubec nevsiml
Re: Lua Macros
Tak jsem tem sesti zmenil interval tak, aby se vzdy o 100 lisil a hned to je o neco lepsi. Porad to ale malicko znatelny je. Problem budou ty desetinny cisla, ktery xpl porad lehce meni. Takze LUA je posila presne v tom intervalu, i kdyz ve vysledku je pro to LCD vubec nepotrebuju. Myslis, ze by vyhledove slo tomu lmc_on_xpl_var_change rict, ze to je float a ze ho chci jen s nizkou presnosti, treba na jedno, dve desetinny mista? Pripadne to tam natvrdo vrazit treba na 3, podle me maly zmeny tam nikdo nikdy sledovat nebude.
Re: Lua Macros
Jo, to by slo.
Pridat tam krome casovyho kriteria i toleranci na hodnotu...
Pridat tam krome casovyho kriteria i toleranci na hodnotu...
Re: Lua Macros
Ono tusim jenom dve posilam dal jako desetinny (na jedno desetinny misto), zbytek uz v makru zaokrouhluju na cely cislo. Jinak vcera jsem to jeste vic rozhodil casove, nekterym dal az 5s interval a uz jsem v podstate ve stavu, kdy me to nebrzdi. Ale dodelana tolerance by byla fajn.
Re: Lua Macros
Tak teoreticky mohly vetsi zaseky byt zpusobovany tim, ze jsem tam mel zapnuty nejaky logovani kamsi... Ted jsem vsechno prebytecny vyhazel a zas to je asi o fous lepsi, ale objevil se jiny problem Pri delsim letu, rekneme pul hodky, se to dostane do stavu, kdy LUA macros totalne slitnou, obcas hodi hlasku, obcas ani to ne. Bohuzel k ty hlasce nemam screen, ale psalo se tam neco o fronte na pipe... nejaka zahlcena, pretekla... Pritom jsem to myslim mel cele ve stavu, kdy to komunikuje mezi sebou celkem minimalne. Sranda je, ze kdyz se to posere, tak to paradne rozhodi XPL, je tam treba pul minutovej zasek, vcera se dokonce stalo, ze me to uplne presunulo nekam jinam, najednou jsem stal na letisti, po tom co luamacros spadnou, tak se to ale vrati do normalu, XPL to cely ustoji. To posilani hodnot z XPL by asi chtelo jeste malicko vylepsit
Re: Lua Macros
Ty jo to uz je jak v praci
Jak rikam nasim testerum: ukaz mi, jak to zreprodukovat a ja ti to opravim...
Jak rikam nasim testerum: ukaz mi, jak to zreprodukovat a ja ti to opravim...
Re: Lua Macros
Porid Arduino, postav panel, pust si ten muj skript v LUA macros, vem Jetstreama, let pul hodiny z LKPD do LKPO, pri tom mej pusteny XEconomy, na androidu XPLGPS... a pak se to treba nahodne stane...