Aktualizováno 11.3.2018

      
 
   UHF Small Project: Jednoduché programování v Gambas Basicu (Linux)

Všeobecně

1. Nikdy mě nezajímal operační systém, ve kterém bych si z různých důvodů (vysoká cena, nedostupnost nebo pro neprogramátora vysoká složitost vývojových prostředků) nebyl schopen napsat svůj vlastní užitečný program. Pro Linux existuje opravdu velké množství vývojových prostředků. V úvodu zmíním 3 nebo 4, které se částečně vymykají určitým konvencím. Jde o jazyk Python, který patří k jednodušším na učení, ale umožňuje jak strukturální, tak objektově orientované programování. Jisté potíže mi dělá návrh hezkých grafických uživatelských rozhraní. Dále jde o jazyky Java, ve kterých se dnes velice často píší aplikace pro mobilní androidy. Neopomenu však oblíbený (vidlácký) Basic, ve kterém rád rychle kreslím jednoduché aplikace. V Linuxu jsem si nainstaloval dvě různá vývojová prostředí - placené Xojo, které jsem popsal už při tvorbě aplikací pro Windows. Funguje pouze na 64 bitové architektuře. Mám jen demo verzi, která neumožňuje distribuci programů. Jako další prostředí jsem instaloval Gambas, který je k dispozici zadarmo a pro mé použití na vývoj ham programů je naprosto vyhovující, snadno se učí, distribuuje se i verze 32 bit a existuje velké množství příkladů s programy.

2. Možná jsem mnoho konzervativních čtenářů z řad hamů zklamal tématy, která jsem do popisu malého EME projektu zahrnul. Omlouvám se, ale jsem přesvědčen, že seriózní QRP práce nebo dokonce QRP EME práce není bez mikropočítačů a SW možná. Vím, že mnozí z čtenářů se nikdy nestanou profesionálními programátory, stejně tak, jako nejsou profesionálními radiotechniky. Ke QRP práci patří hlavně využití dnes speciálních druhů provozu (JT-65, JT-9, FT-8, ...), které bez počítačů nelze realizovat. QRP však nelze účinně dělat ani bez pečlivého nastavení stanice. Ať už jde o různé tunery, bez nastavování a přepínání celé řady parametrů. Proto jsem se naučil, vyzkoušel jsem, popsal a popularizoval jedno z témat, které ke QRP stanici patří - úvody do algoritmizace a řízení malé stanice. Byť vidlácké, jednoduché, levné, časově nenáročné. Bohužel, neplánoval jsem, že během činnosti budu mít problémy s Windows 10 a budu se muset rychle rozhodnout, jak s projektem malé stanice pokračovat dále.

Proč Gambas?

Okopíroval jsem jako odpověď celou obrazovku z Wikipedie. Moje důvody byly:
- šel nainstalovat na malý notebook Asus 1000 Eee, který si beru na cesty. Lze se na něm, mimo jiné, učit programování. Psal jsem na něm stránky tohoto webu, když jsem byl u dcery v Rotterdamu ...
- Gambas má výborné grafické prostředí, lze vytvářet krásná grafická rozhraní "kreslením". Technik programy kreslí. K dispozici jsou QT nebo GTK+ ...
- Vlastní jazyk je podobný Visual Basic. To je program pro techniky a vidláky.
- Lze snadno programovat síťová řešení, různou komunikaci, včetně komunikace přes USB/RS-232

Jak začít?
Já jsem začal takto:


- Stáhnul a nainstaloval jsem si Gambas poslední verze do notebooku.
- Koupil jsem si elektronickou publikaci na alza.cz, která se týká Linux - viz obrázek vpravo.

Pan Kameník vytvořil výborné dílo. Přesto mu nikdy neodpustím ten název. Příkazový řádek dlouho a zbytečně děsil mnoho windowsáků. Já ten název nemám rád, protože pokud vás má něco děsit u moderního systému, tak je to nekonečné bádání na Internetu a manuální editace registrů, aby OS dělal to, co má.

V Linuxu se jedná o terminálový program, kterým lze nastavit a konfigurovat některé věci, které dosud nemají grafická rozhraní. Název "příkazový řádek", zdá se mi, možnosti a využití degradují.

