Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Příklad na komunikaci přes telefonní modem (objekt PmModem)

Příklad je umístěn ve složce: /Pm/Examples/Commun/Modem. V této složce jsou dvě aplikace (Master a Slave).
 
Je to příklad na přenos dat mezi dvěmi aplikacemi sériovým protokolem PmNET0 pomocí modemů. Aplikace Slave nabízí data - modem čeká na zavolání. Aplikace Master zasílá nebo čte data - objekt PmModem vytáčí číslo a po vytočení se přečtou (zašlou) data pomocí objektu PmCommMsg.
 
Pro funkčnost příkladu je nutný počítač s modemem, s již nainstalovaným ovladačem a nakonfigurovaným pro telefonní síť. Pro úplné vyzkoušení komunikace pomocí modemu je vhodné použít dva počítače propojené modemy. Na jednom PC spustit aplikaci Modem Slave a na druhém PC spustit aplikaci Modem Master.
 

Modem Master

Po spuštění se nejdříve otevře okno pro zadání telefonního čísla počítače s aplikací Modem Slave (poskytovatel dat). Po zadání čísla se přejde do okna ovládání komunikace. Obsluha má k dispozici tlačítko "Start communication", kterým se načtou data z aplikace "Modem Slave" (od poskytovatele), a tlačítko "Send null data", kterým se zašlou počáteční (nulová data) poskytovateli a následně znovu načtou nová (aktuální) data od poskytovatele. Načtená data jsou zobrazována v panelu dat. Vizualizace stavu komunikace (modemu) se provádí v samostatném okně.
 
Popis implementace aplikace:

Aplikace Modem Master je příklad komunikace, získávání a zasílání dat po telefonních linkách pomocí modemu. Celý objekt "ModemMaster" lze použít (po zkopírování a specifikaci) v konkrétních aplikacích, ve kterých je potřeba získávat nebo zasílat data dalším aplikacím (klientům) pomocí modemu. Seznam objektů:

- ModemMaster: V záložce Metody je definována metoda "AddReport", která slouží k výpisu hlášení stavu komunikace.

Objekt je složen z objektů:

- Base: Slouží k počátečnímu zadání telefonního čísla poskytovatele/příjemce dat (klienta - Modem Slave). V záložce Metody je definovaná metoda "OpenWindow", kterou se určuje, která další uživatelská obrazovka se otevře. Telefonní číslo, zadané v úvodní obrazovce, se ukládá do objektu "PhoneNumber".

Poznámka: Telefonní číslo nutno zadávat i s předčíslím, podle dané telefonní sítě. Je potřeba ošetřit prodlevu pro přepojení z vnitřní na venkovní telefonní síť.

- Data1: Slouží pro ovládání komunikace a uložení načtených dat. V záložce Metody jsou definovány dvě metody "Read" a "Write".
"Read" metoda - nastaví se typ komunikace "čtení" a vytočí se telefonní číslo poskytovatele (Modem Slave). Metoda je vyvolána tlačítkem "Spustit komunikaci" z operátorské obrazovky
"Write" metoda - nastaví se typ komunikace "zaslání" a vytočí se telefonní číslo klienta (Modem Slave). Metoda je vyvolána tlačítkem "Send null data" z operátorské obrazovky

Načtená data se ukládají do objektu "DataRead" typu PmData.

- TypeTransfer: Slouží k uložení typu komunikace.
- Report: Slouží k ukládání hlášení o stavu komunikace (stavu modemu).
- Comm: Slouží ke komunikaci. Je zde definován komunikační protokol. Skládá se z objektů typu PmCommMsg:
- Data1Read: zde se data z klienta přijímají.
- Data1Write: zde se data do klienta zasílají.

V události onEndOfTransfer obou objektů se zjišťuje úspěšnost přenostu a pak se volá metoda HangUp.

- Modem: Slouží k ovládání modemu. V události "onConnect" se podle typu komunikace spustí metoda Run nad objektem "Data1Read" nebo "Data1Write".
 

Modem Slave

Po spuštění aplikace se spustí emulace dat a modem se automaticky nastaví do režimu "WaitForCall", tzn. čekání na připojení druhé strany. Obsluha může ovládat emulaci dat tlačítky: "Stop data emulation", "Start data emulation" a "Set data to null". Dále má obsluha k dispozici okno "Communication status", kde se vypisuje aktuální stav komunikace (stav modemu).
 
Popis implementace aplikace:

Aplikace Modem Slave je příklad komunikace, poskytování dat po telefonních linkách pomocí modemu. Celý objekt "ModemSlave" lze použít, po zkopírování a specifikaci, v konkrétních aplikacích, ve kterých je potřeba poskytovat data dalším aplikacím, uživatelům, pomocí modemu. Seznam objektů:

- ModemSlave: Slouží k emulaci dat, která jsou dále poskytována dalším stanicím připojeným pomocí modemu a telefonní sítě. Při spuštění aplikace (událost "onStart") se nastaví modem do stavu "WaitForCall" (čekání na připojení druhé strany). Po ukončení aplikace (událost "onStop") se modem deaktivuje. V záložce "Metody" je definována metoda "AddReport", která slouží k výpisu hlášení v okně "Communication status".

Objekt je složen z objektů:

- Data1: Slouží k emulaci dat a k obsluze aplikace. V záložce "Metody" je definována metoda "NulData", která slouží k nastavení emulovaných dat na počáteční (nulové) hodnoty. Metodu využívá jednak tlačítko "Set data to null" a také objekt "Timer" (viz podmínka ve scriptu události onTick). Grafický objekt "Window" slouží k vizualizaci dat, k ovládání emulace dat a k vizualizaci stavu komunikace (stavu modemu). Objekt "Timer" slouží k emulaci dat (viz script v události onTick). Objekt "Data1" typu PmData slouží k ukládání emulovaných dat.
- Report: Slouží k ukládání hlášení stavu komunikace.
- Comm: Slouží ke komunikaci. Je zde definován komunikační protokol. Podobjekt "Data1Read" jsou poskytovaná data (data pro vysílání). Podobjekt "Data1Write" jsou přijímaná data (data pro zápis).

Poznámka: "Data1Read", "Data1Write" musí být stejného typu jako "Data1" a druhá strana musí mít také stejný typ dat.

- Modem: Slouží k ovládání modemu. V události "onHangUp" (po ukončení komunikace s druhou stranou) se opět modem nastaví do režimu "WaitForCall".
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice