USB_Praktyczne_programowanie_z_Windows_API_w_C_Wydanie_II_usbpro.pdf

(714 KB) Pobierz
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.
Redaktor prowadzący: Ewelina Burska
Projekt okładki: Studio Gravite/Olsztyn
Obarek, Pokoñski, Pazdrijowski, Zaprucki
Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Kody źródłowe można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/usbpro.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie?usbpro
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
ISBN: 978-83-246-5539-7
Copyright © Helion 2013
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
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
Kup książkę
Poleć książkę
4
USB. Praktyczne programowanie z Windows API w C++
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
Kup książkę
Poleć książkę
Spis tre ci
5
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
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin