OpenTX LUA scripting

Všechno co souvisí s modelářskými vysílači, výběr, programování, napájení
Odpovědět
Zpráva
Autor
mgx
Příspěvky: 121
Registrován: stř 24.04.2013 8:15
Bydliště: Banska Bystrica

Re: OpenTX LUA scripting

#31 Příspěvek od mgx »

hod sem skript kde to mas
Uživatelský avatar
lubo1
Příspěvky: 5094
Registrován: pát 11.04.2008 0:00
Bydliště: CA
Kontaktovat uživatele:

Re: OpenTX LUA scripting

#32 Příspěvek od lubo1 »

mgx píše:hod sem skript kde to mas

Už som to vyriešil....

Kód: Vybrat vše

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.....
http://lubo111.rajce.idnes.cz
Uživatelský avatar
lubo1
Příspěvky: 5094
Registrován: pát 11.04.2008 0:00
Bydliště: CA
Kontaktovat uživatele:

Re: OpenTX LUA scripting

#33 Příspěvek od lubo1 »

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

Kód: Vybrat vše

-----------------------------------------------------------------------
-- 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: Vybrat vše

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....
http://lubo111.rajce.idnes.cz
Uživatelský avatar
lubo1
Příspěvky: 5094
Registrován: pát 11.04.2008 0:00
Bydliště: CA
Kontaktovat uživatele:

Re: OpenTX LUA scripting

#34 Příspěvek od lubo1 »

Neako je tu mrtvo.... Nikto nič nemá hotové???
Ja už dokončujem....... snáď to sem hodím večer. Ale už mi to prestáva myslieť....
http://lubo111.rajce.idnes.cz
Uživatelský avatar
lubo1
Příspěvky: 5094
Registrován: pát 11.04.2008 0:00
Bydliště: CA
Kontaktovat uživatele:

Re: OpenTX LUA scripting

#35 Příspěvek od lubo1 »

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: Vybrat vše

 -- 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

screenshot-1.png
screenshot-1.png (1.55 KiB) Zobrazeno 4137 x

Takto vyzerá telemetrický panel......
IMG_20150125_195657.jpg

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
(2.84 KiB) Staženo 247 x
http://lubo111.rajce.idnes.cz
mgx
Příspěvky: 121
Registrován: stř 24.04.2013 8:15
Bydliště: Banska Bystrica

Re: OpenTX LUA scripting

#36 Příspěvek od mgx »

myslim si, ze na serioznu autodetekciu poctu clankov by si potreboval z modelu info o napati clankov, inak nie je sanca to urobit. moze sa stat ze podbity trojclanok (napr. 8V) das do modelu a skript to vyhodnoti ako dvojclanok v dobrom stave.

ak pouzivas v jednom modeli len stale rovnaky pocet clankov, je najlepsie riesenie nastavit pocet clankov v konstante priamo v skripte. tak ci tak musis skript rucne nakopirovat do dalsieho modelu, upravit hodnotu predsa nemoze byt problem.

