EasyTerm - příběh jednoho nápadu
Tak úplně na úvod - vítejte!
První příspěvek bych rád pojal na trochu osobnější rovině - tedy dovolte, abych se jakožto duchovní otec EasyTermu představil - jmenuji se Miroslav Šíma, profesním pozadím zejména FW vývojář s přesahem do hardware a software a již pěknou řádku let pracuji na zařízení zvaném EasyTerm.
EasyTerm má pestrou historii - původně to mělo být zařízení, jehož jádrem byl dotykový displej a UART - zkráceně řekněme tedy takové "HMI" - pro obsluhu a monitorování různých zařízení se sériovým portem buď v rámci vývoje, validací či běžného používání. Každý má zkušenosti s terminálovými aplikacemi jako je Putty či se mnou oblíbeným ScriptCommunicatorem. Sledování výpisů různých zařízení je však mnohdy neintuitivní a ovládání zařízení přes textové API také - zprávy jsou vypisovány pod sebe dle časové souslednosti - bez jakéhokoliv třídění či filtrace, ovládání parametrizací příkazů ručním přepisováním parametrů není zrovna komfortní a dělají se chyby, zařízení například zrovna není v dosahu počítače, UART<->USB převodník leží zase kdoví kde, API onoho zařízení se pozapomnělo... (nechal jsem se unést - aneb ta osobní praxe)...
EasyTerm jako HMI
Prvotní verze tedy obsahovala sadu grafických widgetů pro monitorování zpráv s parsovaním dle masky (formuláře, grafy, sekvenční logovací okno) a sadu widgetů pro tvorbu (respektive parametrizaci) zpráv - tlačítka, klávesnice, slidery, checkboxy. Zařízení jsem používal pro obsluhu jiných zařízení - prostě všeho co mělo UART. Vzhledem k možnosti ukládání layoutů těchto widgetů mohlo mít každé obsluhované zařízení uložené svůj vlastní layout (či hezky-česky to nazvěme kontrolním panelem). Ono obsluhované zařízení se dalo velmi komfortně ovládat a monitorovat - a to i přesto, že obsahovalo drobný nevýkonný mikrokontrolér s několika málo piny - hlavně když byl UART. Nebylo třeba jej tedy komplikovat a dalo se soustředit na vývoj a zdokonalování primární činnosti, pro kterou bylo zařízení vlastně vyvíjeno. Vzhledem k využití ASCII protokolu nebyla potřeba integrace žádné knihovny či jakýkoliv zásahů do FW onoho zařízení (to by se na to člověk taky mnohdy vykašlal a postačil si s běžným SW terminálem, že ano...).
Spousta času padla na návrh onoho ASCII protokolu (nechtěl jsem jej stále dokola měnit) - prioritou byla intuitivnost. Příkazy šlo zadávat v kompaktním či sebe-dokumentujícím formátu (či kombinovaně).
Tak například příkaz
Obsluha čehokoliv byla konečně zábava a nemuselo se všemu přidělávat rozhraní na displej ani hromada tlačítek - s postupem času mne však stále více frustrovaly okamžiky, kdy jsem při vývoji potřeboval realizovat zdánlivě jednoduchý úkon, například si vygenerovat napětí o určité hodnotě, PWM signál o určité frekvenci a střídě, vyčíst si registr nějakého integrovaného obvodu, nastavit někde logickou úroveň. Ono to zní jednoduše, ale zpravidla to vždy bylo peklo. Člověk si to buď musel nějak ubastlit, případně udělat místo na stole na nějaký těžký a drahý přístroj, který byl pro daný úkon absolutní "overkill". Pro vyčtení integrovaného obvodu zase bylo nutné obstarat speciální zařízení a instalovat...Nedejbože když se to muselo nějak automatizovat a například generovat časovou souslednost různých PWM signálů - to vedlo na hledání manuálu a v mnoha případech na tápání, proč onen SCPI příkaz nefunguje.
EasyTerm jako multitool
Proto přišla na řadu druhá verze - obvodově se zařízení zkomplikovalo, přibyly známé sběrnice (UART/SPI/I2C), digitální vstupy/výstupy (GPIOs, PWM) a analogové piny (ADC/DAC). Vygenerování napětí či PWM byla poté záležitost na pár vteřin (zpravidla jeden příkaz - ukázkou například příkazy
Úplně nejlepší však bylo, jak snadno šlo původní "HMI" funkcionalitu napojit na tato rozhraní. Stačilo zobrazit slider, který místo doplňování a zasílání nějaké generické zprávy měl nadefinovou akci například jako
EasyTerm jde do světa
Poslední fáze přišla po uvědomění si, jak mocný nástroj vzniknul (skromnost stranou...). Následující činnosti se již týkaly zejména zpřístupnění EasyTermu ostatním. FW byl vylepšován, kam až fantazie sahala, HW iterován do úplné spokojenosti. Zahájena byla tvorba manuálu. Aby se i ostatním stala práce s EasyTermem co nejkomfortnější (listovat manuálem prostě nebývá zábava!), byla stvořena aplikace CmdBuilder, kde se finální příkaz složí vyplněním formulářů. Pro ty, které láká využití EasyTermu jakožto onoho "multitoolu", se vytvořila sada layoutů (v zásadě jen soupis předpřipravených "příkazů"). Takže onen dotykově ovladatelný PWM generátor či mnoho dalšího získáte obratem po odeslání již "předpřipravené" sady příkazů. A aby to bylo vše jak se patří, HW byl ocertifikován na EMI/ESD v certifikované zkušební laboratoři. Takže pokud máte zájem, můžete jej mít i vy. Zprvu pouze pro Českou republiku, časem pro Evropu - a snad brzy i pro celý svět!
Případné dotazy odpovím osobně a rád na support@7-tech.net
Přeji šťastný vývoj!
Ing. Miroslav Šíma - duchovní otec EasyTermu