OTX LUA Scripts zum testen

sepper

Erfahrener Benutzer
Servus Sepper,

sieht so aus wie wenn die Funktion function anyFuel() (ab Zeile 104) nicht aufgerufen wird.

Ziemlich am Ende des Scripts rufe ich diese Funktion auf - jedoch nur wenn der Name des Modells übereinstimmt (Zeile 835):
if modelName == "Xugong" then anyFuel() end
Hier den Namen "Xugong" mit deinen Modellnamen austauschen. Dann sollte es funktionieren.

Johannes
Das hatte ich schon gesehen und mit geändert...funktioniert leider nicht :-(
Was mich wundert - die Anysense Werte, auch GPS/heading/alt usw. kommen ja?

Grüße
 
Zuletzt bearbeitet:
Das hatte ich schon gesehen und mit geändert...funktioniert leider nicht :-(
Was mich wundert - die Anysense Werte, auch GPS/heading/alt usw. kommen ja?

Grüße
Welche HW-Version von Anysense verwendest du? Anysense oder Anysense Pro?

Kannst du prüfen, ob du in der Telemetrieseite der Horus einen Sensor "Fuel" hast.
Siehe auch Screenshot in meinen Beitrag #672 - Sensor Nr.5.
Wenn dieser nicht vorhanden ist, dann funktionieren die von dir genannten Telemetriewerte nicht.
Der Sensor "Fuel" muss dir dann einen 6-stelligen Wert anzeigen.

Johannes
 
hi johannes,
danke für deine antwort.
ich habe seit der umstellung auf die neue telemetrie das problem, dass eigenntlich nirgends gescheit dokumentiert ist, wie die einzelnen werte wie anzahl sat, satqualität,usw sich genau nennen. hast du hierzu was?

denn dann wäre es ja relativ einfach, ein altes, funktionierendes script umzuschreiben auf die neuen namen der werte.

Es gibt leider keine umfassende Dokumenation betreffend der Telemetriewerte. Ich habe mir diese auch erst aus diversen Foren zusammensuchen müssen.
Was aber hilft ist der Konfiguration Manager von Anysense. In diesem kann man die Telemtriewerte einstellen, die übertragen werden sollen.
anysense.png
In der linke Spalte sieht man dann die Bezeichnung der Telemetriewerte wie sie am S.PORT ankommen.

Ein Spezialfall ist der Telemetriewert "Fuel". Dieser beinhaltet mehrere Telemetriewerte, welche mittels lua-Script ausgelesen werden können. Sie Script im Anhang.

Johannes
 

Anhänge

sepper

Erfahrener Benutzer
Welche HW-Version von Anysense verwendest du? Anysense oder Anysense Pro?

Kannst du prüfen, ob du in der Telemetrieseite der Horus einen Sensor "Fuel" hast.
Siehe auch Screenshot in meinen Beitrag #672 - Sensor Nr.5.
Wenn dieser nicht vorhanden ist, dann funktionieren die von dir genannten Telemetriewerte nicht.
Der Sensor "Fuel" muss dir dann einen 6-stelligen Wert anzeigen.

Johannes
Das ist es, bzw.... es war schon spät vorgestern Nacht :) Den Fuel Sensor hab ich nicht und ihm auch weiter keine Beachtung geschenkt, da mit altem Taranis Lua & Anysense alles lief.
Ich werd da heute mal nachschauen.
Mein Anysense ist die allererste HW Version, da gabs noch kein Pro. Ich muss da mal wieder auslesen und kann hoffentlich den fuel einbinden. Dankeschön ;-)

Beste Grüße
 
Das ist es, bzw.... es war schon spät vorgestern Nacht :) Den Fuel Sensor hab ich nicht und ihm auch weiter keine Beachtung geschenkt, da mit altem Taranis Lua & Anysense alles lief.
Ich werd da heute mal nachschauen.
Mein Anysense ist die allererste HW Version, da gabs noch kein Pro. Ich muss da mal wieder auslesen und kann hoffentlich den fuel einbinden. Dankeschön ;-)

Beste Grüße
Dann muss es bei dir, vorausgesetzt Anysense ist auf aktuellen FW und der Sensor Fuel ist richtig zugeordnet (siehe auch Screenshot im meinen Beitrag #683), funktionieren.
Auch ich verwende Anysense in der ersten HW-Version.

Johannes
 

midi_7

Erfahrener Benutzer
hallo Johannes,
vielen Dank für Dein Script,
ich finde es sehr gut, vorallem weil man sich da als "Beginner" ein paar Anregungen holen kann.
Ich hätte dazu eine Frage:
was muss man beachten, wenn man scripts, die auf der Taranis laufen, auf der Horus verwenden will?
Ich habe zB. ein Script für einen ECU-konverter, der beim Start auf der Horus die Meldung bringt: attempt to call field "draw Pixmap"
Das taucht hier auf:
local function draw_rpm(x,y,src)
local rpm = getValue(src)/100
lcd.drawPixmap(x+4,y+0,"/SCRIPTS/BMP/HORNET/rpm.bmp")
lcd.drawText(x+30,y+1,"RPM",0)
lcd.drawPixmap(x+29,y+9,"/SCRIPTS/BMP/HORNET/rpmx1000.bmp")
lcd.drawNumber(x+47,y+17,rpm,PREC1 + DBLSIZE)
end
Warum muss das Script "main.lua" heißen, dass es gefunden wird?
Gibt es da Befehlssätze die auf der Horus nicht laufen?

viele Grüße Michael
 
Zuletzt bearbeitet:
Hallo Michael,
eine gute Hilfe ist die OpenTX 2.2 Lua Reference
https://opentx.gitbooks.io/opentx-2-2-lua-reference-guide/content/
Hier ist auch beschriebenn welche Funktionen nur in der Taranis bzw. Horus funktionieren.

in deinen Script ist die Funktion lcd.drawPixmap() enthalten. Diese kann in der Horus nicht verwendet werden.
Stattdessen sind die beiden Funktionen Bitmap.open(name) und lcd.drawBitmap() zu verwenden.
In meinem Script findest du diesbezüglich einige Beispiele.

Liebe Grüße Johannes
 

midi_7

Erfahrener Benutzer
hallo Johannes,

vielen Dank, das hat mir schon viel geholfen, ich werde die Funktionen austauschen.

viele Grüße Michael
 

midi_7

Erfahrener Benutzer
hallo Johannes,

vielen Dank, das hat mir schon viel geholfen, ich werde die Funktionen austauschen.

viele Grüße Michael
 

midi_7

Erfahrener Benutzer
welche tools verwendet ihr zum Entwickeln und testen von lua Scripts?
Die Fehlermeldungen im oTx sind manchmal ziemlich spartanisch.

viele Grüße Michael
 
Hallo,

habe eine Taranis X9D Plus mit open TX 2.1.8, Empfänger X8R, non EU. Den Empfänger habe ich mit Summensignal am AUAV x2 und die Telemetrie mit RS232 und TTL Konverter am SPort des X8R. Die Taranis erkennt jetzt 10 Sensoren (2 mit ID 25 vom X8R und 8 mit ID 28 vom AUAV x2). Jetzt die große Frage, wo gibts es ein LUA-Script was die Passthrough-Sensordaten in brauchbare Daten umwandelt bzw. darstellt. Die Sensoren fangen alle mit 5000 an, außer GPS, das gibt tatsächlich die GPS Koordinaten aus. Habe da bisher nur eine Exceltabelle gefunden bei Arducopter, die ich allerdings nicht wirklich verstehe.
Falls da jemand was passendes hat, wäre ich sehr dankbar, die "alten" LUA-Scripte funktionieren damit nicht, soweit ich das ausprobiert habe.

Gruß

Jochen
 

mastersurferde

Erfahrener Benutzer
Hi Jochen,

diese Passthrough-Funktion wurde eigentlich von Craft&Therory entwickelt:
http://www.craftandtheoryllc.com/fl...-arduplane-pixhawk-frsky-telemetry-smartport/
Eine vollständige Dokumentation habe ich auch noch nicht gefunden.
Diese Entwicklung ist bei OpenTX 2.2 sowie Arducopter ab 3.4.x in den regulären Sourcen enthalten. Mit Deiner 2.1.8 funktioniert das Script also eh nicht.
Vor ein paar Monaten habe ich mir das Script gekauft. Vorher werkelte in meinen Koptern jeweils ein Teensy. Hier mal eine kleine Beschreibung:
http://kopterforum.at/fernsteuerung...ie-fuer-taranis-mit-dem-flightdeck-t3372.html
Inzwischen habe ich alle meine Kopter darauf umgebaut. Das Script funktioniert sehr gut und ist jeden Cent wert. Die Teensy´s waren auch nicht gerade billig.

Gruß
Stefan
 
Hallo Stefan,

ist das "nur" ein LUA-Script oder in einer neuen Firmware eingebautes LUA-Script ? Denke gerade darüber nach es zu kaufen, aber nur wenn es unabhängig von zukünftigen Firmware bzw. OpenTx Updates ist... ansonsten wird das hinterher zur Abofalle ;-)

Einmal auf einem Sender installiert hat man dann auch keine Chance beim Senderwechsel, das mitzunehmen ?

Gruß

Jochen
 

mastersurferde

Erfahrener Benutzer
Hi Jochen

das ist ein bereits compiliertes Script, welches extra installiert wird. Laut Nutzungsvereinbarung darfst Du es auf einem Sender installieren. Es ist nicht an eine Seriennummer oder an die Hardware gebunden. Ich habe gleich den erweiterten Support für 18 Monate mitgekauft. Die Jungs entwickeln immer weiter. Keine Ahnung für welche künftige OpenTx Version das aktuelle Skript funzt. Wenns bei Dir läuft, dann wirst Du auch bereit sein künftige Entwicklungen mit einem kleinen Obulus zu unterstützen.

