OTX LUA Scripts zum testen

local currentVoltage = getValue(216) -- Akku Kopter
local senderVoltage = getValue(189) -- Akku Sender
local rssi = getValue(200) -- RSSI
local sat = getValue(209) -- Sat Anzahl
local fix = getValue(210) -- Sat Qualit‰t



-------------------------------------------
-- Definition Benutzerspezifische Daten --
-------------------------------------------
local batempty = 10.5 -- 0% der Tankanzeige
local batfull = 12.58 -- 100% der Tankanzeige



Das ist die Definition der Daten. Hmm....
 
Seltsam, ich habe es mal so geschrieben und dann kommt der Fehler nicht mehr...

local percent1 = ((currentVoltage - batempty) * 100) / (batfull - batempty) -- Prozent Kopterakku
local percent2 = ((senderVoltage - batempty) * 100) / (batfull - batempty) -- Prozent Senderakku
 
Und hier ist also die Lösung:

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

local percent1 = ((currentVoltage - batempty) * 100) / (batfull - batempty) -- Prozent Kopterakku
local percent2 = ((getValue(189) - senderBatempty) * 100) / (senderBatfull - senderBatempty) -- Prozent Senderakku

-- kein Akku angeschlossen oder Prozent Kopterakku < 0
if percent1 < 1 then
lcd.drawText(2, 41, "!!! AKKU !!!", MIDSIZE+BLINK)
end

-- Akku angeschlossen und über 0%
if percent1 > 0 then
lcd.drawNumber(3, 41, percent1, LEFT+MIDSIZE) -- Ausgabe Prozent Kopterakku
lcd.drawText(lcd.getLastPos(), 41, "%", MIDSIZE)
lcd.drawGauge(1, 41, 40, 12, percent1, 100) -- Ausgabe Prozentbalken
lcd.drawNumber(67,41, currentVoltage*10, MIDSIZE+PREC1) -- Ausgabe Absolutwert Kopterakku
end

lcd.drawNumber(3, 55, percent2, LEFT+0) -- Ausgabe Prozent Senderakku
lcd.drawText(lcd.getLastPos(), 55, "%", 0)
lcd.drawGauge(1, 54, 40, 9, percent2, 100) -- Ausgabe Prozentbalken
lcd.drawNumber(67,54, senderVoltage*10, 0+PREC1) -- Ausgabe Absolutwert Senderakku


Man muss oben im Script natürlich die Werte definieren, hier fehlte die Definition von senderbatfull und senderbatemty. Stattdessen wurde auf die Werte des Kopterakkus verwiesen.
 
Zuletzt bearbeitet:
Ich habe in meinem Lua-Skript auch eine Akkuanzeige eingebaut, siehe nachstehend.
Aber aufgrund der geringen Spannungsunterschiede, bzw. durch den Spannungsteiler und der internen Referenzspannung von 1,1 Volt, springt die Anzeige (Gauge) immer ein bisschen.
Besteht die Möglichkeit in Lua einen gleitenden Mittelwert zu bilden?
Für eine Rückantwort wäre ich sehr dankbar.

Gruß
Manfred

local batempty = 3.3 -- gibt den Wert an, bei dem die Lipocelle bei 3,3 Volt, also leer ist
local batfull = 4.15 -- gibt den Wert an, bei dem die Lipocelle bei 4,15 Volt, also voll ist

local percent = (getValue("cell-min")-batempty) * 100 / (batfull-batempty)

lcd.drawText(118, 4, "Lipo-Celle", SMLSIZE)
lcd.drawNumber(192, 4, percent, LEFT+SMLSIZE)
lcd.drawText(lcd.getLastPos(), 4, "%", SMLSIZE)
lcd.drawGauge(100, 2, 90, 11, percent, 100)
 

The Spirit

Erfahrener Benutzer
bin gerade auch dabei was mit lua zu machen.
welche parameter müssen die bilder erfüllen, damit ich sie darstellen kann?
und wie kann ich werte auf integer umwandeln?
bekomme die höhenangabe von meien frky vario mit nachkommastellen. will aber nur ganze zahlen anzeigen lassen. wie geht das?
danke
 
Zuletzt bearbeitet:

heikop

Erfahrener Benutzer
In der Simulation bei angezeigtem Telemtrieschirm F4 drücken, dann können Telemetriewerte
vorgegeben werden, das hat aber zumindest bei mirt keinen erkennbaren Einfluß auf die angezeigten Werte.
 
Es funktioniert sowohl unter windows 8.1 als auch unter linux mint. Man muss bei "simulate" einen Haken setzen und z.B. bei FasV für 22 V 2200 eintragen.

Grüße Horst
 

coolchaos

Erfahrener Benutzer
Hi Ihrs

Da kann wenigstens mal was einstellen und testen auch wenn man gerade
keinen Sensor zur Hand hat

Das war sonst immer recht S....... "aufwendig" meinte ich ...

Das Lua auf den Sender alles anschließen ...... warten bis die Werte zurückkommen und Stille stehen.

War schon nervig ..... aber nun ist es viel besser da nun auch die Sprache Funst :cool:
 

heikop

Erfahrener Benutzer
Es funktioniert sowohl unter windows 8.1 als auch unter linux mint. Man muss bei "simulate" einen Haken setzen und z.B. bei FasV für 22 V 2200 eintragen.

Grüße Horst
Das ist ja total bescheuert gemacht, V-FAS muß man in Hundertstel Volt eingeben, C-FAS in Zehntel Ampere, bei A1 ergibt Eingabe von 100 eine Anzeige von 5,17V, was soll das?:mad:
 
FPV1

Banggood

Oben Unten