------------------------------------------------------------------------------------------------ -- Dieses LUA-Script stellt die 9 Sensorsignale von 5 Jeti MT300 Modulen übersichtlich -- in drei Telemetrie-Fenstern da. -- -- -- -- Diese Software ist freigegeben unter MIT-Lizenz von Ingmar Grote -- IG-Development / IG-Modellbau (www.ig-development.de / www.ig-modellbau.de) ------------------------------------------------------------------------------------------------ local appName="IG_5xMT300" local SensorName1="MT-300" local SensorName2="MT-300" local SensorName3="MT-300" local sensorsAvailable = {} local sensorId1 local sensorId2 local sensorId3 local sensorId4 local sensorId5 local sensorId6 local sensorId7 local sensorId8 local sensorId9 local paramId1 local paramId2 local paramId3 local paramId4 local paramId5 local paramId6 local paramId7 local paramId8 local paramId9 local text1 local text2 local text3 local text4 local text5 local text6 local text7 local text8 local text9 local function ShowSensorValues1(width, height) local sValue="" local sensorData -- lcd.drawText(width - lcd.getTextWidth(FONT_BIG, "Test"), 0, "Test", FONT_BIG) -- lcd.drawText(width - lcd.getTextWidth(FONT_BIG, "Test"), 16, "Test", FONT_BIG) -- lcd.drawText(width - lcd.getTextWidth(FONT_BIG, "Test"), 32, "Test", FONT_BIG) -- lcd.drawText(width - lcd.getTextWidth(FONT_BIG, "Test"), 48, "Test", FONT_BIG) -- lcd.drawText(0, 0, "Test") -- lcd.drawText(0, 16, "Test", FONT_BOLD) -- lcd.drawText(0, 23, "Test", FONT_BIG) if(sensorId1 and paramId1) then sensorData = system.getSensorByID(sensorId1, paramId1) if(sensorData and sensorData.valid) then lcd.drawText(0, 0, text1, FONT_BOLD) sValue = string.format("%3.1f%s", sensorData.value, sensorData.unit) lcd.drawText(width - lcd.getTextWidth(FONT_BIG, sValue), 0, sValue, FONT_BIG) end end if(sensorId2 and paramId2) then sensorData = system.getSensorByID(sensorId2, paramId2) if(sensorData and sensorData.valid) then lcd.drawText(0, 16, text2, FONT_BOLD) sValue = string.format("%3.1f%s", sensorData.value, sensorData.unit) lcd.drawText(width - lcd.getTextWidth(FONT_BIG, sValue), 16, sValue, FONT_BIG) end end if(sensorId3 and paramId3) then sensorData = system.getSensorByID(sensorId3, paramId3) if(sensorData and sensorData.valid) then lcd.drawText(0, 32, text3, FONT_BOLD) sValue = string.format("%3.1f%s", sensorData.value, sensorData.unit) lcd.drawText(width - lcd.getTextWidth(FONT_BIG, sValue), 32, sValue, FONT_BIG) end end if(sensorId4 and paramId4) then sensorData = system.getSensorByID(sensorId4, paramId4) if(sensorData and sensorData.valid) then lcd.drawText(0, 48, text4, FONT_BOLD) sValue = string.format("%3.1f%s", sensorData.value, sensorData.unit) lcd.drawText(width - lcd.getTextWidth(FONT_BIG, sValue), 48, sValue, FONT_BIG) end end end local function ShowSensorValues2(width, height) local sValue=0 local sensorData if(sensorId5 and paramId5) then sensorData = system.getSensorByID(sensorId5, paramId5) if(sensorData and sensorData.valid) then lcd.drawText(0, 0, text5, FONT_BOLD) sValue = string.format("%3.1f%s", sensorData.value, sensorData.unit) lcd.drawText(width - lcd.getTextWidth(FONT_BIG, sValue), 0, sValue, FONT_BIG) end end if(sensorId6 and paramId6) then sensorData = system.getSensorByID(sensorId6, paramId6) if(sensorData and sensorData.valid) then lcd.drawText(0, 16, text6, FONT_BOLD) sValue = string.format("%3.1f%s", sensorData.value, sensorData.unit) lcd.drawText(width - lcd.getTextWidth(FONT_BIG, sValue), 16, sValue, FONT_BIG) end end if(sensorId7 and paramId7) then sensorData = system.getSensorByID(sensorId7, paramId7) if(sensorData and sensorData.valid) then lcd.drawText(0, 32, text7, FONT_BOLD) sValue = string.format("%3.1f%s", sensorData.value, sensorData.unit) lcd.drawText(width - lcd.getTextWidth(FONT_BIG, sValue), 32, sValue, FONT_BIG) end end if(sensorId8 and paramId8) then sensorData = system.getSensorByID(sensorId8, paramId8) if(sensorData and sensorData.valid) then lcd.drawText(0, 48, text8, FONT_BOLD) sValue = string.format("%3.1f%s", sensorData.value, sensorData.unit) lcd.drawText(width - lcd.getTextWidth(FONT_BIG, sValue), 48, sValue, FONT_BIG) end end end local function ShowSensorValues3(width, height) local sValue=1 local sensorData if(sensorId9 and paramId9) then sensorData = system.getSensorByID(sensorId9, paramId9) if(sensorData and sensorData.valid) then lcd.drawText(0, 0, text9, FONT_BOLD) sValue = string.format("%3.1f%s", sensorData.value, sensorData.unit) lcd.drawText(width - lcd.getTextWidth(FONT_BIG, sValue), 0, sValue, FONT_BIG) end end end local function sensorChanged1(value) sensorId1=sensorsAvailable[value].id paramId1=sensorsAvailable[value].param system.pSave("sensor1",sensorId1) system.pSave("param1",paramId1) end local function sensorChanged2(value) sensorId2=sensorsAvailable[value].id paramId2=sensorsAvailable[value].param system.pSave("sensor2",sensorId2) system.pSave("param2",paramId2) end local function sensorChanged3(value) sensorId3=sensorsAvailable[value].id paramId3=sensorsAvailable[value].param system.pSave("sensor3",sensorId3) system.pSave("param3",paramId3) end local function sensorChanged4(value) sensorId4=sensorsAvailable[value].id paramId4=sensorsAvailable[value].param system.pSave("sensor4",sensorId4) system.pSave("param4",paramId4) end local function sensorChanged5(value) sensorId5=sensorsAvailable[value].id paramId5=sensorsAvailable[value].param system.pSave("sensor5",sensorId5) system.pSave("param5",paramId5) end local function sensorChanged6(value) sensorId6=sensorsAvailable[value].id paramId6=sensorsAvailable[value].param system.pSave("sensor6",sensorId6) system.pSave("param6",paramId6) end local function sensorChanged7(value) sensorId7=sensorsAvailable[value].id paramId7=sensorsAvailable[value].param system.pSave("sensor7",sensorId7) system.pSave("param7",paramId7) end local function sensorChanged8(value) sensorId8=sensorsAvailable[value].id paramId8=sensorsAvailable[value].param system.pSave("sensor8",sensorId8) system.pSave("param8",paramId8) end local function sensorChanged9(value) sensorId9=sensorsAvailable[value].id paramId9=sensorsAvailable[value].param system.pSave("sensor9",sensorId9) system.pSave("param9",paramId9) end local function textChanged1(value) text1=value system.pSave("text1",text1) end local function textChanged2(value) text2=value system.pSave("text2",text2) end local function textChanged3(value) text3=value system.pSave("text3",text3) end local function textChanged4(value) text4=value system.pSave("text4",text4) end local function textChanged5(value) text5=value system.pSave("text5",text5) end local function textChanged6(value) text6=value system.pSave("text6",text6) end local function textChanged7(value) text7=value system.pSave("text7",text7) end local function textChanged8(value) text8=value system.pSave("text8",text8) end local function textChanged9(value) text9=value system.pSave("text9",text9) end local function initForm(formID) sensorsAvailable = {} local available = system.getSensors(); local list={} local curIndex1=-1 local curIndex2=-1 local curIndex3=-1 local curIndex4=-1 local curIndex5=-1 local curIndex6=-1 local curIndex7=-1 local curIndex8=-1 local curIndex9=-1 local descr = "" for index,sensor in ipairs(available) do if(sensor.param == 0) then descr = sensor.label else if((descr == SensorName1) or (descr == SensorName2) or (descr == SensorName3)) then list[#list+1]=string.format("%s - %s [%s]", descr, sensor.label, sensor.unit) sensorsAvailable[#sensorsAvailable+1] = sensor if(sensor.id==sensorId1 and sensor.param==paramId1) then curIndex1=#sensorsAvailable end if(sensor.id==sensorId2 and sensor.param==paramId2) then curIndex2=#sensorsAvailable end if(sensor.id==sensorId3 and sensor.param==paramId3) then curIndex3=#sensorsAvailable end if(sensor.id==sensorId4 and sensor.param==paramId4) then curIndex4=#sensorsAvailable end if(sensor.id==sensorId5 and sensor.param==paramId5) then curIndex5=#sensorsAvailable end if(sensor.id==sensorId6 and sensor.param==paramId6) then curIndex6=#sensorsAvailable end if(sensor.id==sensorId7 and sensor.param==paramId7) then curIndex7=#sensorsAvailable end if(sensor.id==sensorId8 and sensor.param==paramId8) then curIndex8=#sensorsAvailable end if(sensor.id==sensorId9 and sensor.param==paramId9) then curIndex9=#sensorsAvailable end end end end form.addLabel({label="Select MT300 Sensors", font=FONT_BIG}) form.addLabel({label="Window-1: Text / Sensor", font=FONT_NORMAL}) form.addRow(3) form.addLabel({label="1:", width=30}) form.addTextbox(text1, 10, textChanged1, {width=100}) form.addSelectbox (list, curIndex1, true, sensorChanged1, {width=200}) form.addRow(3) form.addLabel({label="2:",width=30}) form.addTextbox(text2, 10, textChanged2, {width=100}) form.addSelectbox (list, curIndex2, true, sensorChanged2, {width=200}) form.addRow(3) form.addLabel({label="3:",width=30}) form.addTextbox(text3, 10, textChanged3, {width=100}) form.addSelectbox (list, curIndex3, true, sensorChanged3, {width=200}) form.addRow(3) form.addLabel({label="4:",width=30}) form.addTextbox(text4, 10, textChanged4, {width=100}) form.addSelectbox (list, curIndex4, true, sensorChanged4, {width=200}) form.addLabel({label="Window-2: Text / Sensor", font=FONT_NORMAL}) form.addRow(3) form.addLabel({label="1:", width=30}) form.addTextbox(text5, 10, textChanged5, {width=100}) form.addSelectbox (list, curIndex5, true, sensorChanged5, {width=200}) form.addRow(3) form.addLabel({label="2:",width=30}) form.addTextbox(text6, 10, textChanged6, {width=100}) form.addSelectbox (list, curIndex6, true, sensorChanged6, {width=200}) form.addRow(3) form.addLabel({label="3:",width=30}) form.addTextbox(text7, 10, textChanged7, {width=100}) form.addSelectbox (list, curIndex7, true, sensorChanged7, {width=200}) form.addRow(3) form.addLabel({label="4:",width=30}) form.addTextbox(text8, 10, textChanged8, {width=100}) form.addSelectbox (list, curIndex8, true, sensorChanged8, {width=200}) form.addLabel({label="Window-3: Text / Sensor", font=FONT_NORMAL}) form.addRow(3) form.addLabel({label="1:", width=30}) form.addTextbox(text9, 10, textChanged9, {width=100}) form.addSelectbox (list, curIndex9, true, sensorChanged9, {width=200}) end local function keyPressed(key) end local function printForm() end local function init() sensorId1 = system.pLoad("sensor1") sensorId2 = system.pLoad("sensor2") sensorId3 = system.pLoad("sensor3") sensorId4 = system.pLoad("sensor4") sensorId5 = system.pLoad("sensor5") sensorId6 = system.pLoad("sensor6") sensorId7 = system.pLoad("sensor7") sensorId8 = system.pLoad("sensor8") sensorId9 = system.pLoad("sensor9") paramId1 = system.pLoad("param1") paramId2 = system.pLoad("param2") paramId3 = system.pLoad("param3") paramId4 = system.pLoad("param4") paramId5 = system.pLoad("param5") paramId6 = system.pLoad("param6") paramId7 = system.pLoad("param7") paramId8 = system.pLoad("param8") paramId9 = system.pLoad("param9") text1 = system.pLoad("text1", "Zeile1") text2 = system.pLoad("text2", "Zeile2") text3 = system.pLoad("text3", "Zeile3") text4 = system.pLoad("text4", "Zeile4") text5 = system.pLoad("text5", "Zeile1") text6 = system.pLoad("text6", "Zeile2") text7 = system.pLoad("text7", "Zeile3") text8 = system.pLoad("text8", "Zeile4") text9 = system.pLoad("text9", "Zeile1") system.registerForm(1, MENU_TELEMETRY, appName, initForm, keyPressed, printForm); system.registerTelemetry(1, "IG_5xMT300-1", 0, ShowSensorValues1) system.registerTelemetry(2, "IG_5xMT300-2", 0, ShowSensorValues2) system.registerTelemetry(3, "IG_5xMT300-3", 0, ShowSensorValues3) end -------------------------------------------------------------------------------- return {init=init, author="IG-Modellbau", version="0.4", name=appName}