Struktura programu
Zařízení Byznce se programují v jazyce C++ a využívají MBED API a Byzance API. Pro správnou funkčnost programu je nutné na první řádek nejprve importovat knihovnu "byzance.h" příkazem
Tato knihovna má za úkol automaticky inicializovat periferie, připojit zařízení k internetu a inicializovat vlákna, která se starají o aktualizaci firmware a připojení k serverům. Importem knihovny se také zpřístupní funkce Byzance API a uživatelská makra.
Definice fyzických vstupů a výstupů
Po importu všech potřebných knihoven je možno začít používat objekty definované v knihovnách. Může se jednat o vytvoření konstuktorů, periferie, nebo fyzické vstupy a výstupy, které se budou v programu používat.
Další informace je možno naleznout v sekci MBED API.
Definice virtuálních vstupů a výstupů
Při programování funkčního bloku nástroji BLOCKO v portálu Byzance je často potřeba definovat virtuální vstupy a výstupy, které symbolizují právě vstupy a výstupy funkčního bloku ven ze zařízení. Tyto definice je nutné zanést společně s fyzickými vstupy a výstupy.
Bližší informace o významu a funkci virtuálních vstupů/výstupů a jejich programování je možno naleznout v příslušné kapitole.
Definice komunikačních rozhraní
Pokud je v programu potřeba využít nějaké komunikační rozhraní jako Sériová linka, SPI, CAN apd. je vhodné provést jejich definici v této části za definicí vstupů a výstupů. Definice sériové linky je znázorněna v následujícím kódu.
Bližší informace ke komunikačním rozhraním lze získat v sekci MBED API-Komunikační rozhraní
Hlavní funkce programu
Program může mít definované tři základní funkce
pre_init()
init()
loop()
Funkce pre_init()
Tato funkce je zavolána na začátku programu jako první, ještě předtím, než je inicializováno vlákno Byzance a předtím než se zařízení připojí k serverům. Tuto funkci není povinné implementovat, nicméně její implementace může být užitečná například při debugu komunikace se servery nebo ovládání některých funkcí inicializovaných operačním systémem MBED.
Funkce init()
Funkce init je provedená hned po funkci pre_init a stejně tak pouze jednou. Tato funkce slouží k inicializaci prvků potřebných v hlavní části programu. Její implementace není povinná.
Funkce loop()
Poslední hlavní funkcí je funkce loop, Tato funkce je vykonávaná ve smyčce a nahrazuje tak funkci while(true). Jediným rozdílem je to, že mezi jednotlivými smyčkami se dává prostor Byzance vláknu, které zajišťuje komunikaci a resetuje se watchdog.
Hello world
Následující kód zobrazuje strukturu programu Hello_world s definicí vstupů, výstupů a komunikačních rozhraní a implementací všech třech hlavních funkcí
Last updated