pátek 23. ledna 2015

ako načítať z konfigurácie Taranisa hodnotu alarm1 a alarm2 pre A1 a A2

lubo1: Poradí niekto ako načítať z konfigurácie Taranisa hodnotu alarm1 a alarm2 pre A1 a A2.
Niečo som našiel - načítava sa pole hodnôt, ale neako mi to nepremáva.......
Potrebujem vyhodnotiť hodnotu alarm2 ....

Už som to vyriešil....
Kód:
local setalarm = {range, offset, alarm1, alarm2 , unit}
   setalarm = model.getTelemetryChannel(0)   --get channel info
local batvolt =setalarm.alarm1*100
lcd.drawNumber(60, 48, batvolt, MIDSIZE+PREC2)



.......TelemetryChannel(0) je A1 ........TelemetryChannel(1) je A2..... setalarm.alarm1 je alarm 1 setalarm.alarm2 je alarm2...... Keďže používam večšinou A1 príjmača na prenos napetia pohonnej batérie - potrebujem kontrolovať Alarm1 a alarm2.....

Upravená rutina na načítanie konfigu A1 a A2

Kód:
-----------------------------------------------------------------------
-- tu sa nacita  hodnota A1 LOW A1 Crit A2 Low A2 Crit
local setalarm = {range, offset, alarm1, alarm2 , unit} -- definicia praazdnej premennej typu pole
setalarm = model.getTelemetryChannel(0)   --naplnenie pola z konfigu kanalu A1
local A1AlarmLow =setalarm.alarm1 *100   --hodnota A1 Low *100
local A1AlarmCrit =setalarm.alarm2*100   -- hodnota A1 Crit *100
setalarm = model.getTelemetryChannel(1)   -- naplnenie pola z konfigu kanalu A2
local A2AlarmLow =setalarm.alarm1*100   -- naplnenie A2 Low *100
local A2AlarmCrit =setalarm.alarm2*100   -- naplnenie A2 Crit *100
-----------------------------------------------------------------------


na vypísanie hodnôt A1 Low potom stačí

Kód:
lcd.drawNumber(30, 48, A1AlarmLow, MIDSIZE+PREC2+LEFT)

analogicky A2AlarmLow, prípadne A1AlarmCrit....
Načo to bude dobré?
Napetie pohonného akumulátora prenášam cez A1 - ale to isté môže platiť pre iný prenos....
Napetie aku bude zobrazované cez BarGraf - maximum je jesné = 4.2*pocclankov
minimum ale nebude na napeti nula, ale na minimalnom vycerpatelnom -
povedzme 3,3V* pocclankov - čiže u dvojčlánku 6,6V bude bargraf na nule
analogicky bude 3,5V*poccla A1Low - tam bude na Bargrafe značka rezervy
Takto to mám nastavené v rádiu a hlási mi to alarmLow a AlarmCrit... údaj na displeji by mal byť nastavený rovnako
Edit:
Využívam len A1/A2.... ale analogicky sa dá načítať konfg pre A3/A4....


tak je možno skúsať .....
Samotný telemetrický Script nič neriadi - len robí uživateľské zobrazenie hodnôt z telemetrie. Pôvodné funkcie telemetrie ostávajú nezmenené.... Script pridáva funkcie navyše. Obrazoviek môžeme pridať viacero - každá môže mať inú funkcionalitu.......

Kód:
-- tu bude deklaracia premennych pre dany model
  local CellNum =2
local Akanal = 1   --kanal A1=1, A2=2 A3=3 A4=4
local altPos=0
local riadMax = 0 --34 max vyska
local stlpMax = 2
local riadVyska=5   -- riadok kde sa vypise udaj vyska
local stlpVyska = 192 -- koniec vysky - vykresluje sa dolava
local riadA1v = 50 -- riadok na ktorom bude A1
local stlpecKonca = 192 -- koniec bargrafu - ostatne pozicie sa dopocitaju
local riadRssi = 32
local stlpRssi = 9
local riadTxBat = 22   -- ak bude riadok 0 - nebude sa TXbat zobrazovat
local stlpTxBat = 9   -- stlpec odkial sa vykresli TXbat
local riadTimer = 2   -- ak bude riadok 0 - nebude sa timer zobrazovat
local stlpTimer = 1   -- stlpec odkial sa vykresli Timer

Příloha:
screenshot-1.png


Takto vyzerá telemetrický panel......
Příloha:
IMG_20150125_195657.jpg


Příloha:
corel.jpg


Takto vyzerá umiestnenie súboru v Taranise. Pokiaľ sa jedná o telemtriu - súbor sa nahráva do taranisu - do podadresára disk\SCRIPTS\nazov_modelu\telem1.lua
Číslo v názve označuje poradie obrazoviek. Ak je telem0 -po spustení telemetrie sa otvorí táto obrazovka ako prvá.... Ak je telem1 - prepne sa obrazovka ako druhá......

Meranie pohonneho aku mám pripojené cez analogove vstupy.
V súbore sa vstup vyberá v premennej local Akanal = 1 --kanal A1=1, A2=2 A3=3 A4=4
Výpočet počtu článkov sa mi neako nepáčil a zatiaľ som lepší nestvoril... v súbore je preto treba vybrať počet článkov v položke local CellNum =2
Časom dorobím aj autodetekciu.....
V premennej local riadRssi = 32 local stlpRssi = 9 je riadok a stlpec, kde bude zobrazené meranie RSSI... Ak zadám riadRssi=0 potom nebude meranie RSSI vôbec zobrazené.
Rozloženie položiek môžeme urobiť na jednom mieste....
Ak sú otázky, alebo pripomienky - sem s nimi......

Přílohy:
telem1.rar

Verzia 1.1 môjho Scriptu - nainštalovať do podadresára SCRIPTS\nazov_modelu\telem1
Je upravene odkazovanie umiestňovania výpisov - odstranenie príkazov lcd.getLastPos(). Bol problém s formatovaním výpisov.....

Přílohy:
telem1.rar