Pokud si Gambas v tomto okamžiku spustíme, můžeme si vyzkoušet naprogramovat některá jednoduchá udělátka.

První tři algoritmy, na kterých jsem si zkoušel jednoduchost programování ...

Ve svých programech vždy potřebuji:
1. Zapsat data do souboru, přečíst data ze souboru.
2. Z programu spustit další program.
3. Z programu ovládat mikropočítače přes USB po sériové lince ....

Ono je ve skutečnosti těch algoritmů mnohem víc, ale to je nad rámec úvodního článku. Takže jsem si nakreslil první uživatelská rozhraní, např. takto:

 

Grafický design je jedna věc, potřebujeme však napsat procedury ovládacích prvků (komponent). To se musíme naučit, jak se to dělá. Já jsem si stáhnul z internetu v pdf a koupil tištěnou příručku - viz obrázek vpravo.

Tištěnou proto, že si často dělám tužkou jednoduché poznámky přímo do textu knihy. Prostě - nejsem programátor, zapomínám a často mi dělá také problém pochopit, jak některé věci lidé více zasvěcení do IT technologií mysleli.

Uvedená příručka je výborná, autor byl určitě nejen vynikající odborník, ale také vynikající pedagog.

Na dalším obrázku vidíte, jak vypadá textový editor z vývojového prostředí. Vidíte, jak vypadají příkazy If ... Then, které testují stav použitého přepínače a podle toho jeho stavu něco dělají, např. zapisují do souboru metodou streamu dvacet bajtů nebo vytvářejí soubor k zapisování, pokud není nebo v něm mažou data, pokud existuje. Ale to už jsou podrobnosti nad rámec této jednoduché ilustrace.

 
Zkouška tří studijních algoritmů ...

Podobným způsobem jsem vyrobil své první tři programy pro Linux v Gambasu, na kterých jsem se učil základům programování. První (pod ikonami vlevo) zapne a zhasne LED diodu přes USB port s převodníkem a PICAXE. Ten druhý (napravo) vpodstatě udělá totéž, ale musíme do řádku napsat všech 5 bajtů protokolu. Pokud je poslední bajt 255, žárovka se rozsvítí, pokud je 0, žárovka zhasne. Pod nimi je třetí miniprográmek, na kterém jsem se učil spouštět jiný program pomocí instrukce Shell.

Jak vidíte, všechny algoritmy jsem zkoušel z grafického rozhraní. Dělal jsem to na jiném účtu stejného notebooku. Zrovna jsem jel rychlíkem z Českých Budějovic do Brna a tak bylo na učení dost času.


 

Abyste si mohli prohlédnout moje vidlácké psaní algoritmů, uvádím zde tři textové soubory se zdrojovými kódy instrukcí Gambas Basic:
1. Spuštění programu pomocí Shell.  
2. Zápis textu do souboru.  
3. Instrukce k sériové komunikaci přes USB/RS-232


Poznámka: Protože jsem s Linuxem začal dělat před několika dny, nejsem zběhlý a zasvěcený do celé řady věcí. Např. u sériové komunikace jsem musel zjistit, jak se podíváme, že po připojení převodníku USB nám tento existuje, kde ho v operačním systému najdeme, jak nastavíme práva přístupu. Proto jsem uvedl jako velice důležitou publikaci tu od pana Pavla Kameníka. Všechny tyto věci se dělají v terminálu. V textovém souboru o sériovém portu jsem si instrukce napsal hned do úvodu.

Závěr

Nainstaloval jsem, vyzkoušel jsem. Programování v Gambasu je tak jednoduché, že si jednodušší způsob nedovedu představit. Čtenáři mi prominou, že jsem opět použil vidlácký způsob výuky, nikoliv školní. Školní přístup k výuce programování bývá často založen na pochopení syntaxe jazyka a základních struktur, které se používají. Já vycházím od jednodušších syntaxí a struktur k těm složitějším. Kdokoliv může pokračovat dál. Ověřit si komunikace pomocí TCP/IP, práci s databázemi. Nebo celou řadu jiných algoritmů. Záleží na tom, co se potřebujete rychle naučit a co má váš další projekt dělat. Můj projekt má řídit TCVR při ham komunikaci. Původně byl napsaný pro Windows, ale už ho mám i pro Linux, hi.

 

 

TU 73, Mira, ok1ufc