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)
- 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)
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)
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)