|
a dělá následující věci:
- má vlastnost Form1.TopMost, tedy
je stále nahoře a jiné aplikace ji nezakrývají;
- po kliknutí myši do zeleného obdélníku odešle přes CAT
příkaz "TX;", čímž zapne vysílač SDR Console a změní se
na červený obdélník;
- po kliknutí do červeného obdélníku odešle příkaz "RX;",
čímž vypne vysílání;
- aplikace reaguje rovněž na
stisknutí klávesy "END" (můžete si naprogramovat jinou, pokud
se vám END nelíbí); po stisknutí "END" odešle aplikace povel
přes CAT a přepne mezi RX/TX;
- aplikace zachycuje stisk "END" i mimo vlastní fokus, a to i
když je kurzor mimo červené/zelené pole aplikace.
a to za podmínek:
- musí být nakonfigurovaná SDR
Console dle výše uvedeného popisu;
- SDR Console musí být připojena do virtuálního sériového
kabelu (například com0com) a pro aplikaci musí být k
dispozici COM12 (lze změnit jen ve zdrojovém kódu, tato
jednoduchá aplikace nemá žádné menu ani žádný konfigurační
soubor).
Spustitelný program a zdrojový kód
Aby nám to vše fungovalo, bylo třeba naprogramovat low‑level
keyboard hook přes WinAPI. To je standardní způsob, jak zachytit
stisk kláves PC na úrovni systému.
Ve zdrojovém kódu najdete dva moduly:
KeyboardHook.vb (zachycuje stisk klávesy "END", připraví
příkaz pro řízení SDR Console a zavolá v modulu SDRCcom).
SDRCcom.vb (odešle příkazy skrz sériový port COM12 do
SDR Console).
Ve zdrojovém kódu je také Form1.vb. V proceduře Form1.Load
(při puštění aplikace) se volá funkce InstallHook() z modulu
KeyboardHook.vb; tato funkce provede zachycení klávesy "END" a
provede procedury další, tj. vytvoří příkaz, kterému SDR
Console rozumí a zavolá proceduru SDRCcom(), která příkaz
prožene skrz sériový port.
Spustitelný program stáhnete zde.
Znovu opakuji, je natvrdo nastaven na COM12, Baud 57600 a
zachycení klávesy "END".
Zdrojový kód řešení umožňuje udělat si
v programu změny dle libosti a je ke stažení zde.
Poznámky:
1. Příklad jiného programu, který
komunikuje přes CAT rozhraní s SDR Console je zde. Jsou v
něm vysvětleny některé základní detaily a podstata komunikace
přes CAT.
2. Program nepoužívá žádný polling, žádná periodická
komunikace trvale neprobíhá a neotravuje SDR Consoli.
3. Program jsem napsal ve starší verzi Visual Studio 2010 v
jazyce Visual Basic. Visual Basic je užitečný a jednoduchý
programovací jazyk. Původně byl Basic vytvořen pro používání
začátečníky a techniky neprogramátory, což je můj případ.
Poslední dobou bývá jazyk Basic v některých komunitách
opomíjen, či dokonce zatracován, Pokud patříte do takové
komunity, tak si snadno převedete zdrojový kód řešení třeba do
jazyka C#, který používá velmi
podobnou filosofii myšlení.
4. Prosím, neposílejte mi ohledně programování komunikace s
různými rádii přes TCP client, CAT nebo CI-V žádné dotazy,
náměty nebo připomínky. Pro mojí vlastní
potřebu jde o uzavřenou záležitost, činnost není předmětem mého
dalšího zájmu. Nejsem profesionální programátor a v žádném případě nemám
zájem, čas a chuť cokoliv
kolem problematiky ovládání rádií řešit. Berte tento článek jen jako
námět a příklad s uvedením rozhodujících detailů, které vás mohou
zaměstnat déle, než jste předpokládali.
|