Odeslat nové téma Odpovědět na téma  [ Příspěvků: 8 ] 
Autor Zpráva
 Předmět příspěvku: JETI LUA jazyk - skripty
PříspěvekNapsal: úte 24.10.2017 22:53 
Mazák
Mazák
Uživatelský avatar

Registrován: 4.10.2007
Příspěvky: 1193
Bydliště: Zápy - Brandýs nad Labem
Nenasel jsem tady nic blizsiho ohledne programovani aplikaci do vysilace JETI. Jelikoz mi neco chybelo a to u drona jak mam prepnute mody tak jsem si napsal jednoduchy skriptik, ktery mi to zobrazi. Urcite bzy to slo mnohem zdokonalit, ale na to, ze u toho sedim cca 2 hodiny mi to staci. Clovek musi nejak zacit. Cist tu dokumentaci LUA je otresne a pripada mi, ze ani debugger to nekdy nepobira a nebo netusim jak jej k tomu prinutit.

A tady je ten bastl. Na zaklade prepnuteho tripolohoveho prepinace to zobrazuje text. Prepinace se definuji prozatim jako lokalni promenne. Urcite by slo udelat pLoad a pSave, ale nejak se mi nedari. No a u toho jak je to prepnute staci v podminkach prohodit znamenka.

Kód:
local appName = "NazaV2 - FlightMode"
local flightMode
local iocMode
local sw_fm, sw_ioc

-- Load switch for flight mode
local function switch1Changed(value)
  sw_fm = value
  system.pSave("sw_fm", value)
end

-- Load switch for IOC mode
local function switch2Changed(value)
  sw_ioc = value
  system.pSave("sw_ioc", value)
end

local function getFlightMode(switch)
  local val_flightmode = system.getInputsVal(switch)
  if(val_flightmode) == 1 then
    return "GPS Atti"
  elseif(val_flightmode) == 0 then
    return "Atti"
  else
    return "Manual"
  end
end

local function getIOC(switch)
  local val_ioc = system.getInputsVal(switch)
  if(val_ioc)  == 1 then
    return "Home Lock"
  elseif (val_ioc) == 0 then
    return "Course Lock"
  else
    return "OFF"
  end
end

-- Initial form for setup switch
local function initForm()
  form.addRow(2)
  form.addLabel({label="Flight Mode switch"})
  form.addInputbox(sw_fm, true, switch1Changed)

  form.addRow(2)
  form.addLabel({label="IOC switch"})
  form.addInputbox(sw_ioc, true, switch2Changed)
end

-- Print interactive form in MAIN MENU
local function printForm()
  lcd.drawLine(0,50, 310,50)
  lcd.drawText(5,73,"Flight mode:")
  lcd.drawText(300 - lcd.getTextWidth(FONT_MAXI, getFlightMode(sw_fm)),60, getFlightMode(sw_fm), FONT_MAXI)

  lcd.drawText(5,118,"IOC:")
  lcd.drawText(300 - lcd.getTextWidth(FONT_MAXI, getIOC(sw_ioc)),105, getIOC(sw_ioc), FONT_MAXI)
end

-- Print Telemetry widget
local function printTelemetry1Form()
  lcd.drawText((151 - lcd.getTextWidth(FONT_BIG, getFlightMode(sw_fm)))/2, 10, getFlightMode(sw_fm), FONT_BIG)
  lcd.drawText((151 - lcd.getTextWidth(FONT_BIG, getIOC(sw_ioc)))/2, 35, getIOC(sw_ioc), FONT_BIG)
end

-- During initialization the application registers a form in side the main menu
local function init()
  system.registerForm(1, MENU_MAIN, appName, initForm, nil, printForm)
  system.registerTelemetry(1, appName, 2, printTelemetry1Form)
  sw_fm = system.pLoad("sw_fm")
  sw_ioc = system.pLoad("sw_ioc")
end

return {init=init, author="Petr Haton", version="1.0",name=appName}


Naposledy upravil hates dne pát 27.10.2017 20:13, celkově upraveno 1

Nahoru
 Profil  
 
 
 Předmět příspěvku: Re: JETI LUA jazyk - skripty
PříspěvekNapsal: stř 25.10.2017 7:33 
Mazák
Mazák

Registrován: 30.8.2011
Příspěvky: 4671
Bydliště: Plzeň, CZ
Obrázky: 0
Debugger používáš ten co je na RCgroups ?

A nechceš dat ten kód na GitHub ?


Jinak par veci k jetibLua ma Tero na stránkách - RCthoughts

_________________
210,280X8,480 Hexa, 3.4m Go-3, EDF Goshawk, Huricane XL, EPP Spartan, SkySurfX8, SE.5 pred opravou


Nahoru
 Profil Soukromé album  
 
 Předmět příspěvku: Re: JETI LUA jazyk - skripty
