Popis
Jde o jednoduchou grafickou aplikaci pro Linuxy, napsanou v prostředí
Gambas3 (Basic pro Linux). Aplikace slouží k výpočtu charakteristické
impedance dvoudrátového vedení (žebříček, ladder line).
Dělá se s tím tak, že se spustí a na posuvnících se
nastavuje rozteč mezi vodiči (myslím, že jsem tam včera dal do 300 mm)
a průměr vodiče (od 0.1 mm do 12 mm). Na displeji se zobrazuje hodnota
vypočtené char. impedance v ohmech. Tedy vidlácky řečeno, rejdím a
vidím.
Program obsahuje 4 proměnné: rozteč vodičů S, průměr
drátu d, poloměr r = d/2 a Z0.
Výpočet se dělá podle jediného vzorce (použita
procedura Z0_solve).
Pro kreslení programu byl použit jeden obrázek (schéma) .jpg (sežralo
to asi 5 minut kreslení v grafickém editoru) a komponenty PictureBox,
SpinBar, Label a LCDLabel.
Myšlenku, tedy to, co dám do publikace jako první
program pro neprogramátory 60+, jsem si zachytil ve vlaku na
papír z bloku -
náčrt zde. |
 |
Začínáme
Stáhneme si projekt. Je zazipovaný. Rozbalíme ho do adresáře, kde
si budeme ukládat své další projekty. Já mám ve složce "Dokumenty" složku
"Gambas_projekty" a v té má každý projekt svou složku. Vytvoříme si
tedy takové místo a nakopírujeme tam rozbalený projekt Z0_line.
Spustíme Gambas3 a otevřeme ho. Až to budeme dělat podruhé, budeme ho
vidět v "posledních projektech":

Ve vývojovém prostředí vidíme toto:

Jde o hlavní formulář. A v něm jsou
nasázené tzv. komponenty z menu vpravo dole. Komponentu přetáhneme
myší a nastavíme její vlastnosti (Properties). Vlastnosti komponenty
se objeví, když na ni klikneme. Otevřeli jste jednoduchý školní
projekt, kde jsem za vás všechny vlastnosti vyplnil a naklikal (asi 15
minut). Tohle chce rutinu a také se musíte trochu v prostředí
orientovat. Nenechte se odradit, když vám to nepůjde rychlostí dle
vašich představ. Vyzkoušejte si sami něco svého, třeba jen s tlačítky
(Buttons) a labely (Labels) a postupně přidávejte další a další
komponenty z menu. Hrajte si a naučíte se.
Život - reakce na události
Řekli jsme si, že s programem se dělá
tak, že rejdím s posuvníky a vidím charakteristickou
impedanci na displeji. Aby tak bylo, musíme napsat jednoduchý kód,
který bude vykonán při konkrétní události (po rejdění s
posuvníkem, kliknutí, atd.). Veškerý kód je zde. Je nekomentovaný. To
nedělejte, pokud se v tom chcete za půl roku vyznat. Já jsem zde měl
důvod nekomentovat. Budu to komentovat zde v textu, za týden se v tom
nepotřebuji vyznat, ale hlavně jsem potřeboval, aby bylo všechno vidět
pohromadě na jedné obrazovce stařičkého noťasu:

Postupně a odshora
Děláme se čtyřmi proměnnými (S, d, r,
Z0), které jsem deklaroval jako proměnné pracující s desetinnou čárkou
(Float). Jak se dělá deklarace v Gambasu, zjistíme v nápovědě, v
manuálu nebo knize od
Johna W Rittinghouse (mám jen pro starší verzi
Gambas, ale i tak jsem za ni vděčný). Na prvních
řádcích však vidíte prakticky, jak se to dělá.
Procedura po spuštění aplikace a
procedura Z0_solve
Jde aplikaci, která používá jediného
okna (Form). Po spuštění aplikace se provede asi devět instrukcí.
První tři nám naplní proměnné čísly, se kterými program provede první
výpočet, než zarejdíme s posuvníky. V dalších 4 řádcích se hodnoty
proměnných dosadí do komponent (např. do SpinBar1.Value, Label1.text,
...), aby nám komponenty vše ukazovaly správně. Na dalším řádku je
volaná procedura Z0_solve. Jde o třetí proceduru odspoda. Má 6
instrukcí (ve dvou se čtou hodnoty posuvníků, které tam jsou nastavené
po rejdění). Na třetím řádku se vypočte hodnota Z0 a dosadí se do
proměnné Z0. Všimněte si méně obvyklé syntaxe pro dekádický
logaritmus, který se dělá jako funkce log10(proměnná). Na posledních
řádcích se nacpou hodnoty do proměnných v komponentách. Poslední
instrukcí procedury je End. Tato instrukce vrátí řízení běhu programu
do místa, odkud byla procedura volána.
Procedury SpinBar1_Change( )
V procedurách jde o to, že když
zarejdím se SpinBar1 nebo SpinBar3, tak chci změnit hodnotu proměnné S
(rozteč vodičů) nebo d (průměr vodičů). Takové změny samozřejmě mají
vliv na charakteristickou impedanci vedení, kterou je třeba
přepočítat. Pro přepočítání hodnoty charakteristické impedance jsme si
však v předchozím odstavci vydefinovali proceduru Z0_solve, kterou
stačí zavolat a ona nám impedanci přepočte, hodnoty nacpe do
proměnných a do vlastností použitých komponent.
A to je vše.
Spuštění
Ve vývojovém prostředí můžeme program
spustit kliknutím na černý plný trojúhelníček (asi 10 ikona pod
hlavním menu). První lekce je u konce. Proto si vytvoříme ještě svůj
první spustitelný program pro Linux. Půjdeme do Menu - Projekt -
Vytvořit - Spustitelný (Ctrl+Alt+X). Prostředí Gambas3 nám vytvoří
maličký program (asi 15 kB), který uložíme jako Z0_line.gambas
Pokud na soubor zaklikáme, spustí se nám námi vytvořený program,
který bude fungovat na počítači, na kterém jsme ho vytvořili.
Poznámky
1. V Gambasu napíšeme pouze aplikace pro Linux. Vzhled, chování
prostředí a informace, které jsme na prvním prográmku vstřebali, jsou
podobné i v jiných prostředích.
2. Aplikace pro Windows můžeme psát ve Visual Studiu. Některá vyvedení
jsou od Microsoftu rovněž zadarmo. Kdysi jsem používal dobrý a
oblíbený Visual Basic 2008. Poslední verze Visual Studio se však staly
ukrutnými monstry. Ukázka programu pro Windows, stáhnout soubor
Z0_line.exe lze zde
nebo kliknutím na obrázek. Možná vás bude "inteligence" vašeho
operačního systému a antivirová ochrana neobyčejně prudit ... .

3. Aplikace pro desktopy Linux, Raspberry Pi, Windows a macOS se dobře
píší v prostředí XOJO. Jde o placený program. Je dobrý, je v
angličtině. Líbilo se mi, když jsem začal projekt kreslit ve Windows,
pokračoval jsem na něm doma v Linuxu a spouštěl si ho později ve
Windows. Jde o skutečnou Cross Platformu. Ukázka naší aplikace,
napsané v XOJO. Komponenty jsou jiné (Canvas, Slider, Label, ...),
uspořádání podobné:

|