OTX LUA Scripts zum testen

musicscene

Neuer Benutzer
DJs f550

Moin zusammen,

ich habe das Skript von Kaldi ein wenig angepasst und für meinen DJI F550 umgeschrieben (sollte aber auch noch für andere Kopter gehen.)

Christian
Hi, bin seit heute auch taranis 9d plus Besitzer undhabe ebenfalls einen f550, allerdings ohne ez.
Welchen FC benützt du, und wie hast du fc mit taranis verbunden (SBus?)....

Woher holt sich die taranis die GPS Daten bei deinem copter?
 

shackfu

Well-known member
Hi,
ich habe für meinen Sohnemann (natürlich auch mir mich :) ) einen kleinen RoboArm gebaut.
Jetzt möchte ich ganz gerne mittels LUA einige Funktionen bereitstellen.

Ziel ist es, per Schalter eine eingenommene Position zu speichern und diese später wieder per Schalter einzunehmen.
Das Speichern habe ich soweit hinbekommen.

Leider weiß ich nicht recht, wie ich aus dem Script heraus die Kanäle auf bestimmte Werte setzen kann.

Im Anhang mein telem1.lua und das passende Modell.

Evtl kann mich jemand in die richtige Richtung schubsen ;)
 

Anhänge

zaphorg

Neuer Benutzer
Kann man überhaupt Schalter- und Stick-Positionen von Lua aus manipulieren? Hab in der Doku nichts gefunden (was nicht bedeutet, dass nichts drin steht)?
 

cknorr

Neuer Benutzer
Hallo
Mein Name ist Christian und lese schon länger mit.Ich benutze für meine Taranis und APM den LUA Skripts von Wolke ,möchte aber den Timer erst bei Throttle Start (GSs) beginnen lassen,wie kann mann das anpassen?
Für die Wahl der Flight Modes verwende ich einen 6 Positionsschalter .In meinem Display werden aber nur die ersten 3 richtig angezeigt,habe auch schon versucht die Modes im Skript umzuschreiben, das hat aber leider nicht funktioniert.
Ich hoffe die Luanier können mir etwas helfen
Grüße und Danke schon einmal
Christian
 
Hallo Christian,

Habe ich gestern erst programmiert.
Unter Spezialfunktion im Companion sehr einfach. Dazu einem Schalter SA, SB,.... den Timer 1 oder 2 zuweisen und als Parameter GSs und aktivieren. Das sollte funktionieren. Er zählt bei 100% (Vollgas) dann in Echtzeit und verzögert um so mehr Du das Gas zurücknimmst. Bei 0 stoppt er komplett.
Ich hoffe, das beantwortet die Frage.
Beim 6-Positionenschalter kann ich Dir leider nicht helfen.

MfG Marco
 

helle

Erfahrener Benutzer
Hy,

Beim 6 pos-schalter

vor dem kalibrieren den Schalter auf linksanschlag stellen!

dann erst kalibrieren die stufen einmal durchdrehen

die Stufen 1-6 sieht man dann im Kalibriermenü

Kann man dann als S31-S36 aufrufen (falls als S3 eingebaut)

--------------------------
GSs s= start / stop des Timers wenn Gas bei -100% steht

Helle
 
GSs ist dann Timerablauf prozentual zur Knüppelstellung? Jedenfalls läuft es bei mir so.
Ich hatte das beim Einstellen jedenfalls auch so mit start/stop interpretiert. Jedoch läuft der Timer je nach Knüppelstellung langsamer.
Da es ja noch GS% gibt :confused:

Gruss Marco
 

cknorr

Neuer Benutzer
Hallo
Danke für eure Antworten. Es tut mir leid das sie nicht richtig verstanden wurde. Meine Frage bezieht sich auf das LUA Skript für die APM .Das Programmieren der Taranis habe ich einigermaßen hinbekommen.Ich möchte mir im LUA den Timer und die Flight Modes etwas anpassen.
Grüße Christian
 

helle

Erfahrener Benutzer
Hy,

nein, es ist so:
GS = Gasknüppel

GSt t = trigger, einfach start des Timers wenn Gas > -100%, kein stop mehr.
GSs s = start / stop des Timers mit Gasknüppel bei -100%
GS% % = Timer läuft prozentual zur Gasstellung schneller oder langsamer


