--IG 20220615 --LD 20220615 local timeQlow = system.getTimeCounter() -- Zeitpunkt in Sekunden bei dem der Q-Wert unter die 10% Schwelle gefallen ist local severityQlow = 0 -- Schweregrad für tiefen Q-Wert (1 bis 3). Je länger der Q-Wert unterhalb der 10% Schwelle liegt desto grösser wird der Schweregrad. local timeoutQlow = {1000, 2000, 2000} -- Der erste Alarm wird ausgelöst wenn der Q-Wert 1 Sekunde lang unter 10% ist. Der zweite Alarm wird ausgelöst wenn der Q-Wert weitere 2 Sekunden (insgesamt 3 Sekunden) lang unter 10% ist. Der dritte Alarm wird ausgelöst wenn der Q-Wert nochmals weitere 2 Sekunden (insgesamt 5 Sekunden) lang unter 10% ist und wiederholt sich alle 2 Sekunden. local sumQ = 0 local sumQcounter = 0 local function printAverageQ(w, h) lcd.drawNumber(5, 0, sumQ/sumQcounter, FONT_BIG) end local function loop() local txTel = system.getTxTelemetry() local rx1Q = txTel.rx1Percent local timeNow = system.getTimeCounter() if (rx1Q > 0.1) then timeQlow = timeNow severityQlow = 0 elseif timeNow - timeQlow >= timeoutQlow[severityQlow+1] then system.playBeep(severityQlow, 5000, 20) system.playSystemSound(SOUND_LOWQ) severityQlow = math.min(severityQlow + 1, 2) timeQlow = timeNow end sumQ = sumQ + rx1Q sumQcounter = sumQcounter + 1 end local function init() system.registerTelemetry(1,"Average Q",1,printAverageQ) end return {init=init, loop=loop, version="0.20", name="Qlow"}