Úvod
Níže popsanou problematiku jsem zařadil mezi užitečná témata svého
webu, protože existuje opravdu obrovské množství aplikací, které
byly v minulosti napsány pro použití se sériovým portem (RS-232),
jsou rovněž v dnešní době stále psány. Existuje
také obrovské množství zařízení, která sériový port mají. Např.
můj Kenwood TS-2000, spousta mých měřáků, všechny starší přepínače
antén, tunery atd. A ještě ho dlouho mít budou :-)
Existuje velké množství SW a HW
produktů, které umí dostat sériový port z desktopu (konkrétně zde z
Windows 10) na TCP server, který tok dat přesměruje na fyzický
sériový port.
Vyzkoušené řešení
Na stránkách HW
group najdete a můžete si stáhnout freewarový program,
který jednoduše nainstalujete. Jeho obrovskou výhodou je,
že jednoduše vytvoříte virtuální sériový port. Například
COM9, jako na obrázku vpravo. Jediné, co musíte udělat,
tak je vybrat číslo COM (zde COM9) a vyplnit správně IP
adresu a číslo portu, kde naslouchá server, který umí
směrovat bajty přijaté z virtuálního portu do fyzického
portu, který má. Můj server byl laciný Elfin EW-10,
popsal jsem ho
tady.
Ve své aplikaci, např. v ovládacím
programu stanice, pouze zvolíte číslo portu COM9,
nastavíte obvyklé parametry, např. baudovou rychlost,
počet bitů, stopbitů a paritu. A je hotovo. Aplikace si
virtuální port otevře, posílá do portu bajt po bajtu, tedy
svůj protokol a přijímá na tomtéž portu bajt za bajtem z
druhého konce relace.
Výhody
HW VSP3 single je freeware. Tedy zadarmo. Jednoduše se
instaluje, jednoduše se nastavuje a spolehlivě funguje.
Funguje i ve spolupráci s programy nakreslenými např.
pomocí prostředků Profilab Expert. Zde příklad přepínače
antén:
|
|
Program není rovněž vázán na žádný
HW. Stačí mu vyplnit IP adresu a port naslouchajícího
serveru! Dovolím si upozornit na nesmyslný mýtus,
že virtuální sériový port je jen ovladač, vztažený ke
konkrétnímu HW. Ne, opravdu, NENÍ to tak. Ovladač HW je
úplně jinde, na jiném zařízení, které má fyzický sériový
port. |
Nevýhoda
Jde o
freewarové řešení. Posílám mnoho díků firmě a autorům
programu. Nevýhodou tohoto řešení je možnost vytvořit
pouze jediný virtuální port. V mnoha případech s takovým
řešením vystačíme. Nevýhoda je zaplacena jednoduchostí a
snadným nastavováním. Firma nabízí též víceportové řešení.
To však není otevřené a je vázáno pouze na hardware a
řešení dodávané společností HW group. Toto řešení jsem
nezkoušel, zajímala mne jen otevřená řešení. |
Poznámky
1. Na obrázku vpravo jsem
ukázal, kde a jak je vidět ve Správci zařízení virtuální
sériový port. Není mezi porty (COM a LPT), ale objeví se
jako samostatná položka Virtual Serial Port (Eltima
Software).
2. Vyzkoušel jsem toto řešení s celou
řadou zařízení, včetně Kenwood TS-2000, včetně mých
měřicích ústředen, přepínačů antén, anténních ústředen.
3. Také jsem dal dotaz na Microsoft fórum
"Zeptejte se komunity". S upřímným cílem zjistit, jaká
řešení používají uživatelé Windows. Vzápětí jsem tohoto
kroku litoval.
První řádek první odpovědi byl,
cituji: Toto je reklama, nebo ano? Reklamy mazeme!
Nicméně, autor mi odpověděl podobně, jak jsem očekával,
tedy konkrétním typem tzv. profi řešení, které obsahuje HW
i SW.
Další odpověď jiného guru začínala slovy:
"Nechápu proč by to mělo být
součástí OS. Tyto SW nemají bez toho HW žádné
opodstatnění, takže to že se dodávají jako ovladače k HW
je jenom správně." Přemýšlím,
zda je pravda, to co Microsoft guru tvrdí. A vím, že nemá
pravdu. Taková služba není ničím vázaná na HW, virtuální
sériový port může běžet jen jako služba operačního
systému, která umožňuje aplikacím komunikaci přes sériový
port. Data, tj. bajt za bajtem by však neměla končit ve
stoupě. V popsaném případě nekončí. Jsou posílána bajt za
bajtem na TCP socket serveru, ten není vázán na
žádný HW. Tedy data se posílají tam, kde jsou
očekávána a zpracovávána. Ale proč se hádat s lidmi, kteří
znají to své :-)
|
|
Musím v tomto okamžiku přiznat, že
jsem si dovolil na Microsoft fóru napsat kacířskou
myšlenku, zda by možnost vytvářet virtuální sériové porty
neměla být standardní službou operačního systému, který už
tak obsahuje celou řadu zbytečných funkcí, ale nemá ty
základní, užitečné. Na to jsem odpověděl po svém:
"Názor na to, zda má být
služba součástí operačního systému, na kterou jsem se
dotázal, máme a budeme mít určitě Ty a já rozdílný. Já
rozhodně nepovažuji sériové rozhraní za mrtvé. Sériový
port používá obrovské množství aplikací pro desktop.
Komponenty pro programování jsou součástí např. Visual
Studia od verze VS 2008, knihovny pro programování TCP
socketu také. Sériový port umí transparentně celá řada
technologií, např. Bluetooth. Vytváření virtuálních
sériových portů určitě umí celá řada aplikací třetích
stran. A já nevidím jediný důvod, proč by nástroj neměl
být součástí operačního systému pro desktop, když už nám z
HW vymizely rozměrné konektory Cannon, ale existují
naprosto otevřené technologie, které jsou miniaturní,
levné, snadno administrovatelné a hlavně transparentní,
otevřené a mají ten sériový port. Proto jsem tuto vizi
napsal na fóru, u kterého předpokládám, že jsou lidé,
kteří dávají Microsoftu zpětnou vazbu. Možná však
Microsoft o zpětnou vazbu nestojí, má své vize. Proto jsem
se všem účastníkům fóra omluvil a dělám to znovu. Nemám
zapotřebí kdekoliv obtěžovat."
Celá diskuze probíhala zde:
https://answers.microsoft.com/cs-cz/windows/forum/all/virtu%c3%a1ln%c3%ad-s%c3%a9riov%c3%bd-port/fbc1e7ea-bab5-45bb-9950-0c319aa95ced
Ještě jednou se omlouvám svým
čtenářům, pokud zde
popisuju známa a banální řešení. Prostě zde popisuji jen a jen
konkrétní a vyzkoušené nápady a mám radost, pokud budou
komukoliv užitečné. A posílám poděkování všem, kteří píší
užitečné aplikace pro desktopy.
Dodatek -
už pouze několik postřehů
1. Stáhnul jsem
též verzi programu, která umí více virtuálních portů. Šla
nainstalovat. Verze je však určená jen pro propietární
řešení HW group s konkrétním HW. Protože žádné takové
zařízení nemám, nezkoušel jsem ani ten SW. Hlavní důvod
však vidím v tom, že předpokládám, že výrobce bude
šifrovat IP komunikaci a přenos nebude transparentní.
Lidově - ze vzdáleného fyzického portu nepoleze nic nebo
pouze jen jakási posloupnost nesmyslných bajtů.
2.
Před instalací víceportové verze musíte odinstalovat
původní jednoportovou verzi. Obdobně, před další instalací
single COM verze musíte odtsranit multi COM verzi.
3. Při opětovné instalaci single COM se vyskytly při
instalaci problémy. Nicméně, instalaci jsem dokončil, poté
SW odinstaloval pomocí Revo Uninstaler, a to s hloubkovým
prohledáním na všechny soubory, adresáře a záznamy v
registru. Následně proběhla opětovná instalace korektně.
4. Při prvním spuštění a vytváření portu jsem
pravděpodobně udělal chybu. Doporučuji po prvním spuštění
dodržet tento postup:
- Otevřít záložku Settings,
provést login a uložit nastavení do ini souboru. -
Potom lze jít na záložku Virtual Serial Port a vytvořit
tam virtuální port. To znamená vybrat COM (já jsem vybral
COM9) a vyplnit IP adresu (moje je 192.168.1.5) a nastavit
port (8899). Zařízení s IP adresou nemusí být při
vytváření virtuálního portu spuštěné. - Port se
vytvoří, program napíše Created a port se objeví ve
Správci zařízení. Domníval jsem se, že vždy tak, jak jsem
ukázal v tomto článku. Nemusí to však být pravda vždy.
Teď, když píšu tento odstavec, tak vše zkouším s Win 10,
build 1903, který jsem nedávno instaloval a virtuální port
se mi objevuje mezi Porty (COM a LPT). Proč je to jednou
tak a podruhé jinak, to netuším.
5. Vyzkoušel jsem
všechna zařízení se sériovým portem, které jsem měl po
ruce. Všechna fungovala. Včetně transceiverů Kenwood,
včetně montáže astronomického dalekohledu, včetně
programátoru jednočipových mikropočítačů. Spustil jsem i
jednoduchý testovací program,
který jsem ukázal zde (na černé obrazovce někde uprostřed).
Bajty, které jsem odeslal, jsem vždycka spolehlivě přijal.
Prostě se mi to líbí a líbilo by se mi to ještě víc jako
služba operačního systému. |
|
|
|
|
|