OTX LUA Scripts zum testen

Newbie22

Neuer Benutzer
Hi coolchaos,

Danke für Deine schnelle Rückinfo.
Hat jetzt super geklappt !

Aber eine Frage habe ich noch. Wo genau muß denn das "+1" zwecks blinken des Textes eingetragen werden ??? Sorry habe keine Ahnung von der Script Sprache.

Da ich es nicht so schön finden einfach im "BMP" Ordner das Bild zu speichern und bei vielen Scripts nach längerer Zeit auch den Überblick verliere, habe ich einen Ordner "SCHALTER" erstellt und in Zeile 72, 80, 84 den Verweis geändert.

lcd.drawPixmap(lcd.getLastPos(),0, "/SCRIPTS/BMP/SCHALTER/bat.bmp")

Ich hoffe es ist ok wenn ich Dein Script nach meinen Bedürfnissen anpasse.

Gruß Newbie22
 
Zuletzt bearbeitet:

coolchaos

Erfahrener Benutzer
Blink Beispiel

Hi @Newbie

Das kannst Du anpassen. Dazu ist es ja hier eingestellt. .......
Und immerhin habe ich es wegen Dir gebaut .... kicher :p

Nun zum Script Beispiel

if getValue(s1s)==0 then
lcd.drawText(vvorn+vvorns,voben,s1meM,SMLSIZE) -> das ist die Mitte
elseif getValue(s1s)==-1024 then
lcd.drawText(vvorn+vvorns,voben,s1meU,SMLSIZE+1) -> wenn es unten blinken soll !
else
lcd.drawText(vvorn+vvorns,voben,s1meO,SMLSIZE) -> das ist OBEN
end

alles klar ?
:eek:
 
Zuletzt bearbeitet:

Newbie22

Neuer Benutzer
Hi helle,

ich habe das "zbstudio" gestartet, die Datei telem5.lua geladen und auf Play gedrückt.

Aber ohne ein Ausgabefenster, so wie in der OpenTX Companion Software unter Simulation und Reiter "Taranis Simulator", in dem ich das Ergebnis sehen kann, bringt es mir als Anfänger ja nichts.

Und warum möchte sich das "zbstudio" jedesmal beim drücken auf den Playbutton mit dem Internet verbinden ?
 
Zuletzt bearbeitet:

Kaldi

...es funktioniert!
@coolchaos: da haste mir mal wieder 'nen Denkanstoß gegeben. Wollte schon lange mal eine Schalterübersicht machen - gerade für umfangreiche Konfigurationen sehr nützlich.
Bislang habe ich die Schalterinformationen immer über die Notizfunktion der Taranis hinterlegt (Modellname.txt Datei in den Ordner "MODELS" hinterlegt und dann kann man mit der "ENT" Taste die Datei aufrufen - sieht dann so aus:

Alte Version über .txt Datei:
schalter_alt.png


Dank Deiner hervorragenden Vorarbeit, konnte ich das nun über ein LUA Script einbinden. Ich habe das Script ziemlich zerpflückt, da ich in der Schalterübersicht keine weiteren Informationen benötige - dafür verwende ich Telemetrieanzeigen mit GROSSEN Ziffern und Buchstaben.

Ferner habe ich die "Logik" umgekehrt, so dass das physische "oben" auch "oben" ist und die Schalter grafisch dargestellt (gezeichnet, keine BMP's)

Zusätzlich lassen sich Schieberegler und Potis anzeigen und die Anfangs- und Endwerte definieren, so kann man z.B. sagen: Landeklappen min = 0°, Landeklappen max =35° und das wird dann über den gesamten Weg errechnet.

Neue Version via LUA Script:
schalter_neu.png
Ja, Flugmodus hat einen Tippfehler...

Hier der Download der modifizierten Datei:
 

Anhänge

Zuletzt bearbeitet:

coolchaos

Erfahrener Benutzer
LUA scripts zum testen

Hi @Kaldi

Nur so kann es was werden :D
wie gesagt Anstoßgeber war Newbie22

Noch ein Tipp wenn das script unter "\SCRIPTS\FUNCTIONS" liegt
könnt Ihr es auch über Schalter einbinden

gugst Du hier ;)

schalter.jpg

Aber Achtung das geht nur im Simulator oder an der Taranis selber.
Im Companion Selber kann man es so nicht einbinden weil unter den Sonderfunktionen
kein Lua ausgewählt werden kann.


Aber dann lcd.clear() in der 2ten Zeile nicht vergessen. :eek:
 
Zuletzt bearbeitet:
Hallo coolchaos,
wo kommt die bat.bmp auf der SD Karte hin.
Bei mir zeigt er das Bild von der Modellstartseite an.
Vielleicht kannst du mal zeigen wie die Ordner auf der SD Karte aussehen müssen.
Gruß Heinz
 

helle

Erfahrener Benutzer
Hy

LUA Codeschnippsel: Kreise zeichnen


local function drawCircle( x, y, r )
local lx = x + r
local ly = y
for i = 15, 360, 15 do
local px = x + r * math.cos( math.rad( i ) )
local py = y + r * math.sin( math.rad( i ) )
lcd.drawLine( lx, ly, px, py, SOLID, 0 )
lx = px
ly = py
end
end

local function run()
drawCircle( 31, 31, 30 )
drawCircle( 99, 31, 30 )
end

return { run=run }




Helle
 

coolchaos

Erfahrener Benutzer
LUA scripts zum testen

Hi @Helle

fein gemacht :)

ne Frage kommt da in openTx mit lua noch was dazu ? kannst Du da was dazu sagen?

Oder bleibt das erst mal so denn die Referenz ist ja echt noch dünn
(einige Seiten sind leer (wer pflegt das ?))
 
Zuletzt bearbeitet:

cemizm

Erfahrener Benutzer
Hy

LUA Codeschnippsel: Kreise zeichnen


local function drawCircle( x, y, r )
local lx = x + r
local ly = y
for i = 15, 360, 15 do
local px = x + r * math.cos( math.rad( i ) )
local py = y + r * math.sin( math.rad( i ) )
lcd.drawLine( lx, ly, px, py, SOLID, 0 )
lx = px
ly = py
end
end

local function run()
drawCircle( 31, 31, 30 )
drawCircle( 99, 31, 30 )
end

return { run=run }

Helle
Hilfreich wäre noch das drehen von Bildern.
 

helle

Erfahrener Benutzer
Hy,

du meint z.B einen Richtungspfeil oder ein Modell drehen der als *.bmp abgelegt ist?

Da hilft nur die Bilder voher gedreht abzulegen und dann aufzurufen.

Helle
 

cemizm

Erfahrener Benutzer
LUA scripts zum testen

Moin
@cemizm wir reden hier doch immer noch von der Taranis... Oder bin ich im falschen Forum? Also ich brauche das Bilder drehen nicht , da gibt es andere Sachen die wirklich wichtiger wären als das
Moin,

Ja richtig Taranis, war wohl ne harte Nacht... ;)

Oh sorry, wollte deine Prioritäten Liste nicht mit meinen Beiträgen durcheinander bringen. Am besten du ignorierst es einfach.

Jetzt mal ernsthaft, erwartest du jetzt wirklich das ich meine Wünsche nicht äußere solange deine umgesetzt sind?
 

coolchaos

Erfahrener Benutzer
@cemizm zu Deiner Frage

Dunkel war es in der Nacht ... Aber nicht hart.


Meine Liste? .... (Ich habe gar kein Auto)

Jeder kann äußern was er mag.
Aber jeder kann auch mit seiner Meinung antworten.

Angegriffen oder dumm angemacht habe ich dich auch nicht.

Also lass auch Du solche Äuserrungen
 
Zuletzt bearbeitet:

helle

Erfahrener Benutzer
Hy
nochmal ein netter Prog-schnippsel
für Polygone zeichnen


graphics = {}

function graphics.drawPolygon( x, y, r, sides, offset )
offset = offset or 0
local INC = 360 / sides
local lx = x + r * math.cos( math.rad( offset ) )
local ly = y + r * math.sin( math.rad( offset ) )
for i = INC+offset, 360+offset, INC do
local px = x + r * math.cos( math.rad( i ) )
local py = y + r * math.sin( math.rad( i ) )
lcd.drawLine( lx, ly, px, py, SOLID, 0 )
lx = px
ly = py
end
end


function graphics.drawCircle( x, y, r )
graphics.drawPolygon( x, y, r, 24 )
end




local function run()
graphics.drawCircle( 31, 31, 30 )
graphics.drawCircle( 31, 31, 28 )
for i = 0, 119, 30 do
graphics.drawPolygon( 31, 31, 26, 3, i )
end

for i = 0, 89, 45 do
graphics.drawPolygon( 95, 31, 30, 4, i )
end

graphics.drawCircle( 159, 31, 30 )
graphics.drawPolygon( 159, 31, 30, 6 )
graphics.drawPolygon( 159, 31, 30, 6, 30 )
graphics.drawPolygon( 159, 31, 26, 3, -30 )
end

return { run=run }



Helle
 

helle

Erfahrener Benutzer
Hy,

nochmal was zum spielen


local function drawTicks( x, y, r, s, n, l )--r=radias s=start pos 270 = top??? n=number of ticks l=length
local lx = x + r
local ly = y
for i = s, s+359, (360/n) do
local px = x + r * math.cos( math.rad( i ) )
local py = y + r * math.sin( math.rad( i ) )
local lx = x + (r-l) * math.cos( math.rad( i ) )
local ly = y + (r-l) * math.sin( math.rad( i ) )
lcd.drawLine( lx, ly, px, py, SOLID, 0 )
lx = px
ly = py
end
end


local function drawPoints( x, y, r, n, s )--r=radias s=size n=number of points
local lx = x + r
local ly = y
for i = s, s+359, (360/n) do
local px = x + r * math.cos( math.rad( i ) )
local py = y + r * math.sin( math.rad( i ) )

lcd.drawPoint( px, py )
lx = px
ly = py
end
end



Helle
 
Hallo,

Ich drehe durch mit der Taranis und dem LUA. Wie geil ist das denn alles?!
Wenn jetzt jemand um die Ecke kommt, und seine Taranis Kaffee kochen kann falle ich vom Glauben ab...
Ne, im Ernst, das ganze soll mal jemand mit einer anderen Funke nachmachen...
 
FPV1

Banggood

Oben Unten