OTX LUA Scripts zum testen

Lua Script Taranis einrichten

Ich glaube ich habe 102 1Seiten über Lua für OpenTx gelesen! Aber anscheinend bin ich zu dumm. Ich möchte das Lua Script:https://github.com/lvale/Mavlink_FrSkySPort für meinen Quad-APM nutzen. Das Interface mit Teensy läuft inzwischen problemlos.
Nun wollte ich erst in Companion 2.15 die Einstellungen testen, aber mein übliches Problem......http://fpv-community.de/images/smilies/mad.png...


Dann habe ich den Ordner\\PC\Users\Hans-Peter\Taranis\TF Card\SCRIPTS\DisplayApmPosition\Scripts\Modellname\telem01.lua
Das
auf die SD Karte geladen

Resultat: div Stunden und nichts funltioniert!http://fpv-community.de/images/icons/icon8.png

Es wäre toll wenn jemand die Zeit hat und meine Fehler sucht.

Gruß aus Eckernförde

Peter
 
Ich hatte mit LUA bis anhin noch nichts am Hut.
Würde jedoch gerne ein / zwei Dinge gerne versuchen.

Leider schaffe ich es ebenfalls nicht, ein Telemetrie-LUA-Script auf dem PC abzulegen,
so dass ich es im Companion-Simulator öffnen und testen kann.

Wie bzw. wo muss das File abgelegt werden und welche Einstellungen müssen vorgenommen werden?


Grüss Bongo
 

helle

Erfahrener Benutzer
Hy,


1. auf der SD-Karte müssen die Verzeichnisse exakt so heißen wie im Handbuch dargestellt
und nicht anders, oder irgendwie so ähnlich, oder so wie es mir gerade gefällt.
Nein, genauso so wie dargestellt und nicht anders. So ist es halt mal.


2. am PC muss im Profil ein Pfad zu einem Verzeichnis eingerichtet sein
auf dem ein Abbild der SD-Karte liegt.
Konkret: ich kopiere mir auf den PC in dieses Verzeichnis meine SD-Karte rein,
denn nur dann kann companion und der Simulator dort auch zugreifen.


3. Als <Modellname> eben nicht "Modellname" sondern den Name deines Modells
und zwar genauso wie er am LCD dargestellt und abgespeichert ist.
also z.B. ASW21, Extra_300, Tornado, Modell_1, Fun_Flyer, Modell_9 usw.
Der "Modellname" darf nur max 12 Zeichen lang sein!

Aber:
Keine Leerzeichen, Keine Sonderzeichen verwenden,
sonst eben den Namen abändern!


4. Die Namen der Telemetrie LUA-Scritpe müssen heißen:
telem1.lua
telem2.lua
telem3.lua
usw. bis telem7.lua

Beispiel: /SCRIPTS/Fun_Flyer/telem3.lua

Damit Telemetrieseiten zugeordnet werden können.

-------------------------------------
Grund:
OpenTx muss das Zeug halt auch finden, zusammenstellen und zuordnen können.



Tip:
Wenn Ihr den Modell-Wizard am PC Simulator am laufen habt,
dann läuft LUA schon mal und hat die Verzeichnisse gefunden.

Dann erst mal ein einfaches "Hello World" unter LUA
am PC Simulator laufen lassen.

Wenn das läuft könnt ihr mal den Debugger mitlaufen lassen,
dann bekommt ihr zumindest mal LUA Fehlermeldungen mit


2 Seiten Auszug aus den Handbuch anbei

Ich glaube ich muss da wohl ins Handbuch ein paar konkrete Beispiel einfügen
Schritt für Schritt, ganz genau im Details


Ansonsten unter rcsettings: http://rcsettings.com/index.php/viewcategory/13-lua-scripts
Dutzende fertige LUA zum testen und downloaden

Unter openTx university: http://open-txu.org/home/grad-school/lua/foundations-of-lua/
eine einfache LUA Anleitung

Unter rcgruops eine eigene LUA-page: http://www.rcgroups.com/forums/showthread.php?t=2180477&page=76

usw.


Dann gibt es das ZeroBraneStudio kostenlos, mit einem zusätzlichen OpenTx Emulator
OpenTx Lua emulator within ZeroBraneStudio - Proof of Concept

Ein echtes eigenständiges kleines LUA Entwicklungssystem mit zusätzlichen openTx Emulator

http://www.rcgroups.com/forums/showthread.php?t=2180477&page=73

Helle
 

Anhänge

Zuletzt bearbeitet:
Besten Dank Helle
Die Einstellungen haben bei mir funktioniert.
Ist es möglich Telemetrie-Werte im Simulator vorzugeben, so dass sich die Anzeigen verändern würden?
 
Hallo zusammen,

ich spiele seit langem mal wieder ein bisschen an meinem LUA-Script rum.
Leider komme ich einfach nicht weiter, oder ich bin einfach nur blind:

Ich habe einen Unisens-E eingebaut, und möchte den Wert gerne auf meinem Script anzeigen.
Auf der "normalen Telemetrieseite" wird der Wert unter "Curr" angezeigt. Dort stehen zum Beispiel im Leerlauf (nur Akku angesteckt) 0,2A drin.

