BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Radiocomandi (https://www.baronerosso.it/forum/radiocomandi/)
-   -   FrSky Taranis - Lua scripts per tutti (https://www.baronerosso.it/forum/radiocomandi/353596-frsky-taranis-lua-scripts-per-tutti.html)

sinapse75 18 novembre 16 17:49

Forse ho capito perche questa mattina non ha funzionato.........
Luciano è possibile che ogni intervento sulla telemetria (come la riassegnazione dei sensori, maiuscole, minuscole, ecc) bisogna necessariamente spegnere e riaccendere la tx per fare riconoscere eventuali modifiche allo script lua?

TermicOne 18 novembre 16 18:30

Citazione:

Originalmente inviato da sinapse75 (Messaggio 4982391)
Forse ho capito perche questa mattina non ha funzionato.........
Luciano è possibile che ogni intervento sulla telemetria (come la riassegnazione dei sensori, maiuscole, minuscole, ecc) bisogna necessariamente spegnere e riaccendere la tx per fare riconoscere eventuali modifiche allo script lua?

Non saprei...solitamente faccio tutte le operazioni di definizione sensori su Companion e provo tutto su PC. Quando funziona tutto su PC scarico sulla radio le definizioni dei modelli e copio i relativi LUA.... e di solito funziona tutto. Quando pasticcio con sensori e LUA non faccio quasi mai le modifiche sulla radio ma lavoro prevalentemente su PC.

TermicOne 18 novembre 16 18:31

Citazione:

Originalmente inviato da LONGFLYER (Messaggio 4981703)
Ciao, da ciò che riporti si comprende che potresti ottenere il medesimo risultato esecutivo usando Global al posto di Static perdendo lo scope a livello di funzione (lo scope è il campo di utilizzo, cioè in quale pezzo di codice quella variabile opera). Essendo però uno script, percio' tendenzialmente corto (e magari anche il solo) c'e' poco da confondersi prediligendo pertanto l'efficienza funzionale. Se vuoi provare, leggo che una variabile se non specificata diversamente è sempre Global, basterà quindi non usare Static per le variabili da aggiungere (se vuoi puoi anteporre a ciascun nome una g minuscola così da evidenziare ulteriormente la globalità della variabile). Può darsi inoltre che si debba dichiarerà le variabili global fuori dalla funzione (nel caso non funzionasse definirle dentro la funzione).

Il suggerimento di LONGFLYER mi ha fatto scoprire una cosa interessante di LUA.

Ho provato quello che avevo trovato scritto in un forum (riportato qualche post fa) ed effettivamente funziona.

Se serve una variabile statica è possibile definirla global; in questo caso è statica ma visibile da tutti gli altri LUA script e da OpenTX, con i relativi vantaggi e svantaggi.

Se serve una variabile statica limitatamente ad uno script si puo' definirla local fuori dalla funzione; la variabile si comporta proprio come una variabile statica ma rimane local allo script (e non è quindi visibile negli altri script).

Ora possiamo applicare il suggerimento per ottimizzare il codice....

LONGFLYER 19 novembre 16 01:22

Citazione:

Originalmente inviato da TermicOne (Messaggio 4982414)
Il suggerimento di LONGFLYER mi ha fatto scoprire una cosa interessante di LUA.

Ho provato quello che avevo trovato scritto in un forum (riportato qualche post fa) ed effettivamente funziona.

Se serve una variabile statica è possibile definirla global; in questo caso è statica ma visibile da tutti gli altri LUA script e da OpenTX, con i relativi vantaggi e svantaggi.

Se serve una variabile statica limitatamente ad uno script si puo' definirla local fuori dalla funzione; la variabile si comporta proprio come una variabile statica ma rimane local allo script (e non è quindi visibile negli altri script).

Ora possiamo applicare il suggerimento per ottimizzare il codice....

Hai compreso tutto! Buon lavoro :wink:

marzipane 23 novembre 16 20:08

1 Allegato/i
ringraziandoti ancora per lo script volevo chiederti però perché la terza barra è diversa dalle altre due?

grz

TermicOne 23 novembre 16 20:50

Citazione:

Originalmente inviato da marzipane (Messaggio 4984308)
....perché la terza barra è diversa dalle altre due?

La barra nera rappresenta la tensione attuale della cella. La barra bianca rappresenta la tensione minima raggiunta dalla cella nel periodo di tempo. Quando attacchi la batteria, anche se non accendi il motore, puo' capitare che il sensore senta una variazione momentanea di tensione e lo script la registra. Dopo aver collegato la batteria se vuoi vedere tutto pulito puoi fare un reset telemetry tenendo premuto il tasto enter. Naturalmente puoi anche non farlo perchè quando accendi il motore la tensione di tutte le celle scende regolarmente e tutto sembra più regolare.

LONGFLYER 23 novembre 16 21:59

Citazione:

Originalmente inviato da TermicOne (Messaggio 4984319)
La barra nera rappresenta la tensione attuale della cella. La barra bianca rappresenta la tensione minima raggiunta dalla cella nel periodo di tempo. Quando attacchi la batteria, anche se non accendi il motore, puo' capitare che il sensore senta una variazione momentanea di tensione e lo script la registra. Dopo aver collegato la batteria se vuoi vedere tutto pulito puoi fare un reset telemetry tenendo premuto il tasto enter. Naturalmente puoi anche non farlo perchè quando accendi il motore la tensione di tutte le celle scende regolarmente e tutto sembra più regolare.

Ciao, magari hai già ottimizzato lo script? Hai potuto notare la differenza effettuando un testo specifico?
Non so come hanno realizzato il software della Taranis (dovrei dare un'occhiata al codice ...), ed è possibile che gli script LUA siano eseguiti in bassa priorità, ma a scanso di equivoci, conviene essere efficaci negli script LUA :wink:

marzipane 23 novembre 16 22:06

Grazie per pronta . in effetti io avevo provato "su scrivania" e non "sul campo" , appena provato fuori ho capito.

Ora servirebbe uno script relativo al gps...:rolleyes: a scopo diattico...

TermicOne 23 novembre 16 22:43

Citazione:

Originalmente inviato da LONGFLYER (Messaggio 4984337)
Ciao, magari hai già ottimizzato lo script? Hai potuto notare la differenza effettuando un testo specifico?
Non so come hanno realizzato il software della Taranis (dovrei dare un'occhiata al codice ...), ed è possibile che gli script LUA siano eseguiti in bassa priorità, ma a scanso di equivoci, conviene essere efficaci negli script LUA :wink:

Non ho ancora provato ad ottimizzare il codice anche perchè stavo cercando un sistema per misurare l'effettivo miglioramento ottenuto con le ottimizzazioni....che comunque farò. La % di CPU consumata dallo script è infatti visualizzabile solo nei mix scripts ma non nei telemetry scripts.

Sicuramente occorre essere efficaci negli script anche perchè gli script LUA sono controllati dal software della Taranis che garantisce massima priorità alle funzioni fondamentali della radio. Se gli script consumano troppa CPU o troppa memoria vengono brutalmente stoppati dalla saggia Taranis. Ecco perchè è scritto abbastanza chiaramente di non usare script LUA per gestire o filtrare output vitali come i movimenti delle parti mobili.

"Mix scripts should not exceed allowed run-time/ number of instructions.
Mix scripts are run with less priority than built-in mixes. Their execution period is around 30ms and is not guaranteed!
Mix scripts can be disabled/killed anytime due to logic errors in script, not enough free memory, etc...)
WARNING - Do not use Lua mix scripts for controlling any aspect of your model that could cause a crash if script stops executing."

TermicOne 23 novembre 16 22:48

Citazione:

Originalmente inviato da marzipane (Messaggio 4984340)
Ora servirebbe uno script relativo al gps...:rolleyes: a scopo didattico...

Non ho il GPS della Taranis e non mi viene proprio in mente cosa ci si possa fare di utile...se suggerisci qualcosa magari proviamo visto che ora con il simulatore telemetria si puo' provare tutto con campanion.

In ogni caso qui ci sono un sacco di esempi anche se non sono adatti allo scopo didattico perchè non sono semplicissimi:

R/C Settings - Lua Scripts


.


Tutti gli orari sono GMT +2. Adesso sono le 03:40.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002