Urządzenia peryferyjne lab5, Studia, PWR, 5 semestr, Urządzenia peryferyjne, laboratorium


Urządzenia peryferyjne

Laboratorium nr 5

Temat: Zasady obsługi modemów i nawiązywania połączeń.

Prowadzący: dr inż. Tomasz Walkowiak

Elżbieta Tchorowska, 171067

Konrad Kukulski, 163930

Cele ćwiczenia:

Należało wykonać program, który miał za zadanie połączyć się z modemem na porcie COM1, połączyć się z modemem na komputerze drugim i stworzyć program do komunikacji komputerów między sobą.

Wybranym językiem programowania było C++ , środowisko VisualStudio2008.

Wykonanie:

Pierwszym etapem programu było umożliwienie połączenia się z portem COM1, na którym znajdował się modem.

0x08 graphic

Następnym krokiem było stworzenie interfejsu do obsługi. Znalazły się tam dwa przyciski „Wyślij” i „+++”, których zadaniem było wysłanie komendy i sekwencji przełączania się między trybem komend i danych. Stworzono okienko, w którym miały pokazywać się wybrane przez nas komendy i komunikaty oraz komunikaty odebrane z drugiego komputera.

Przycisk „+++” ustawiono w sposób:

0x08 graphic

Przycisk wysyłania wiadomości ustawiono razem już ze znakiem CR NL:

0x08 graphic

W oknie otrzymywanych wiadomości ustawiono podobnie tylko z argumentem:

0x08 graphic

Po stworzeniu takiego programu, zaczęliśmy go testować. Po długich nieudanych próbach nawiązania połączenia z modem, udało się je nawiązać. Błąd wystąpił z powodu braku naszej cierpliwości, gdyż modem potrzebował czasu by nawiązać połączenie z drugim modemem.

W końcu udało się nam zrealizować wysyłanie informacji z jednego komputera na drugi. Niestety działało to tylko w jedną stronę z komputera, który nawiązał połączenie.

Nie wystarczyło nam czasu na sprawdzenie tego błędu i stworzenie komunikacji obustronnej.

port = new SerialPort();

port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);

PortsComboBox.Items.AddRange(SerialPort.GetPortNames());

port.RtsEnable = true;

PortsComboBox.SelectedIndex = 0;

TerminalTextBox.AppendText("IN: " + port.ReadExisting() + "\r\n");

if (port.IsOpen)

{

port.Write("+");

port.Write("+");

port.Write("+");

TerminalTextBox.AppendText("[" + DateTime.Now + "] OUT: +++\r\n");

if (port.IsOpen)

{

port.Write(InputTextBox.Text + "\r\n");

}



Wyszukiwarka