Im LUA-Script habe ich dann "current" oder auch "217" als Quelle für den Strom-Wert eingetragen.
Es werden mir dort aber nur ganze Ampere angezeigt. Habe ich da einen Denkfehler? Gibt es keine Möglichkeit Nachkomma-Stellen anzeigen zu lassen?


Code:
-- Anzeige Strom aus Unisens
  
  lcd.drawRectangle(66, 43, 35, 25)
  lcd.drawText(68, 45, "Strom", 0)
  lcd.drawNumber(68, 53, getValue("217"), LEFT+MIDSIZE)
 
Hilfe ! Script zeigt plötzlich Error an wenn ich fliege und Bildschirm ist leer.

Fliege mit :
DJI F550 Naza V2
FLVSS - FCS 40A
AnySense Modul
FrSky Taranis Plus

und mit diesem Script von Bobu aber etwas geändert.

Ich hoffe es findet einer diesen Fehler. Vielleicht !

Gruß Peter

Anhang anzeigen SCRIPTS.zip
 

amayer

Erfahrener Benutzer
Hallo zusammen,
[...]
Im LUA-Script habe ich dann "current" oder auch "217" als Quelle für den Strom-Wert eingetragen.
Es werden mir dort aber nur ganze Ampere angezeigt. Habe ich da einen Denkfehler? Gibt es keine Möglichkeit Nachkomma-Stellen anzeigen zu lassen?


Code:
-- Anzeige Strom aus Unisens
  
  lcd.drawRectangle(66, 43, 35, 25)
  lcd.drawText(68, 45, "Strom", 0)
  lcd.drawNumber(68, 53, getValue("217"), LEFT+MIDSIZE)
Hi Sven,

ergänze bei der Formatierung des Wertes mal noch "PREC2+"


Code:
lcd.drawNumber(68, 53, getValue("217"), [B]PREC2+[/B]LEFT+MIDSIZE)
Grüße Andy
 

hulk

PrinceCharming
Hy,

hier mal die aktuelle Telemetrie-Field ID Liste
die hat noch gefehlt.

Guten Morgen,

kann es sein, dass da immer noch was fehlt?

Ich möchte das Mavlink auslesen. Ohne Lua Script bekomme ich gewisse Anzeigen in der Telemetrie.
Zum Beispiel muß ich T1/T2 im Telemetriebildschirm aktivieren, und ich bekomme die Codes für die Flightmodes angezeigt. Der andere zeigt mir die Satzahl und den 3DFix.
Da das etwas abstrakte Werte sind, wollte ich sie gern in Klarschrift. Ich weiß, ich muß sie mit getvalue auslesen.
Aber welche ID´s benötige ich dafür?
Das Ziel sind folgende Werte:
Flugmodus
Satzahl
HDOP
Spannung und Strom
Throttle
Höhe des Baros
 

hulk

PrinceCharming
Jo.....stehen einige drin. Zumindest, dass man es nachvollziehen kann. Interessant ist zum beispiel der modulo um den satfix und die sats zu splitten.
Aber das script insgesamt läuft nicht bei mir. Ist aber nicht so tragisch.
T1 und T2 entspricht wohl temp1/2.
 

hulk

PrinceCharming
hallo,
es wird langsam. ich versteh nur das mit den floats nicht.
lcd.drawText(100, 2, "Volt", MIDSIZE)
lcd.drawNumber(190, 2, getValue(216), PREC2 + LEFT + MIDSIZE)

ich möchte die spannung auslesen. laut referenz muß ich dazu prec2+left angeben, um 16,xx V zu erhalten.
leider erhalte ich immer 0,16 V
 

hulk

PrinceCharming
Weiß keiner was zum Problemchen?
Soll ich den getValue einfach mit 100 multiplizieren? oder gibt's es andere Möglichkeiten floats zu schreiben?
 
Hallo hulk

Ich habe ehrlich gesagt keine Avon LUA, habe es jedoch für DICH :D kurz getestet:
Deine Vermutung ist korrekt. Du musst den Wert mit 100 multiplizieren

lcd.drawNumber(68, 53, getValue("216") *100, PREC2+LEFT+MIDSIZE)

Bei mir im Simulator hat es funktioniert.
 

JoeBuster

Erfahrener Benutzer
Warum geht dieser Aufruf nicht?

if getValue("s1") = -1000 then -- Anzeige LED Mode
lcd.drawText(7, 43, "AUS",MIDSIZE)
end

Wenn ich größer als bzw. kleiner als Verwende geht es, aber mit = geht es nicht. Kennt LUA diesen Befehl nicht?
 

hulk

PrinceCharming
Hallo hulk

Ich habe ehrlich gesagt keine Avon LUA, habe es jedoch für DICH kurz getestet:
Deine Vermutung ist korrekt. Du musst den Wert mit 100 multiplizieren

lcd.drawNumber(68, 53, getValue("216") *100, PREC2+LEFT+MIDSIZE)

Bei mir im Simulator hat es funktioniert.
so ist es.....*100 ist der korrekte weg.....sollte in der referenz erwähnt werden :)
 
@ JoeBuster

Ich denke, dass der festwert 1'000 das Problem ist.
S1 ist ein analoger Wert, dieser springt bereits im Display hin und her obwohl ich den Poti nicht bewege.

Für die Aus Anzeige würde ich auf kleiner als bleiben.
 
FPV1

Banggood

Oben Unten