Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
+15
cri.cri
Seb28
jpg74
grat450
Heisenberg
diiity
Eric84AMC
alain17870
Kilrah
pp340
CoyotteDundee
pat31
Sacre100
LapinFou
dev.fred
19 participants
Page 5 sur 11
Page 5 sur 11 • 1, 2, 3, 4, 5, 6 ... 9, 10, 11
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Cool
C'était ça la clé ensuite ça suis ce que l'on peut lire là : http://www.lua.org/pil/1.2.html
1.2 – Global Variables
Global variables do not need declarations. You simply assign a value to a global variable to create it. It is not an error to access a non-initialized variable; you just get the special value nil as the result:
print(b) --> nil
b = 10
print(b) --> 10
Usually you do not need to delete global variables; if your variable is going to have a short life, you should use a local variable. But, if you need to delete a global variable, just assign nil to it:
b = nil
print(b) --> nil
After that, it is as if the variable had never been used. In other words, a global variable is existent if (and only if) it has a non-nil value.
C'était ça la clé ensuite ça suis ce que l'on peut lire là : http://www.lua.org/pil/1.2.html
1.2 – Global Variables
Global variables do not need declarations. You simply assign a value to a global variable to create it. It is not an error to access a non-initialized variable; you just get the special value nil as the result:
print(b) --> nil
b = 10
print(b) --> 10
Usually you do not need to delete global variables; if your variable is going to have a short life, you should use a local variable. But, if you need to delete a global variable, just assign nil to it:
b = nil
print(b) --> nil
After that, it is as if the variable had never been used. In other words, a global variable is existent if (and only if) it has a non-nil value.
Dernière édition par dev.fred le Dim 9 Aoû 2015 - 11:48, édité 1 fois
dev.fred- Messages : 760
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Kilrah a écrit:Oui mais si ce que j'ai dit est correct il n'a pas besoin d'utiliser de GVAR et le problème est réglé!
Je parle de "variable déclarée globalement" dans le script lua évidemment.
On a eu plusieurs cas sur le forum où des variables globales étaient utilisées sans aucun besoin de stockage dans l'eeprom entre deux sessions de vol et cela en dehors de tout script LUA.
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Viii c'est une très bonne remarque qui fonctionne, mais il y a un 'catch 22' !
le script model assigne la variable, le script telemetry la lit, mais il ne peut la lire QUE si elle a été assignée, mais comme on ne sais pas trop si le script model tourne avant le script telemetry, il faut bien l'assigner une première fois, idéalement dans le init=init du script de télémétrie
G
le script model assigne la variable, le script telemetry la lit, mais il ne peut la lire QUE si elle a été assignée, mais comme on ne sais pas trop si le script model tourne avant le script telemetry, il faut bien l'assigner une première fois, idéalement dans le init=init du script de télémétrie
G
Invité- Invité
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Gandalf a écrit:Viii c'est une très bonne remarque qui fonctionne, mais il y a un 'catch 22' !
le script model assigne la variable, le script telemetry la lit, mais il ne peut la lire QUE si elle a été assignée, mais comme on ne sais pas trop si le script model tourne avant le script telemetry, il faut bien l'assigner une première fois, idéalement dans le init=init du script de télémétrie
G
Sauf erreur, si une variable n'a pas été assignée, sa lecture retourne nil ce qui permet de savoir si elle est déjà renseeignée ou pas.
Néanmoins c'est bien dommage que maintenant qu'on doit déclarer les telemetry script, il n'y aie pas la possibilité de déclarer des variable en entrée comme on peut le faire pour les model script, ça éviterait de passer via des model script pour passer des données aux telemetry script.
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
J'ai testé et je n'ai pas de problème particulier au moins dans l’émulateur de companion:
Même déclaré dans une fonction locale, la variable est automatiquement globale si elle n'est pas précédée par le mot clé local.
custom.lua écrit 50 dans la variable globale globaleV
affiche.lua affiche la variable globale globaleV de custom.lua dans l'écran de télémétrie
Le script custom dit PERSO
Le resultat dans l'écran de télémétrie
Même déclaré dans une fonction locale, la variable est automatiquement globale si elle n'est pas précédée par le mot clé local.
custom.lua écrit 50 dans la variable globale globaleV
- Code:
-- LUA custom script
-- SD\SCRIPTS\MIXES
local outputs = { "out" }
--inutile
--globaleV = -1
local function run()
globaleV = 50
return 100*10.24
end
return { run=run, output=outputs }
affiche.lua affiche la variable globale globaleV de custom.lua dans l'écran de télémétrie
- Code:
-- Affiche la variable globale de custom.lua
-- Reside dans SD\SCRIPTS\TELEMETRY
local function init(event)
autolowestc = 4.5
autolowlipo = 50
end
local function run(event)
------------
-- Cadres --
------------
lcd.clear()
lcd.drawLine(0, 20, 211, 20,SOLID,0) -- ligne h du bas
lcd.drawLine(80, 20, 80, 64,SOLID,0) -- ligne v avant cur volt
lcd.drawLine(150, 20, 150, 64,SOLID,0) -- ligne v avant min volt
lcd.drawLine(45, 20, 45, 0,SOLID,0) -- ligne v avant premier timer
lcd.drawLine(130, 20, 130, 0,SOLID,0) -- ligne v avant second timer
------------
-- Timers --
------------
local timer = model.getTimer(0)
lcd.drawPixmap(134, 3, "/SCRIPTS/TELEMETRY/BMP/kaldi/timer_1.bmp")
lcd.drawTimer(152, 3, timer.value, DBLSIZE)
local timer2 = model.getTimer(1)
lcd.drawPixmap(59, 3, "/SCRIPTS/TELEMETRY/BMP/kaldi/timer_1.bmp")
lcd.drawTimer(77, 3, timer2.value, DBLSIZE)
-------------------
-- Main Battery --
--------------------
local percent = globaleV
--local percent = 30 -- for DEBUGGIG
lcd.drawPixmap(2, 42, "/SCRIPTS/TELEMETRY/BMP/kaldi/batt.bmp")
-- Pas de mesure
if percent < 1 then
lcd.drawText(10, 48, "connect!", 1)
end
-- Dessin Accu
if percent > 1 then
lcd.drawNumber(20, 46, percent, LEFT+MIDSIZE)
lcd.drawText(lcd.getLastPos(), 46, "%", MIDSIZE)
lcd.drawGauge(7, 45, 49, 14, percent, 100)
end
end
return { run=run, init=init}
Le script custom dit PERSO
Le resultat dans l'écran de télémétrie
Dernière édition par dev.fred le Lun 10 Aoû 2015 - 8:54, édité 6 fois
dev.fred- Messages : 760
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
J'ai repris ca en grand, en passant le pourcentage en variable globale, et en ne refesant le calcul que lorsque la tension de lipo change
percent.lua
lipo.lua
percent.lua
- Code:
-- LUA model script
local inputs = { {"lipo", SOURCE}}
local outputs = { "Celp" }
function findPercentRemaining(targetVoltage )
local myArrayPercentList =
{
{3.683, 10},
{3.715, 15},
{3.747, 20},
{3.769, 25},
{3.791, 30},
{3.802, 35},
{3.812, 40},
{3.826, 45},
{3.839, 50},
{3.861, 55},
{3.883, 60},
{3.910, 65},
{3.936, 70},
{3.986, 75},
{3.999, 80},
{4.042, 85},
{4.085, 90},
{4.142, 95},
{4.170, 97},
{4.200, 100}
}
local result = 10
if targetVoltage > 4.200 or targetVoltage < 3.683
then
-- trap for odd values not in array
if targetVoltage > 4.200
then
result = 100
end
if targetVoltage < 3.683
then
result = 1
end
else
-- method of finding percent in my array provided by on4mh (Mike)
for i, v in ipairs( myArrayPercentList )
do
if v[ 1 ] >= targetVoltage
then
result = v[ 2 ]
break
end
end
end
return result
end
local lastvoltage
local function run(voltage)
if voltage ~= lastvolatge then
global_lipopercent = findPercentRemaining(voltage / (math.ceil(voltage / 4.25)))
lastvolatge = voltage
end
return global_lipopercent * 10
end
return { run=run, input=inputs, output=outputs }
lipo.lua
- Code:
-- Version 2
-- Attente :
-- Senseur A2, VFAS ou FLVSS avec le nom : lipo
-- senseur calculé lowc : cell min (sauf vfas, ceci est alors calculé ici)
local autolowestc
local autolowestlipo
local function init(event)
autolowestc = 4.5
autolowestlipo = 50
global_lipopercent = 0
end
local function getTelemetryId(name)
field = getFieldInfo(name)
if field then
return field.id
else
return -1
end
end
local function run(event)
------------
-- Cadres --
------------
lcd.clear()
lcd.drawLine(0, 20, 211, 20,SOLID,0) -- ligne h du bas
lcd.drawLine(80, 20, 80, 64,SOLID,0) -- ligne v avant cur volt
lcd.drawLine(150, 20, 150, 64,SOLID,0) -- ligne v avant min volt
lcd.drawLine(45, 20, 45, 0,SOLID,0) -- ligne v avant premier timer
lcd.drawLine(130, 20, 130, 0,SOLID,0) -- ligne v avant second timer
------------
-- Timers --
------------
local timer = model.getTimer(0)
lcd.drawPixmap(134, 3, "/SCRIPTS/TELEMETRY/BMP/kaldi/timer_1.bmp")
lcd.drawTimer(152, 3, timer.value, DBLSIZE)
local timer2 = model.getTimer(1)
lcd.drawPixmap(59, 3, "/SCRIPTS/TELEMETRY/BMP/kaldi/timer_1.bmp")
lcd.drawTimer(77, 3, timer2.value, DBLSIZE)
-------------------
-- Main Battery --
--------------------
local voltage = getValue(getTelemetryId("lipo"))
local cell_count = math.ceil(voltage / 4.25)
lcd.drawText(10, 3, cell_count.."S", DBLSIZE)
local autolowc = getTelemetryId("lowc") -- cherche si lowc existe, dans le cas du vfas, il n'existe pas
if autolowc == -1 then
autolowc = voltage / cell_count
else
autolowc = getValue(getTelemetryId("lowc"))
end
if autolowestc > autolowc and autolowc > 3.3 then
autolowestc = autolowc
end
if autolowestlipo > voltage and voltage > 0 then
autolowestlipo = voltage
end
local percent = global_lipopercent
-- local percent = 30 -- for DEBUGGIG
lcd.drawPixmap(2, 42, "/SCRIPTS/TELEMETRY/BMP/kaldi/batt.bmp")
lcd.drawText(25, 22, "Lipo", SMLSIZE)
lcd.drawText(100, 22, "Actual", SMLSIZE)
lcd.drawText(165, 22, "Lowest", SMLSIZE)
-- Dessin Accu
lcd.drawNumber(20, 46, percent, LEFT+MIDSIZE)
lcd.drawText(lcd.getLastPos(), 46, "%", MIDSIZE)
lcd.drawGauge(7, 45, 49, 14, percent, 100)
-- Affichage de la tension
lcd.drawNumber (90,48, voltage, LEFT+PREC2+DBLSIZE)
lcd.drawNumber (95,30, autolowc, LEFT+PREC2+DBLSIZE)
-- Affichage de la tension minimale durant le vol
lcd.drawNumber (165,48, autolowestlipo, LEFT+PREC2+DBLSIZE)
lcd.drawNumber (170,30, autolowestc, LEFT+PREC2+DBLSIZE)
end
return { run=run, init=init}
Invité- Invité
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Je refais tourner un code trivial qui fonctionnait avant que je passe en 2.1.1 mais en fait je n'ai jamais affiché dans l'écran de télémétrie.
test.lua
La c'est OK:
La c'est NOK:
La conf:
Le bug a été corrigé https://github.com/opentx/opentx/issues/2684
test.lua
- Code:
local outputs = { "out" }
local function run()
return 100 *10.24
end
return { run=run, output=outputs }
La c'est OK:
La c'est NOK:
La conf:
Le bug a été corrigé https://github.com/opentx/opentx/issues/2684
Dernière édition par dev.fred le Lun 24 Aoû 2015 - 17:53, édité 3 fois
dev.fred- Messages : 760
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Etrange, je vais voir si j'ai ce soucis sur ma radio
G
G
Invité- Invité
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Je n'ai pas précisément testé avec tes scripts, mais chez moi, j'arrive bien a afficher Celp, la sortie de mon script model
G
G
Invité- Invité
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Bonsoir,
J'ai un problème avec le vario. Pourquoi celui-ci m'indique 250,0m au lieu de 0,0m quand je l'initialise ?
Et pourquoi dans Télémetry j'ai trois "Alt" ?
J'ai un problème avec le vario. Pourquoi celui-ci m'indique 250,0m au lieu de 0,0m quand je l'initialise ?
Et pourquoi dans Télémetry j'ai trois "Alt" ?
Invité- Invité
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Pour le vario, je ne crois pas avoir eu le soucis des triplés, mais j'ai eu celui de l'altitude. Il faut cocher une option (de mémoire, un truc genre offset auto)
G
G
Invité- Invité
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Murphy a écrit:Bonsoir,
J'ai un problème avec le vario. Pourquoi celui-ci m'indique 250,0m au lieu de 0,0m quand je l'initialise ?
Et pourquoi dans Télémetry j'ai trois "Alt" ?
Il te donne l'altitude absolue, si tu veux qu'il te donne 0.0m lors de l'initialisation, tu dois cocher la case "Offset auto".
Sinon as-tu vraiment trois "Alt" ? Ne serait-ce pas Alt, Alt+ et Alt- ?
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
J'ai fait le test dans ma radio en 2.1.1 avec le même programme trivial, l'écran de télémétrie affiche bien 100.
C'est semble-t-il un pb dans companion, je vais ouvrir un ticket sur github = #2684
Le bug a été corrigé : https://github.com/opentx/opentx/issues/2684
C'est semble-t-il un pb dans companion, je vais ouvrir un ticket sur github = #2684
Le bug a été corrigé : https://github.com/opentx/opentx/issues/2684
Dernière édition par dev.fred le Lun 24 Aoû 2015 - 17:54, édité 5 fois
dev.fred- Messages : 760
Date d'inscription : 07/02/2014
Localisation : Paimpol (22)
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Lequel des trois garder, le troisième à mon avis, les deux premiers me paraissent louches.
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Je vais tester car radio en route avec l'avion je n'ai rien sur l'écran d'affichage de la télémétry.
Comment je fais pour régler à 0m et afficher sur l'écran.
En plus j'ai programme Alt3 sur un inter et j'ai "277 milli ampère". Ya une erreur dans les annonces que je vais essayer de corriger dans le fichier annonces.
--------------------- C'est bien ça, le "0133" est mal fait. Sur le bureau j'ai bien "0 mètres" maintenant que j'ai refait l'annonce. Donc "FSx SA- Lire valeur Alt 10s" et c'est OK. Et le "0130" fait doublon !!!
Comment je fais pour régler à 0m et afficher sur l'écran.
En plus j'ai programme Alt3 sur un inter et j'ai "277 milli ampère". Ya une erreur dans les annonces que je vais essayer de corriger dans le fichier annonces.
--------------------- C'est bien ça, le "0133" est mal fait. Sur le bureau j'ai bien "0 mètres" maintenant que j'ai refait l'annonce. Donc "FSx SA- Lire valeur Alt 10s" et c'est OK. Et le "0130" fait doublon !!!
Invité- Invité
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Avant, tu avais deux écrans prédéfinis mais c'était avant, maintenant, tu dois tous les définir. Ceci dit, si toi tu galères, on n'est pas sorti de l'auberge avec cette nouvelle télémétrie.
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Sacre100 a écrit:Avant, tu avais deux écrans prédéfinis mais c'était avant, maintenant, tu dois tous les définir. Ceci dit, si toi tu galères, on n'est pas sorti de l'auberge avec cette nouvelle télémétrie.
Tu trouves ?
J'étais en train de lire le post depuis le début, j'y comprend rien. J'ai du quitter l'école trop tôt
En fait on parle beaucoup de programmation LUA et pas beaucoup de la programmation de la radio.
Je plaint les nouveaux qui vont acheter une X9E et démarrer avec le 2.1.0
Invité- Invité
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Je viens de vérifier sur mes planeurs, j'ai un seul Alt (id100 instance 1) avec les sondes FVAS-02H
G
G
Invité- Invité
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Quelqu'un a-t-il compris comment obtenir les coordonnées GPS (latitude et longitude) ?
La distance, on l'obtient avec une donnée calculée en indiquant l'opération "Distance" et la capteur GPS mais la latitude et la longitude, je n'ai pas trouvé.
La distance, on l'obtient avec une donnée calculée en indiquant l'opération "Distance" et la capteur GPS mais la latitude et la longitude, je n'ai pas trouvé.
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
C'est simple, ces deux données composent l'entité GPS, donc dès que tu as un lock tu les vois dans la page telemetry, et au choix dans un des écrans de telemetry en choisissant num et GPS
G
G
Invité- Invité
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Tu parles de la 2.0 ou la 2.1.
Si c'est la 2.1, peux-tu nous faire une copie d'écran pour voir ce qu'il en est.
A noter qu'avec la 2.1, le print screen existe aussi sur la radio mais je ne connais pas la combinaison de touche. J'avais proposé ENTER et EXIT pressés simultanément mais je ne sais pas ce qui a été retenu.
Si c'est la 2.1, peux-tu nous faire une copie d'écran pour voir ce qu'il en est.
A noter qu'avec la 2.1, le print screen existe aussi sur la radio mais je ne connais pas la combinaison de touche. J'avais proposé ENTER et EXIT pressés simultanément mais je ne sais pas ce qui a été retenu.
Sacre100- Messages : 1889
Date d'inscription : 30/11/2013
Age : 67
Localisation : Blonay - Suisse
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Je suis en 2.1.1, et que je ne sais pas trop non plus pour le print screen, en voila un 'old style' Désolé, j'ai du zipper la photo puisque le site n'accepte pas plus de 800*600 comme résolution.
A noter que dans l'écran de télémetry tu a les coordonnées complète (avec les secondes)
G
A noter que dans l'écran de télémetry tu a les coordonnées complète (avec les secondes)
G
Invité- Invité
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Bonjour à tous
Pour Gandalf: je viens de regarder ta photo. Je vois que le cap (hdg) apparait. 41° sur ta photo. Quel capteur gps utilises tu? FrSky ou un autre?
Pour Gandalf: je viens de regarder ta photo. Je vois que le cap (hdg) apparait. 41° sur ta photo. Quel capteur gps utilises tu? FrSky ou un autre?
pat31- Messages : 777
Date d'inscription : 11/11/2013
Age : 78
Localisation : Pays de l'Ovalie
Re: Presentation de la telemetrie OpenTX 2.1- Traduction de "OpenTX 2.1 telemetry system preview"
Multiwii comme capteur
G
G
Invité- Invité
Page 5 sur 11 • 1, 2, 3, 4, 5, 6 ... 9, 10, 11
Sujets similaires
» Telemetrie Spektrum et opentx
» Scripts de telemetrie sur le OpenTX companion
» [Tuto] Exécuter un script de télémétrie LUA depuis openTX companion
» PAs de TELEMETRY dans le déroulant LOGICAL SWITCH, et Absence de capteurs dans LA page TELEMETRY....
» Présentation des nouveautés d'OpenTX 2.1
» Scripts de telemetrie sur le OpenTX companion
» [Tuto] Exécuter un script de télémétrie LUA depuis openTX companion
» PAs de TELEMETRY dans le déroulant LOGICAL SWITCH, et Absence de capteurs dans LA page TELEMETRY....
» Présentation des nouveautés d'OpenTX 2.1
Page 5 sur 11
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum