Hallo Leute
ich habe nur den FrSky FLVSS Sensor an einem X6R und möchte gern die Gesamtspannung in einem LUA Skript darstellen. Das geht aber leider nicht und führt zum Fehler beim Skript. "Cmin", "Cdif" und Einzelzellen geht aber.
Ich verwende OpenTX 2.1.
Hier mal mein kleines Script mit Fehler:
local cellValue = "unknown"
local cellResult = nil
local cellID = nil
local function getTelemetryId(name)
field = getFieldInfo(name)
if field then
return field.id
else
return -1
end
end
local function init()
cellId = getTelemetryId("Cels")
end
local function background()
cellResult = getValue(cellId)
if (type(cellResult) == "table") then
cellValue = ""
for i, v in ipairs(cellResult) do
cellValue = cellValue .. i .. ": " .. v .. " "
end
else
cellValue = "telemetry not available"
end
end
local function run(e)
background()
lcd.clear()
lcd.drawText(1,1,"OpenTX 2.1 cell voltage example",0)
lcd.drawText(1,11,"Cels:", 0)
lcd.drawText(lcd.getLastPos()+2,11,cellValue,0)
local celsid = getTelemetryId("Cels")
lcd.drawText(38,25, "Cels: ",SMLSIZE)
lcd.drawText(lcd.getLastPos(), 25, getValue(celsid), SMLSIZE)
lcd.drawText(lcd.getLastPos(), 25, 'V', 0)
local cminid = getTelemetryId("Cmin")
lcd.drawText(38,40, "Cmin: ",SMLSIZE)
lcd.drawText(lcd.getLastPos(), 40, getValue(cminid), SMLSIZE)
lcd.drawText(lcd.getLastPos(), 40, 'V', 0)
local cdifid = getTelemetryId("Cdif")
lcd.drawText(38,55, "Cdif: ",SMLSIZE,0)
lcd.drawText(lcd.getLastPos(), 55, getValue(cdifid), SMLSIZE)
lcd.drawText(lcd.getLastPos(), 55, 'V', 0)
end
return{init=init,run=run,background=background}
Der Fehler liegt in der Zeile:
lcd.drawText(lcd.getLastPos(), 25, getValue(celsid), SMLSIZE)
Wenn ich die Zeile deaktiviere, geht der Rest. (Siehe Anhang)
In der Taranis wird die Gesamtspannung beim Sensor "Cels" richtig angezeigt.
Und ich habe noch ein 2. Problem. In einem anderen Skript verwende ich diese Zeilen um den Strom darzustellen.
local currentid = getTelemetryId("Curr")
lcd.drawText(38,45, "Curr: ",SMLSIZE)
lcd.drawText(lcd.getLastPos(), 41, getValue(currentid), MIDSIZE)
lcd.drawText(lcd.getLastPos(), 45, 'A', 0)
Dabei wird auch der Strom angezeigt, aber es werden oft sehr vielen Stellen hinter dem Komma angezeigt. In der Sensoreinstellung in der Taranis ist der Strom aber mit nur einer Stelle nach dem Komma eingestellt und angezeigt (so wie ich es will). Woran kann das liegen? Oder kann man irgendwie die Stellen nach dem Komma begrenzen?
Ich hoffe, jemand kann mir helfen.
Gruß Stefan
ich habe nur den FrSky FLVSS Sensor an einem X6R und möchte gern die Gesamtspannung in einem LUA Skript darstellen. Das geht aber leider nicht und führt zum Fehler beim Skript. "Cmin", "Cdif" und Einzelzellen geht aber.
Ich verwende OpenTX 2.1.
Hier mal mein kleines Script mit Fehler:
local cellValue = "unknown"
local cellResult = nil
local cellID = nil
local function getTelemetryId(name)
field = getFieldInfo(name)
if field then
return field.id
else
return -1
end
end
local function init()
cellId = getTelemetryId("Cels")
end
local function background()
cellResult = getValue(cellId)
if (type(cellResult) == "table") then
cellValue = ""
for i, v in ipairs(cellResult) do
cellValue = cellValue .. i .. ": " .. v .. " "
end
else
cellValue = "telemetry not available"
end
end
local function run(e)
background()
lcd.clear()
lcd.drawText(1,1,"OpenTX 2.1 cell voltage example",0)
lcd.drawText(1,11,"Cels:", 0)
lcd.drawText(lcd.getLastPos()+2,11,cellValue,0)
local celsid = getTelemetryId("Cels")
lcd.drawText(38,25, "Cels: ",SMLSIZE)
lcd.drawText(lcd.getLastPos(), 25, getValue(celsid), SMLSIZE)
lcd.drawText(lcd.getLastPos(), 25, 'V', 0)
local cminid = getTelemetryId("Cmin")
lcd.drawText(38,40, "Cmin: ",SMLSIZE)
lcd.drawText(lcd.getLastPos(), 40, getValue(cminid), SMLSIZE)
lcd.drawText(lcd.getLastPos(), 40, 'V', 0)
local cdifid = getTelemetryId("Cdif")
lcd.drawText(38,55, "Cdif: ",SMLSIZE,0)
lcd.drawText(lcd.getLastPos(), 55, getValue(cdifid), SMLSIZE)
lcd.drawText(lcd.getLastPos(), 55, 'V', 0)
end
return{init=init,run=run,background=background}
Der Fehler liegt in der Zeile:
lcd.drawText(lcd.getLastPos(), 25, getValue(celsid), SMLSIZE)
Wenn ich die Zeile deaktiviere, geht der Rest. (Siehe Anhang)
In der Taranis wird die Gesamtspannung beim Sensor "Cels" richtig angezeigt.
Und ich habe noch ein 2. Problem. In einem anderen Skript verwende ich diese Zeilen um den Strom darzustellen.
local currentid = getTelemetryId("Curr")
lcd.drawText(38,45, "Curr: ",SMLSIZE)
lcd.drawText(lcd.getLastPos(), 41, getValue(currentid), MIDSIZE)
lcd.drawText(lcd.getLastPos(), 45, 'A', 0)
Dabei wird auch der Strom angezeigt, aber es werden oft sehr vielen Stellen hinter dem Komma angezeigt. In der Sensoreinstellung in der Taranis ist der Strom aber mit nur einer Stelle nach dem Komma eingestellt und angezeigt (so wie ich es will). Woran kann das liegen? Oder kann man irgendwie die Stellen nach dem Komma begrenzen?
Ich hoffe, jemand kann mir helfen.
Gruß Stefan
Anhänge
-
29,1 KB Aufrufe: 24