ebook img

RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera PDF

500 Pages·2014·5.65 MB·Polish
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Redakcja: Krzysztof Zemanek Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 032 231 22 19, 032 230 98 63 e-mail: [email protected] WWW: http://helion.pl (księgarnia internetowa, katalog książek) Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie?rs2323_ebook Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Dodatkowe materiały do książki można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/RS2323_ebook.zip Rozmiar pliku: 38,5 MB ISBN: 978-83-246-9446-4 Copyright © Helion 2007, 2014 Printed in Poland.  Poleć książkę na Facebook.com  Księgarnia internetowa  Kup w wersji papierowej  Lubię to! » Nasza społeczność  Oceń książkę Książkę tę poświęcam pamięci mojego ojca Czesława 4 RS 232C — praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera Spis treści 5 Spis treści Przedmowa do wydania trzeciego ......................................................9 Wprowadzenie ................................................................................11 Rozdział 1. Definicja interfejsu .........................................................................15 Rozdział 2. Nowoczesna transmisja asynchroniczna oraz standard RS 232C ......19 RTS-CTS handshaking ...................................................................................................24 Konwertery interfejsu RS 232C ......................................................................................28 Konwertery USB/RS 232C .............................................................................................29 Właściwości portu konwertera .................................................................................31 Protokół XON-XOFF .....................................................................................................33 Protokół ENQ-ACK .......................................................................................................33 Protokół ETX-ACK ........................................................................................................34 Protokół SOH-ETX ........................................................................................................34 Protokoły typu master-slave ...........................................................................................34 Rola oprogramowania a podstawowe funkcje interfejsu ................................................36 Podsumowanie ................................................................................................................38 Rozdział 3. Jak testować programy do transmisji szeregowej? ...........................39 Mirror w MS-DOS .........................................................................................................39 Terminal dla Windows ...................................................................................................41 Podsumowanie ................................................................................................................43 Rozdział 4. Transmisja szeregowa w MS-DOS ....................................................45 Borland C++ ...................................................................................................................45 Borland Pascal ................................................................................................................53 Funkcja 00h ..............................................................................................................55 Funkcja 01h ..............................................................................................................56 Funkcja 02h ..............................................................................................................56 Funkcja 03h ..............................................................................................................56 Podsumowanie ................................................................................................................58 Ćwiczenia .......................................................................................................................58 Rozdział 5. Programowa obsługa interfejsu RS 232C w Windows ......................59 Typy danych Windows ...................................................................................................61 Proces projektowania oprogramowania ..........................................................................64 Wykorzystanie elementów Windows API w C++Builderze. Część I .............................64 Struktura DCB ..........................................................................................................65 Funkcja CreateFile() .................................................................................................65 6 RS 232C — praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera Funkcja GetCommState() .........................................................................................70 Funkcja SetCommState() .........................................................................................71 Funkcja CloseHandle() .............................................................................................71 Testowanie portu szeregowego .......................................................................................74 Struktura COMMPROP ...........................................................................................78 Funkcja GetCommProperties() .................................................................................82 Struktura COMMCONFIG .......................................................................................88 Funkcje GetCommConfig() i SetCommConfig() .....................................................88 Funkcja CommConfigDialog() .................................................................................89 Struktura COMMTIMEOUTS .................................................................................90 Funkcje GetCommTimeouts() i SetCommTimeouts() .............................................91 Nawiązanie połączenia. Wariant I ..................................................................................91 Segment inicjalizująco-konfiguracyjny ....................................................................92 Segment wysyłający komunikaty. Funkcja WriteFile() ............................................92 Segment odbierający komunikaty. Funkcja ReadFile() ............................................93 Przykładowa aplikacja ..............................................................................................94 Nawiązanie połączenia. Wariant II .................................................................................97 Funkcja SetupComm() .............................................................................................98 Funkcja ClearCommError() ......................................................................................98 Struktura COMSTAT .............................................................................................100 Przykładowa aplikacja ............................................................................................102 Zamknięcie portu komunikacyjnego ......................................................................106 Nawiązanie połączenia. Wariant III ..............................................................................107 Funkcje GetCommMask() i SetCommMask() ........................................................107 Funkcja WaitCommEvent() ....................................................................................109 Przykładowa aplikacja działająca w środowisku tekstowym ..................................110 Przykładowa aplikacja działająca w środowisku graficznym .................................118 Nawiązanie połączenia. Wariant IV .............................................................................123 Funkcja BuildCommDCB() ....................................................................................123 Funkcja BuildCommDCBAndTimeouts() ..............................................................125 Inne użyteczne funkcje .................................................................................................126 Podsumowanie ..............................................................................................................128 Ćwiczenia .....................................................................................................................128 Wykorzystanie elementów Windows API w C++Builderze. Część II ..........................129 Wysyłamy znak po znaku. Funkcja TransmitCommChar() ....................................129 Wysyłamy pliki. Funkcje _lopen, _lread(), _lwrite(), _lclose() ..............................133 Wykorzystanie komponentu klasy TTimer ............................................................143 Aplikacja nie lubi milczeć. Funkcja GetLastError() ...............................................162 Break Time — czas oczekiwania aplikacji .............................................................167 Podsumowanie .......................................................................................................176 Ćwiczenia ...............................................................................................................176 Wykorzystanie elementów Windows API w Delphi. Część I .......................................177 Testowanie portu szeregowego — inaczej .............................................................177 Rekord TCOMMPROP ..........................................................................................183 Nawiązanie połączenia ...........................................................................................191 Przykładowe aplikacje ............................................................................................194 Podsumowanie .......................................................................................................203 Ćwiczenia ...............................................................................................................203 Wykorzystanie elementów Windows API w Delphi. Część II .....................................203 Wysyłamy znak po znaku .......................................................................................204 Wysyłamy pliki ......................................................................................................209 Timer w Delphi ......................................................................................................224 Podsumowanie ..............................................................................................................238 Ćwiczenia .....................................................................................................................239 Spis treści 7 Rozdział 6. Aplikacje wielowątkowe ...............................................................241 Najważniejszy jest użytkownik ....................................................................................242 Użytkownik steruje programem .............................................................................242 Możliwość anulowania decyzji ..............................................................................243 Możliwość odbioru komunikatu nawet w trakcie wysyłania danych .....................243 Możliwość wysłania odrębnej informacji w trakcie transmisji pliku .....................243 Delphi ...........................................................................................................................244 Funkcja BeginThread() ...........................................................................................244 Konkurencja dla Timera .........................................................................................256 Klasa TThread ........................................................................................................264 Wielowątkowość i DLL-e ............................................................................................272 C++Builder ...................................................................................................................280 Zamiast Timera ......................................................................................................289 Zamiast Timera. Inny sposób .................................................................................296 Klasa TThread ........................................................................................................304 Podsumowanie ..............................................................................................................315 Ćwiczenia .....................................................................................................................315 Rozdział 7. Wykorzystanie niektórych narzędzi graficznych ..............................317 Komponent klasy TChart ..............................................................................................318 Podsumowanie ..............................................................................................................328 Ćwiczenia .....................................................................................................................328 Rozdział 8. Przykładowe aplikacje wykorzystywane w systemach pomiarowych ...........................................................329 Kontroler temperatury ..................................................................................................330 Aplikacja obsługująca kilka urządzeń ..........................................................................347 Programowanie inteligentne .........................................................................................358 Brak powtarzalności kodu ......................................................................................359 Czytelność kodu .....................................................................................................360 Łatwość testowania ................................................................................................364 Podsumowanie ..............................................................................................................366 Ćwiczenia .....................................................................................................................366 Rozdział 9. Tworzenie komponentów ..............................................................369 Komponent TOpenSerialPort. Realizacja w Delphi .....................................................369 Testowanie komponentu .........................................................................................374 Komponent TOpenSerialPort. Realizacja w C++Builderze ..........................................380 Testowanie komponentu .........................................................................................386 Komponenty aktywne ...................................................................................................389 Kompilacja projektu zawierającego komponent aktywny ......................................393 Odczytywanie i modyfikacja wartości własności komponentu aktywnego ............395 Komponenty w BDS 2006 ............................................................................................397 Podsumowanie ..............................................................................................................398 Ćwiczenia .....................................................................................................................398 Rozdział 10.Modelowanie oprogramowania sterującego portem szeregowym ....399 Schematy dziedziczenia ................................................................................................400 Ukrywanie konstruktora ...............................................................................................405 Interfejsy .......................................................................................................................409 Delegowanie operacji ...................................................................................................415 Delegowanie realizacji interfejsu do własności ............................................................422 Podsumowanie ..............................................................................................................426 Ćwiczenia .....................................................................................................................427 8 RS 232C — praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera Rozdział 11.POSIX ..........................................................................................435 Polecenie stty ................................................................................................................436 Ustawienia kontroli przesyłu danych (sterowanie transmisją) ................................437 Ustawienia wejściowe ............................................................................................437 Ustawienia wyjściowe ............................................................................................439 Ustawienia czasów oczekiwania ............................................................................439 Ustawienia lokalne .................................................................................................440 Specjalne znaki sterujące ........................................................................................441 Łączenie atrybutów ................................................................................................442 Podstawowe funkcje obsługi portu szeregowego .........................................................442 Funkcja open() .......................................................................................................442 Funkcja read() ........................................................................................................443 Funkcja write() .......................................................................................................443 Funkcja close() .......................................................................................................443 Struktura termios ..........................................................................................................444 Funkcja tcgetattr() ..................................................................................................448 Funkcja tcsetattr() ...................................................................................................448 Funkcje cfgetispeed() i cfgetospeed() .....................................................................449 Funkcje cfsetispeed() i cfsetospeed() .....................................................................449 Funkcja tcflush() ....................................................................................................450 Funkcja tcdrain() ....................................................................................................451 QNX .............................................................................................................................451 Funkcja dev_insert_chars() ....................................................................................453 Funkcja dev_ischars() .............................................................................................453 Funkcja dev_read() .................................................................................................454 Funkcja Receive() ..................................................................................................455 Funkcja Send() .......................................................................................................455 Funkcja Creceive() .................................................................................................455 Funkcja Reply() ......................................................................................................456 Funkcja qnx_proxy_attach() ...................................................................................456 Funkcja qnx_proxy_detach() ..................................................................................456 Podsumowanie ..............................................................................................................457 Ćwiczenia .....................................................................................................................457 Dodatek A Specyfikacja funkcji CreateFile() — operacje plikowe ...................461 Dodatek B Specyfikacja struktur MODEMDEVCAPS, MODEMSETTINGS oraz funkcji GetCommModemStatus() ...........................................467 MODEMDEVCAPS .....................................................................................................467 MODEMSETTINGS ....................................................................................................470 GetCommModemStatus() .............................................................................................471 Dodatek C Transmisja asynchroniczna. Funkcje rozszerzone ...........................473 Funkcja WriteFileEx() ..................................................................................................473 Funkcja ReadFileEx() ...................................................................................................474 Funkcja FileIOCompletionRoutine() ............................................................................474 Funkcja SleepEx() ........................................................................................................475 Funkcja WaitForSingleObjectEx() ...............................................................................475 Dodatek D Zamiana liczb z postaci dziesiętnej na binarną ..............................477 Dodatek E Funkcje CreateThread(), CreateMutex() i CreateSemaphore() .......481 Skorowidz ....................................................................................487 Przedmowa do wydania trzeciego Nowe, poprawione i uzupełnione wydanie RS 232C — praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera zostało przygotowane na podstawie uwag doty- czących książki zebranych po ukazaniu się jej drugiego wydania. Zakres materiału umieszczonego w książce oraz jej podstawowe założenia za sprawą wprowadzonych poprawek i uzupełnień uległy pewnym zmianom. Zachowano wiele przykładów z poprzedniego wydania, wprowadzając do nich jednak pewne zmiany i ulepszenia oraz poprawiając zauważone błędy. Jednocześnie dodano szereg nowych przykładów, również w postaci działających aplikacji, pozwalających lepiej zrozumieć najważniejsze zagadnienia poruszane w książce w nadziei, iż przyniesie to wymierne korzyści Czytelnikom. Z okazji ukazania się trzeciego wydania książki chcę gorąco podziękować wszystkim Czytelnikom, którzy zechcieli wyrazić swoją opinię na temat jej pierwotnej wersji. Osobne podziękowania pragnę złożyć Redakcjom miesięczników „Chip” oraz „Elektroni- ka Praktyczna”. Recenzje zamieszczone w tych opiniotwórczych czasopismach poświę- cone pierwszemu i drugiemu wydaniu książki stanowiły dla mnie nieocenioną pomoc podczas przygotowania niniejszej pozycji. Lublin, 1 stycznia 2007 r. Autor 10 RS 232C — praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera

Description:
Na uczelniach, w szkołach i biurach pojawia się coraz więcej zaawansowanych urządzeń komputerowych podłączanych przez port szeregowy. Czy koniecznie trzeba płacić wysokie stawki INFOrmatykom, aby wykorzystać pełnię możliwości tych nowoczesnych narzędzi? Na szczęście nie. Obsługa tr
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.