Le forum français des radios FrSKY

Les bases du LUA pour un SCRIPT télémetrie

Voir le sujet précédent Voir le sujet suivant Aller en bas

Les bases du LUA pour un SCRIPT télémetrie

Message par Tomdu38 le Dim 3 Aoû 2014 - 18:45

Bonjour,

Après avoir lu pas mal de posts sur ce langage et les opportunités qu'il peut donné, voici en quelques lignes les choses que j'ai retenu qui pourront servir de base à toutes personnes souhaitant créer leurs propres SCRIPTS.

L'objectif : pouvoir simuler votre premier scripts télémétrie sur Companion en comprenant, la syntaxe de base du langage à l'aide du fichier telem2.lua, fichier d'exemple que l'on trouve sur le forum et qui sera disponible dans ce post.

Avant tout, les paramétrages importants que vous devez faire.

- Mettre à jour votre Taranis avec la dernière version : méthode déjà expliqué dans la section appropriée.
- Créer un Backup de vos modèles sur votre ordi pour pouvoir simuler vos modifications dans Companion, sinon créer un nouveau modèle.
 
     Méthode pour extraire vos données de la radio : Connecter votre taranis à Companion et cliquer sur "Backup Radio to file", l'icone est une radio avec une disquette derrière avec une flèche dirigé vers la gauche.
    Enregistrer le fichier à un endroit facile d'accès.

Remarque : le fichier créé est un fichier.bin

- Ensuite sur la carte SD de la radio : créer un répertoire nommé SCRIPTS (s'il n'existe pas déjà)
- Créer un sous-dossier dans le dossier SCRIPTS.
- Donner au sous-dossier du même nom que le modèle qui va utiliser le script. ex : MiniH : Attention le nom ne de doit pas comporter d'espace.

  Remarque : C'est dans ce dossier que le fichier.lua sera placer.

- Créer un fichier pour de la télémétrie : telemX.lua avec X = 0 à 6, ex : telem1.lua
- Un fois le fichier créé, paramètrer votre ordi, pour que le fichier.lua soit ouvert par défaut avec wordpad ou blocnote : Clique droit sur le fichier, puis Propriété , puis s'ouvre avec Wordpad.

- Puis sur votre PC, faire un dossier dans lequel vous ferez une copie de la carte SD directement dans C: (pas de sous dossier, chez moi ça marche pas). ex : C: CopieSD

- Créé un raccourci du fichier Script sur votre bureau pour plus de facilité d’accès au script telem1.lua.

- Paramétrer Companion avec le chemin de ce fichier CopieSD : aller dans Settings, puis settings, puis SD strucuture Path choisir le fichier CopieSD

- Ouvrir Companion , puis open : choisir votre fichier.bin de sauvegarde de vos modèles.
- En parallèle : ouvrir le fichier telem1.lua dans C:CopieSD\SCRIPTS\NOMDUMODELE\telem1.lua grâce au raccourci créé précédemment.

Dans companion cliquer sur le modèle sur lequel vous souhaitez travailler, et cliquer sur le bouton simuler.

Voilà pour la première grosse étape, c'est le plus pénible, paramètrer les dossiers, faires les copies etc...

Je me suis permis de reprendre les éléments trouvés dans d'autre post, pour les réunir ici, afin de donner toutes les étapes au même endroit.

J'en profite d'ailleurs pour remercier ceux qui ont pris le temps de rédiger les précédents tutos.


A suivre, compréhension du fichier telem2.lua

Tomdu38

Messages : 20
Date d'inscription : 30/07/2014
Age : 29
Localisation : Grenoble

Revenir en haut Aller en bas

Re: Les bases du LUA pour un SCRIPT télémetrie

Message par Tomdu38 le Dim 3 Aoû 2014 - 19:14

Voici le fichier telem2.lua

local function run(event)
 lcd.drawNumber(210, 10, getValue("altitude"), XXLSIZE)
 lcd.drawText(150, 54, "MAX", 0)
 lcd.drawChannel(172, 54, "altitude-max", LEFT)
 local timer = model.getTimer(0)
 lcd.drawTimer(2, 1, timer.value, MIDSIZE)
 lcd.drawRectangle(0, 0, 34, 14)
 timer = model.getTimer(1)
 lcd.drawTimer(40, 1, timer.value, MIDSIZE)
 lcd.drawRectangle(38, 0, 34, 14)
 lcd.drawChannel(11, 29, "tx-voltage", LEFT+MIDSIZE)
 local settings = getGeneralSettings()
 local percent = (getValue("tx-voltage")-settings.battMin) * 100 / (settings.battMax-settings.battMin)
 lcd.drawNumber(35, 45, percent, LEFT+MIDSIZE)
 lcd.drawText(lcd.getLastPos(), 45, "%", MIDSIZE)
 lcd.drawGauge(5, 42, 88, 18, percent, 100)
end

return { run=run }

Explication :

Début et fin d'un fichier

local function run(event)

...

end

return { run=run }

Composant

lcd.drawNumber(210, 10, getValue("altitude"), XXLSIZE)

Sur le lcd, on demande de dessiner un Nombre (drawNumber)
210 : position dans la largeur de l'écran d'un curseur virtuel : 210 pixel en partant de la gauche
10 : position dans la hauteur de l'écran du curseur virtuel : 10 pixel en partant du haut

getValue() = on demande d'aller chercher une valeur. Dans la parathèse on peut mettre un chiffre allant de 1 à 248, chaque nombre correspondant à une valeur différente : ex : Altitude, vitesse, Input, tension batterie etc...... en fin de message je posterai l'ensemble des valeurs. Ces éléments sont déjà dispo dans un post du forum.

XXLSIZE : définie la taille d'affichage du texte.

   Remarque :

             Taille de l'écran : 212 pixels de largeur ; 64 pixels de hauteur

             Taille du texte en Pixel  :

                               Value                largeur x hauteur
                            SMLSIZE                       3x5
                            0                                 4x6
                            MIDSIZE                       5x7
                            DBLSIZE                       8x10
                            XXLSIZE                      10x14

"Vocabulaire" :

getValue(X)

avec X = id

or X = Supported source names:

"altitude" barometric altitude in meters 120.56
"altitude-max" max barometric altitude in meters 120.56
"vario" vario speed in m/s 120.56
"tx-voltage" Tx voltage in V 120.56
"rpm" RPMs 120.56
"latitude" GPS latitude in degrees, North is positive 45.5667
"longitude" GPS longitude in degrees, East is positive 120.5677
"pilot-latitude" first GPS value (usually pilot position) format same
as "latitude"
-12.567
"pilot-longitude" first GPS value (usually pilot position) format same
as "longitude"
-0.567



field id: 1 name: "input1" desc: "Input [I1]"
field id: 2 name: "input2" desc: "Input [I2]"
field id: 3 name: "input3" desc: "Input [I3]"
field id: 4 name: "input4" desc: "Input [I4]"
field id: 5 name: "input5" desc: "Input [I5]"
field id: 6 name: "input6" desc: "Input [I6]"
field id: 7 name: "input7" desc: "Input [I7]"
field id: 8 name: "input8" desc: "Input [I8]"
field id: 9 name: "input9" desc: "Input [I9]"
field id: 10 name: "input10" desc: "Input [I10]"
field id: 11 name: "input11" desc: "Input [I11]"
field id: 12 name: "input12" desc: "Input [I12]"
field id: 13 name: "input13" desc: "Input [I13]"
field id: 14 name: "input14" desc: "Input [I14]"
field id: 15 name: "input15" desc: "Input [I15]"
field id: 16 name: "input16" desc: "Input [I16]"
field id: 17 name: "input17" desc: "Input [I17]"
field id: 18 name: "input18" desc: "Input [I18]"
field id: 19 name: "input19" desc: "Input [I19]"
field id: 20 name: "input20" desc: "Input [I20]"
field id: 21 name: "input21" desc: "Input [I21]"
field id: 22 name: "input22" desc: "Input [I22]"
field id: 23 name: "input23" desc: "Input [I23]"
field id: 24 name: "input24" desc: "Input [I24]"
field id: 25 name: "input25" desc: "Input [I25]"
field id: 26 name: "input26" desc: "Input [I26]"
field id: 27 name: "input27" desc: "Input [I27]"
field id: 28 name: "input28" desc: "Input [I28]"
field id: 29 name: "input29" desc: "Input [I29]"
field id: 30 name: "input30" desc: "Input [I30]"
field id: 31 name: "input31" desc: "Input [I31]"
field id: 32 name: "input32" desc: "Input [I32]"
field id: 75 name: "rud" desc: "Rudder"
field id: 76 name: "ele" desc: "Elevator"
field id: 77 name: "thr" desc: "Throttle"
field id: 78 name: "ail" desc: "Aileron"
field id: 79 name: "s1" desc: "Potentiometer 1"
field id: 80 name: "s2" desc: "Potentiometer 2"
field id: 81 name: "s3" desc: "Potentiometer 3"
field id: 82 name: "ls" desc: "Left slider"
field id: 83 name: "rs" desc: "Right slider"
field id: 85 name: "cyc1" desc: "Cyclic 1"
field id: 86 name: "cyc2" desc: "Cyclic 2"
field id: 87 name: "cyc3" desc: "Cyclic 3"
field id: 88 name: "trim-rud" desc: "Rudder trim"
field id: 89 name: "trim-ele" desc: "Elevator trim"
field id: 90 name: "trim-thr" desc: "Throttle trim"
field id: 91 name: "trim-ail" desc: "Aileron trim"
field id: 92 name: "sa" desc: "Switch A"
field id: 93 name: "sb" desc: "Switch B"
field id: 94 name: "sc" desc: "Switch C"
field id: 95 name: "sd" desc: "Switch D"
field id: 96 name: "se" desc: "Switch E"
field id: 97 name: "sf" desc: "Switch F"
field id: 98 name: "sg" desc: "Switch G"
field id: 99 name: "sh" desc: "Switch H"
field id: 100 name: "ls1" desc: "Logical switch L1"
field id: 101 name: "ls2" desc: "Logical switch L2"
field id: 102 name: "ls3" desc: "Logical switch L3"
field id: 103 name: "ls4" desc: "Logical switch L4"
field id: 104 name: "ls5" desc: "Logical switch L5"
field id: 105 name: "ls6" desc: "Logical switch L6"
field id: 106 name: "ls7" desc: "Logical switch L7"
field id: 107 name: "ls8" desc: "Logical switch L8"
field id: 108 name: "ls9" desc: "Logical switch L9"
field id: 109 name: "ls10" desc: "Logical switch L10"
field id: 110 name: "ls11" desc: "Logical switch L11"
field id: 111 name: "ls12" desc: "Logical switch L12"
field id: 112 name: "ls13" desc: "Logical switch L13"
field id: 113 name: "ls14" desc: "Logical switch L14"
field id: 114 name: "ls15" desc: "Logical switch L15"
field id: 115 name: "ls16" desc: "Logical switch L16"
field id: 116 name: "ls17" desc: "Logical switch L17"
field id: 117 name: "ls18" desc: "Logical switch L18"
field id: 118 name: "ls19" desc: "Logical switch L19"
field id: 119 name: "ls20" desc: "Logical switch L20"
field id: 120 name: "ls21" desc: "Logical switch L21"
field id: 121 name: "ls22" desc: "Logical switch L22"
field id: 122 name: "ls23" desc: "Logical switch L23"
field id: 123 name: "ls24" desc: "Logical switch L24"
field id: 124 name: "ls25" desc: "Logical switch L25"
field id: 125 name: "ls26" desc: "Logical switch L26"
field id: 126 name: "ls27" desc: "Logical switch L27"
field id: 127 name: "ls28" desc: "Logical switch L28"
field id: 128 name: "ls29" desc: "Logical switch L29"
field id: 129 name: "ls30" desc: "Logical switch L30"
field id: 130 name: "ls31" desc: "Logical switch L31"
field id: 131 name: "ls32" desc: "Logical switch L32"
field id: 132 name: "trn1" desc: "Trainer input 1"
field id: 133 name: "trn2" desc: "Trainer input 2"
field id: 134 name: "trn3" desc: "Trainer input 3"
field id: 135 name: "trn4" desc: "Trainer input 4"
field id: 136 name: "trn5" desc: "Trainer input 5"
field id: 137 name: "trn6" desc: "Trainer input 6"
field id: 138 name: "trn7" desc: "Trainer input 7"
field id: 139 name: "trn8" desc: "Trainer input 8"
field id: 140 name: "trn9" desc: "Trainer input 9"
field id: 141 name: "trn10" desc: "Trainer input 10"
field id: 142 name: "trn11" desc: "Trainer input 11"
field id: 143 name: "trn12" desc: "Trainer input 12"
field id: 144 name: "trn13" desc: "Trainer input 13"
field id: 145 name: "trn14" desc: "Trainer input 14"
field id: 146 name: "trn15" desc: "Trainer input 15"
field id: 147 name: "trn16" desc: "Trainer input 16"
field id: 148 name: "ch1" desc: "Channel CH1"
field id: 149 name: "ch2" desc: "Channel CH2"
field id: 150 name: "ch3" desc: "Channel CH3"
field id: 151 name: "ch4" desc: "Channel CH4"
field id: 152 name: "ch5" desc: "Channel CH5"
field id: 153 name: "ch6" desc: "Channel CH6"
field id: 154 name: "ch7" desc: "Channel CH7"
field id: 155 name: "ch8" desc: "Channel CH8"
field id: 156 name: "ch9" desc: "Channel CH9"
field id: 157 name: "ch10" desc: "Channel CH10"
field id: 158 name: "ch11" desc: "Channel CH11"
field id: 159 name: "ch12" desc: "Channel CH12"
field id: 160 name: "ch13" desc: "Channel CH13"
field id: 161 name: "ch14" desc: "Channel CH14"
field id: 162 name: "ch15" desc: "Channel CH15"
field id: 163 name: "ch16" desc: "Channel CH16"
field id: 164 name: "ch17" desc: "Channel CH17"
field id: 165 name: "ch18" desc: "Channel CH18"
field id: 166 name: "ch19" desc: "Channel CH19"
field id: 167 name: "ch20" desc: "Channel CH20"
field id: 168 name: "ch21" desc: "Channel CH21"
field id: 169 name: "ch22" desc: "Channel CH22"
field id: 170 name: "ch23" desc: "Channel CH23"
field id: 171 name: "ch24" desc: "Channel CH24"
field id: 172 name: "ch25" desc: "Channel CH25"
field id: 173 name: "ch26" desc: "Channel CH26"
field id: 174 name: "ch27" desc: "Channel CH27"
field id: 175 name: "ch28" desc: "Channel CH28"
field id: 176 name: "ch29" desc: "Channel CH29"
field id: 177 name: "ch30" desc: "Channel CH30"
field id: 178 name: "ch31" desc: "Channel CH31"
field id: 179 name: "ch32" desc: "Channel CH32"
field id: 180 name: "gvar1" desc: "Global variable 1"
field id: 181 name: "gvar2" desc: "Global variable 2"
field id: 182 name: "gvar3" desc: "Global variable 3"
field id: 183 name: "gvar4" desc: "Global variable 4"
field id: 184 name: "gvar5" desc: "Global variable 5"
field id: 185 name: "gvar6" desc: "Global variable 6"
field id: 186 name: "gvar7" desc: "Global variable 7"
field id: 187 name: "gvar8" desc: "Global variable 8"
field id: 188 name: "gvar9" desc: "Global variable 9"
field id: 189 name: "tx-voltage" desc: "Transmitter battery voltage [volts]"
field id: 190 name: "clock" desc: "RTC clock [minutes from midnight]"
field id: 196 name: "timer1" desc: "Timer 1 value [seconds]"
field id: 197 name: "timer2" desc: "Timer 2 value [seconds]"
field id: 198 name: "swr" desc: "Transmitter antenna quality [less is better]"
field id: 200 name: "rssi" desc: "RSSI [more is better]"
field id: 202 name: "a1" desc: "A1 analogue value [units as configured]"
field id: 203 name: "a2" desc: "A2 analogue value [units as configured]"
field id: 204 name: "a3" desc: "A3 analogue value [units as configured]"
field id: 205 name: "a4" desc: "A4 analogue value [units as configured]"
field id: 206 name: "altitude" desc: "Variometer altitude [meters]"
field id: 207 name: "rpm" desc: "Rotational speed [revolutions per minute]"
field id: 208 name: "fuel" desc: "Fuel level [???]"
field id: 209 name: "temp1" desc: "Temperature 1 [degrees celsius]"
field id: 210 name: "temp2" desc: "Temperature 2 [degrees celsius]"
field id: 211 name: "gps-speed" desc: "GPS speed [???]"
field id: 212 name: "distance" desc: "GPS distance [meters]"
field id: 213 name: "gps-altitude" desc: "GPS altitude [meters]"
field id: 214 name: "cell-min" desc: "LiPo sensor - lowest current cell voltage [volts]"
field id: 215 name: "cell-sum" desc: "LiPo sensor - current summ of all cell voltages [volts]"
field id: 216 name: "vfas" desc: "Current sensor - voltage [volts]"
field id: 217 name: "currentent" desc: "Current sensor - current [ampers]"
field id: 218 name: "consumption" desc: "Current sensor - consumption [mili amper hours]"
field id: 219 name: "power" desc: "Current sensor - power [wats]"
field id: 220 name: "accx" desc: "G sensor - acceleration in X axis [g]"
field id: 221 name: "accy" desc: "G sensor - acceleration in Y axis [g]"
field id: 222 name: "accz" desc: "G sensor - acceleration in Z axis [g]"
field id: 223 name: "heading" desc: "GPS heading [degrees]"
field id: 224 name: "vario" desc: "Variometer vertical speed [m/s]"
field id: 225 name: "air-speed" desc: "Air speed [knots]"
field id: 226 name: "dte" desc: "Total energy [???]"
field id: 232 name: "a1-min" desc: "A1 analogue value minimum [units as configured]"
field id: 233 name: "a2-min" desc: "A2 analogue value minimum [units as configured]"
field id: 234 name: "a3-min" desc: "A3 analogue value minimum [units as configured]"
field id: 235 name: "a4-min" desc: "A4 analogue value minimum [units as configured]"
field id: 236 name: "altitude-min" desc: "Lowest altitude [meters]"
field id: 237 name: "altitude-max" desc: "Highest altitude [meters]"
field id: 238 name: "rpm-max" desc: "Highest rotational speed [revolutions per minute] [meters]"
field id: 239 name: "temp1-max" desc: "Highest temperature 1 [degrees celsius]"
field id: 240 name: "temp2-max" desc: "Highest temperature 2 [degrees celsius]"
field id: 241 name: "gps-speed-max" desc: "Highest GPS speed [???]"
field id: 242 name: "distance-max" desc: "Biggest GPS distance [meters]"
field id: 243 name: "air-speed-max" desc: "Highest air speed [knots]"
field id: 244 name: "cell-min-min" desc: "LiPo sensor - all time lowest cell voltage [volts]"
field id: 245 name: "cell-sum-min" desc: "LiPo sensor - all time lowest summ of all cell voltages [volts]"
field id: 246 name: "vfas-min" desc: "Current sensor - lowest voltage [volts]"
field id: 247 name: "currentent-max" desc: "Current sensor - highest current [ampers]"
field id: 248 name: "power-max" desc: "Current sensor - highest power [wats]"

