JETI LUA jazyk - skripty

Všechno co souvisí s modelářskými vysílači, výběr, programování, napájení
Odpovědět
Zpráva
Autor
Uživatelský avatar
hates
Příspěvky: 1219
Registrován: pát 05.10.2007 0:00
Bydliště: Zápy - Brandýs nad Labem

JETI LUA jazyk - skripty

#1 Příspěvek od hates »

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

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(a) hates dne pát 27.10.2017 21:13, celkem upraveno 1 x.
Amper
Příspěvky: 5327
Registrován: úte 30.08.2011 9:26
Bydliště: Plzeň, CZ

Re: JETI LUA jazyk - skripty

#2 Příspěvek od Amper »

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
coptery@FrSky X9E, 3.4m Go-3,EPP Spartan,SkySurfX8,SE.5,MPX Extra 300s@Jeti DC-16
Uživatelský avatar
hates
Příspěvky: 1219
Registrován: pát 05.10.2007 0:00
Bydliště: Zápy - Brandýs nad Labem

Re: JETI LUA jazyk - skripty

#3 Příspěvek od hates »

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.
Frenkí
Příspěvky: 191
Registrován: stř 28.09.2011 18:50
Bydliště: Domažlice

Re: JETI LUA jazyk - skripty

#4 Příspěvek od Frenkí »

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.
Uživatelský avatar
hates
Příspěvky: 1219
Registrován: pát 05.10.2007 0:00
Bydliště: Zápy - Brandýs nad Labem

Re: JETI LUA jazyk - skripty

#5 Příspěvek od hates »

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.
Uživatelský avatar
hates
Příspěvky: 1219
Registrován: pát 05.10.2007 0:00
Bydliště: Zápy - Brandýs nad Labem

Re: JETI LUA jazyk - skripty

#6 Příspěvek od hates »

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.
Uživatelský avatar
hates
Příspěvky: 1219
Registrován: pát 05.10.2007 0:00
Bydliště: Zápy - Brandýs nad Labem

Re: JETI LUA jazyk - skripty

#7 Příspěvek od hates »

tak jsem to vyskousel v jeti studio a chova se to korektne. Bohuzel v radiuu ee. Musim ten kod prelezt znovu.
Uživatelský avatar
hates
Příspěvky: 1219
Registrován: pát 05.10.2007 0:00
Bydliště: Zápy - Brandýs nad Labem

Re: JETI LUA jazyk - skripty

#8 Příspěvek od hates »

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.
Odpovědět

Zpět na „Vysílače“