RS 232C praktyczne programowanie Od Pascala i C do Delphi i Buildera Wydanie II.pdf

(297 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
RS 232C — praktyczne
programowanie. Od Pascala
i C++ do Delphi i Buildera.
Wydanie II
Autor: Andrzej Daniluk
ISBN: 83-7197-990-8
Format: B5, stron: 412
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Drugie wydanie ksi¹¿ki „RS 232C — praktyczne programowanie. Od Pascala i C++
do Delphi i Buildera” to kompendium wiedzy adresowane do osób zajmuj¹cych siê
tworzeniem oprogramowania steruj¹cego urz¹dzeniami pod³¹czanymi przez port
szeregowy. Ksi¹¿ka umo¿liwia zdobycie wiedzy niezbêdnej, by przy u¿yciu narzêdzi
Delphi i Builder tworzyæ w Pascalu i C++ w³asne programy do obs³ugi transmisji
szeregowej.
W ksi¹¿ce przedstawiono:
Opis metod realizacji nowoczesnej transmisji asynchronicznej poprzez interfejs
RS 232C
Opis wszystkich, niezbêdnych funkcji oraz struktur najczê ciej wykorzystywanych
do realizacji transmisji szeregowej oferowanych przez Win32 API
Metody realizacji transmisji buforowanej oraz niebuforowanej
Metody realizacji transmisji szeregowej z wykorzystaniem portów USB
Kompletne przyk³ady oryginalnych algorytmów stosowanych przy obs³udze ³¹cza
szeregowego
Nowe wydanie zosta³o zaktualizowane i poprawione. Dodano nowe rozdzia³y opisuj¹ce
tworzenie w³asnych komponentów obs³ugi portu szeregowego oraz transmisjê
szeregow¹ z wykorzystaniem portu USB. Dok³adny opis USB, standardu zdobywaj¹cego
ostatnio ogromne uznanie, to kolejny powód, dla którego warto mieæ tê ksi¹¿kê.
Do³¹czony do ksi¹¿ki CD-ROM zawiera:
Przyk³adowe programy napisane w C++ i Pascalu.
Kompletne kody ród³owe aplikacji napisanych w C++Builderze 5.
Kody ród³owe aplikacji napisanych w Delphi 6.
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Spis treści
Przedmowa do wydania drugiego ........................................................ 7
Wprowadzenie ................................................................................... 9
Rozdział 1. Definicja interfejsu........................................................................... 13
Rozdział 2. Nowoczesna transmisja asynchroniczna oraz standard RS 232C........ 17
RTS-CTS handshaking......................................................................................................22
Konwertery interfejsu RS 232C ........................................................................................26
Konwertery USB/RS 232C ...............................................................................................26
Protokół XON-XOFF........................................................................................................27
Protokół ENQ-ACK ..........................................................................................................28
Protokół ETX-ACK...........................................................................................................28
Protokół SOH-ETX ...........................................................................................................28
Protokoły typu master-slave..............................................................................................29
Rola oprogramowania, a podstawowe funkcje interfejsu .................................................29
Podsumowanie ..................................................................................................................31
Rozdział 3. Jak testować programy do transmisji szeregowej?.............................. 33
Mirror w MS DOS ............................................................................................................33
Terminal dla Windows ......................................................................................................35
Podsumowanie ..................................................................................................................37
Rozdział 4. RS 232C w MS DOS ........................................................................ 39
Borland C++......................................................................................................................39
Borland Pascal...................................................................................................................46
Funkcja 00h.................................................................................................................47
Funkcja 01h.................................................................................................................48
Funkcja 02h.................................................................................................................48
Funkcja 03h.................................................................................................................48
Podsumowanie ..................................................................................................................50
Ćwiczenia ..........................................................................................................................50
Rozdział 5. Programowa obsługa interfejsu RS 232C w Windows ........................ 51
Proces projektowania oprogramowania ............................................................................55
Wykorzystanie elementów Win32 API w C++ Builderze. Część I ..................................56
Testowanie portu szeregowego...................................................................................64
Nawiązanie połączenia................................................................................................79
Przykładowa aplikacja ................................................................................................93
Zamknięcie portu komunikacyjnego...........................................................................99
4
RS 232C — praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera
Czyszczenie buforów komunikacyjnych ....................................................................99
Zapis i odczyt informacji ..........................................................................................100
Podsumowanie ................................................................................................................101
Ćwiczenia..................................................................................................................102
Wykorzystanie elementów Win32 API w C++ Builderze. Część II ...............................102
Wysyłamy znak po znaku .........................................................................................102
Wysyłamy pliki.........................................................................................................108
Wykorzystanie komponentu TTimer ........................................................................120
Aplikacja nie lubi milczeć ........................................................................................138
Break Time — czas oczekiwania aplikacji...............................................................143
Podsumowanie ................................................................................................................152
Ćwiczenia..................................................................................................................153
Wykorzystanie elementów Win32 API w Delphi. Część I .............................................153
Testowanie portu szeregowego — inaczej ...............................................................153
Nawiązanie połączenia..............................................................................................169
Przykładowe aplikacje ..............................................................................................173
Podsumowanie ................................................................................................................182
Ćwiczenia..................................................................................................................182
Wykorzystanie elementów Win32 API w Delphi. Część II............................................182
Wysyłamy znak po znaku .........................................................................................182
Wysyłamy pliki.........................................................................................................188
Timer w Delphi .........................................................................................................203
Podsumowanie ................................................................................................................219
Ćwiczenia..................................................................................................................219
Rozdział 6. Aplikacje wielowątkowe................................................................. 221
Najwa niejszy jest u ytkownik.......................................................................................222
U ytkownik steruje programem................................................................................222
Mo liwość anulowania decyzji.................................................................................222
Mo liwość odbioru komunikatu nawet w trakcie wysyłania danych .......................223
Mo liwość wysłania odrębnej informacji w trakcie transmisji pliku .......................223
Delphi ..............................................................................................................................224
Konkurencja dla Timera ...........................................................................................237
Konkurencja dla Timera. Inny sposób ............................................................................245
Wielowątkowość i DLL ..................................................................................................254
C++ Builder.....................................................................................................................262
Zamiast Timera .........................................................................................................271
Zamiast Timera. Inny sposób....................................................................................278
Podsumowanie ................................................................................................................286
Ćwiczenia..................................................................................................................287
Rozdział 7. Wykorzystanie niektórych narzędzi graficznych ............................... 289
Komponent TChart..........................................................................................................289
Podsumowanie ................................................................................................................299
Rozdział 8. Przykładowe aplikacje wykorzystywane w systemach pomiarowych ..... 301
Kontroler temperatury .....................................................................................................302
Aplikacja obsługująca kilka urządzeń.............................................................................319
Podsumowanie ................................................................................................................333
Rozdział 9. Tworzenie komponentów ................................................................ 335
Komponent TOpenSerialPort..........................................................................................335
Testowanie komponentu .................................................................................................340
Podsumowanie ................................................................................................................345
Spis treści
5
Rozdział 10. Transmisja szeregowa z wykorzystaniem portu USB.......................... 347
Właściwości portu USB ..................................................................................................348
Programowanie portu USB .............................................................................................350
Nie rozwiązane odniesienia do funkcji ...........................................................................354
Podsumowanie ................................................................................................................359
Dodatek A Specyfikacja funkcji CreateFile() — operacje plikowe ..................... 361
Dodatek B Zamiana liczb z postaci dziesiętnej na binarną................................ 365
Dodatek C Specyfikacja struktur MODEMDEVCAPS, MODEMSETTINGS
oraz funkcji GetCommModemStatus()............................................. 369
MODEMDEVCAPS .......................................................................................................369
MODEMSETTINGS.......................................................................................................372
GetCommModemStatus() ...............................................................................................373
Dodatek D Aplikacje konsolowe ...................................................................... 375
Skorowidz......................................................................................381
Rozdział 2.
Nowoczesna
transmisja asynchroniczna
oraz standard RS 232C
Podstawową wersję RS 232 (ang.
Recommended Standard)
wprowadzono w 1962 roku
w USA. Początkowo standard ten miał słu yć jedynie do obsługi modemów. Od tego
czasu był poddawany kilkakrotnej aktualizacji celem bardziej optymalnego dostoso-
wania do potrzeb szeregowej transmisji danych. Największą popularność zdobyła wersja
RS 232C wprowadzona w 1969 roku, zaś oficjalnie do rangi standardu została podnie-
siona w roku 1986. RS 232C jest powszechnie stosowanym i akceptowanym standar-
dem dla szeregowej wymiany danych cyfrowych pomiędzy urządzeniem DTE (ang.
Data
Terminal Equipment),
obecnie uto samianym z komputerem, a DCE (ang.
Data Com-
munication Equipment)
— urządzeniem zewnętrznym (w oryginale — modemem).
W sposób jednoznaczny definiuje on parametry elektryczne, mechaniczne i logiczne łącza
szeregowego. Oficjalna jego nazwa brzmi
Interface Between Data Terminal and Data
Circuit Termination Equipment Employing Serial Binary Data Interchange.
RS 232C
stosowany bywa wszędzie tam, gdzie mniej istotną rolę odgrywa przepustowość łącza,
natomiast wa na jest niezawodność i prostota obsługi protokołu komunikacyjnego.
Ze względu na prostotę realizacji szeregowej transmisji asynchronicznej większość
obecnych urządzeń posługuje się właśnie takim trybem przesyłania danych. Ró nice
w sposobie realizacji transmisji synchronicznej i asynchronicznej schematycznie przed-
stawione są na rysunku 2.1.
Komputery osobiste wyposa one są w łącza szeregowe przystosowane do transmisji
asynchronicznej, tzn. komputer i urządzenie muszą pracować z jednakową, wcześniej
uzgodnioną prędkością oraz wykorzystywać taką samą strukturę znaków. Transmisja
taka mo e być realizowana w trybie bez potwierdzenia odbioru lub z potwierdzeniem
odbioru. Drugi sposób zapewnia nam mo liwość kontrolowania poprawności wysyła-
nych-odbieranych danych. Dane przesyłane są w postaci tzw. ramki (ang.
frame),
która
jest najmniejszą porcją mo liwej do przesłania informacji. Bity przesyłane są kolejno.
Zgłoś jeśli naruszono regulamin