Vyšlo v týdeníku Computerworld č. 8/94,
Vytištěno z adresy: http://www.earchiv.cz/a94/a408c503.php3

Co by měly umět programy pro sériové komunikace

Tento článek vyšel v tzv. tématu týdne v CW 8/94, jako třetí ze série článků věnovaných problematice počítačových komunikací.

Pro počítače PC dnes existuje poměrně bohatá škála komunikačních programů, určených pro tzv. sériové komunikace - neboli pro komunikace, uskutečňované prostřednictvím sériových rozhraní počítačů PC. Příklady takovýchto programů jsou: PROCOMM, Telix ..(prosím doplnit výčet a odkaz na další článek). Všechny přitom mají charakter běžných aplikačních programů, a jsou provozovány na popředí - jako jediná úloha v rámci jednouživatelského a jednoúlohového operačního systému MS DOS pak mají k dispozici "celý" počítač PC, o který se nemusí dělit s žádnou jinou úlohou.

Základní schopností všech těchto programů je schopnost odeslat znak přes zadané sériové rozhraní (tj. směrem "ven z počítače"), a dále převzít znak, přijatý zadaným sériovým rozhraním (tj. přijmout znak, vyslaný opačným směrem).

Propojíte-li si například dva počítače pomocí sériového kabelu a na každém z nich si spustíte takovýto program, máte rázem dispozici tzv. chat (viz výše), neboli nejjednodušší možnou formu on-line komunikace mezi dvěma uživateli. To, co uživatel jednoho počítače píše na své klávesnici, to příslušný komunikační program vysílá přes sériové rozhraní a sériový kabel druhému počítači, kde obdobný program jednotlivé znaky přijímá a průběžně je zobrazuje. Sám přitom přijímá vstupy z klávesnice od svého uživatele a odesílá je opačným směrem.

Chcete-li ke stejnému účelu využít propojení dvou počítačů po modemech přes veřejnou telefonní síť, musíte od svého komunikačního programu požadovat také schopnost práce s tímto modemem (zejména schopnost přimět jej, aby vytočil požadované telefonní číslo a navázal spojení s modemem, který se mu ozve na druhé straně). Drtivá většina dnes používaných modemů naštěstí spadá do kategorie tzv. chytrých (smart) modemů, a ovládají se prostřednictvím příkazů ve znakové formě, které se jim posílají stejnou cestou, jako vlastní data určená k přenosu - tedy přes příslušné sériové rozhraní (a na které odpovídají stejnou cestou krátkými znakovými řetězci). Pokud tyto příkazy znáte, můžete je modemu zadávat sami, a stejně tak sami vyhodnocovat jeho odpovědi. Obvykle se ale ovládání modemu ponechává na komunikačním programu.

Komunikační program, schopný ovládat modem, vám již vcelku postačí například pro přístup ke stanici BBS. Ta ale může předpokládat, že na druhé straně (tj. u vás) má co do činění s terminálem určitých vlastností, kterému může zasílat určité řídící kódy (například pro změnu barvy, smazání celé obrazovky či její části, posun kurzoru apod.), a on na ně dokáže reagovat. Činí tak proto, aby lépe využila jeho schopností (hlavně zobrazování). Váš komunikační program by ale měl s touto možností počítat, a měl by být schopen napodobovat chování alespoň těch nejznámějších typů terminálů, které připadají v úvahu - měl by tzv. emulovat alespoň několik známým a používaných typů terminálů. Schopnost emulace různých terminálů se vám bude velmi hodit také v případě, kdy se ze svého počítače PC připojujete k některému hostitelskému počítači v roli jeho terminálu.

Další vlastností, kterou bývají komunikační programy pro počítače PC vybavovány, je schopnost přenosu binárních souborů. Pro tento účel bylo vyvinuto několik různých protokolů (XMODEM, YMODEM, ZMODEM, KERMIT a další, viz článek ...), a kvalitní komunikační program by je měl "umět" všechny. Musí se totiž vždy shodnout s protější stranou na tom, který protokol pro daný přenos použijí.

Komunikační program, tak jak jsme si jej až dosud popisovali, je však pouze pasivním nástrojem, který nevykonává nic z vlastní iniciativy, ale vždy jen na explicitní pokyn uživatele. Je to právě uživatel, kdo musí "ručně" odstartovat přenos souboru, kdo musí řídit průběh komunikace s druhou stranou a reagovat na veškeré události, ke kterým dochází - například na výzvu k zadání hesla jej musí sám "vyťukat" apod. Ovšem reakce člověka nebývá vždy nejrychlejší, a to může být značně na závadu - zejména tehdy, používáte-li služby veřejné telefonní sítě a voláte někam meziměstsky. Pak přichází velmi vhod možnost zautomatizovat ovládání komunikačního programu, neboli předem naprogramovat jeho činnost. Komunikační program, který této možnosti vychází vstříc, je vybaven vlastním jazykem (tzv. skriptovým jazykem), ve kterém je možné jeho chování naprogramovat: například mu lze předepsat, že má čekat, dokud mu protější strana nevyšle řetězec "Zadejte sve jmeno:", a pak na něj reagovat zasláním vašeho uživatelského jména. Repertoár akcí, které lze takto předem naprogramovat, záleží jen na vlastnostech konkrétního komunikačního programu a bohatosti jeho skriptového jazyka.

Prostřednictvím programů ve skriptovém jazyku (tzv. skriptů) je pak možné naprogramovat například kompletní "relaci" uživatele se stanicí BBS, začínající vytočením telefonního hovoru, zadáním uživatelského jména a hesla, včetně vyzvednutí nové pošty, odeslání předem připravené pošty, řádného odhlášení, zavěšení apod. Vše pak probíhá maximální možnou rychlostí, což kromě poplatků za telefonní spojení šetří dokonce i nervy ostatních zájemců, kterým blokujete u nás tak vzácné telefonní linky jen po maximálně nezbytnou dobu.

Pokud tomu konkrétní komunikační jazyk vychází vstříc, je možné v jeho skriptovém jazyku napsat i takový skript, který bude trpělivě čekat na zavolání jiného počítače (resp. uživatele), a bude s ním "konverzovat" bez přímé lidské obsluhy. Tímto způsobem je pak možné naprogramovat dokonce i velmi jednoduchou stanici BBS (i když ty skutečné bývají realizovány pomocí specializovaných programů, vytvořených právě za tímto účelem).