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)

LONGFLYER 25 novembre 16 16:12

Citazione:

Originalmente inviato da TermicOne (Messaggio 4984360)
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."

Ciao, visto che non c'è un timestamp < 10ms e la bassa priorità degli script non garantisce una regolarità, penso che per avere un indice di miglioramento puoi solo osservare quante volte risparmi di eseguire intere ramificazioni di codice. Per l'appunto, ponendo:
- un contatore (var. statica) aggiornato a prescindere ad ogni ingresso di script;
- in una ramificazione di codice per una cella di batteria, stampi il valore del contatore e poi lo resetti;
- se vuoi, puoi affiancarlo al precedente così da avere anche un minimo di storia per meglio vedere il trend ... nulla poi vieta di riportare per ciascuno il relativo timestamp.

In questo modo, vedrai sul display della radio quante volte hai risparmiato la ramificazione di codice della cella. Visto che le celle sono 6, avrai risparmiato quel valore * 6 (se non ricordo male lo script che lessi).

TermicOne 25 novembre 16 16:37

Grazie per il suggerimento! Lo faccio e poi farò sapere...

marzipane 30 gennaio 17 18:33

una domanda un po così:

vorrei fare uno script che a secondo delle posizioni dello switch mette a display un determinato testo
ad esempio: se SD^ "Stabilizzato"

fattibile?

o che ha tutta la lista delle modalità di volo e in base a quella attuale viene evidenziata (tipo fondo nero scritta bianco)

non si tratta di ricevere la modalità dalla scheda ma di una cosa testuale proprio impostata prima a secondo delle modalità impostate sulla scheda

qualche suggerimento?
grz

marzipane 30 gennaio 17 21:17

1 Allegato/i
ho scritto una roba molto primitiva ma in parte è quello che voglio

premetto che sono partito dall'esempio della guida alla voce
lcd.drawSwitch
quello che in più vorrei è che in base alla posizione dello switch la corrispondente riga venga evidenziata

fattibile?

TermicOne 31 gennaio 17 08:24

Sicuramente fattibile semplicemente aggiungendo qualche if per far apparire il testo solo nella corrispondente posizione dell'interruttore.

...anche se personalmente, per esperienza diretta e personale, ritengo che le indicazioni della modalità di volo (sia per aerei che per multicotteri) debbano provenire dalla telemetria della scheda di controllo per evitare pericolosi fraintendimenti. Ad esempio se la scheda perde il fix GPS l'interruttore ti dice ancora RTL o LOITER e tu pensi che lo sia) ma la scheda rimane magari in STAB e se ne va a spasso....Se poi hai attivato i fail safe (altamente sconsigliato) il rischio di confusione é ancora maggiore ...ma qui su questo tema siamo OT e se vuoi possiamo continuare in altro thread.

marzipane 31 gennaio 17 10:16

parliamo cmq di un quadricottero molto semplice per svolazzare sopra i campi cmq...

questo mi serve solo per ricordarmi le posizioni dello switch, sono d'accordo con le considerazioni che hai fatto tu.

quindi la domanda ora è come faccio ad evidenziare lo status della posizione dello switch?

con lcd.drawSwitch metto a video il nome dello switch ma come faccio ad ottenere il suo valore per poi mettere una condizione IF a secondo del valore?
e poi il valore è -1, 0, 1? (una mia ipotesi)

marzipane 31 gennaio 17 17:08

1 Allegato/i
fatto...

e funziona come volevo.
le modalità che uso sono sempre quelle, e cmq mi dà un'idea di come è settata la modalità in partenza, che poi vada in rtl per qualche motivo è un altro discorso

Lua script per tutti!!

TermicOne 31 gennaio 17 21:06

1 Allegato/i
Citazione:

Originalmente inviato da marzipane (Messaggio 5009248)
fatto...
e funziona come volevo.

ottimo!

...un semplice esempio di come con pochi statements sia possibile realizzare semplici ma utili pagine personalizzate.

http://www.baronerosso.it/forum/atta...3&d=1485889696

Ale_Zakko 08 agosto 17 17:41

Che voi sappiate, può uno script impostare la schermata telemetria su un determinato modello quando viene selezionato? Senza dover tenere premuto il pulsante page? Grazie!

Ippon 22 novembre 17 08:36

Salve a tutti,
ho scritto un semplice script che mi visualizza la tensione totale del pacco batterie ed i valori delle singole celle.
La visualizzazione a display è perfetta, completa di decimali.
Ho configurato poi uno switch in modo che mi pronunci i valori.
Succede però una cosa strana, la tensione totale del pacco viene pronunciata completa di decimali, quella delle singole celle no.
Il valore delle celle viene pronunciato arrotondato,
es. 3,97 pronuncia 4, 3,92 pronuncia 3 ecc.
Qualcuno può aiutarmi.
Grazie in anticipo.



Inviato dal mio iPad utilizzando Tapatalk


Tutti gli orari sono GMT +2. Adesso sono le 09:30.

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