OTX LUA Scripts zum testen

mario100

Neuer Benutzer
Ja du liegst falsch. Mit der aktuellen Firmware Version gibt es ein neuen Telemetrie Wert der übertragen wird. Bisher wurde mit T1/T2 die Satelliten und Gps fix übertragen. Mit der letzten FW wird nur mit Fuel die Anzahl Satelliten, GPS Fix, Flugmodus, Motorstatus und GPS Status (schnelles grünes blinken der Naza) übertragen.

Das kannst du auch testen wenn du in dem nativ Telemetrie Screen den Wert Fuel zuordnest. Wenn dieser 0 ist dann hast du noch eine veraltete Firmware.

Anhang anzeigen 127616
firmware ist 1.1.2
anysense-1.1.2.jpg
 

cemizm

Erfahrener Benutzer
Hmm, merkwürdig. Standardmäßig ist bei Fuel statt "Disabled" der Wert "Combined Values (AnySense LUA Script)" gesetzt. Zumind. ist das die neue Standard Belegung mit der 1.1.2

Also am besten noch mal sicher gehen ob 1.1.2 drauf ist oder einfach bei Fuel den Wert "Combined Values (AnySense LUA Script)" wählen. Dann sollte auch das Script die gewünschten Daten haben.
 

mario100

Neuer Benutzer
Hmm, merkwürdig. Standardmäßig ist bei Fuel statt "Disabled" der Wert "Combined Values (AnySense LUA Script)" gesetzt. Zumind. ist das die neue Standard Belegung mit der 1.1.2

Also am besten noch mal sicher gehen ob 1.1.2 drauf ist oder einfach bei Fuel den Wert "Combined Values (AnySense LUA Script)" wählen. Dann sollte auch das Script die gewünschten Daten haben.
---
1.1.2.jpg
 

cemizm

Erfahrener Benutzer
---
Danke der hilfe, kann man das script jetzt verwenden, oder wird es noch überarbeitet?
Die 2 Verzeichnisse ( __MACOSX und LUA) müssen einfach in den namentlich angepassten "model" - ordner? weiter ist nichts zu beachten?
HowTo beim Script beachtet?
Howto:
  • Den Inhalt der ZIP Datei in das SCRIPT Verzeichnis der Speicherkarte kopieren
  • Den Ordner "SCRIPT\Model" in euer Model namen umbenennen
 

mario100

Neuer Benutzer
---
technisch könnte es jetzt passen, jedoch hängt die sprachausgabe sehr,
so dass man das script so nicht verwenden möchte...
---
einige egenschaften sind wohl zuviel für die taranis,
der künstliche horizont z.b. bringt nix
was gut wäre, wenn die motoren starten/ mit der uhr
auch die logaufzeichnung startet und stopt
 
Zuletzt bearbeitet:

georok

Neuer Benutzer
----

Wo kann ich denn Minimal- und Maximalspannung des Senders einstellen
Hier im telem1.lua Skript

-------------------------------------------
-- Definition Benutzerspezifische Daten --
-------------------------------------------
local batempty = 11.2 -- 0% der Tankanzeige
local batfull = 12.6 -- 100% der Tankanzeige

Hab ich so geändert weil ich für den Flugakku und den Senderakku eine unterschiedliche Anzahl von Zellen hab.

-------------------------------------------
-- Definition Benutzerspezifische Daten --
-------------------------------------------
local batempty = 10.6 -- 0% der Akkuanzeige -- Kopterakku 3S Lion
local batfull = 12.6 -- 100% der Akkuanzeige -- Kopterakku 3S Lion
local batempty1 = 6.6 -- 0% der Akkuanzeige -- Senderakku 6 LSD Zellen
local batfull1 = 8.4 -- 100% der Akkuanzeige -- Senderakku 6 LSD Zellen

und hier wird auch etwas geändert

--------------------------------
-- Main Battery (Akkuanzeige) --
--------------------------------

local percent1 = (currentVoltage-batempty) * 100 / (batfull-batempty) -- Prozent Kopterakku
local percent2 = (senderVoltage-batempty1) * 100 / (batfull1-batempty1) -- Prozent Senderakku
 

mario100

Neuer Benutzer
Hier im telem1.lua Skript

-------------------------------------------
-- Definition Benutzerspezifische Daten --
-------------------------------------------
local batempty = 11.2 -- 0% der Tankanzeige
local batfull = 12.6 -- 100% der Tankanzeige

Hab ich so geändert weil ich für den Flugakku und den Senderakku eine unterschiedliche Anzahl von Zellen hab.

-------------------------------------------
-- Definition Benutzerspezifische Daten --
-------------------------------------------
local batempty = 10.6 -- 0% der Akkuanzeige -- Kopterakku 3S Lion
local batfull = 12.6 -- 100% der Akkuanzeige -- Kopterakku 3S Lion
local batempty1 = 6.6 -- 0% der Akkuanzeige -- Senderakku 6 LSD Zellen
local batfull1 = 8.4 -- 100% der Akkuanzeige -- Senderakku 6 LSD Zellen

und hier wird auch etwas geändert

--------------------------------
-- Main Battery (Akkuanzeige) --
--------------------------------

local percent1 = (currentVoltage-batempty) * 100 / (batfull-batempty) -- Prozent Kopterakku
local percent2 = (senderVoltage-batempty1) * 100 / (batfull1-batempty1) -- Prozent Senderakku
---
vielen vielen DANK!!! hat mir sehr geholfen, das Script läuft super :)
 

Jace25

Erfahrener Benutzer
Ich hab vor kurzer Zeit für die Variante Pixhawk <=> FrSky D-Receiver ein Lua Script geschrieben, wobei ich das Layout größtenteils übernommen habe von einem Naze32 Lua Script.

https://github.com/Jace25/LUA-Taranis-Pixhawk

Vielleicht gefällt es ja, bzw. nützt jemandem.

Derzeit Schreibe ich einen 2. Screen, der vor allem beim ersten Einstellen vom Arducopter hilfreich sein sollte.
 

Jace25

Erfahrener Benutzer
Wenn wir hier schon beim Thema sind. Ist es generell vorgesehen, im Lua Telemetrie Bereich Sounds abzuspielen? Ich bin mir da nicht sicher, hab es mit playfile (?) versucht, und als Parameter den Pfad zu einem Wave angegeben. Ohne Erfolg.

Außerdem würde mich interessieren, ob es die Möglichkeit gibt, sich mehr als nur einen "Syntax Error in ... lua" anzeigen zu lassen. Vielleicht noch die entsprechende Zeile?

Das Hauptprogramm läuft in ja in While true ab, wie mache ich jetzt periodische Dinge, die Beispielsweise alle 1 Sekunde ausgeführt werden sollen? Ich könnte mir einen Counter bauen, der Hochzählt und den ich bei jedem Durchgang überprüfe, aber ich denke nicht, dass das Zielführend ist.
 

cemizm

Erfahrener Benutzer
Wenn wir hier schon beim Thema sind. Ist es generell vorgesehen, im Lua Telemetrie Bereich Sounds abzuspielen? Ich bin mir da nicht sicher, hab es mit playfile (?) versucht, und als Parameter den Pfad zu einem Wave angegeben. Ohne Erfolg.
Playfile ist korrekt. Evtl. Pfad Angabe vertan?

https://github.com/cemizm/TaranisLuaScripts/blob/master/AnySense/modelname/telem1.lua#L110

Außerdem würde mich interessieren, ob es die Möglichkeit gibt, sich mehr als nur einen "Syntax Error in ... lua" anzeigen zu lassen. Vielleicht noch die entsprechende Zeile?
Du kannst dir natürlich einen lua interpreter installieren um dir so syntaktische Fehler im voraus anzeigen zu lassen...

Das Hauptprogramm läuft in ja in While true ab, wie mache ich jetzt periodische Dinge, die Beispielsweise alle 1 Sekunde ausgeführt werden sollen? Ich könnte mir einen Counter bauen, der Hochzählt und den ich bei jedem Durchgang überprüfe, aber ich denke nicht, dass das Zielführend ist.
Du kannst dir mit getTime() die relative Zeit in 1/100 s abfragen. Die Differenz zwischen zwei aufrufen ergibt die Zeit die seit dem letzten mal vergangen ist...

https://github.com/cemizm/TaranisLuaScripts/blob/master/AnySense/modelname/telem1.lua#L168


Bitte auch unbedingt dran denken das "run" nur ausgeführt wird wenn das script aktiv angezeigt wird...

Gruß,
Cem
 
Zuletzt bearbeitet:

helle

Erfahrener Benutzer
Hy,

als schöner kleinere externe LUA interpreter hat sich ZeroBrane Studio erwiesen.

Programmieren, Debuggen, Testen, Simulieren

dann das LUA-Script in den eigenstädnigen Taranis Simulator übertragen und laufen lassen.

für Win, Mac , Linux

Link:
http://studio.zerobrane.com/

Emulator:


--
 
Zuletzt bearbeitet:

The Spirit

Erfahrener Benutzer
Hi.
Ich nutze das tolle Schalterscript und hab mir das Script jetzt auf meine Bedürfnisse umgeschrieben.
Jedoch läuft es auf der Taranis nicht, im der companion App aber einwandfrei.
Sieht jemand meinen Fehler?
Danke

Code:
local function run(event)
--@CoolChaos 22. Sep 2014 (07:55) Uhr
--Modified by Kaldi
--Modified by The Spirit

---------------------------------------------
-- BENUTZER Konfiguration                  --
---------------------------------------------

---------------------------------------
-- Linke Schalter (F,E,A,B,LS,S1)
---------------------------------------
-- Schalter F
local sfmeO		= "Landung aus"					-- Anzeige Text f¸r Oben
local sfmeU		= "Landung ein"					-- Anzeige Text f¸r Unten

-- Schalter E
local semeO		= " ---"			-- Anzeige Text f¸r Oben
local semeM		= " ---"			-- Anzeige Text f¸r Mitte
local semeU		= " ---"		-- Anzeige Text f¸r Unten

-- Schalter A
local sameO		= " ---"
local sameM		= " ---"
local sameU		= " ---"

-- Schalter B
local sbmeO		= "Q-W-Mix an"
local sbmeM		= "Q-W-Mix aus"
local sbmeU		= "Q-W-Mix aus"

-- Drehschieber LS 
local lsactive	= 0  						-- Anzeige ein = 1, aus = 0
local lsmeO		= "Lautsprecher"
local lsmeM		= "Lautsprecher"
local lsmeU		= "Lautsprecher"
local lschan	= getValue("ls") 			-- Kanal angeben, um den Wert auszulesen
local lsrgmin	= 0
local lsrgmax	= 100
local lsrgb		= ""

-- DrehPoti S1
local s1active	= 0  						-- Anzeige ein = 1, aus = 0
local s1meO		= "Armed"
local s1meM		= "Armed"
local s1meU		= "Armed"
local s1chan	= getValue("s1")  			-- Kanal angeben, um den Wert auszulesen
local s1rgmin	= 0
local s1rgmax	= 100
local s1rgb		= ""

-- DrehPoti S1 (L6 Logikschalter für Armed und Disarmed)
local ls3On		= "Armed"
local ls3Off		= "Disarmed"
local ls3	= getValue("ls3")  			-- Kanal angeben, um den Wert auszulesen


---------------------------------------
-- rechte Schalter (H,G,D,C,RS,S2)
---------------------------------------

local shmeO		= " ---"		-- Anzeige Text f¸r Oben
local shmeU		= " ---"		-- Anzeige Text f¸r Unten

local sgmeO		= " ---"			-- Anzeige Text f¸r Oben
local sgmeM		= " ---"				-- Anzeige Text f¸r Mitte
local sgmeU		= " ---"			-- Anzeige Text f¸r Unten

local sdmeO		= " ---"
local sdmeM		= " ---"
local sdmeU		= " ---"

local scmeO		= "Speed"
local scmeM		= "Normal"
local scmeU		= "Thermik"

local rsactive	= 0  -- Anzeige ein = 1, aus = 0
local rsmeO		= "RS-Oben"
local rsmeM		= "RS-Mitte"
local rsmeU		= "RS-Unten"
local rschan	= getValue("rs") -- Kanal angeben, um den Wert auszulesen
local rsrgmin	= -70
local rsrgmax	= 30
local rsrgb		= ""

local s2active	= 1  -- Anzeige ein = 1, aus = 0
local s2meO		= "Lautsprecher"
local s2meM		= "Lautsprecher"
local s2meU		= "Lautsprecher"
local s2chan	= getValue("s2")  -- Kanal angeben, um den Wert auszulesen
local s2rgmin	= 0
local s2rgmax	= 100
local s2rgb		= "" -- Erweiterung angeben. F¸r ∞ bitte \64 eingeben
---------------------------------------------
-- BENUTZER Konfiguration ENDE             --
---------------------------------------------

-- ab hier muss nichts mehr ge‰ndert werden





local vvorn	= 3
local vvorns 	=20 --14
local voben	= 10
local vobens	= 9
local meldlaenge =106
local vrechts = 200
local vvorn2	= 109
local vvorns2 	=3

lcd.drawLine(meldlaenge-92, voben-2, meldlaenge-92 ,61,  SOLID,  GREY_DEFAULT) -- linke senkrechte Linie
lcd.drawLine(meldlaenge+92, voben-2, meldlaenge+92 ,61,  SOLID,  GREY_DEFAULT) -- linke senkrechte Linie
lcd.drawLine(meldlaenge+1, voben-2, meldlaenge+1 ,61,  SOLID,  GREY_DEFAULT) -- mittlere senkrechte Linie

---------------------------------------
-- Linke Schalter (F,E,A,B,LS,S1)
---------------------------------------


local sfs		= "sf"							-- welcher Schalter
local sfb		= "SF"							-- Bezeichnung vorn
lcd.drawText(vvorn,voben,sfb,SMLSIZE)			-- Anzeige Bezeichnung vorn

local ses		= "se"							-- welcher Schalter
local seb		= "SE"							-- Bezeichnung vorn
lcd.drawText(vvorn,voben+vobens*1,seb,SMLSIZE)			-- Anzeige Bezeichnung vorn

local sas		= "sa"
local sab		= "SA"
lcd.drawText(vvorn,voben+vobens*2,sab,SMLSIZE)

local sbs		= "sb"
local sbb		= "SB"
lcd.drawText(vvorn,voben+vobens*3,sbb,SMLSIZE)

local lss		= "ls"
local lsb		= "LS"
lcd.drawText(vvorn,voben+vobens*4,lsb,SMLSIZE)

local s1s		= "s1"
local s1b		= "S1"
lcd.drawText(vvorn,voben+vobens*5,s1b,SMLSIZE)



---------------------------------------
-- rechte Schalter (H,G,D,C,RS,S2)
---------------------------------------

local shs		= "sh"							-- welcher Schalter
local shb		= "SH"							-- Bezeichnung vorn
lcd.drawText(vrechts,voben,shb,SMLSIZE)			-- Anzeige Bezeichnung vorn

local sgs		= "sg"
local sgb		= "SG"
lcd.drawText(vrechts,voben+vobens,sgb,SMLSIZE)

local sds		= "sd"
local sdb		= "SD"
lcd.drawText(vrechts,voben+vobens*2,sdb,SMLSIZE)

local scs		= "sc"
local scb		= "SC"
lcd.drawText(vrechts,voben+vobens*3,scb,SMLSIZE)

local rss		= "rs"
local rsb		= "RS"
lcd.drawText(vrechts,voben+vobens*4,rsb,SMLSIZE)

local s2s		= "s2"
local s2b		= "S2"
lcd.drawText(vrechts,voben+vobens*5,s2b,SMLSIZE)


-- Schalter Definitionen Stop


-- Titel Bar -Start

	lcd.drawFilledRectangle(0,0,212,8,GREY_DEFAULT) -- Block Rechteck
	local modelinfo = model.getInfo()
	local pause = " "
	local Titel = "Schalterinfo"
	Titel = Titel  .. " " .. modelinfo.name
	lcd.drawScreenTitle(Titel,0,0)
	
-- Titel Bar -Stop

-- Schalter Auswertung und Status-Anzeige Start

-- Linke Schalter

-- Schalter F
		lcd.drawRectangle(vvorn+12,voben-1,4,8)
		if getValue(sfs)==0 then
		lcd.drawText(vvorn+vvorns,voben,sfmeM,SMLSIZE)
		elseif getValue(sfs)==1024 then
		lcd.drawFilledRectangle(vvorn+13,voben+4, 2,2,0)
		lcd.drawText(vvorn+vvorns,voben,sfmeU,SMLSIZE)
		else
		lcd.drawFilledRectangle(vvorn+13,voben, 2,2,0)
		lcd.drawText(vvorn+vvorns,voben,sfmeO,SMLSIZE)
	end
	

-- Schalter E
		lcd.drawRectangle(vvorn+12,voben+vobens-1,4,8)	
		if getValue(ses)==0 then
		lcd.drawFilledRectangle(vvorn+13,voben+vobens+2, 2,2,0)
		lcd.drawText(vvorn+vvorns,voben+vobens,semeM,SMLSIZE)
		elseif getValue(ses)==1024 then
		lcd.drawFilledRectangle(vvorn+13,voben+vobens+4, 2,2,0)
		lcd.drawText(vvorn+vvorns,voben+vobens,semeU,SMLSIZE)
		else
		lcd.drawFilledRectangle(vvorn+13,voben+vobens, 2,2,0)		
		lcd.drawText(vvorn+vvorns,voben+vobens,semeO,SMLSIZE)
	end
	

-- Schalter A
		lcd.drawRectangle(vvorn+12,voben+vobens*2-1,4,8)
		if getValue(sas)==0 then
		lcd.drawFilledRectangle(vvorn+13,voben+vobens*2+2, 2,2,0)
		lcd.drawText(vvorn+vvorns,voben+vobens*2,sameM,SMLSIZE)
		elseif getValue(sas)==1024 then
		lcd.drawFilledRectangle(vvorn+13,voben+vobens*2+4, 2,2,0)		
		lcd.drawText(vvorn+vvorns,voben+vobens*2,sameU,SMLSIZE)
		else
		lcd.drawFilledRectangle(vvorn+13,voben+vobens*2, 2,2,0)		
		lcd.drawText(vvorn+vvorns,voben+vobens*2,sameO,SMLSIZE)
	end
	
	
-- Schalter B
		lcd.drawRectangle(vvorn+12,voben+vobens*3-1,4,8)
		if getValue(sbs)==0 then
		lcd.drawFilledRectangle(vvorn+13,voben+vobens*3+2, 2,2,0)		
		lcd.drawText(vvorn+vvorns,voben+vobens*3,sbmeM,SMLSIZE)
		elseif getValue(sbs)==1024 then
		lcd.drawFilledRectangle(vvorn+13,voben+vobens*3+4, 2,2,0)			
		lcd.drawText(vvorn+vvorns,voben+vobens*3,sbmeU,SMLSIZE)
		else
		lcd.drawFilledRectangle(vvorn+13,voben+vobens*3, 2,2,0)				
		lcd.drawText(vvorn+vvorns,voben+vobens*3,sbmeO,SMLSIZE)
	end
	
	
-- Schieber LS
	if lsactive == 1 then
		local lsrange = lsrgmax - lsrgmin
		local lsangle = ((lschan+1024)*lsrange/2048)+lsrgmin
		
		if getValue(lss)==0 then
		lcd.drawText(vvorn+vvorns,voben+vobens*4,lsmeM .. " ",SMLSIZE)
		lcd.drawNumber(lcd.getLastPos()+15,voben+vobens*4,lsangle,SMLSIZE)
		lcd.drawText(lcd.getLastPos(),voben+vobens*4,lsrgb,SMLSIZE)
		elseif getValue(lss)==1024 then
		lcd.drawText(vvorn+vvorns,voben+vobens*4,lsmeU .. " ",SMLSIZE)
		lcd.drawNumber(lcd.getLastPos()+15,voben+vobens*4,lsangle,SMLSIZE)
		lcd.drawText(lcd.getLastPos(),voben+vobens*4,lsrgb,SMLSIZE)
		else
		lcd.drawText(vvorn+vvorns,voben+vobens*4,lsmeO .. " ",SMLSIZE)
		lcd.drawNumber(lcd.getLastPos()+15,voben+vobens*4,lsangle,SMLSIZE)
		lcd.drawText(lcd.getLastPos(),voben+vobens*4,lsrgb,SMLSIZE)		
		end
	end
	
-- Poti S1 (LS3)
		if ls3 < 0 then		
		lcd.drawText(vvorn+vvorns,voben+vobens*5,ls3Off,SMLSIZE)
		elseif ls3 > 0 then			
		lcd.drawText(vvorn+vvorns,voben+vobens*5,ls3On,SMLSIZE)
		else				
		lcd.drawText(vvorn+vvorns,voben+vobens*5,' ---',SMLSIZE)
	end
	

	

------- rechte Schalter (H,G,D,C,RS,S2)

-- Schalter H
		lcd.drawRectangle(vrechts-6,voben-1,4,8)
		if getValue(shs)==0 then
		lcd.drawText(vvorn2+vvorns2,voben,shmeM,SMLSIZE)
		elseif getValue(shs)==1024 then
		lcd.drawFilledRectangle(vrechts-5,voben+4, 2,2,0)
		lcd.drawText(vvorn2+vvorns2,voben,shmeU,SMLSIZE)
		else
		lcd.drawFilledRectangle(vrechts-5,voben, 2,2,0)		
		lcd.drawText(vvorn2+vvorns2,voben,shmeO,SMLSIZE)
	end


	
-- Schalter G
		lcd.drawRectangle(vrechts-6,voben+vobens-1,4,8)
		if getValue(sgs)==0 then
		lcd.drawFilledRectangle(vrechts-5,voben+vobens+2, 2,2,0)	
		lcd.drawText(vvorn2+vvorns2,voben+vobens,sgmeM,SMLSIZE)
		elseif getValue(sgs)==1024 then
		lcd.drawFilledRectangle(vrechts-5,voben+vobens+4, 2,2,0)
		lcd.drawText(vvorn2+vvorns2,voben+vobens,sgmeU,SMLSIZE)
		else
		lcd.drawFilledRectangle(vrechts-5,voben+vobens, 2,2,0)	
		lcd.drawText(vvorn2+vvorns2,voben+vobens,sgmeO,SMLSIZE)
	end
	

	
-- Schalter D
		lcd.drawRectangle(vrechts-6,voben+vobens*2-1,4,8)
		if getValue(sds)==0 then
		lcd.drawFilledRectangle(vrechts-5,voben+vobens*2+2, 2,2,0)	
		lcd.drawText(vvorn2+vvorns2,voben+vobens*2,sdmeM,SMLSIZE)
		elseif getValue(sds)==1024 then
		lcd.drawFilledRectangle(vrechts-5,voben+vobens*2+4, 2,2,0)
		lcd.drawText(vvorn2+vvorns2,voben+vobens*2,sdmeU,SMLSIZE)
		else
		lcd.drawFilledRectangle(vrechts-5,voben+vobens*2, 2,2,0)	
		lcd.drawText(vvorn2+vvorns2,voben+vobens*2,sdmeO,SMLSIZE)
	end
	
	
	
	
-- Schalter C
		lcd.drawRectangle(vrechts-6,voben+vobens*3-1,4,8)
		if getValue(scs)==0 then
		lcd.drawFilledRectangle(vrechts-5,voben+vobens*3+2, 2,2,0)	
		lcd.drawText(vvorn2+vvorns2,voben+vobens*3,scmeM,SMLSIZE)
		elseif getValue(scs)==1024 then
		lcd.drawFilledRectangle(vrechts-5,voben+vobens*3+4, 2,2,0)
		lcd.drawText(vvorn2+vvorns2,voben+vobens*3,scmeU,SMLSIZE)
		else
		lcd.drawFilledRectangle(vrechts-5,voben+vobens*3, 2,2,0)	
		lcd.drawText(vvorn2+vvorns2,voben+vobens*3,scmeO,SMLSIZE)
	end
	
	
-- Schieber RS
	if rsactive == 1 then
		local rsrange = rsrgmax - rsrgmin
		local rsangle = ((rschan+1024)*rsrange/2048)+rsrgmin
		
		if getValue(rss)==0 then
		lcd.drawText(vvorn2+vvorns2,voben+vobens*4,rsmeM .. " ",SMLSIZE)
		lcd.drawNumber(lcd.getLastPos()+15,voben+vobens*4,rsangle,SMLSIZE)
		lcd.drawText(lcd.getLastPos(),voben+vobens*4,rsrgb,SMLSIZE)
		elseif getValue(rss)==1024 then
		lcd.drawText(vvorn2+vvorns2,voben+vobens*4,rsmeU .. " ",SMLSIZE)
		lcd.drawNumber(lcd.getLastPos()+15,voben+vobens*4,rsangle,SMLSIZE)
		lcd.drawText(lcd.getLastPos(),voben+vobens*4,rsrgb,SMLSIZE)
		else
		lcd.drawText(vvorn2+vvorns2,voben+vobens*4,rsmeO .. " ",SMLSIZE)
		lcd.drawNumber(lcd.getLastPos()+15,voben+vobens*4,rsangle,SMLSIZE)
		lcd.drawText(lcd.getLastPos(),voben+vobens*4,rsrgb,SMLSIZE)		
		end
	end
	
	
-- Poti S2
	if s2active == 1 then 
		local s2range = s2rgmax - s2rgmin
		local s2angle = ((s2chan+1024)*s2range/2048)+s2rgmin
		
		if getValue(s2s)==0 then
		lcd.drawText(vvorn2+vvorns2,voben+vobens*5,s2meM .. " ",SMLSIZE)
		lcd.drawNumber(lcd.getLastPos()+15,voben+vobens*5,s2angle,SMLSIZE)
		lcd.drawText(lcd.getLastPos(),voben+vobens*5,s2rgb,SMLSIZE)
		elseif getValue(s2s)==1024 then
		lcd.drawText(vvorn2+vvorns2,voben+vobens*5,s2meM .. " ",SMLSIZE)
		lcd.drawNumber(lcd.getLastPos()+15,voben+vobens*5,s2angle,SMLSIZE)
		lcd.drawText(lcd.getLastPos(),voben+vobens*5,s2rgb,SMLSIZE)
		else
		lcd.drawText(vvorn2+vvorns2,voben+vobens*5,s2meM .. " ",SMLSIZE)
		lcd.drawNumber(lcd.getLastPos()+15,voben+vobens*5,s2angle,SMLSIZE)
		lcd.drawText(lcd.getLastPos(),voben+vobens*5,s2rgb,SMLSIZE)
		end
	end
	
	
	
	
	
	lcd.drawLine(vvorn-2, -2+voben+vobens, 210 ,-2+voben+vobens,  SOLID,  GREY_DEFAULT)		-- graue Trennlinie
	lcd.drawLine(vvorn-2, -2+voben+vobens*2, 210 ,-2+voben+vobens*2,  SOLID,  GREY_DEFAULT)	-- graue Trennlinie
	lcd.drawLine(vvorn-2, -2+voben+vobens*3, 210 ,-2+voben+vobens*3,  SOLID,  GREY_DEFAULT)	-- graue Trennlinie
	lcd.drawLine(vvorn-2, -2+voben+vobens*4, 210 ,-2+voben+vobens*4,  SOLID,  GREY_DEFAULT)	-- graue Trennlinie
	lcd.drawLine(vvorn-2, -2+voben+vobens*5, 210 ,-2+voben+vobens*5,  SOLID,  GREY_DEFAULT)	-- graue Trennlinie
	--lcd.drawLine(vvorn-2, -2+voben+vobens*6, 210 ,-2+voben+vobens*6,  SOLID,  GREY_DEFAULT)	-- graue Trennlinie	
	
end -- WICHTIG
return { run=run }
 
FPV1

Banggood

Oben Unten