Lua Macros

Nástroje, utility, SW udělátka, Xdgets, doplňky ...
Odpovědět
Uživatelský avatar
masa
Příspěvky: 435
Registrován: 30 pro 2014, 22:31
Bydliště: Praha 5
Kontaktovat uživatele:

Re: Lua Macros

Příspěvek od masa » 30 srp 2016, 22:32

Tak jsem to vyzkousel a ta novinka zda se funguje dobre. Pak jsem si s tim ale chvili hral a me to nejak nema rado... Obcas to nezaregistruje nektery z callbacku a pak k nemu neposila data, obcas LUA zacne sypat nejakou floating point exception a dohledat kde co proc se mi moc nedari, navic se to chova nahodne, obcas to vsechno probehne ok a bezi to v pohode, coz je ta nejblbejsi varianta.
Obrázek

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

Re: Lua Macros

Příspěvek od masa » 31 srp 2016, 07:07

Tak tohle je to co mi to hazi, tusis kde je problem?

Kód: Vybrat vše

2016-08-31 07:56:14:360 [LUA]: Lua worker: starting procedure callback id 8, xpl value name "sim/cockpit/radios/gps_dme_time_secs", id 3681791734881, value [double] +Inf, int param 58, queue size is 1
2016-08-31 07:56:14:364 [LUA]: Lua worker: finished callback id 8, xpl value name "sim/cockpit/radios/gps_dme_time_secs", id 3681791734881, value [double] +Inf, int param 58 with error, execution time: 0 ms
2016-08-31 07:56:14:368 [LUA] ERROR: Exception in LUA code: Invalid floating point operation
Obrázek

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

Re: Lua Macros

Příspěvek od me2d » 31 srp 2016, 07:56

Tu chybu uz jsem videl & resil, akorat si ted nepamatuju jak :-).
Posilejte mi cely skripty, ja si s tim klidne pohraju.
Obrázek

Uživatelský avatar
LAKY911
Příspěvky: 86
Registrován: 02 led 2015, 23:10

Re: Lua Macros

Příspěvek od LAKY911 » 31 srp 2016, 08:17

Já jsem se včera zaměřil jenom na to sekání a.. ono je to pěkně náhodný :-D Jednou se to seká a problikává to černě, podruhý se mi hodil Xpl do "Neodpovídá" a potřetí to fungovalo správně. :-D Zkusím to ještě jednou, takhle to nejde, aby si to ze mě dělalo srandu!
Obrázek

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

Re: Lua Macros

Příspěvek od masa » 31 srp 2016, 12:06

Kod ti sem nekdy klidne hodim, jde tam podle me o to, ze ta value je nekonecno a ta posahana LUA se s tim nejak neumi poprat, zkousel jsem i nejaky funkce co poznaji nekonecno, nejak tam vrazit if, ale to fungovalo taky zahadne.
Obrázek

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

Re: Lua Macros

Příspěvek od masa » 31 srp 2016, 20:02

Takze vysledek badani...

sim/cockpit/radios/gps_dme_time_secs obcas asi vraci mocinky veliky cislo, ktery pak v lua po printf vypise 1.#INF coz je jako nekonecno.

Kdyz na tohle cislo clovek pouzije treba string.format("%d", value), tak to hodi ERROR: Exception in LUA code: Invalid floating point operation.

Jde tam dat if a to takto if(value == math.huge) then print("nekonecno") end

Vsechny ostatni testy, jestli to je nekonecno, co jsou na netu, nefungujou.
Obrázek

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

Re: Lua Macros

Příspěvek od masa » 31 srp 2016, 20:20

Tak a ted problemy, ktery by chtelo poladit...

Pokud je callback na sim/cockpit/radios/gps_dme_time_secs a leze tam z toho to nekonecno - v xpl toho jde docilit tim, ze se postavis treba na OIII a direct to EBCI, tak tam asi nefunguje ta zmena o 1, sype to v intervalu 1 vterina porad, ale ta value je porad nekonecno.

Kód: Vybrat vše

	lmc_on_xpl_var_change('sim/cockpit/radios/gps_dme_time_secs', function(value, count)
	  if(value == math.huge) then value = 0 end 
	  str = 'GP4_' .. string.format("%d", value * 60) .. '|'
	  lmc_send_to_com('COM', str)
	  if(AXPL_DEBUG == 1) then
		  print("LUA > Arduino: " .. str .. " (GPS ETE)")
	  end
	end, 1000, 1)	
Jakmile dam neco blizkeho a cas neni nekonecno, tak se to vse srovna o funguje spravne.

Druhy problem co je trochu nahodny, obcas to jde, obcas ne - jakoby se nezaregistruje callback pro BRG, obcas i dalsi gps hodnoty.

Kód: Vybrat vše

	
lmc_on_xpl_var_change('sim/cockpit2/radios/indicators/gps_bearing_deg_mag', function(value, count)
	  str = 'GP6_' .. string.format("%d", value) .. '|'
	  lmc_send_to_com('COM', str)
	  if(AXPL_DEBUG == 1) then
		print("LUA > Arduino: " .. str .. " (GPS bearing)")
	  end
	end, 1000, 1)
Zadny error nikde nevidno, BRG se v xpl meni, i primo ten dataref zkontrolovan v XPL, ale callback se nezavola.
Obrázek

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

Re: Lua Macros

Příspěvek od me2d » 31 srp 2016, 22:56

Mrknu na to.
Zatim jsem upravil logovani, aby debug vystupy psal i xpl plugin.
Nyni lze pouzit command

Kód: Vybrat vše

lmc_xpl_log_file('luamacros1.log')
A do toho souboru zacne logovat xpl plugin (co se v nem deje a tedy hlavne co posila do luamacros). Relativni cesta jde proti xpl home adresari, absolutni asi bude fungovat taky.
Pokud si s tim chces hrat, linky jsou stejny jako jsem daval pred par dny (plugin i exe), ale jinak se jeste casem podivam na ty priklady, co jsi mi daval.
Obrázek

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

Re: Lua Macros

Příspěvek od masa » 02 zář 2016, 08:03

Toho logovani pluginu slo dosahnout i predtim, ne? Ze se tam zalozil ten file. Nebo je tohle neco jinyho?

Odesláno z mého HTC One M8s pomocí Tapatalk
Obrázek

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

Re: Lua Macros

Příspěvek od me2d » 02 zář 2016, 23:19

No ale takhle je to preci mnohem elegantnejsi :-)
Opravil jsem tu chybu na +Inf.
S gps bearing jsem si chvili hral, ale fungovalo mi to dobre.
Nove fily na tech 2 primych downloadech.
Obrázek

Odpovědět