Úvod
1.
Cílem článku je ukázat, jak je TCP komunikace mezi dvěma aplikacemi
běžícími na různých PC v síti prostá.
2. Druhým cílem bylo ukázat, jak je
návrh i realizace takové komunikace pro technika jednoduchá, pokud
použije dobré
objektově orientované vývojové nástroje. Obě aplikace byly namalovány
za několik minut v ProfiLab-Expert.
Příklad
Jako příklad jsem použil dvě prosté aplikace, které mezi sebou
komunikují:
1. Aplikace je dálkově řízený LC/CL tuner, u kterého nastavuje obsluha
konfiguraci a hodnoty L a C.
2. Aplikace je Y(t) monitor, který monitoruje a zobrazuje v závislosti
na čase, co obsluha tuneru se zařízením dělala.
Příprava úloh
První aplikaci jsem doplnil o komponenty TCP serveru. TCP servery
naslouchají na svých portech. Pokud se k němu připojí (na jeho IP adresu a
port) klient, začne přenášet data.
Druhá aplikace byla aplikace Y(t) plotteru, kterou jsem používal k
záznamu naměřených veličin. Rovněž jsem ji upravil. Vyhodil jsem
komponenty, které mi sloužily k telemetrii a tři vstupy jsem vybavil
komponentami TCP klientů, které se umí spojit s naslouchajícími
servery na IP adresách a portech v první aplikaci.
Špehování obsluhy může začít.
Aplikace č. 1
Jde o obyčejnou aplikaci, která ovládá po virtuálním sériovém portu
dálkově řízený krátkovlnný tuner. Aplikace vypadá takto:
|
|
Abychom mohli špehovat z jiného počítače, co dělá obsluha s ovládacími
prvky, doplníli jsme aplikaci o tři TCP servery, které běží na IP
adrese desktopu a na portech 8899, 8890 a 8891. Celé schéma aplikace
tuneru je zde. Jedná se opravdu o schéma celého dálkově řízeného
zažízení, které jsem schopen nakreslit a oživit asi za půl hodiny. V
pravé části jsem přikreslil tři TCP servery a nakonfiguroval jsem je.
Obsluha nemá tušení, že bude takto jednoduchým opatřením špehována.
|
|
TCP servery musíme nakonfigurovat, aby fungovaly a komunikovaly s
klienty na jiném počítači. Konfigurace je prostá, nastaveuje se režim
(server) port TCP, IP adresa, případně další detaily (kanál, druh
signálu,....): |
|
A to je vše. Program zkompilujeme, odneseme na počítač, kde tuner
poběží a počkáme, až ho obsluha pustí.
Aplikace č. 2
Je rovněž obyčejná aplikace, která využívá zapouzdřeného objektu Y(t)
Plotter. Ten umožňuje na několika kanálech zaznamenávat průběhy
analogových hodnot tak, jak se hodnoty mění v čase. Umí celou řadu dalších
užitečných funkcí (např. tisk, kopírování, ukládání dat, ...), ale to
není předmětem dnešního článku. Obrazovka po nějakém čase od spuštění vypadá
takto:
|
|
Co jsme vyšpehovali?
V horní části nám již několik sekund "jede" virtuální papír
zapisovače. V sekundě 0 byl spuštěn na vzdáleném počítači tuner. To
jsem poznal podle toho, že začaly zeleně svítit LED diody všech 3
špehovaných kanálů. Po zapnutí tuner běžel s naposledy nastavenými
hodnotami (pamatuje si je). Potom (asi 20 sekunda) obsluha zahejbala s
indukčností (červená čára), vrátila prvek zpět, zahejbala s kapacitou
a taky přepnula konfiguraci CL-LC (asi v 45 sekundě) a po déle než
jedné minutě ji vrátila zpátky. Předtím také hejbala s kapacitou, a to
až k hodnotě 2000 pF. Přibližně v jedné minutě a 15 sekundách vrátila
kapacitu a indukčnost na hodnoty kolem 600 pF a 380 mikroH. Někdy mezi
2min. 30sec. a 3min.15 sekundami obsluha již jen jemně ladila L a C, s
přepínačem konfigurace nehejbala.
K funkci špehování obsluhy tuneru není co dodat.
Celé schéma špehovacího monitoru je zde:
|
|
|
|
Samozřejmě, že klienty TCP musíme správně nastavit, tj. nastavit režim
Client, nastavit stejný port TCP, který jsme použili na serveru
špehovaného tuneru a taky musíme nastavit IP adresu stroje, kde nám
aplikace tuneru se servery TCP běží (aplikace z úlohy č. 1).
Závěr
Pokud píšeme (v uvedených příkladech jsme kreslili) aplikace v
moderních vývojových prostředcích, které jsou od toho, pak ani TCP
komunikace mezi aplikacemi, které běží na různých PC nemusí být pro
nás noční můrou, ale krátkou a elegantní zábavou. O psaní takových
aplikací napíšu ještě několik dalších článků. |
|
|