Dans le fichier en annexe au format pdf vous trouverez l'ensemble des autres fonctions dispo pdf en anglais.
Fichiers joints
OpenTX-LUAReferenceGuide.pdf Vous n'avez pas la permission de télécharger les fichiers joints.(444 Ko) Téléchargé 96 fois

Tomdu38

Messages : 20
Date d'inscription : 30/07/2014
Age : 29
Localisation : Grenoble

Revenir en haut Aller en bas

Re: Les bases du LUA pour un SCRIPT télémetrie

Message par Tomdu38 le Lun 4 Aoû 2014 - 23:13

Je continue mes petites explications :

lcd.drawText(150, 54, "MAX", 0) : sur le lcd, on demande de dessiner (draw) un texte, dans ce cas les chiffres 150 et 54 représente la position du curseur à partir duquel le texte sera écrit.

"MAX" est le texte qui sera écrit : ATTENTION, bien penser à mettre des guillements avant après.
Remarque, pour plus de clarté de lecture vous pouvez ajouter des espaces : ex "MAX "

le 0 : correspond à la taille du texte 4x6 pixels

Remarque : Il est important de connaitre la taille des caractères car il permet de bien positionner les autres. Par exemple si on souhaite afficher
le mot "Alt" en taille 4x6 chaque caractère fera 4 pixels large donc au total 3 lettres x 4 pixel = 12 pixel, ainsi, pour afficher à côté du mot "Alt" la valeur de l'altitude il faudra penser à décaller de 12 + 4 pixels soit 16 pixels ces coordonnées

