Deník bakalářky, část třetí: Propojení částí

Monday 18.2.2013 21:20:41, Jakuje

Zase jsem dlouho nic nenapsal o tom, jak se daří bakalářce. Kvůli škole a mnoha jiným povinnostem jsem se k tomu v posledních měsících téměř nedostal, ale za poslední dva týdny jsem se dostal s aplikací do funkčního stavu a funkčního propojení všech tří programovacích jazyků, které ve své bakalářce používám.

Rozbitý telefon

Během listopadu minulého roku se mi podařilo znovu si rozbít telefon na kterém jsem vyvíjel a tak jsem se pokoušel rozchodit hybridní aplikace na starším telefonu. Jenže tam jsem celý leden narážel na neřešitelný problém, protože plugin odmítal komunikovat s uživatelským rozhraním a to ani v ukázkových aplikacích od HP.

Nový telefon

Po několika týdnech jsem byl zoufalý a poslední možnost byla vyzkoušet opět na nějakém novějším stroji. Poslední dobou se trh se zařízeními s WebOS zúžil, ceny začaly stoupat a na eBay to už začíná být dražší než u českého, téměř oficiálního prodejce palm.cz, u kterého jsem přístroj tentokrát objednal. Během pár dní jsem jej měl na stole (velice chválím) a mohl jsem vyzkoušet, že problém byl opravdu ve starší verzi systému.

Nedokumentovaná vlastnost?

Pár dní poté, co jsem začal pracovat na novém telefonu do fóra na webosNation dorazila odpověď na můj problém. Jedná se o chybu starších verzí. Opravdu stačilo dopsat volání __PDL_PluginStatusChange__ po volání PDL_JSRegistrationComplete a komunikace byla navázána bez problémů. Pro úplnost ještě jednou kód:

 

Zdrojový kód:
PDL_JSRegistrationComplete();
const char *params[1];
params[0] = "ready";
PDL_CallJS("__PDL_PluginStatusChange__", params, 1);

 

Další dny mě čekala hromada ladění, hledání neoprávněných přístupů do paměti pomocí GDB a shellu přímo v zařízení.

Wow, Enyo is so easy ...

Takto zní titulek jednoho tématu na výše zmíněném fóru. Ze začátku jsem z toho měl trochu strach, ale nakonec musím potvrdit, že ve frameworku Enyo se pracuje mnohem lépe než v původním Mojo. Vše je na jednom místě a člověk nemusí řešit HTML, otestovat funkčnost lze v jakémkoliv prohlížeči s jádrem webkit (u mě chrome s patřičnými parametry), což ušetří mnoho času oproti neustálému nahrávání do telefonu a čtení chyb z bílo-černé konzole. Ale k tématu. Během pár dní jsem vytvořil základní kostru uživatelského rozhraní aplikace, jak by měla vypadat a pro prohlížeč je nasimulovaná interakce s pluginem.

Propojení s Lua

Přesně tam kde jsem začal asi před půl rokem, tam budu muset nyní pokračovat. Aktuálně řeším propojení 3 programovacích jazyků, které jsou velmi rozdílné. Mezi Javascriptem a C++ se o spojení stará operační systém a na mě je teď abych udělal pomocí nějaké knihovny spojení C++ s jazykem Lua, ve kterém jsou jednotlivé hry.

Výsledkem posledního snažení je opět Hello World:

Ano, je to stále to stejné "Ahoj svete" jako v druhém díle. Jen tentokrát probublalo z Lua nejen do C++, ale i do Javascriptu.

Diskuse:

:
:
:

 
    

Podbarvená pole označená hvězdičkou jsou povinná!