USB. Praktyczne programowanie z Windows API w C++. Wydanie II - ebook
USB. Praktyczne programowanie z Windows API w C++. Wydanie II - ebook
USB dobre na wszystko - wykorzystaj jego moc!
- Standardy USB 2.0 i 3.0 oraz połączone urządzenia, czyli sprzętowa podstawa transmisji danych
- Transmisja danych w standardzie USB, czyli komunikacja i współdziałanie zasobów systemowych różnych urządzeń
- Biblioteki i programy wielowątkowe, czyli szczegółowe aspekty programowania transmisji danych w USB
Mniej więcej pod koniec lat 90. standard USB utrwalił się w świadomości użytkowników komputerów na całym świecie i stał się dla nich jednym z najwygodniejszych narzędzi zapewniających komunikację oraz wymianę danych między urządzeniami. Liczba gniazd USB, do których można podłączyć dosłownie wszystko - mysz, pendrive...a, dysk zewnętrzny czy kartę sieciową - stała się jednym z ważnych kryteriów przy zakupie nowego komputera, a czołowi wytwórcy ani myślą zastępować go czymkolwiek innym. Jednak USB ma także swoje wady. Zalicza się do nich konieczność używania bardziej złożonego sprzętu i oprogramowania w porównaniu ze starszymi protokołami transmisji danych. Te kłopoty pomoże Ci rozwiązać niniejsza książka, o ile nieobcy jest Ci język C/C++ w zakresie programowania strukturalnego i proceduralnego. Pokaże Ci ona całą architekturę standardu USB oraz implikacje jego stosowania dla różnych urządzeń. Dzięki niej poznasz także podstawy zasad programowania transmisji USB z wykorzystaniem zasobów systemów operacyjnych Windows oraz współistniejących bibliotek programistycznych. W dodatku autor tego wyczerpującego podręcznika nie poprzestaje na suchym wyliczeniu typów danych czy funkcji, lecz zamieszcza mnóstwo wskazówek dotyczących konkretnych, działających aplikacji. Jeśli myślisz o programowaniu transmisji danych w USB, nie znajdziesz nic lepszego!
- Standardy bazowe USB 2.0 oraz 3.0
- Informacje o urządzeniach
- Wstęp do transmisji danych
- Urządzenia klasy HID
- Detekcja i identyfikacja różnych klas urządzeń dołączonych do magistrali USB
- Odblokowanie urządzenia do transmisji
- Odczyt i zapis danych
- Biblioteki WinUSB oraz LibUSB
- Podstawy programowania obiektowego transmisji USB
- Wewnętrzne struktury danych
- Podstawy programowania wielowątkowego transmisji USB
- Adaptery USB
Poznaj jeden z najpopularniejszych standardów wszech czasów!
Spis treści
Wstęp (7)
Rozdział 1. Standard USB (11)
- Środowisko fizyczne i sygnałowe USB (13)
- USB 2.0 (13)
- USB 3.0 (15)
- Złącza Mini i Micro (19)
- Ramki i mikroramki (24)
- Transfer danych (24)
- Pakiety USB 2.0 (28)
- Transakcje USB 2.0 (33)
- Pakiety w trybie Super Speed (38)
- Operacje transakcyjne USB 3.0 (46)
- Porównanie standardów USB 2.0 oraz 3.0 (53)
- Wireless USB (54)
- Podsumowanie (56)
Rozdział 2. Informacje o urządzeniach (57)
- Identyfikatory urządzenia (57)
- Identyfikatory sprzętu (58)
- Identyfikatory zgodności (58)
- Ocena i selekcja pakietów sterowników (58)
- Klasy instalacji urządzeń (58)
- Menedżer urządzeń (59)
- Rejestr systemowy (63)
- Klucz tematyczny HKEY_LOCAL_MACHINE (64)
- Podklucz tematyczny \Class (65)
- Podklucz podklucza tematycznego \Class (66)
- Identyfikatory GUID (67)
- Pliki .inf (69)
- Podsumowanie (71)
Rozdział 3. Wstęp do transmisji danych (73)
- Struktura systemu USB 2.0 (73)
- Warstwa funkcjonalna (73)
- Warstwa fizyczna (74)
- Warstwa logiczna (75)
- Struktura systemu USB 3.0 (76)
- Potoki danych (77)
- Urządzenia i deskryptory urządzeń USB (80)
- Koncentratory i deskryptory koncentratorów USB (84)
- Punkty końcowe i deskryptory punktu końcowego (89)
- Interfejsy i deskryptory interfejsów urządzeń USB (95)
- Konfiguracje i deskryptory konfiguracji (100)
- Deskryptory tekstowe (104)
- Komunikacja programu użytkownika z urządzeniem (104)
- Podsumowanie (110)
Rozdział 4. Urządzenia klasy HID (111)
- Deskryptor raportu (111)
- Pozycje Collection i End Collection (112)
- Rodzaje raportów (113)
- Zawartość raportów (114)
- Format danych (115)
- Zakresy wartości danych (115)
- Jednostki miar (115)
- Podstawowe funkcje urządzeń klasy HID (116)
- Funkcje rodziny HidD_Xxx() (117)
- Funkcje rodziny HidP_Xxx() (125)
- Biblioteka HID.dll (144)
- Podsumowanie (147)
Rozdział 5. Detekcja i identyfikacja urządzeń dołączonych do magistrali USB (149)
- Podstawowe zasoby systemowe (151)
- Funkcja SetupDiGetClassDevs() (152)
- Funkcja SetupDiEnumDeviceInterfaces() (152)
- Struktura SP_DEVINFO_DATA (153)
- Struktura SP_DEVICE_INTERFACE_DATA (154)
- Struktura SP_DEVICE_INTERFACE_DETAIL_DATA (155)
- Funkcja SetupDiGetDeviceInterfaceDetail() (155)
- Funkcja SetupDiDestroyDeviceInfoList() (157)
- Detekcja interfejsów urządzeń (157)
- Zliczanie interfejsów urządzeń (161)
- Funkcja SetupDiGetDeviceRegistryProperty() (163)
- Struktury danych (168)
- Moduł usbiodef.h (174)
- Moduł cfgmgr32.h (176)
- Biblioteka Setupapi (182)
- Powiadamianie o dołączaniu i odłączaniu urządzeń (185)
- Podsumowanie (189)
Rozdział 6. Odblokowanie urządzenia do transmisji. Odczyt i zapis danych (191)
- Odblokowanie urządzenia do transmisji (191)
- Funkcja CreateFile() (192)
- Funkcja CloseHandle() (194)
- Przykładowy program środowiska tekstowego (194)
- Odczyt danych w formie raportu (198)
- Funkcja ReadFile() (199)
- Odczyt długości bufora danych (203)
- Funkcja HidD_GetInputReport() (207)
- Odczyt własności przycisków (208)
- Odczyt własności wartości (213)
- Aplikacja środowiska graficznego (218)
- Zapis danych w formie raportu (225)
- Funkcja WriteFile() (225)
- Funkcje HidD_SetOutputReport() oraz HidD_SetFeature() (226)
- Struktura OVERLAPPED (227)
- Funkcje xxxEx (230)
- Struktura COMMTIMEOUTS (234)
- Funkcje GetCommTimeouts() i SetCommTimeouts() (235)
- Funkcja DeviceIoControl() (236)
- Rozkazy z modułu hidclass.h (242)
- Rozkazy z modułu usbioctl.h (245)
- Identyfikacja urządzeń przyłączonych do koncentratora USB (247)
- Struktura URB (262)
- Funkcja UsbBuildGetDescriptorRequest() (267)
- Podsumowanie (268)
- Ćwiczenia (268)
Rozdział 7. Biblioteki WinUSB oraz LibUSB (271)
- Biblioteka WinUSB (271)
- Przygotowanie pakietu instalacyjnego (272)
- Funkcje eksportowe biblioteki WinUSB (277)
- Biblioteka LibUSB (289)
- Funkcje jądra biblioteki (292)
- Funkcje do zarządzania urządzeniem libusb (293)
- Funkcje realizujące transfer masowy (300)
- Funkcje realizujące transfer przerwaniowy (301)
- Funkcje asynchroniczne (301)
- Podsumowanie (305)
Rozdział 8. Programowanie obiektowe transmisji USB (307)
- Obiektowość (307)
- Wzorce projektowe (314)
- Singleton (314)
- Interfejsy (319)
- Zliczanie odwołań do interfejsu (326)
- Identyfikator interfejsu (327)
- Komponenty wizualne (336)
- Podsumowanie (340)
- Ćwiczenia (340)
Rozdział 9. Wewnętrzne struktury danych (351)
- Program proceduralny (352)
- Program obiektowy (359)
- Aplikacja środowiska graficznego (366)
- Podsumowanie (375)
- Ćwiczenia (375)
Rozdział 10. Programy wielowątkowe (379)
- Wątki i procesy (379)
- Funkcja CreateThread() (381)
- Klasa TThread (389)
- Podsumowanie (397)
- Ćwiczenia (397)
Rozdział 11. Adaptery USB (401)
- Adaptery USB/RS 232C (401)
- Właściwości portu adaptera (402)
- Adaptery USB/IEEE-488 (404)
- Adaptery USB/Bluetooth (405)
- Podsumowanie (413)
Literatura (415)
Skorowidz (417)
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-246-7499-2 |
Rozmiar pliku: | 7,8 MB |