ex :
lcd.drawText(150, 54, "Alt", 0)
lcd.drawNumber(166, 54, getValue("altitude"), 0)

Remarque : dans le getValue, il est possible de entrer un texte dans la parenthèse : cf message précédent

Création d'un calcul :

ex telem2 : local percent = (getValue("tx-voltage")-settings.battMin) * 100 / (settings.battMax-settings.battMin)

local percent = on déclare du variable local qui va être égale à ...

Peut être que j'aurais du commencé par là, quesqu'une variable : en gros une variable est une zone de stockage d'une information qui porte un nom.

Dans notre cas, la variable s'appelle "percent", on aurait pu l'appeler "toto", "machintruc" ça change rien, ce n'est pas parque ce l'on écrit "percent" que l'on aura automatiquement un pourcentage.

Une fois que la variable est déclarée ont lui donne une valeur : qui peut être un getValue(X), un texte "Tu es trop haut redescend", ou dans notre cas un calcul = (getValue(A) - B) * 100 / (C - B)
Grâce à cela, on stocke ce calcul dans "percent". Ainsi, si l'on a besoin de réutilisé cette donnée, soit pour l'afficher, soit pour un autre calcul ou encore pour déclencher un evenement, on peut simplement taper "percent".

ex dans notre cas :

déclaration : local percent = (getValue("tx-voltage")-settings.battMin) * 100 / (settings.battMax-settings.battMin)

