Toto je starší verze dokumentu!
Maximilián Tydor, 18.1.2015, 23:59
Realizujte jednoduchý HTTP server na FRDM-K64F, implementovaný v prostředí mbed. Statické stránky uložte do Flash paměti mikrokontroléru (uvítací stránka, obrázek…), pomocí dynamické stránky umožněte několika HTML prvky nastavovat RGB LED a číst stav obou tlačítek.
Projekt jako celek se skládá z těchto dílčích částí:
Jako základ byl použit projekt HTTP_SD_Server_K64F, který již má vyřešenou inicializaci síťového rozhraní včetně vyžádání IP adresy od DHCP serveru a taky virtuálního sériového portu přes programovací USB konektor, vhodného k odlaďování aplikace. Projekt by měl být schopný pracovat i s připojenou SD kartou, ale tuto funkci se mi nepovedlo plnohodnotně rozchodit. Obsah karty se sice zobrazil, ale při pokusu o převzetí jakéhokoliv souboru bylo jedinou odezvou chbové hlášení „čas spojení vypršel!“
Vzhledem k tomu, že pro potřeby této aplikace postačuje jedna jediná obslužná webová stránka, byla podpora SD karty odebrána a celá stránka je tak uložena přímo v paměti procesoru (pro grafické spříjemnění stránky postačuje formátování kaskádních stylů).
Převzatý kód již obsahoval základní konfiguraci HTTP serveru jako otevření portu 80, základní chybové hlášení apod. Mimo to i podporu metody GET pro odesílání dat. Vzhledem k tomu, že stránka vyžaduje i několik ovládacích prvků, byla doplněna metoda POST, zejména z estetického důvodu, či pro potřeby budoucího rozšiřování.
Protože se jedná o aplikaci, kdy je možné vzdáleně měnit stav fyzického zařízení, ať už je to pouhá LED nebo vysoká pec ve slévárně, je vhodné omezit, nebo alespoň zkomplikovat, přístup neoprávněným osobám či strojům. Implementace moderních autorizačních systémů jako je například SSL by byla výpočetně příliš náročná pro tuto aplikaci, nicméně na odrazení většiny lajických uživatelů i v současnosti bohatě postačuje využití HTTP autorizace. Jedná se o velice jednoduchý systém. Pokud server vyžaduje autorizaci odešle klientovi odpověď „401 Authorization Required!“ a prohlížeč na straně uživatele se postará o zobrazení přihlašovacího dialogového okna. Po zadání, obvykle jména a hesla uživatele, jsou tyto data doplněna do HTTP hlavičky buď jako obyčejný text nebo v zahashované podobě.
Jak již bylo zmíněno dříve, obslužná stránka je pouze jedna a je kompletně uložena v paměti procesoru. Absenci obrázků je možné z velké částí nahradit kaskádními styly.
V zadání nejsou vyžadovány speciální periferie, stačí využití RGB LED a 2 uživatelských tlačítek, které na desce již jsou a jejich obsluha je elementární záležitost.
Základem byl výše zmíněný projekt. Důležité bylo neaktualizovat žádnou knihovnu, jinak se aplikace kompletně rozpadla.