Lua

Aus RC-Network Wiki

Wozu LUA auf RC-Sendern

LUA ist eine kleine Programmiersprache auf Basis von C++, aber so einfach wie Basic.

Damit kann man, abgestimmt auf den Sender, weitere Funktionen und Oberflächen programmieren, die dann im Sender als Funktionen aufgerufen werden.

LUA gibt es bei OpenTX RC-Sendern schon seit 4-5 Jahren.

Das BEtriebssystem Edge TX unterstützt LUA Scripts ebenfalls.

Dass jetzt Jeti das auch macht ist logisch und gut. Damit steigt die Flexibilität ohne immer das Betriebssystem des Senders mit neuen Funktionen aufbohren zu müssen. (Ich denke auch andere werden bei Ihren großen Sendern auf LUA aufspringen, (Spektrum, Futaba, ..) müssen.

Für LUA muss auf dem Sender zusätzlich ein Interpreter mit installiert sein, der das LUA Programm abarbeitet. Es gibt aber auch vorkompilierte LUA-Programme die dann ohne Interpreter laufen.

LUA-Programme werden auf dem PC geschrieben, dort auch geprüft und getestet, bevor sie auf den Sender kopiert werden. und genau da ist der Hund begraben.

Man braucht ein kleines, kostenloses LUA Entwicklungssystem, das um die Funktionen des jeweiligen Senders erweitert wurde. Das gilt auch für die Grafik, die das Sender-LCD nachbilden muss.

LUA sollte immer nur für Dinge verwendet werden die nicht flugkritisch sind. Also für grafische Oberflächen, Anzeigen, Berechnungen von Telemetriewerten, Meldungen, Sounds und Töne, usw.

Ein Lua-script wird alle ca 20-30ms ausgeführt, auf ein exaktes Timing kann man sich aber nicht verlassen.

Lua kann auch abstürtzen oder wird beendet wenn zu viel Prozessorlast gebraucht wird. (z.B. bei Endlosschleifen)

Man kann mit LUA auch Knüppelwerte und Mischer programmieren und diese Werte dann auch Kanäle ausgeben. Davon wird aber abgeraten, da zu unsicher, siehe oben.

Alles was nicht direkt auf Kanäle geht ist völlig unkritisch, da kann nichts passieren, Anzeigen, Werte berechnen, Ansagen, usw.

Lua läuft als eigenständiger Prozess mit niedriger Priorität, Das RC-Betriebsprogramm für das Modell hat immer Vorrang.

Ein paar Links

Ein Link zu LUA für RC-Sender https://www.rcgroups.com/forums/show...cal-discussion

Ein Link zu LUA-Programmen mit Beispielen http://rcsettings.com/index.php/view...13-lua-scripts

Beispiel für ein LUA-Script für Verarbeitung der Werte von einem Pixhawk http://rcsettings.com/index.php/view...ry-for-pixhawk

hier die JETI LUA Umgebung zum download http://www.jetimodel.com/de/DC-DS-24...ur-Entwickler/

und hier fertige Jeti LUA Programme unter Github https://github.com/JETImodel/Lua-Apps


LUA lernen in Deutsch:

https://wiki.multitheftauto.com/wiki/DE/Lua_Tutorial

http://lua.coders-online.net

Ein kleines Testprogramm um aus einem Taster einen Schalter zu machen: http://www.rc-network.de/forum/showthread.php/589782-DC24-LUA-Script-Taster-als-Schalter-benutzen-gt-Fertiges-Script

LUA ist mittlerweile auch auf den "alten" Jeti Fernsteuerungen DC/DS 16 angekommen, allerdings mit ein paar kleinen Einschränkungen.

  • Es gibt nur 4 App-Schalter anstatt 10 wie bei der DC24.
  • Ab 30kb Programmgröße wird es kritisch mit dem Speicher.
  • Es dürfen nur 2 Apps gleichzeitig ablaufen.


Mit der neuen LUA Version 1.1 (12-2016) sind auch neue Funktionen hinzugekommen, dazu zählen:

init (code), getProperty, drawCircle, drawEllipse, setClipping, resetClipping, addIcon, setTitle, question

Am besten programmiert man LUA-Scripts mit Notepad++ https://notepad-plus-plus.org/

Dieser Editor hebt LUA Befehle in blauer Farbe hervor und Bemerkungen in Grün. Die Übersicht wird damit deutlich erhöht!


Weblinks