PříspěvekNapsal: stř 25.10.2017 14:26 
Mazák
Mazák
Uživatelský avatar

Registrován: 4.10.2007
Příspěvky: 1193
Bydliště: Zápy - Brandýs nad Labem
Presne tento debugger pouzivam. Je ale takovej divnej. Hlavne nesedi prirazeni prepinaci v programu s prepinaci na radiu. Dale je to trosku rozsypane ale da se to zkousnout.

horsi je, ze pokud to chce clcovek nacpat do radia tak to musi mit pripojene ale na odzkouseni to musi zase odpojit z MASS STORAGE a tak porad dokola.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: JETI LUA jazyk - skripty
PříspěvekNapsal: čtv 26.10.2017 21:51 
Protřelejší uživatel
Protřelejší uživatel

Registrován: 28.9.2011
Příspěvky: 186
Bydliště: Domažlice
hates píše:
Presne tento debugger pouzivam. Je ale takovej divnej. Hlavne nesedi prirazeni prepinaci v programu s prepinaci na radiu. Dale je to trosku rozsypane ale da se to zkousnout.

horsi je, ze pokud to chce clcovek nacpat do radia tak to musi mit pripojene ale na odzkouseni to musi zase odpojit z MASS STORAGE a tak porad dokola.

Zkus si naistalovat JETI studio ze stránek jeti. Je tam emulátor DC-24 pro testování LUA scriptů. Dej prosím vědět zda funguje.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: JETI LUA jazyk - skripty
PříspěvekNapsal: čtv 26.10.2017 23:12 
Mazák
Mazák
Uživatelský avatar

Registrován: 4.10.2007
Příspěvky: 1193
Bydliště: Zápy - Brandýs nad Labem
kdyz jsem to zkousel drive tak jsem s tim mel problemy. Jinak vcera jsem ten skript zkusil prepsat do stavu, ze je ozne si zvolit prijimace a dalsi veci + v pripade stazeneho plynu to zacne rvat a hlasit. Po testu v debbugeru vse OK ale jak jsem to prenesl na druhe PC a pretahl do radia tak prestala appka fungovat.

Tak jsem zacal od zacatku a pridal jsem do puvodniho skriptu pouze moznost zvolit si prepinace. Bohuzel mi pripada ze to je nejake divne pLoad a pSave funguje pouze do te doby dokud je aktivni model. Staci radio vypnout a znovu zapnout nebo model zmeni a zmenit zpet a clovek o persistentni data prijde tak ze musi appku odstranit a znovu naloadovat. a nastavit.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: JETI LUA jazyk - skripty
PříspěvekNapsal: čtv 26.10.2017 23:14 
Mazák
Mazák
Uživatelský avatar

Registrován: 4.10.2007
Příspěvky: 1193
Bydliště: Zápy - Brandýs nad Labem
a pitome je ze jeti studio mi bezi na firemnim NB, ale tam mam zase zablokovane USB a BIOS tak ze nemam moznost pripojit radio jelikoz se chova jako Mass Storage/ Pokud by se chovalo jinak na jinem protokolo tak bych nemel problem. Stacilo by mi aby nepripojovalo pametovou kartu ale komunikovalo pres vlastni driver.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: JETI LUA jazyk - skripty
PříspěvekNapsal: čtv 26.10.2017 23:39 
Mazák
Mazák
Uživatelský avatar

Registrován: 4.10.2007
Příspěvky: 1193
Bydliště: Zápy - Brandýs nad Labem
tak jsem to vyskousel v jeti studio a chova se to korektne. Bohuzel v radiuu ee. Musim ten kod prelezt znovu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: JETI LUA jazyk - skripty
PříspěvekNapsal: pát 27.10.2017 20:12 
Mazák
Mazák
Uživatelský avatar

Registrován: 4.10.2007
Příspěvky: 1193
Bydliště: Zápy - Brandýs nad Labem
Podarilo se. Nakonec jsem to upravil do stavu, ze je mozne si zvolit prepinace, na ktere to reaguje. Tento modul nedela to, ze by prepinal mody, ale je to spise o tom, ze clovek na radiu vi v jakem modu ma copteru. To ze jsem si to mohl prepinat a ukazuje mi to dioda je pekne, ale ja mam diodu tak, ze pokud mam kopteru ve vzduchu tak netusim co na ni blika a nebo pokud je ve vetsi vzdalenosti, tak ta didoda nemusi byt zretelna. Nastaveni polohy prepinacu si ale musi kazdy nastavit i s pomoci assistenta aby to melo spravne hlasky.

V puvodnim vlakne jsem ten skript upravil. Pokud by bylo mozne vkladat lua skripty tak jej klidne dam jako prilohu.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 8 ] 

 


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 2 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  

 

  Powered by phpBB® Forum Software © phpBB Group  Český překlad – phpBB.cz 

 

NAVRCHOLU.cz