Gruß
Stefan
 
Hallo zusammen,

ich habe eine Frage zu diesem Widget:

Nachdem ich seit Ende 2016 Besitzer einer Horus X12 bin, habe ich mich einige Wochen mit lua und der Anzeige von Telemetriewerten beschäftigt.

Möchte mich vorweg auch für die vielen Informationen bedanken, die ich aus diesem Forum und diversen lua-Beispielen erhalten habe, ohne diese könnte ich mein Projekt nicht umsetzen.

Die Anzeige wird dynamisch aufgebaut, je nach Auswahl der anzuzeigenden Telemetriewerte.
D.h. auch der Raster aufgrund der Anzahl der Telemetriewerte wird dynamisch aufgebaut.
Es können bis zu 4 Telemtriewerte pro Spalte und max. 3 Reihe aufgebaut werden.
Es ist auch realtiv einfach neue Telemetriewerte zu ergänzen und dann über die Definition des Widget diese einzubinden.

Mit diesem einem lua-Script und mittels Definition des Widgets und den Modellnamen wird die Anzeige der Telemtriewerte automatisch für das jeweilge Modell generiert.

Folgende Sensoren bzw. FC sind derzeit eingebunden:
- Naza V2 mit Anysense
- Unisens-E
- KissFC

Beispiel Naza V2 mit Anysense (komplettes Display):
Anhang anzeigen 164068

Beispiel KissFC (mit Top bar):
Anhang anzeigen 164071

Anzeige Segler mit Variometer (mit Top bar, Sliders und Trimmers):
Anhang anzeigen 164069

Die verwendeten Grafiken sind alle von mir selbst erstellt worden und im Anhang verfügbar.
die Lua Datei: Von *.txt nach *.lua umbenennen.

Johannes
ich habe mir das Widget etwas angepasst, es läuft alles sehr gut (Unisens-E) mit meinem Goblin 570 (fliegt mit 6S). Nun habe ich meinem TDR (12S) auch noch ein Unisense E verpasst. Auch da funktioniert fast alles, nur die Spannungs-Prozentanzeige springt von 49% schlagartig auf 0%. Ich habe die betreffenden Spannungswerte im Widget angepasst:

Woran kann es liegen, dass bei 46,7V die Anzeige plötzlich bei 0% steht?

Gruß, der Ronny
 

Anhänge

Hallo Ronny,

nachfolgend geändertes Script. Sollte damit funktionieren.

Code:
local myVoltage = getValueOrDefault("VFAS") 
local sixLow = 21.6     -- 6 cells 6s | Warning
local sixHigh = 25.2    -- 6 cells 6s
local twelveLow = 40.2    -- 12 cells 12s | Warning
local twelveHigh = 50.4   -- 12 cells 12s
local battCell = "12S"
local battType = 12
local myPercent = 0
    	
	if myVoltage > 15 then
        battType = math.ceil(myVoltage/4.25)
		if battType >= 10 then
			battCell = "12S"
			myPercent = math.floor((myVoltage-twelveLow) * (100/(twelveHigh-twelveLow)))
	end
		if battType == 6 then
			battCell = "6S"
			myPercent = math.floor((myVoltage-sixLow) * (100/(sixHigh-sixLow)))
	end
Liebe Grüße, Johannes
 
Hallo Johannes,

vielen Dank! Ich probiere das heute nachmittag gleich aus. Kompliment nochmal an dich, da hast du ein Hammer- Widget geschrieben. Ich nutze es nur in Teilen, aber da ist wirklich unheimlich viel drin verpackt, das ganze wird dann sauber aufbereitet. Danke!

Gruß, der Ronny
 

midi_7

Erfahrener Benutzer
hallo Johannes,
dein Script ist super.
Ich habe dazu eine Frage: ich habe ein Scipt zur Anzeige von Telemetriewerten das für die Tranis geschrieben wurde. Das möchte ich auch auf der Horus verwenden. Worauf muss man besonders achten wenn man es für die Horus anpassen möchte? Anhang anzeigen VSHornet.txt

viele Grüße Michael
 
Hallo Michael,

ich habe dir in meinen Post #688 schon ein paar Informationen und Tipps gegeben.

Nachdem dein Script nicht sehr umfangreich ist, kann ich mir das einmal ansehen und auf die Horus anpassen.
Komme aber erst im Laufe der nächsten Woche dazu, da ich die restliche Woche beruflich im Ausland bin.
Du müsstest mir eventuell die Grafiken senden, damit ich diese integrieren und testen kann.

Liebe Grüße
Johannes
 
FPV1

Banggood

Oben Unten