sorry ja som sa k tomu nevedel dokopat (zvlast ked momentalne nelietam), skriptovania mam dost v robote ... :( ale ked sa do cca 2 tyzdnov dokopem, budeme az dvaja
Uživatelský avatar
Drondys
Příspěvky: 11876
Registrován: pon 22.02.2010 0:00
Bydliště: ČR

Re: OpenTX LUA scripting

#37 Příspěvek od Drondys »

mgx píše:myslim si, ze na serioznu autodetekciu poctu clankov by si potreboval z modelu info o napati clankov...

K tomu sloužií telemetrický senzor FLVSS viz tento odkaz, který měří napětí jednotlivých článků i celkové napětí.
mgx
Příspěvky: 121
Registrován: stř 24.04.2013 8:15
Bydliště: Banska Bystrica

Re: OpenTX LUA scripting

#38 Příspěvek od mgx »

Drondys píše:K tomu sloužií telemetrický senzor FLVSS viz tento odkaz, který měří napětí jednotlivých článků i celkové napětí.


tato informacia mi bola znama v case pisania prispevku. cielom je urobit univerzalny telemetricky skript, ktory nepredpoklada, ze tymto senzorom disponuju vsetci
Uživatelský avatar
lubo1
Příspěvky: 5094
Registrován: pát 11.04.2008 0:00
Bydliště: CA
Kontaktovat uživatele:

Re: OpenTX LUA scripting

#39 Příspěvek od lubo1 »

Tak som zase narazil na neaké "vychytávky".....
pokiaľ vypisujeme číslo, alebo hodnotu, prípadne Channell - Taranis vypisuje od aktualnej pozicie vľavo (ľavá 150ka) a ak dáme do atributu LEFT - potom sa vypisuje od danej pozície vpravo(pravá 160ka).... Ak o tom človek vie - nieje problém.....

Kód: Vybrat vše

local function run(event)
local leftnumber=150
local rightnumber=160
lcd.drawRectangle(100, 1, 2, 50)
lcd.drawNumber(100, 10, leftnumber ,MIDSIZE)
lcd.drawNumber(100, 10, rightnumber ,MIDSIZE+LEFT)

end
return { run=run }

Je vidieť, že aj č 150, aj 160 sú vypisované na to isté miesto......
screenshot-2.png
screenshot-2.png (691 bajtů) Zobrazeno 4051 x

Edit:
pár ďaľších bug-ov

Kód: Vybrat vše

lcd.drawRectangle(100, 1, 1, 50) -- nende
lcd.drawLine(100, 1, 100,50) -- takisto nepremáva....
.
Naposledy upravil(a) lubo1 dne úte 27.01.2015 18:40, celkem upraveno 2 x.
http://lubo111.rajce.idnes.cz
Uživatelský avatar
lubo1
Příspěvky: 5094
Registrován: pát 11.04.2008 0:00
Bydliště: CA
Kontaktovat uživatele:

Re: OpenTX LUA scripting

#40 Příspěvek od lubo1 »

Verzia 1.1 môjho Scriptu - nainštalovať do podadresára SCRIPTS\nazov_modelu\telem1
Je upraven=e odkazovanie umiestňovania výpisov - odstranenie príkazov lcd.getLastPos(). Bol problém s formatovaním výpisov.....
Přílohy
telem1.rar
(2.74 KiB) Staženo 206 x
http://lubo111.rajce.idnes.cz
mgx
Příspěvky: 121
Registrován: stř 24.04.2013 8:15
Bydliště: Banska Bystrica

Re: OpenTX LUA scripting

#41 Příspěvek od mgx »

Ano s tym zarovnavanim cisel doprava som si vsimol. Ono to je celkom logicke, ked vypisujes cislo, ktore nema furt rovnaky pocet cislic. Alebo neni furt pozitivne
Uživatelský avatar
lubo1
Příspěvky: 5094
Registrován: pát 11.04.2008 0:00
Bydliště: CA
Kontaktovat uživatele:

Re: OpenTX LUA scripting

#42 Příspěvek od lubo1 »

mgx píše:Ano s tym zarovnavanim cisel doprava som si vsimol. Ono to je celkom logicke, ked vypisujes cislo, ktore nema furt rovnaky pocet cislic. Alebo neni furt pozitivne

Preto som to prerobil na klasické print x,y....
Je to OK, ak je to popísaná vlastnosť..... preto to tu píšem.....
Viac ma štve tá zvislá čiara.....
Tak isto nejde priamo vykresliť zvislý BarGraf......
http://lubo111.rajce.idnes.cz
Uživatelský avatar
lubo1
Příspěvky: 5094
Registrován: pát 11.04.2008 0:00
Bydliště: CA
Kontaktovat uživatele:

Re: OpenTX LUA scripting

#43 Příspěvek od lubo1 »

Takže ako tak hotová verzia......
screenshot-2.png
screenshot-2.png (1.35 KiB) Zobrazeno 4022 x

V hlavičke súboru je možné editovať umiestnenie výpisu.... Ak sa zadá riadok 0 - nebude sa údaj vypisovať, Môže sa vytvoriť druhý súbor telem2 a v ňom vypisovať iné veličiny, ako v telem1.... prepínať sa dá cez +-....
Treba skúsiť.....
Přílohy
telem1.rar
(3.33 KiB) Staženo 213 x
http://lubo111.rajce.idnes.cz
von boberov
Příspěvky: 1096
Registrován: pát 30.07.2010 0:00
Bydliště: vesničan v okr.ZR

Re: OpenTX LUA scripting

#44 Příspěvek od von boberov »

Lubo1- dneska jsem to testnul a krásná práce, díky za ni. Zprvu jsem to nemohl rozchodit, bo jsem pozorně nepročetl návod, ale už to frčí. Díky-MR-
Uživatelský avatar
lubo1
Příspěvky: 5094
Registrován: pát 11.04.2008 0:00
Bydliště: CA
Kontaktovat uživatele:

Re: OpenTX LUA scripting

#45 Příspěvek od lubo1 »

von boberov píše:Lubo1- dneska jsem to testnul a krásná práce, díky za ni. Zprvu jsem to nemohl rozchodit, bo jsem pozorně nepročetl návod, ale už to frčí. Díky-MR-

Som rád, že to niekomu pomôže..... Dá sa to rozkúskovať na jednotlivé funkcie..... nemalo by to byť ničím prepojené.....
Snažil som sa to urobiť čo najviac uni....
http://lubo111.rajce.idnes.cz
Odpovědět

Zpět na „Vysílače“