EasyTerm - příběh jednoho nápadu
Tak úplně na úvod - vítejte!
EasyTerm má pestrou historii trvající již několik let. Pokud jste o něm dosud neslyšeli, je to nejspíš proto, že se zprvu jednalo spíše o "interní" projekt pro vlastní potřeby. Časy se však mění a po letech vylepšování jde EasyTerm "do světa". 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 ScriptCommunicator. 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í se používalo 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 (aby dával principiálně smysl a nemusel se 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 se jako stále frustrující okamžiky ukazovaly situace, kdy bylo při vývoji různých zařízení potřeba realizovat zdánlivě jednoduchý úkon, například 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 bez nutnosti přeprogramovávat nějaký "dev-kit" či kupovat analyzátor sběrnic, nastavit někde logickou úroveň. Ono to zní jednoduše, ale zpravidla to vždy bylo peklo. Vývojář si to musel tzv. "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 bylo nutné obstarat speciální zařízení a instalovat...Nedejbože když to bylo potřeba 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 posuvník (slider), který místo doplňování a zasílání nějaké generické zprávy měl nadefinovou akci například ve formátu
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!
EasyTerm se stále zlepšuje
S časem byl pro EasyTerm vytvořen WIFI modul, který umožňuje ovládání EasyTermu skrze internet prostřednictvím MQTT protokolu (tedy podobně jako by se příkazy zasílaly skrze USB/UART). Tím se pro EasyTerm otevřely široké možnosti automatizací a nově lze tedy EasyTerm využít i jako tzv. "edge" zařízení.
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