Ce site contient essentiellement des notes de travail. Le contenu est en constante évolution, et loin d'être achevé. (+ d'infos)
La plupart des documentations informatiques sont orientées Debian / Ubuntu.

Modélisme/Hardware/Télécommande/OpenTX/Scripts Lua

De Ordinoscope.net
Sauter à la navigation Sauter à la recherche

Introduction

Article en cours de construction - ça va prendre du temps (peut-être même beaucoup)

Structure des répertoires sur la télécommande

/SCRIPTS répertoire de base pour les scripts LUA - les scripts « one-time » peuvent y être placés, ou ailleurs (à l'exception du WIZARD)
/SCRIPTS/WIZARD/ script Wizard
/SCRIPTS/MIXES/ sont définis dans la page de configuration « script perso » / « custom script » sur la télécommande
/SCRIPTS/FUNCTIONS/ sont définis dans la page de configuration « fonctions spéciales » / « special functions » sur la télécommande
/SCRIPTS/«modelname»/telemXX.lua obsolète (OpenTX 2.0) - scripts de création d'écrans de télémétrie
/SCRIPTS/TELEMETRY/ (depuis OpenTX 2.1) Ecrans de télémétrie
/SCRIPTS/TEMPLATES/ For template scripts

Par type de script

one-time

Un script « one-time » doit être appelé spécifiquement par l'utilisateur:

  • appuyer sur « MENU » pendant 2 secondes pour entrer dans la configuration de la télécommande
  • appuyer sur « PAGE » pour accéder au menu « SD CARD »
  • chercher le script désiré
  • appuyer sur « ENT », puis « Execute »

/SCRIPTS/HelloWorld.lua

local function init_func()
  local switch_value = 0
end

local function run_func(event)
  lcd.lock()
  lcd.clear()
  lcd.drawText(10,10,"Hello World",MIDSIZE)
  switch_value = getValue(99)
  if switch_value > 100 then
    return 1  -- Exit
  else
    return 0
  end
end

return { run=run_func, init=init_func }

Ce script affiche une page « Hello World ». Tirer le bouton SH pour en sortir.

fonction

perso (custom)

  • le script est chargé avec le modèle
  • la fonction init est appelée (optionnel - seulement si elle est déclarée)
  • la fonction run est appelée périodiquement (~30ms)
  • le script est stoppé et désactivé en cas d'erreur (runtime trop élevé, erreur, manque de mémoire)
  • tous les scripts de modèle sont stoppés lorsqu'un script « one-time » est en cours d'exécution
  • peut contenir des entrées (définies par l'utilisateur), et des sorties (noms définis dans le script)
  • les variables « output » peuvent être utilisées dans le mixeur, les interrupteurs logiques, ou un autre script

~/SCRIPTS/MIXES/mix-inv.lua

local inputs = {{"val", SOURCE}}
local outputs = { "inv0", "inv1" }

local function run (val)
  return val, -val
end

return { run=run, input=inputs, output=outputs }

Ce script permet de sélectionner une voie, et revoie sa valeur (inv0), et son inverse (inv1).

OpenTX mix-inv.lua.png

télémétrie

  • le script est chargé avec le modèle
  • la fonction init est appelée
  • la fonction background est appelée périodiquement lorsque l'écran n'est pas visible
  • la fonction run est appelée périodiquement lorsque l'écran est visible
  • le script est stoppé et désactivé en cas d'erreur (runtime trop élevé, erreur, manque de mémoire)
  • tous les scripts de télémétrie sont stoppés lorsqu'un script « one-time » est en cours d'exécution
local function init()
end

local function run()
end

local function back()
end

return { run=run, init=init, background=back }

Recettes

Références