--[[ --------------------------------------------------------- --]] collectgarbage() ---------------------------------------------------------------------- -- Locals for the application local gyrowert = "" local wert2, wert3 = "", "" local GyroOffset, Wert2Offset, Wert3Offset = 0, 0, 0 local GyroFaktor, Wert2Faktor, Wert3Faktor = 0, 0, 0 local GyroServo, Wert2Servo, Wert3Servo = 1, 1, 1 local NameWert2, NameWert3 = "", "" ---------------------------------------------------------------------- -------------------------------------------------------------------------------- -- Draw telemetry-window local function printgyrowert() lcd.drawText(5,0,gyrowert,FONT_BIG) lcd.drawText(75 - (math.floor(lcd.getTextWidth(FONT_BIG,wert2)/2)),0,wert2,FONT_BIG) lcd.drawText(145 - lcd.getTextWidth(FONT_BIG,wert3),0,wert3,FONT_BIG) end local function GyroServoChanged(value) GyroServo = value system.pSave("GyroServo",value) end local function GyroFaktorChanged(value) GyroFaktor = value system.pSave("GyroFaktor",value) end local function GyroOffsetChanged(value) GyroOffset = value system.pSave("GyroOffset",value) end local function NameWert2Changed(value) NameWert2 = value system.pSave("NameWert2",value) end local function Wert2ServoChanged(value) Wert2Servo = value system.pSave("Wert2Servo",value) end local function Wert2FaktorChanged(value) Wert2Faktor = value system.pSave("Wert2Faktor",value) end local function Wert2OffsetChanged(value) Wert2Offset = value system.pSave("Wert2Offset",value) end local function NameWert3Changed(value) NameWert3 = value system.pSave("NameWert3",value) end local function Wert3ServoChanged(value) Wert3Servo = value system.pSave("Wert3Servo",value) end local function Wert3FaktorChanged(value) Wert3Faktor = value system.pSave("Wert3Faktor",value) end local function Wert3OffsetChanged(value) Wert3Offset = value system.pSave("Wert3Offset",value) end ---------------------------------------------------------------------- -- Draw the main form (Application inteface) local function initForm() form.addRow(2) form.addLabel({label="Gyro Servo:"}) form.addIntbox(GyroServo, 0, 24, 1, 0, 1, GyroServoChanged) form.addRow(2) form.addLabel({label="Gyro Offset:"}) form.addIntbox(GyroOffset, -200, 200, 0, 0, 1, GyroOffsetChanged) form.addRow(2) form.addLabel({label="Gyro Faktor:"}) form.addIntbox(GyroFaktor, 0, 2000, 0, 3, 1, GyroFaktorChanged) form.addRow(2) form.addLabel({label="Wert2 Name:"}) form.addTextbox(NameWert2, 8, NameWert2Changed) form.addRow(2) form.addLabel({label="Wert2 Servo:"}) form.addIntbox(Wert2Servo, 0, 24, 1, 0, 1, Wert2ServoChanged) form.addRow(2) form.addLabel({label="Wert2 Offset:"}) form.addIntbox(Wert2Offset, -200, 200, 0, 0, 1, Wert2OffsetChanged) form.addRow(2) form.addLabel({label="Wert2 Faktor:"}) form.addIntbox(Wert2Faktor, 0, 2000, 0, 3, 1, Wert2FaktorChanged) form.addRow(2) form.addLabel({label="Wert3 Name:"}) form.addTextbox(NameWert3, 8, NameWert3Changed) form.addRow(2) form.addLabel({label="Wert3 Servo:"}) form.addIntbox(Wert3Servo, 0, 24, 1, 0, 1, Wert3ServoChanged) form.addRow(2) form.addLabel({label="Wert3 Offset:"}) form.addIntbox(Wert3Offset, -200, 200, 0, 0, 1, Wert3OffsetChanged) form.addRow(2) form.addLabel({label="Wert3 Faktor:"}) form.addIntbox(Wert3Faktor, 0, 2000, 0, 3, 1, Wert3FaktorChanged) collectgarbage() end ---------------------------------------------------------------------- -- Runtime functions local function loop() gyrowert = string.format("%2d",math.floor(GyroOffset + (GyroFaktor/10 * system.getInputs("O"..GyroServo)) + 0.5)) if Wert2Servo > 0 then wert2 = string.format("%2d",math.floor(Wert2Offset + (Wert2Faktor/10 * system.getInputs("O"..Wert2Servo)) + 0.5)) else wert2 = "" end if Wert3Servo > 0 then wert3 = string.format("%2d",math.floor(Wert3Offset + (Wert3Faktor/10 * system.getInputs("O"..Wert3Servo)) + 0.5)) else wert3 = "" end collectgarbage() end ---------------------------------------------------------------------- -- Application initialization local function init() local l1, l2, l3, x1 = 0, 0, 0, 3 system.registerForm(1,MENU_APPS,"Stabiwertrechner",initForm) GyroOffset = system.pLoad("GyroOffset",100) GyroServo = system.pLoad("GyroServo",9) GyroFaktor = system.pLoad("GyroFaktor", 1000) NameWert2 = system.pLoad("NameWert2","") Wert2Offset = system.pLoad("Wert2Offset",100) Wert2Servo = system.pLoad("Wert2Servo",10) Wert2Faktor = system.pLoad("Wert2Faktor", 1000) NameWert3 = system.pLoad("NameWert3","") Wert3Offset = system.pLoad("Wert3Offset",100) Wert3Servo = system.pLoad("Wert3Servo",11) Wert3Faktor = system.pLoad("Wert3Faktor", 1000) l1 = lcd.getTextWidth(FONT_MINI,"GyroGain") l2 = lcd.getTextWidth(FONT_MINI,NameWert2) l3 = lcd.getTextWidth(FONT_MINI,NameWert3) leer2 = math.floor((72 - l1 - l2/2)/x1) leer3 = math.floor((143 - l1 - l2 - l3)/x1) - leer2 FensterName = "GyroGain"..string.rep(" ",leer2)..NameWert2..string.rep(" ",leer3)..NameWert3 system.registerTelemetry(1,FensterName,1,printgyrowert) collectgarbage() end ---------------------------------------------------------------------- collectgarbage() return {init=init, loop=loop, author="db", version="1.0", name="Stabiwertrechner"}