Verlauf kann man sich auch ansehen in der internen Gas/Timerkurve

---------------------------------------
Zur Kontrolle:
Ich habe gerade im aktuellen Quellcode nachgeschaut
englisch und deutsch beide sind gleiche

OFF ON THt TH% THs
AUS EIN GSt GS% GSs

Kann sein das bei dir noch ABS statt EIN oder ON steht


Welche Version haste denn drauf?

Helle
 
Zuletzt bearbeitet:

cknorr

Neuer Benutzer
Hallo
Habe die Version 2.0.13 auf der Taranis. In den Grundeinstellungen für das Modell wird unter Timer 1 und 2 ABS angezeigt.
Das habe ich auch schon geändert aber nach jedem zurücksetzen der Flugdaten/ Telemetriewerte steht wieder ABS.
Grüße Christian
 
Hallo zusammen,
folgendes ist das Problem,
normale TARANIS
Modellname "Augusta 109"
im Verzeichnis "SCRIPTS" ist dieses auch wie folgt angelegt "Augusta_109"
darunter befinden sich vier Lua Scripte jedoch wird keines davon Angezeigt jedoch werden die LUA Scripte von "SCRIPTS/FUNCTIONS" angezeigt.
Ich habe die Aktuelle Version 2.0.13 Date 2014-11-20 Time 05:33:23 EEPR 216
Wie Funktioniert das mit den "CUSTOMS SCRIPTS" es erscheint bei mir immer nur bei "Page12" LUA1 --- kann man hier ein Script hinterlegen wenn ja wie, und wann wird dies Ausgeführt?
Bei Lua-Script --- kann ich nichts auswählen und auch nichts eingeben, bei Name kann ich was eingeben nur wozu dient das Feld
bei Inputs komme ich gar nicht hin.
Das Verzeichnis ist wie folgt aufgebaut
SCRIPTS
SCRIPTS/TEMPLATES
SCRIPTS/BMP
SCRIPTS/WIZARD
SCRIPTS/FUNCTIONS
SCRIPTS/MIXES
SCRIPTS/Augusta_109 (hier sollten doch die LUA Scripte hin oder )
ist hier evtl. groß/klein Schreibung wichtig oder was ist falsch?
 

zaphorg

Neuer Benutzer
Moin Benno,

SCRIPTS/Augusta_109 (hier sollten doch die LUA Scripte hin oder )
ist hier evtl. groß/klein Schreibung wichtig oder was ist falsch?
Es gibt verschiedene Arten von Skripts::

  • Model-Skripts - Laufen immer (im Hintergrund, also ohne eine Anzeige). Wenn das Skript durchgelaufen ist, dann wird es wieder neu gestartet. Model-Skripts kommen in das Unterverzeichnis /SCRIPTS/MIXES/
  • Function Skripts - Starten, wenn sie aus einem anderen Skript (Model oder Telemetrie) aus aufgerufen werden. Sie sind also "passiv". Function-Skripts kommen in das Unterverzeichnis "SCRIPTS/FUNCTIONS"
  • Telemetrie-Skripts - haben eine eigene GUI, wenn Du eine Seite im Telemetrie-Screen aufrufst (Page-Taste..). Du kannst die Reihenfolge der Screens auswählen, indem Du den Dateinamen anpasst. D.h. die Telemetrieskripts haben einen reservierten Namen "telemX.lua", wobei "X" die Seite (bis zu 7) ist, in der das auf dem Screen angezeigt werden soll.
  • Wizard-Skripts - habe ich nie probiert, muss jemand anders mal ergänzen. Sie werden für die Einrichtung neuer Modelle verwendet und kommen unter "/SCRIPTS/WIZARD/"
  • Template-Skripts - Noch undokumentiert lt. Doku und bislang nicht implementiert.

Bitte beachte, dass Skripts generell abgebrochen werden, wenn sie zu lange laufen. D.h. Endlosschleifen oder sonstiges laufzeitkritische Verhalten führen zum unkontrollierten Abbruch und ggf. dann wieder zum Neustart des Skripts - bis zu dem Punkt, an dem erneut abgebrochen wird. Du musst in Deiner Programmierung also immer darauf achten, dass kein "Schaden" verursacht wird, wenn das Skript abbricht. Außerdem werden maximal 7 Skripts gleichzeitig gestartet.
(Soweit zumindest mein Kenntnisstand ohne Anspruch auf Vollständigkeit oder Richtigkeit)

Wenn Du also eine Anzeige haben willst, dann benutze ein Telemetrieskript, packe das direkt unter das Verzeichnis, welches genauso heißt, wie Dein Modell und benenne die Datei z.B. "telem1.lua". Siehe auch Post 358 zu diesem Thema.

Noch ein Tipp: Lass die Leertaste im Modellnamen weg. Das bringt nur Ärger, weil Du garantiert irgendwo den Unterstrich vergisst und Dich dann wunderst, warum Dein Skript nicht das macht, was es soll.

Viele Grüße,
Christian
 
Hallo Christian,

vielen Dank für die Info!
Der Knackpunkt war das das Script nicht telemXX.lua heißen darf sondern nur telemX.lua. Also telem1.lua
Funktioniert jetzt alles super.
Vielen vielen Dank.
LG
Benno
 

zaphorg

Neuer Benutzer
Gerne -
Ich habe aber auch noch mal eine Frage: Hat denn irgendjemand schon einmal Schalterstellungen manipuliert? Also beispielsweise den SA auf 50% oder ähnlich? Geht das überhaupt?
 

sandrodadon

Fliegender Maschi
Hallo zusammen,
ich bin noch recht neu in der LUA programmierung aber kann die Finger nicht davon lassen, arbeite an einem Telemetrie Screen.


Für den GPS Status bekomme ich via local gpsstatus = getValue("temp1") einen Wert von z.B. 113 zurück was bedeutet 11 Sats-3D Fix oder 42 für 4 Sats-2D Fix.

jetzt möchte ich von 113 zu "11-3D" als Text
Wie stelle ich das am elegantesten an?

z.B. könnte ich mir die Länge von "gpsstatus" angeben lassen (z.B. 3 Chars) und dann den letzten Char auf 2 oder 3 prüfen.
 

lichtl

Erfahrener Benutzer
Hallo zusammen,
ich bin noch recht neu in der LUA programmierung aber kann die Finger nicht davon lassen, arbeite an einem Telemetrie Screen.


Für den GPS Status bekomme ich via local gpsstatus = getValue("temp1") einen Wert von z.B. 113 zurück was bedeutet 11 Sats-3D Fix oder 42 für 4 Sats-2D Fix.

jetzt möchte ich von 113 zu "11-3D" als Text
Wie stelle ich das am elegantesten an?

z.B. könnte ich mir die Länge von "gpsstatus" angeben lassen (z.B. 3 Chars) und dann den letzten Char auf 2 oder 3 prüfen.
hmm wenn ich das richtig sehe sollte das mit string.sub klappen

~$ lua
Lua 5.2.1 Copyright (C) 1994-2012 Lua.org, PUC-Rio
> print(string.sub("113",-1))
3
> print(string.sub("42",-1))
2
> print(string.sub("113",1,-2))
11
> print(string.sub("42",1,-2))
4

sollte dann so aussehen

local gps_satnum = string.sub(getValue("temp1"),1,-2)
local gps_satfix = string.sub(getValue("temp1"),-1)

oder alternativ in einen string

local gps_sattext = string.sub(getValue("temp1"),1,-2) .. "-" .. string.sub(getValue("temp1"),-1) .. "D"

(hier das bsp in lua)
> print (string.sub("113",1,-2) .. "-" .. string.sub("113",-1) .. "D")
11-3D
> print (string.sub("42",1,-2) .. "-" .. string.sub("42",-1) .. "D")
4-2D

mist gerade daheim mal probiert. Allerdings wird LUA ohne die string lib geliefert. Also klappt das leider nicht :/
 
Zuletzt bearbeitet:

sandrodadon

Fliegender Maschi
Genau, mit der String Lib habe ich es auch schon versucht aber die ist bei OpenTX nicht drin.

Habe es aber mit einem Trick gelöst: 113 / 10 = 11.3 + "D"
11.3D
 
FPV1

Banggood

Oben Unten