USB. Praktyczne programowanie z Windows API w C++. Wydanie II - Helion
ISBN: 978-83-246-5539-7
stron: 424, Format: 158x235 , okładka: miękka
Data wydania: 2013-05-21
Księgarnia: Helion
Cena książki: 69,00 zł
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
USB. Praktyczne programowanie z Windows API w C++. Wydanie II -- 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)