réutilisation dans l'affichage :  lcd.drawNumber(35, 45, percent, LEFT+MIDSIZE)

On evite ainsi une réécriture longue de tout le calcul ... ça serait le bordel sinon !

De plus :

On doit toujours déclarer une variable avant de l'utiliser par exemple si vous inversez juste l'ordre des lignes précédentes ça ne fonctionnera pas...normalement lol :

lcd.drawNumber(35, 45, percent, LEFT+MIDSIZE)
local percent= (getValue("tx-voltage")-settings.battMin) * 100 / (settings.battMax-settings.battMin)

= > si vous lancez la simulation vous devriez avoir un écran blanc

J'en profite pour préciser que le programme se déroule de haut en bas, d'où, dans l'exemple précédent, l'impossibilité d'afficher "percent" puisqu'il n'a pas été déclaré avant !

N'hésitez pas à mettre des commentaires sur ce post ! vos questions, j'essaierai de répondre le mieux possible, sinon je suis sûr qu'une autre personne du forum pourra vous aiguiller ou compléter mon propos.

Peut être que l'on pourrait créer un post spécial par la suite qui regrouperai nos créations de scripts télémétries ou autres ...

Bonne soirée !

Tom

Tomdu38

Messages : 20
Date d'inscription : 30/07/2014
Age : 29
Localisation : Grenoble

Revenir en haut Aller en bas

Re: Les bases du LUA pour un SCRIPT télémetrie

Message par chewbee le Dim 23 Nov 2014 - 22:17

Bonsoir ,

Comment faire pour debugger ?

sur Open TX companion j'ai juste "Syntax error" pas de numero de ligne .. rien !!

Merci d'avance

chewbee

Messages : 15
Date d'inscription : 10/12/2013

Revenir en haut Aller en bas

Re: Les bases du LUA pour un SCRIPT télémetrie

Message par Sacre100 le Dim 23 Nov 2014 - 22:30

Pas facile effectivement.

Personnellement, je mets en commentaire la partie que je suspecte défectueuse et je dé-commente progressivement jusqu'à tomber sur la ligne en erreur.

Les erreurs les plus fréquentes :
- parenthèse déséquilibrées (j'utilise Crimson Editor, ça facilite les choses pour ça)
- if sans then ou end
- for sans do ou end
- ; en fin de ligne si tu as l'habitude de c, java, etc...

N'hésite pas à mettre ton code si tu ne trouves pas, il y 1291 membres alors avec 2582 yeux on risque de trouver rapidement.
avatar
Sacre100

Messages : 1888
Date d'inscription : 30/11/2013
Age : 60
Localisation : Blonay - Suisse

Revenir en haut Aller en bas

Re: Les bases du LUA pour un SCRIPT télémetrie

Message par chewbee le Dim 23 Nov 2014 - 22:57

Merci ca va me rajeunir

Je tente de travailler sur des scripts de télémétrie.

je modifie et je complete :

les scripts de télémétrie je ne sais pas comment les tester
Car lorsque je les lance dans companion ils flanches mais sur la radio il marche ...

Je remodifie Wink voila qu'il apparaissent a leur place sur la taranis !!

Merci d'avance


Dernière édition par chewbee le Dim 23 Nov 2014 - 23:44, édité 1 fois

chewbee

Messages : 15
Date d'inscription : 10/12/2013

Revenir en haut Aller en bas

Re: Les bases du LUA pour un SCRIPT télémetrie

Message par Sacre100 le Dim 23 Nov 2014 - 23:42

chewbee a écrit:Merci ca va me rajeunir

JE tente de travailler sur des scripts de télémétrie.
cela fonctionne comme les autres ?
on les lancent en parcourant  la SD card ?
et pour quoi les noms sont en doubles avec le deuxième étant le nom du scripts suivi d'une petite flèche ?

Merci d'avance

Non, non, les scripts telem1.lua, telem2.lua, ..., telem7.lua et telem8.lua, sont chargés et exécutés automatiquement par OpenTx.

Ils doivent être placés dans /SCRIPTS/nom_du_model

Si le nom de ton modèle contient des espaces, ils sont remplacés par des underscore ( _ ).

Chaque script de télémétrie ajoute une page de télémétrie que tu accèdes par PAGE long tout comme les autres pages.

Si tu le souhaites, tu peux même remplacer / customiser les deux derniers écrans de télémétrie par avec un script nommé telempw.lua pour l'écran où tu as le voltage A1 et A2, et telemaf.lua pour l'écran où tu as les coordonnées GPS.

Par contre, je n'ai pas les noms en doubles.
As-tu ça dans le simulateur ou dans la radio ?
Est-ce pour signaler que le script a été désactivé pour cause d'erreur (syntaxe ou autre), je ne sais pas.
avatar
Sacre100

Messages : 1888
Date d'inscription : 30/11/2013
Age : 60
Localisation : Blonay - Suisse

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum