Bazat e shpërndarjes dhe programimit të shtojcave më të thjeshta USB. Programimi USB në Android

Zharoznizhyuchі zasobi për fëmijët njihet si pediatër. Dyshohet se ka situata të ndihmës që nuk bie në sy në rast të temperaturës, nëse fëmija ka nevojë për t'ia dhënë atë në mënyrë të pafajshme. Etërit Todi marrin përsipër shkathtësinë dhe qëndrueshmërinë e barnave për uljen e temperaturës. A lejohet t'u jepet gji fëmijëve? Si mund ta mposhtni temperaturën e fëmijëve më të mëdhenj? Cilat janë më të mirat?

Hyrja
Për kë është libri
Ti e di në knizi
software vimogs
vimogi për sigurinë e harduerit
Rreth kodit të softuerit
Përshkrim i shkurtër i kapitujve
emërtimi
Të mirat
Zvorotn_y zv'yazyk
Pjesa I. Selia për USB
Kapitulli 1. Specifikimi i USB-së
1.1. Gjithashtu USB dhe më e rëndësishmja
1.1.1. Arkitektura USB
1.1.2. Arkitektura fizike dhe logjike USB
1.1.3. Depot USB
1.1.4. Fuqia e bashkëngjitjeve USB
1.1.5. Parimet e transmetimit të haraçit
1.1.6. Mekanizmi pererivan
1.1.7. Mënyrat e transmetimit
1.1.8. Shkëmbimi logjik i të dhënave
1.1.8.1. Rivn klintskogo PZ
1.1.8.2. Drejtues i sistemit Rivn USB
1.1.8.3. Kontrolluesi pritës i ndarë në ndërfaqe
1.1.8.4. Bashkëlidhje USB periferike e autobusit të ndarë
1.1.8.5. Shtojcë ekuivalente logjike USB
1.1.8.6. Niveli funksional i lidhjes USB
1.1.9. Transferimi i haraçit për rіvnya
1.1.10. Teepee me pajisje Danih
1.1.11. kadri
1.1.12. pikat fundore
1.1.13. kanalet
1.1.14. paketat
1.1.14.1. Formatoni paketat e shenjave IN, OUT, SETUP dhe PING
1.1.14.2. Formati i paketës SOF
1.1.14.3. Formati i paketës Danih
1.1.14.4. Formati i paketës së konfirmimit
1.1.14.5. Formati i paketës SPLIT
1.1.15. Shuma e kontrollit
1.1.15.1. Algoritmi për llogaritjen e CRC
1.1.15.2. Llogaritësi CRC
1.1.16. transaksionet
1.1.16.1. llojet e transaksioneve
1.1.16.2. Konfirmimi i transaksionit dhe kontrolli i rrjedhës
1.1.16.3. protokollet e transaksionit
1.2. Fuqia në lidhjet USB
1.2.1. paketën e konfigurimit
1.2.2. Fuqia standarde deri në lidhjet USB
1.2.2.1. Do të heq qafe GET_STATUS
1.2.2.2. Heqja e energjisë CLEAR_FEATURE
1.2.2.3. Fuqia e thirrjes SET_FEATURE
1.2.2.4. Adresa e Zavdannya në autobusin SET_ADDRESS
1.2.2.5. Heqja e përshkruesit GET_DESCRIPTOR
1.2.2.6. Kalon përshkruesin SET_DESCRIPTOR
1.2.2.7. Po refuzon kodin e konfigurimit GET_CONFIGURATION
1.2.2.8. Vendosja e kodit të konfigurimit SET_CONFIGURATION
1.2.2.9. Merrni kodin e konfigurimit në ndërfaqen GET_INTERFACE
1.2.2.10. Kodi i konfigurimit të Zavdannya në ndërfaqen SET_INTERFACE
1.2.2.11. Numri i kornizës së sinkronizimit SYNC_FRAME
1.2.2.12. Përpunimi i furnizimeve standarde
1.2.3. përshkruesi i bashkëngjitjes
1.2.3.1. përshkruesi i bashkëngjitjes
1.2.3.2. Unë do të shtoj një përshkrues të përsosjes
1.2.3.3. përshkruesi i konfigurimit
1.2.3.4. përshkruesi i ndërfaqes
1.2.3.5. Përshkruesi i pikës fundore
1.2.3.6. përshkruesi i rreshtit
1.2.3.7. përshkrues specifikë
1.2.3.8. Rendi i heqjes së përshkruesve
1.3. Sistemi Plug and Play (PnP).
1.3.1. Konfigurimi i bashkëngjitjeve USB
1.3.2. Numërimi i bashkëngjitjes USB
1.3.3. PnP-identifikuesit për bashkëngjitjet USB
1.3.4. Emrat simbolikë të bashkëngjitjeve
1.4. Modeli WDM
Kapitulli 2. Programimi në Movi C për mikrokontrolluesit
2.1. Pamje të përgjithshme rreth MOV S për mikrokontrolluesit
2.2. Bibliotekat standarde të Vikoristannya
2.3. Programimi për AT89S5131
2.3.1. skedari inicial
2.3.2. strukturat përshkruese
2.3.3. strukturën e projektit
Kapitulli 3. Mjetet
3.1. programuesit
3.1.1. Flip programues
3.1.2. Programues ER-Tronik
3.2. Mjetet e shoferit
3.2.1. Studio e shoferit NuMega
3.2.2. Jungo windriver
3.2.3. Jungo KernelDriver
3.3. Merrni Microsoft Visual Studio
3.3.1. Varet (Dependency Walker)
3.3.2. Kërkimi i gabimeve
3.3.3. GuidGen
3.4. Merrni Microsoft DDK
3.4.1. DeviceTree
3.4.2. DevCon
3.4.2.1. çelësi i klasave
3.4.2.2. çelësi i skedarëve të shoferit
3.4.2.3. çelësi hwids
3.4.2.4. çelësi i riskanimit
3.4.2.5. çelësi i stivës
3.4.2.6. çelësi i statusit
3.4.3. Chklnf і Genlnf
3.5. Ndihmoni CompuWare Corporation
3.5.1. Monitor
3.5.2. SymLink
3.5.3. EzDriverlnstaller
3.5.4. WdmSniff
3.6. thith Syslnternalët
3.6.1. WinObj
3.7. Merrni forumin USB
3.7.1. Mjeti përshkrues i HID
3.8. Verifikuesi i komandës USB
3.9. Merrni softuerin HDD
3.10. merrni Sourceforge
3.11. Programi i monitorimit të zagarëve me autobus
Kapitulli 4. Parimet e përvetësimit të funksionit Win32 në .NET
4.1. Shtëpitë e vendit
4.2. Importimi i funksioneve Win32
4.3. strukturat
4.3.1. Atributi StructLayout
4.3.2. MarshalAs Atribut
4.4. Qasje e drejtpërdrejtë në homazhe
4.5. Trajtimi i domeneve të Windows
4.6. Pamjet globale të WMI
4.7. Burimet e internetit në qendër
Pjesa II. usb me klas
Kapitulli 5. Klasa CDC
5.1. Metodat për konvertimin e ndërfaqeve USB / RS-232
5.2. Informacione të përgjithshme rreth ndërfaqes RS-232
5.2.1. shkëmbimi i linjës
5.2.1.1. Transmetimi i të dhënave (BA / TxD / TD)
5.2.1.2. Dani, karrierë për të pranuar (BB / RxD / RD)
5.2.1.3. Transmetimi i energjisë (CA / RTS)
5.2.1.4. Gati para transmetimit (CB / CTS)
5.2.1.5. DCE gati (CC / DSR)
5.2.1.6. Gati DTE (CD / DTR)
5.2.1.7. Treguesi Wikliku (CE / RI)
5.2.1.8. Zbulimi i së keqes (CF / DCD)
5.2.1.9. Gati për të pranuar (CJ)
5.3. Specifikimi i CDC
5.3.1. përshkruesit standardë
5.3.2. përshkruesit funksionalë
5.3.2.1. Kreu i përshkruesit funksional
5.3.2.2. Përshkruesi në modalitetin e komandës
5.3.2.3. Përshkruesi i bashkëngjitjes abstrakte
5.3.2.4. përshkruesi i grupit
5.3.3. furnizim i veçantë me energji elektrike
5.3.3.1. furnizimi SET_LINE_CODING
5.3.3.2. furnizimi GET_LINE_CODING
5.3.3.3. furnizimi SET_CONTROL_LINE_STATE
5.3.3.4. furnizimi SEND_BREAK
5.3.4. njoftimet
5.3.4.1. Njoftimi RING ^ DETECT
5.3.4.2. njoftim SERIAL_STATE
5.4. Mbështetje CDC në Windows
5.4.1. Një vështrim në funksionet e Windows për robotët me portat e fundit
5.4.1.1. Operacionet kryesore me portin
5.4.1.2. Cilësimet e portit
5.4.1.3. Personalizimi i portit
5.4.1.4. Otrimannya do të bëhet një linjë për modemin
5.4.1.5. Robot nga CDC në platforma. NETO
5.4.2. Windows dhe funksionalitet USB
Kapitulli 6. Klasa HID
6.1. Specifikimi i shtesave HID
6.2. Procedura për shkëmbimin e të dhënave nga një shtesë HID
6.3. Instalimi i drejtuesit të zgjerimit HID
6.4. Identifikimi i bashkëngjitjes HID
6.4.1. Identifikimi i anekseve joshëse
6.4.2. Përshkruesi i konfigurimit të bashkëngjitjes HID
6.4.3. Përshkruesi HID
6.4.4. përshkruesi i raportit
6.5. Struktura e përshkruesit të raportit
6.5.1. raport element
6.5.1.1. Elementi tip i shkurtër
6.5.1.2. Elemente të tipit më të zakonshëm
6.5.2. Raporti i elementeve tip
6.5.2.1. Elementet bazë
6.5.2.2. Artikuj globalë
6.5.2.3. elementet lokale
6.5.3. shtoni përshkrues
6.6. Aktivizoni shtojcën HID
6.6.1. furnizimi GET_REPORT
6.6.2. furnizimi SET_REPORT
6.6.3. furnizimi GET_IDLE
6.6.4. aktivizo SET_IDLE
6.6.5. furnizimi GET_PROTOCOL
6.6.6. aktivizo SET_PROTOCOL
6.7. Mjetet
6.8. Drejtues për zgjerimet HID në Windows
Kapitulli 7. Klasat USB
Pjesa III. Praktikoni programimin USB
Kapitulli 8. Pajisja e bashkëngjitjes USB e bazuar në АТ89С5131
8.1. Informacione të përgjithshme rreth АТ89С5131
8.2. Blloku i AT89S5131
8.3. Regjistri USB AT89C5131
8.3.1. Regjistri USBCON
8.3.2. Regjistri USBADDR
8.3.3. Regjistri USBINT
8.3.4. Regjistri USBIEN
8.3.5. regjistro UEPNUM
8.3.6. Regjistrohu UEPCONX
8.3.7. regjistrohu UEPSTAX
8.3.8. Regjistrohu UEPRST
8.3.9. regjistro UEPINT
8.3.10. Regjistrohu UEPIEN
8.3.11. Regjistrohu UEPDATX
8.3.12. regjistro UBYCTLX
8.3.13. regjistrohu UFNUML
8.3.14. regjistrohu UFNUMH
8.4. qarku AT89S5131
8.5. Projekti bazë për АТ89С5131
8.5.1. Versioni i parë i programeve për AT89C5131
8.5.2. Përshkruesit Dodamo ryadkovі
8.5.3. Plotësimi i pikave Kintsev
8.6. Programe të ngatërruara
Kapitulli 9. Zbatimi i klasës CDC
9.1. Zbatimi i CDC
9.2. Përshkruesi i bashkëngjitjes
9.2.1. Іnіtsіalіzatsіya kіntsev pikë
9.2.2. Përpunimi i furnizimeve të CDC
9.2.3. Konfigurimi i portit RS dhe linjave CDC
9.2.4. Marrja dhe transferimi i haraçit
9.3. instalimi i shoferit
9.4. Programimi i shkëmbimit të të dhënave nga bashkëngjitja CDC në filmin Delphi
9.5. Shkëmbim programimi nga bashkëngjitja CDC në mov C #
9.5.1. Komponenti Vikoristannya MSCOMM
9.5.2. Vikoristannya funksionon Win32
9.6. Problemet e CDC
Kapitulli 10. Zbatimi i klasës HID
10.1. Zbatimi i HID në АТ89С5131
10.2. Transferimi i bajteve decilcoh
10.3. Veçori-raport
10.4. Transferimi i të dhënave nga hosti (SET_REPORT)
10.5. Instalimi i një zgjerimi HID
10.6. Shkëmbimi i të dhënave nga një shtesë HID
10.6.1. Otrimannya іmenі HID-bashkëngjitje
10.6.2. Refuzimi i atributeve në aneks dhe leximi i raporteve
10.6.3. Transferimi i të dhënave nga hosti në bashkëngjitjen HID
10.7. Instaloni bashkëngjitjet HID
10.7.1. Realizimi i lidhjes "Misha"
10.7.2. Zbatimi i shtojcës "tastierë"
10.8. Vikoristannya në protokollin HID
10.8.1. interpretimi i haraçit
10.8.2. koleksionet
10.8.3. Butona masive i
10.9. HID-bashkëngjitje nga raporti i decilcom
Kapitulli 11. Veçoritë e veçanta të Windows
11.1. API-ja e konfigurimit të funksionalitetit
11.1.1. Mbështetje të ndyra USB
11.1.2. Otrimannya do të bëhet një shtojcë USB
11.2. Mbështetje të ndyra USB për WMI shtesë
11.3. Karakteristikat e veçanta të Windows XP
11.3.1. HidD_GetInputReport - leximi i raporteve HID
11.3.2. Otrimannya Danih Raw Input
11.4. funksionon DirectX
11.5. Dialogu i dhënies së pasurive të reja
11.6. Robot me emra simbolikë të bashkëngjitjeve
11.7. Siguria e flash drive
11.8. Vyavlennya anekset plotësuese dhe të dukshme
11.9. Burimet e internetit
Kapitulli 12. Shpërndarja e shoferit
12.1. Rutinat bazë të drejtuesit të WDM
12.1.1. Procedura e hyrjes në shofer
12.1.2. Procedura e AddDevice
12.1.3. Procedura e shkarkimit
12.1.4. Rutinat e shoferit
12.1.4.1. kokën e paketës
12.1.4.2. Futja / Pikat e mesit të raftes Vivedennya
12.4.1.3. Rutinat e shoferit
12.1.5. Shërbimi i furnizimit me energji elektrike IOCTL
12.2. Bllokimi i shoferit dhe ndezja e procedurave të shoferit
12.2.1. Procedura e robotit me shofer
12.2.2. Rikrijimi i shoferit
12.2.2.1. Ri-shtresim për ndihmën shtesë të menaxherit të SCM
12.2.2.2. Parametrat e drejtuesit në regjistër
12.2.3. Korrupsioni ndaj procedurave robotike
12.2.4. Sigurimi i shoferit në mes të skedarit
12.3. Driver Studio prapa skenave
12.3.1. Disa fjalë për bibliotekën e Driver Studio
12.3.1.1. Klasa KDriver
12.3.1.2. Klasa e pajisjes K
12.3.1.3. klasa Klrp
12.3.1.4. Klasa KRegistryKey
12.3.1.5. Klasa KLowerDevice
12.3.1.6. usb me klas
12.3.2. Klasa të tjera Driver Studio
12.3.3. Lidhur me shabllonin e drejtuesit pas shtesës Driver Studio
12.3.3.1. Krok 1. Kreu i projektit
12.3.3.2. Croc 2. Shoferi i arkitekturës Vibir
12.3.3.3. Croc 3. Vibir shini
12.3.3.4. Croc 4. Zavdannya grup pikësh
12.3.3.5. Croc 5. Caktimi i emrit të klasës dhe skedarit
12.3.3.6. Croc 6. Vibrimi i funksioneve të drejtuesit
12.3.3.7. Krok 7. Vibir në metodën e përpunimit të furnizimit me energji elektrike
12.3.3.8. Croc 8. Cilësimet janë marrë nga parametrat e drejtuesit
12.3.3.9. Croc 9. Fuqia e shoferit
12.3.3.10. Krok 10. Menaxheri i kodit IOCTL
12.3.3.11. Croc 11. Cilësimet shtesë
12.3.4. Përditësimi i shabllonit të shoferit
12.3.5. Unë do të shtoj metoda themelore në klasë
12.3.6. Realizimi i leximit të Danikut
12.3.7. instalimi i shoferit
12.3.8. Programi i leximit Danih
12.3.9. Leximi i haraçit nga pikat fundore të llojeve të para
12.3.10. Shofer USB "Clean".
Pjesa IV. dovidnik
Kapitulli 13. Formati i skedarit INF
13.1. Struktura e skedarit INF
13.1.1. seksioni Version
13.1.2. seksioni Prodhuesi
13.1.3. seksioni DestinacioniDirs
13.1.3.1. Tasti DefaultDescDir
13.1.3.2. Çelësat e seksionit të listës së skedarëve
13.1.3.3. çelës i ndyrë
13.1.3.4. çelësi i nëndrejtimit
13.1.4. Seksioni për të përshkruar modelin
13.1.5. Seksioni xxx. ShtoRegw xxx. DelReg
13.1.6. Seksioni xxx. LogConfig
13.1.7. Seksioni xxx. CopyFiles
13.1.8. seksioni Vargjet
13.1.9. lidhjet e seksioneve
13.2. Testimi dhe testimi i skedarëve INF
13.3. Instalimi i shtesave pas një skedari shtesë INF
13.4. Priza ristrukturimi USB
Kapitulli 14. Funksionet themelore të Windows
14.1. Funksionet CreateFile dhe CloseHandle: hapni dhe mbyllni objektin
14.1.1. pamje shtesë
14.1.2. kuptimi, si të kthehet
14.1.3. prapanicë në wiklik
14.2. Funksioni ReadFile: lexim danikh
14.2.1. pamje shtesë
14.2.2. kuptimi, si të kthehet
14.2.3. prapanicë në wiklik
14.3. Funksioni Write File: transferimi i të dhënave
14.3.1. pamje shtesë
14.3.2. kuptimi, si të kthehet
14.3.3. prapanicë në wiklik
14.4. Funksioni ReadFileEx. ARS-chitannya danih
14.4.1. kuptimi, si të kthehet
14.4.2. pamje shtesë
14.4.3. prapanicë në wiklik
14.5. Funksioni WriteFiieEx: transferimi i të dhënave APC
14.5.1. kuptimi, si të kthehet
14.5.2. prapanicë në wiklik
14.6. Funksioni WaitForSingieObject
14.6.1. kuptimi, si të kthehet
14.7. Funksioni WaitForMultipleObjects: pastrimi i stacionit të sinjalizimit të objekteve
14.7.1. kuptimi, si të kthehet
14.8. Funksioni GetOverlapped Result: rezultat i një operacioni asinkron
14.8.1. kuptimi, si të kthehet
14.9. Funksioni DeviceloControl: kontroll i drejtpërdrejtë i drejtuesit
14.9.1. kuptimi, si të kthehet
14.10. Funksioni Anulo / o: ridrejtimi i një operacioni
14.10.1. kuptimi, si të kthehet
14.11. Funksioni Query Dos Device
14.11.1. kuptimi, si të kthehet
14.11.2. prapanicë në wiklik
14.12. Përcaktoni funksionin e pajisjes Dos: shtoni operacionet DOS
14.12.1. kuptimi, si të kthehet
14.12.2. prapanicë në wiklik
Kapitulli 15. Strukturat e funksionit të Windows për portet e fundit
15.1. Struktura në një port COMMCONFIG
15.2. Struktura e autoritetit portual COMPROP
15.3. Struktura e afatit KOMMTIMEOUTS
15.4. Struktura e statusit të portit COMSTAT
15.5. Struktura DCB
15.6. Funksioni BuildCommDCB: Palosja e strukturës së ngarkesës DCB
15.6.1. pamje shtesë
15.6.2. kuptimi, si të kthehet
15.6.3. prapanicë në wiklik
15.7. Funksioni BuildCommDCBAndTimeouts: mbyllja e strukturës DCB dhe kufizimet nga rreshti
15.8. Funksionet SetCommBreak dhe ClearCommBreak
15.8.1. kuptimi, si të kthehet
15.9. Funksioni ClearCommError: refuzimi dhe heqja e faljeve në port
15.9.1. kuptimi, si të kthehet
15.10. EscapeCommFunction: kontrolli i portit
15.10.1. kuptimi, si të kthehet
15.11. Funksionet GetCommMask dhe SetCommMask: maskë wiklik podiy
15.11.1. kuptimi, si të kthehet
15.12. Funksioni WaitCommEvent për kontrollimin e portës COM
15.12.1. kuptimi, si të kthehet
15.12.2. pamje shtesë
15.12.3. prapanicë në wiklik
15.13. Funksionet GetCommConfig dhe SetCommConfig: konfigurimi i parametrave në port
15.13.1. kuptimi, si të kthehet
15.13.2. prapanicë në wiklik
15.14. Funksionaliteti CommConfigDialog: Dialogu i konfigurimit të portit
15.14.1. kuptimi, si të kthehet
15.14.2. pamje shtesë
15.14.3. prapanicë në wiklik
15.15. Funksioni GetCommProperties: lexoni autoritetin e portit
15.15.1. kuptimi, si të kthehet
15.15.2. prapanicë në wiklik
15.16. Funksionet GetCommState dhe SetCommState: stan port
15.16.1. kuptimi, si të kthehet
15.16.2. prapanicë në wiklik
15.17. Funksionet GetCommTimeouts dhe SetComniTimeouts: porta e skadimit
15.17.1. kuptimi, si të kthehet
15.17.2. prapanicë në wiklik
15.18. Funksionaliteti PurgeComm: Reduktimi i tamponit në port
15.18.1. kuptimi, si të kthehet
15.18.2. prapanicë në wiklik
15.19. Funksioni SetupComm: konfigurimi i madhësive të tamponit
15.19.1. kuptimi, si të kthehet
15.20. Funksionet GetDefaultCommConfig і SetDefaitltCommConfig: cilësimet për portën për hyrjet
15.20.1. kuptimi, si të kthehet
15.21. Funksioni TransmitCommChar. transferimi i simboleve të veçanta
15.21.1. kuptimi, si të kthehet
15.22. Funksioni GetCommModemStatus: statusi i modemit
15.22.1. kuptimi, si të kthehet
15.22.2. prapanicë në wiklik
15.23. Funksioni EnumPorts: porta të ndyra
15.23.1. pamje shtesë
15.23.2. kuptimi, si të kthehet
15.23.3. prapanicë në wiklik
Kapitulli 16. Strukturat API të konfigurimit të Windows
16.1. Konfiguro funksionin DiGetCiassDevs: anekset e rishikuara
16.1.1. kuptimi, si të kthehet
16.2. Funksioni SetupDiDestroyDevicelnfoList Lidhja e bllokut me përshkrimin e bashkëngjitjes
16.2.1. kuptimi, si të kthehet
16.3. Funksioni SetupDiEnumDevicelnterfaces: Informacion rreth bashkëngjitjeve
16.3.1. kuptimi, si të kthehet
16.4. Funksioni SetupDiGetDevicelnterfaceDetaii: informacion i detajuar rreth bashkëngjitjeve
16.5. Funksioni SetupDiEnumDevicelnfo: Informacion rreth cilësimeve
16.6. Funksioni SetupDiGetDeviceRegistryProperty: Heqja e autoritetit të kyçjes dhe luajtjes
16.7. Funksioni CM_Get_DevNode_Status: statusi i shtesës
16.8. Funksionet CM_Request_Device_Eject
Kapitulli 17. Strukturat e funksionit të Windows HID API
17.1. Funksioni HidD_Hello: rishikim i bibliotekës
17.2. Funksioni HidD_JetHidGuid: refuzo GUID
17.3. Funksioni HidD_GetPreparsedData: Zgjerimi i një përshkruesi të bashkëngjitjes
17.4. Funksioni HidD_EreePreparsedData: Përshkruesi i dorezës së zgjerimit
17.5. Funksioni HidD_Get Feature: duke refuzuar raportin e veçorive
17.6. Funksioni HidD_SetFeature: transferimi i raportit të veçorive
17.7. Funksioni HidD_GetNumlnputBuffers: shkurtimi i numrit të buferëve
17.8. Funksioni HidD_SetNumlnputBuffers: vendosja e numrit të buferave
17.9. Funksioni HidD_GetAttributes: Merr atributet në bashkëngjitje
17.10. Funksioni HidD_GetManufacturerString. refuzimi i një rreshti të virobnikut
17.11. Funksioni HidD_GetProductString për bashkimin e një rreshti në një produkt
17.12. Funksioni HidD_GetSerialNumberString. otrimannya një rresht i një numri serial
17.13. Funksioni HidD_GetIndexedString. refuzimi i rreshtit për indeksin
17.14. Funksioni HidD_Jetlnput Raporti refuzon raportin e hyrjes
17.15. Funksioni HidD_SetOutputReport. Transmetimi Output-raport
17.16. Funksioni HidP_GetCaps: refuzimi i autoriteteve për t'u bashkangjitur
17.17. Funksioni HidP_MaxDataListLength: refuzimi i madhësive të raportit
17.18. Funksioni HidD_FIushQueue: lësho buffer
17.19. Funksioni HidP_GetLinkColiectionNodes: pema e unazave
17.20. Funksionet HidP_GetScaledUsageValue dhe HidP_SetScaledUsage Value
17.21. Funksioni HidF_MaxUsageListLength: madhësia e buferit për kodet kryesore
17.22. Funksioni HidP_UsageListDifference: dukshmëria ndërmjet vargjeve
suplemente
Funksionet shtesë 1. Funksionet shtesë
Dodatok 2. Kompilimi i aplikacioneve në versionet më të fundit të Delphi
Dodatok 3. Tabela e identifikuesve të ID-së (LangID)
Dodatok 4. Tabela e kodeve virobnik (ID-ja e shitësit, ID e pajisjes)
Dodatok 5. Si të vendosni një shkurtore Device Manager
Dodatok 6. Pjesë të ushqimit
Dodatok 7. Përshkrimi i CD-së
letërsi
showman

Dhe është vetëm pak e shtyrë fizikisht në kompjuter, është e nevojshme të përmirësohet shkëmbimi i të dhënave midis tyre. Si e vibroni portin dhe organizoni lidhjen? Disa nga të njëjtat zgjidhje standarde janë të disponueshme për portin COM. Para fjalimit, numrit të kartave të reja PCI, shtoni 8, 16 ose 32 porte COM në kompjuterët industrialë (numri i kategorisë së kartave të reja PCI shtrihet në portat e fundit, kontrollorët, etj.) . Në një renditje të tillë, nëse është e nevojshme të lidhni dekalin e shtojcave të jashtme me ndërfaqen RS-232, mund të njihni përshtatës të shtrenjtë dhe pagesa ekzotike për zgjerimin, si për traditën e vjetër të përdorimit të varkave me avull në Rusi. Para fjalimit, emri i përshtatësit special "adapter DB9m / DB25f" nga menaxheri i dyqanit të kompjuterave mund të fshihet shpejt.

Gjithashtu HID-pritiy

Është praktikisht infektive që të gjitha bashkëngjitjet të lidhen me një kompjuter nëpërmjet një ndërfaqeje USB. Përveç kësaj, në PC-të e rinj ka një port COM nga jashtë.

Ndërfaqja USB është një lloj zgjidhjeje e bazuar në një shtojcë të re të jashtme me një kompjuter, më saktë, një ndërfaqe HID, e cila bazohet në protokollin USB 1.1.

Nëse dua shumë hto dhe vvazhaє, por ndërfaqja HID (Human Interface Device) përdoret për tastierë, misci dhe levë, ajo duhet të jetë e përshtatshme për zgjidhje të pafuqishme, të lidhura nga pajisjet e jashtme dhe kompjuterët e marrë.

Për sa kohë që është e nevojshme të rrotullohet shkëmbimi i të dhënave me shpejtësi të ulët (deri në 64 kbit / s), nëse ka shumë shpejtësi për një orë në një lëkundje njëqind minutëshe të drejtuesve të energjisë, atëherë vetëm në lëvizje HID. Në hyrje dhe dalje është e thjeshtë dhe e plotë një vendim i tillë në bazë të një ndërfaqeje standarde softueri USB me një ndërfaqe të garantuar në të gjitha platformat e zgjeruara softuerike.

Fuqia e bashkëngjitjeve HID

Nga pikëpamja e organizimit të softuerit të bashkëngjitjes HID, gjithçka mund të trajtohet në një mënyrë të adhurueshme: për robotët në kontrollet e Windows, mund të krijoni shpejt një kod kompakt bazuar në algoritme të gatshme të rishkrimit. Në të njëjtën kohë, shitësi me pakicë do të humbasë një orë apo më shumë në zbatimin e protokollit vlasny për shkëmbimin e të dhënave nga niveli i sipërm, disa nga abstraksionet e nevojshme për organizimin e protokollit HID (div. Tabela). Për më tepër, është e lehtë për programuesin të kryejë protokollin e shkëmbimit të shkruar mirë (është e qartë, me praninë e një bashkëngjitjeje funksionale HID) - programuesi e ka të lehtë të përfundojë protokollin me ndihmën e një kompjuteri. mirë! Robotët Masu kanë marrë tashmë krijuesin e bashkëngjitjes HID.

Organizimi i shkëmbimit të të dhënave ndërmjet shtesave HID dhe kompjuterëve

Përshkruani ndërveprimin midis bashkëngjitjes HID dhe kompjuterit, shprehni termin "host". Në këtë vipad të veçantë, duket se është paksa një mentalitet në arkitekturën fizike të ndërlidhjes me protokollin USB. Pra, e gjithë porta në një kompjuter është një host. Para tyre, mund të lidhni një shtojcë USB (flash drives, mish, kamera në internet, kamera fotografike, etj.), Nuk mund të humbisni hostin. Pritësi do të sigurojë lidhjen, lidhjen, lidhjen, konfigurimin e anekseve, si dhe mbledhjen e statistikave dhe menaxhimin e shërbimeve të energjisë.

HID-pritiy mund të vendosë vetë frekuencën e përthithjes, përpara orës kur filloni të shfaqeni në ndonjë haraç të ri. Kjo do të thotë që programuesi mund t'i besojë sistemit në një nivel kaq të ulët, frekuenca e funksionimit dhe parametrat e shkëmbimit të të dhënave janë shumë të larta, por ato ishin vendosur tashmë në programin e kontrolluesit të shtojcës HID. Protokolli HID rrjedh nga përshkrimi i jashtëm i USB 1.1 ose USB 2.0, në të cilin nuk ka asnjë mënyrë të vështirë për të organizuar protokollin. Megjithatë, me ngarkesa specifike të punës, të cilat mund të përshtaten në nivelin e sigurisë, është e mundur të arrihet fundi i përvojës ciklike, për sa kohë që një dhe i njëjti blloqe të dhënash transferohen vazhdimisht.

Karakteristikat e softuerit shtesë HID

Shtojcat HID mund të përdoren për përshkrues të veçantë. Nëse hosti është vendosur, atëherë bashkëngjitni klasën HID, atëherë kontrolli transferohet te drejtuesi. Transferimi i të dhënave kryhet në bazë të një certifikate.

Për Windows, për qasje në bashkëngjitjet HID, shfaqet shërbimi i sistemit HidServ. Më shumë detaje rreth funksionit të furnizimit me energji elektrike në bashkëngjitjet HID dhe veçoritë e tjera të robotit me drejtuesin HID mund të gjenden në robotin e P. V. Agurov "Interface USB. Praktika e programeve fitimtare ”(Shën Petersburg: BHV-Petersburg, 2005).

Programi i bashkëngjitjeve të HID në "Verkhniy Rivny"

Jeta e vështirë e programeve "të aplikuara", të tilla si puna në Pascal, do ta kthejë modulin HID. PAS, softuer mbështjellës për të fshehur. dll (Biblioteka e fshehur e përdoruesve). Komentet para skedarit do të shfaqen, por në bazën e tij janë modulet hidsdi.h dhe hidpi.h të korporatës Microsoft. Dhe vetë skedari HID. PAS është pjesë e paketës JEDI ().

Për robotët me bashkëngjitje HID në Delphi për softuerin e mesëm win32, komponenti TJvHidDeviceController është i mbërthyer, i cili është një menaxher global për aksesin e bashkëngjitjeve HID. Dhe madje mbi këtë bazë, ju mund të bëni një kopje të personalizuar për robotin me bashkëngjitje specifike.

Fuqitë dhe nënfaqet kryesore të TJvHidDeviceController

Komponenti TJvHidDeviceController është më i dukshëm. Qasja OnArrival drejtohet në (lidhjen) e duhur me sistemin e bashkëngjitjes HID, aksesi në bashkëngjitjen duhet të gjendet në mostrën e nënndarjes përmes një shembulli të klasës TJvHidDevice. Një pod_ya e thjeshtë OnDeviceChange i përgjigjet një ndryshimi në shtesë, por sinjalizon vetëm për ndryshimet në sistem. Qasja OnDeviceData do të dërgohet te tjetri: HidDev: TJvHidDevice; - pajisje, nga çfarë lloj dhunuesi otrimanі danі;

OnDeviceDataError pod_ya për faljen e transmetimeve të haraçit, kalimin e parametrave HidDev në procedurën e përpunimit: TJvHidDevice; - bashkëngjitja HID dhe gabimi: DWORD; - kodi i faljes. Ideja e OnDeviceUnplug ka të bëjë me shikimin e bashkëngjitjes nga lista e cilësimeve në sistem. Llojet e pods në Plug dhe Unplug janë të njëjta (në tekstin cob: TJvHidUnplugEvent = TJvHidPlugEvent). Objekti transferohet në obrobnik në klasën TJvHidDevice, e cila shfaqet nga bashkëngjitja HID.

Për riparimin e fundit të bashkëngjitjeve HID që janë të dukshme në sistemet HID, metodës Enumerate i caktohet nëntipi OnEnumerate për metodën wiklik, d.m.th. Arsyeja kryesore për primus është përdorimi i metodës Enumerate, e cila përdoret për të "kryer" shtojca të dukshme HID përmes një kampionuesi, për shembull, kur rishikoni bashkëngjitjet HID nga hosti (kompjuteri).

Qasja OnRemoval bazohet në një bashkëngjitje fizike me një sistem dhe të njëjtin lloj kampionuesi TJvHidUnplugEvent, por edhe për OnDeviceUnplug. Funksioni CountByProductName është i formës së numrit të bashkëngjitjeve që shfaqen në emrin e argumentit të produktit dhe CountByVendorName është specifikuar në argumentin për emrin e virobnikut.

Autoritetet bazë dhe nënklasat e TJvHidDevice

Klas TJvHidDevice - zbulimi virtual i bashkëngjitjes së marrë HID. Objekti i ri i klasës mund të hidhet, siç është thënë tashmë, nga skeda OnArrival ose OnEnumerate. Funksionaliteti i klasave TJvHidDeviceController dhe TJvHidDevice mund të dublikohen shpesh, disa prej tyre janë të integruara me një grup mjetesh për robotët me një grup bashkëngjitjesh të qarta HID dhe mekanizma për qasje në njërën prej tyre. Bashkëngjitja mund të identifikohet në mënyrë unike nga fuqitë e numrit të serisë, emrit të produktit dhe emrit të shitësit. Për të korrigjuar informacionin në lidhje me detyrimet e nevojshme nga staza e një objekti të tillë, mund të shkoni shpejt te OnData. Paraqitja e të dhënave kryhet përmes metodës WriteFile (në një kuptim të ngushtë - përmes funksionit). WriteFile është një mbështjellës rreth funksionit të sistemit WriteFile (kernel32).

Kontrolloni faktin që aneksi është duke u ndërtuar, më pas përdorni mostrën tuaj të OnUnplug. Përpara se të filloni shkëmbimin e të dhënave nga shtesa HID, do t'ju duhet të mbani mend vetë mundësinë e një shkëmbimi të tillë për ndihmën e HasReadWriteAccess. Në klasën e përgjithshme, për fituesit e faljes, shkëmbimi i të dhënave bëhet në bazë të mesazhit OnDataError.

Dhe tani është i kuptueshëm një fragment i kodit nga një projekt "live", i cili zbaton një program testues të klientit për organizimin e shkëmbimit të të dhënave nga bashkëngjitjet jo standarde - kartat e çipave plastike të bazuara në HID. Në luftën për realizëm, autori mori lirinë të mos wikidonte nga listat, të "merrte" lidhjen teknologjike të kodit.

Metoda ScanDevices (lista 1) përdoret për të informuar procesin e një mesazhi në sistem të një bashkëngjitjeje të kërkuar HID. Ekziston një pjesë e madhe e kodit, pas fajit për metodën Enumerate, nuk është e nevojshme dhe nuk do të jetë e ndërlikuar të shtohet, për shembull, në mënyrë që programi të ekzekutojë një test, mund të shtoni mundësinë e një roboti duke përdorur ndërfaqen, e cila është e dukshme nga HID. Metoda AddError përdoret për të shfaqur zemërimin në procesin e programeve robotike.

Në listën 2, një mostër e pod OnEnumerate është vendosur për një shaka të një ndërtese të nevojshme shtesë. Për hir të thjeshtësisë, le të kemi parasysh që programi mund të përpunohet vetëm me një shtesë të llojit të kërkuar.

Së pari, po shikoj zbatimin e projektit, pranë tre përgjigjeve në lidhje me formën e pranuar të shkëmbimit të të dhënave nga niveli i sipërm, dmth, për strukturën, poklikanoy duke qenë në mes midis metodave të marrjes-transmetimit të të dhënat dhe zhvillimi specifik i të dhënave të aplikuara. Në të djathtë, në atë ku tregtari mund të shpresojë të realizojë shëndetin e tij krijues. Në fakt, për zhvilluesit, procesi i krijimit të një protokolli të ri është shpesh i dyanshëm, dhe në të njëjtën kohë violina luhet nga ai që është më i rëndësishëm për të zbatuar algoritmin e shkëmbimit. Zagalom, sikur bi të mos kishte një protokoll shkëmbimi, sigurohuni që të merrni programin e lëkurës sa më shpejt të jetë e mundur dhe të vetë-mjaftueshëm, nuk keni nevojë të mbështeteni në Skoda nga traditat e adoptuara të deyakim. bo zgjidhja më e mirë- diçka që do të realizohet në terma me një lidhje minimale me mesin e programuar dhe me mundësitë e mëdha të zhvillimit të farkëtuar. Mbi bazën e parimeve të kontabilitetit, protokollit të shkëmbimit të nivelit të lartë, dëshmitari i shurdhër është "urdhëri". Nga renditja 3 mund të shihet se autori i pëlqen vargjet e dans, më shumë se një herë ata u përpoqën ta bënin me mirë modulet e softuerit... Jak, është e mrekullueshme, që kemi vargun e tipit є! Të gjitha komandat e protokollit ndahen në kategori (klasa), të gjitha në mes të të cilave janë kodet e komandës, duke karakterizuar në mënyrë unike kuptimin. Parametri edParam përdoret për shfaqjen e të dhënave në bashkëngjitje dhe parametri edAnswerData përdoret për shfaqjen e të dhënave në bashkëngjitje. Lloji i vargut të përshkrimit të anëtarëve të rekordit lejohet të manipulojë vizualisht dhe qëllimisht të dhënat në formatin e rreshtave HEX. Para së gjithash, formati i përshkrimit të regjistrimit është ideologjikisht i rëndësishëm këtu në mes dhe pa përparësi. forma të ndryshmeїї paraqitje (INI, HEX, XML, etj.)

Viktimizimi i komandës, dmth. Dorëzimi i haraçit në shtojcë, u realizua nga grumbullimi i paketës së haraçit në shumën 8 bajt (listimi 4). Tsya dovzhina nuk është një vendim i vetëm, mund të përdoret një dridhje e tillë e diktimit nga vimogami në protokollin e nivelit të sipërm dhe në një lloj lëkure specifike. Tse, karrierës për t'u quajtur, në shije të drejtë. Shenja e mrekullueshme IsUSBMode në metodën ExecuteCommand (duke renditur 5 në "World of PC-disk") të tepricave, pasi për ata që zëvendësojnë robotët nga USB, ne mund të dimë se si të përdorim një port COM ose një ndërfaqe. Në kalli, një grup nderimesh shihet në bashkëngjitje për t'u transferuar në një seri sinkronizuese në një format mjaft të kundërt (për shembull, 3E3E3E2B), si dhe disa haraç ligjor në hyrje. Mendoj se në këtë vipad nuk po flas për HID, por për një protokoll specifik të nivelit të lartë, i paraqitur ideologjikisht si "zaliz" dhe i destinuar për transmetimin e detyrave të veçanta të aplikuara.

Në mostrën GetDataExecutor nga bashkëngjitja e të dhënave (paketë prej 8 bajte), ekziston një konfigurim special OnNewInputData për transferimin e të dhënave origjinale në një përpunim të vogël dhe për shkak të kuptimit të diskut të vjetër dhe të ri 6 në listën e PC-ve. Në një renditje të tillë, ekziston një mënyrë shpresëdhënëse e detyrimeve të pashlyera dhe një kërkesë për lidhjen e një përpunimi të caktuar, duke lejuar që një algoritëm specifik të shtohet në fazën e hershme të informacionit hyrës të përsëritur ose të panevojshëm.

Të paraqitur këtu janë robotë prapanicë me shtesa HID. Ata ilustrojnë idenë origjinale të statty - thjeshtësinë e dukshme të programimit të shtesave jo standarde HID duke përdorur Delphi.


Fig. 1 Unë do të shtoj robotë Android në modalitetet USB Host dhe Accessories (baby nga faqja http://developer.android.com)

Me sa duket, drejtuesi USB nuk është mënyra e vetme për t'u lidhur me të njëjtat bashkëngjitje të pavarura. Android ju lejon të përdorni Wi-Fi, NFC, Wi-Fi P2P, SIP, si dhe lidhjen standarde me rrjetin. Pra, në arsenalin e shitësit me pakicë ka mundësi të mjaftueshme për zhvillimin e ideve të tyre më të bukura.

Duke zgjeruar versionin, ne do të lidhemi me bashkëngjitjet e jashtme të përshtatësit USB-COM. Materiali në inkuadrim sipas ruajtjes së përshtatësit USB-COM në Android є - div., Për shembull ,. Popullariteti i një lidhjeje të tillë është i mbingarkuar nga numër i madh Tashmë i ndarë nga mikrokontrolluesit e vegjël të anekseve, lidhjet me të cilët lidhen me një port shtesë COM (porti i fundit), por nga vëllimi i 10-të, mënyra standarde për të transmetuar të dhënat nga kompjuteri në "lidhjen" e pavarur.

Me një portë COM, drejtuesi USB ju lejon të rregulloni lehtësisht shpejtësinë e transmetimit të të dhënave dhe të përpunimit të të dhënave me një proces manual për përdoruesin. Shpejtësia e transmetimit, mënyra e lundrimit në kohë aneksesh me cilësi të ulët (tastierë, miss, levë), bëhet 10-1500 Kbit/s, thjeshtësia dhe aspak frekuenca e sistemeve dhe çelsave kabllore, vetëidentifikimi i konfigurimit. i lidhjes me lidhjen automatike me kabllon pa bashkëngjitje komutuese), kontrolli i faljeve dhe përditësimeve në të njëjtin protokoll - boshti i ritelave të panegociuar të teknologjisë së dhënë (div., f. 12).

Vzagal, duke folur për shoferin USB për transferimin e homazheve, ne nuk do të lexojmë librin e P. Agurov "Ndërfaqja USB". Vona, e cila dëshiron të kritikohet shpesh në rrjetë dhe u la për herë të fundit në vitin 2006, më ndihmoi më shumë se një herë të dija zgjidhjen e duhur kur bënte shaka për informacionin rreth zhvillimit të teknologjisë. Në fund shfaqet furnizimi me energji elektrike: nga zgjedhja e mikroqarkut dhe qarkut për kontrolluesin përpara se të shkruhet nga programet e mikrokontrolluesit dhe aplikimi i programit transmetimi i të dhënave nëpërmjet protokollit USB nga ana e kompjuterit. Është e pamundur të mos japësh një donacion "të dorës së parë" për ushqim - faqja e organizatës jo-tregtare USB IF (Forumi i Implementuesve USB), për t'u marrë me zhvillimin e specifikave të kësaj ndërfaqe -, Materiali True Dani është në gjuhën angleze. Megjithatë, aty do të mësoni më shumë informacion rreth lidhjes së ndërfaqes USB. Є hezitimi për të transferuar pjesë të specifikave -. Tim, hto ts_kavitsya zgjidhje softuerike Nga ana e mikrokontrolluesit, ju gjithashtu mund të mahniteni me fuqinë.

Artikulli i dhënë i drejtohet të parës për të gjithë ata që janë si një bashkëngjitje elektronike (është i ndarë në mënyrë të pavarur, por nuk është), protokolli do të shkëmbejë të dhëna me pamje të mira (për shembull, programi është gjithashtu i mirë, sepse është mirë që kompjuteri të shtojë Windows / Linux) b nënë programin, i cili punon me të në Android.

Trochi rreth bashkëngjitjeve USB të klasës

Është e nevojshme të kuptohet se shpërndarja e sigurisë së softuerit për shkëmbimin e të dhënave me bashkëngjitje specifike duhet të depozitohet shumë në bazë të mikrokontrolluesit. Sjellja e programeve të prapanicës për të gjitha llojet e shtojcave USB brenda kornizës së të njëjtit statut, për arsye inteligjente, nuk është për të ardhur keq (mund të merrni disa informacione për programet e llojeve të ndryshme të bashkëngjitjeve në). Megjithatë, ne jemi të ndërthurur me një kod që do të aktivizohet, i cili do të zbatojë një shtytje dhe bashkangjitje dhe akses në pikat e kontrollit për të shkëmbyer informacion. Është gjithashtu e mundur të merret transferimi i të dhënave në prapanicën e një prej llojeve të bashkëngjitjeve USB, dhe vetë klasës së bashkëngjitjeve HID (pajisja e ndërfaqes njerëzore - një klasë bashkëngjitjesh për ndërveprim me njerëzit). E gjithë klasa përfshin në vetvete bashkëngjitje "povilny", të tilla si tastiera, Misha, levë dhe aplikimi i këtij zbatimi për mikrokontrolluesit e vegjël shtesë në rrjetë për të përfunduar (є, për shembull, і в).

Pse klasa HID është kaq e dashur për virobnikët e bashkëngjitjeve të vogla të bëra vetë? Procision Vіkіpedіyu: “Krym specifikat e detajuara të bashkëngjitjeve klasike u prezantuan (si tastiera dhe arinjtë) përcaktimi standard HID i klasave speciale të anekseve pa specifikime të detajuara. E gjithë klasa është USB HID Consumer Control dhe është, në ditën e mosrregullimit, një kanal për t'u lidhur me një shtesë. Në të njëjtën kohë, përpiquni të përdorni këta drejtues standarde për sistemin operativ dhe një ari me tastierë. Në këtë mënyrë, është e mundur të instalohen bashkëngjitje USB që nuk lejojnë instalimin e drejtuesve të veçantë në sistemet operative më të zgjeruara të kompjuterit." Është tepër vonë për ta bërë vetëm atë, kështu që po përpunon specifikat në sistemin operativ Android (duke mos ekzekutuar firmuerin CyanogenMod).

Një nga opsionet për shkëmbimin e të dhënave nga një shtojcë HID është transferimi me transferim me ndërprerje, si rezultat i transferimit, nëse është e nevojshme të transferohen paketat e të dhënave të një madhësie të vogël (madhësia maksimale e paketës është ruajtja e të dhënave në transmetimet pas 1024 orësh) interval. Paketa për transmetim quhet raport (anglisht - report, shih fq. 71, 95). Një raport i tillë mund të dërgohet në një ekran të vetëm për të shkëmbyer informacion nga një bashkëngjitje e pavarur, 64 bajt informacion në një paketë, për shembull, ia vlen të shtoni shumë për një kontrollues, si dhe për transmetimin e stacioneve të të dhënave, ose për të gjetur një sensor të thjeshtë.

mjetet e nevojshme

Gjithashtu, ne e dimë - një tabletë ose një telefon me version Android jo më të ulët se 3.1. Këtu është e nevojshme të nënkuptojmë se treguesit e API-së së hostit USB do të rrisin implementimet jo në të gjitha anekset celulare (ju lutemi, shkoni te developer.android.com, div. Posilannya). Për disa tableta / telefona, portat USB janë të disponueshme vetëm për karikim dhe lidhje me një kompjuter personal. Edhe një herë, unë do ta ridrejtoj lexuesin në listën e anekseve celulare që janë bashkangjitur ose jo të disponueshme për prezantuesit tanë (div.).

Ju gjithashtu duhet të keni një shtojcë USB (për herë të parë do të ketë një USB flash drive të mjaftueshëm), një përshtatës OTG (On-The-Go - shih Fig. 2) ose një kabllo USB për t'u lidhur me shtojcën. Disku OTG ka informacionin e mëposhtëm: "Kur lidhet me USB OTG, renditja e bashkëngjitjes (koka e çdo porosie) duket të jetë e dukshme ose kërcyesi është i dukshëm midis kontakteve 4 dhe 5 në kabllon rezervë të karikimit. Për kabllot USB OTG, një kërcyes i tillë mund të instalohet vetëm në një nga dy trëndafilat (div.). »Me sa duket, ne kemi nevojë për një kërcyes të tillë nga ana e aneksit celular.


Fig. 2 Karakteristikat e kabllit USB dhe kabllos OTG (foto nga faqja e internetit http://tech.firstpost.com)

Një kabllo e tillë OTG për shtrirjen tuaj mund të bashkohet në mënyrë të pavarur. Në përgjithësi, ju duhet të blini një trëndafil të modës së vjetër nga një dyqan radioje, plus autori, për shembull, vikoristovuvav një kabllo të vjetër nga një hard disk portativ:

Do të jem edhe një bastard në robotikë. program USB Informacioni i pajisjes, i instaluar nga Google Play Market. Programi ju lejon të filloni të lidheni me një tablet / telefon të aktivizuar me USB, unë do të bashkëngjit një API Java si një shtesë, si dhe Kernelet Linux... Pra, nëse bashkëngjitja juaj nuk është bërë me ndihmën e Java USB Host API në USB Device Info, atëherë, me ymovіrnіstyu të shkëlqyer, do të jem fitimtar për çdo program të bashkëngjitur celular be-yak (përfshirë timin) Android-program, do të shkruaj. me ndihmën e Java dhe USB Host API.

Inodi, gjithashtu, edhe si koriandër, informacion, i cili jepet nga komanda lsusb Sistemet Linux... Me çelësat -v і -d lsusb, tregoni gjithçka rreth bashkëngjitjeve USB, apo edhe gjithçka që është e nevojshme për zhvilluesin e sigurisë së softuerit për bashkëngjitjet në klasë (div. Fig. 3).


Fig. 3 Zbatimi i komandave lsusb dhe lsusb -v -d

Dal, kërkohet kompjuter s instaloni Android SDK dhe softueri i integruar (IDE) Eclipse me shtojcën ADT (nëse mund të përdorni vetëm SDK). Si të instaloni dhe instaloni një shtesë për Android, mund të pyesni veten, për shembull, në, ose në internet.

Epo, absolutisht, është e nevojshme të dëshironi të arrini rezultatin, pa një niyak të ri! Do të doja t'ju kërkoja një kopje të shpejtë të informacionit mbi hapësirën ruajtëse USB në Android nga autori.

Klasi Java për Robotët nga USB në API Android

Otzhe, siç duket në zhvillimin e uebsajtit USB Host API për Android (div.) - "Së pari, është e rëndësishme të shihni se sa me klas do të jeni fitimtarë në robotë." Tabela 1 ka një përshkrim të klasave më të rëndësishme për robotët nga USB Host API (shih transferimin e informacionit nga http://developer.android.com).

Tabela 1. Përshkrimi i klasave për robotët nga USB në Android

Emërtoni klasën te pershkruaj
UsbManager Ju lejon të numëroni dhe të komunikoni me pajisjet e lidhura USB.
Ju lejon të filloni të lidhni bashkëngjitjet USB dhe të shkëmbeni të dhëna me to.
UsbDevice Përfaqëson një USB të lidhur pajisje dhe përmban metoda për të aksesuar informacionin identifikues, ndërfaqet dhe pikat fundore.
Ofron lidhjet dhe metodat e pajisjes USB për aksesin në informacionin e identifikimit, ndërfaqet dhe pikat.
UsbInterface Përfaqëson një ndërfaqe të një pajisjeje USB, e cila përcakton një grup funksionesh për pajisjen. Një pajisje mund të ketë një ose më shumë ndërfaqe mbi të cilat mund të komunikojë.
Ai paraqet një bashkëngjitje USB "ndërfaqe", e cila është një lloj grupi funksionesh për këtë bashkëngjitje. Një bashkëngjitje mund të përdoret për një ose më shumë ndërfaqe për shkëmbimin e informacionit.
UsbEndpoint Përfaqëson një pikë fundore të ndërfaqes, e cila është një kanal komunikimi për këtë ndërfaqe. Një ndërfaqe mund të ketë një ose më shumë pika fundore dhe zakonisht ka pika fundore hyrëse dhe dalëse për komunikim të dyanshëm me pajisjen.
Ai përfaqëson "pikën përfundimtare" të ndërfaqes, si një kanal për komunikimin me të gjithë ndërfaqen. Ndërfaqja mund të ketë një ose më shumë pika fundore dhe të zgjedhë një pikë fundore për të hequr informacionin për transmetim.
Lidhja UsbDevice Përfaqëson një lidhje me pajisjen, e cila transferon të dhëna në pikat fundore. Kjo klasë ju lejon të dërgoni të dhëna mbrapa dhe mbrapa në mënyrë sinkronike ose asinkrone.
Paraqitja e "lidhjes" me shtrirjen e dhënë. Është e nevojshme për transmetimin e homazheve deri në pikën e nisjes. E gjithë klasa lejon të dhënat otrimuvati ose transmetimin sinkron ose asinkron.
UsbRequest Përfaqëson një kërkesë asinkrone për të komunikuar me një pajisje përmes një UsbDeviceConnection.
Është një furnizim asinkron me energji elektrike për shkëmbimin e të dhënave nga një bashkëngjitje përmes UsbDeviceConnection.
UsbKonstantet Përcakton konstante USB që korrespondojnë me përkufizimet në linux / usb / ch9.h të kernelit Linux..
Konstantet vizuale, të cilat korrespondojnë me vlerat në linux / usb / ch9.h të kernelit Linux.

Shumica dërrmuese e API-ve USB Host përdoren nga një programues për klasikët në robotët e tyre. Algoritmi për ruajtjen e një viglyad është afërsisht si vijon: bashkëngjitja visnachamo (qasja meta programatike në klasën UsbDevice), lidhja me hostin (bashkëngjitje celulare), me ndihmën e UsbManager. Nëse aksesi i softuerit është i disponueshëm për bashkëngjitjen, është e nevojshme të sigurohet UsbInterface dhe UsbEndpoint për t'u lidhur me të. Sapo ta keni marrë në rendin tuaj të pikës fundore, hapni UsbDeviceConnection dhe më pas shtojeni në bashkëngjitur USB. Mënyra e transmetimit asinkron, klasa UsbRequest është fitimtare.

Le të përpiqemi të fillojmë duke hapur një shtesë të thjeshtë, si, ose duke përdorur API, të caktojmë lidhje me hostin me sistemin operativ Android, të shtojmë dhe të shohim informacione në ekranin e telefonit ose tabletit.

nis projektin

Në Eclipse, projekti ndjek artikullin shtesë të menusë File-> I ri-> Android Application Project. Është gjithashtu shumë e rëndësishme që kodi për të qëndruar pezull poshtë treguesve nga aplikacionet shtesë të ofrohet nga Android SDK (dosja android sdk mostrat / android-N (Niveli API) / USB). 4) Aplikoni të dhëna shtesë për të qenë ngarkuar përmes Menaxherit të SDK-së së Android (duhet të kontrolloni kutinë pranë Mostrave për SDK). Në listat, duke qëndruar pezull më poshtë, shtoni kodin pa komente, pasi ato shpjegojnë thelbin e asaj që po ndodh.


Fig. 4 Qesharake "hedhës raketash"

Kur krijoni një projekt, mos harroni të shënoni nivelin e kërkuar të API në opsionin Minimum Requared SDK (Niveli 12 i API, Versioni Android 3.1 / Huall mjalti /, çfarëdo). Projekti do të ketë një ndërfaqe edhe më të thjeshtë të një koristuvach - një smut (Aktiviteti) dhe TextView për shpërndarjen e informacionit. Shikoni një projekt të detajuar në detaje.

Për klasën e hapur automatikisht për Aktivitetin, projekti ynë duhet të ketë shembuj të rinj të klasave për robotin me USB:

privat TextView lgView;
privat UsbManager mUsbManager;
mDevice private UsbDevice;
private UsbDeviceConnection mConnection;
private UsbEndpoint mEndpointIntr;

LgView = (TextView) findViewById (R.id .logTextView);

dhe ne do të ofrojmë akses në klasën UsbManager

MUsbManager = (UsbManager) getSystemService (Konteksti .USB_SERVICE);

Krijo një pod onResume (). Informacioni Dob'єmosya meti - schob në lidhje me ndërtesat e bashkangjitura u mor parasysh gjatë aktivizimit të dritares së shtëpisë sonë (div. Listimi 1).

Listimi 1. OnResume ()

boshllëk publik në Rezyme () (
super .onResume ();

// ruajeni kontejnerin me një listë të bashkëngjitjeve
HashMap< String , UsbDevice>deviceList = mUsbManager.getDeviceList ();
Iterator< UsbDevice>deviceIterator = deviceList.values ​​() .iterator ();

lgView.setText ("Numri i pajisjeve:" + deviceList.size ());

ndërsa (deviceIterator.hasNext ()) (
Pajisja UsbDevice = (UsbDevice) deviceIterator.next ();

// Vlera e prapanicës e caktuar bashkëngjitja e ID-së së produktit
\ N "+ "ID-ja e produktit të pajisjes:" + device.getProductId ());
}
// visnachaєmo namir, i përshkruar në filtër
// namіrіv AndroidManifest.xml
Intent intent = getIntent ();
lgView.setText (lgView.getText () + " \ N "+ "Qëllimi:" + qëllimi);
Veprimi i vargut = intent.getAction ();

// kur lidhet bashkëngjitja, transmetimi transmetohet në
// në funksionin setDevice ()
Pajisja UsbDevice = (UsbDevice) intent.getParcelableExtra (UsbManager.EXTRA_DEVICE);
nëse (UsbManager.ACTION_USB_DEVICE_ATTACHED .e barabartë me (veprim)) (
setDevice (pajisje);
lgView.setText (lgView.getText () + " \ N " + "UsbManager.ACTION_USB_DEVICE_ATTACHED.equals (veprim) është e vërtetë") ;
) Përndryshe nëse (UsbManager.ACTION_USB_DEVICE_DETACHED .e barabartë me (veprim)) (
nëse (mDevice! = null && mDevice.equals (pajisje)) (
setDevice (null);
lgView.setText (lgView.getText () + " \ N " + "UsbManager.ACTION_USB_DEVICE_DETACHED.equals (veprim) është e vërtetë") ;
}
}

Dal, për Aktivitetin, funksioni setDevice () është i instaluar, është i nevojshëm për robotët me bashkëngjitjet tona (div. Listimi 2). Në mostrën onResume () dhe në funksionin setDevice (), u shfaq saktësisht algoritmi për ruajtjen e API-së së hostit USB, përshkrimet janë në pjesën e përparme.

Listimi 2. Funksioni setDevice ()

setDevice privat i zbrazët (pajisja USB) (
lgView.setText (lgView.getText () + " \ N "+ "SetDevice" + pajisje);

// ndërfaqe shtesë e disponueshme vizualisht
nëse (device.getInterfaceCount ()! = 1) (

LgView.setText (lgView.getText () + " \ N "+ "Nuk mund ta gjeja ndërfaqen");
kthimi;
}
UsbInterface intf = pajisje.getInterface (0);

// bëj një bashkëngjitje pikës
nëse (intf.getEndpointCount () == 0) (

LgView.setText (lgView.getText () + " \ N "+ "Nuk mund të gjeja pikën përfundimtare");
kthimi;
) tjeter (
lgView.setText (lgView.getText () + " \ N "+ "Numri i pikave fundore:" + intf.getEndpointCount ());
}

UsbEndpoint epIN = null;
UsbEndpoint epOUT = null;

// pika shukaєmo kіntsevі për transferime me shkëmbim
për (int i = 0; i< intf.getEndpointCount () ; i++ ) {
nëse (intf.getEndpoint (i) .getType () == UsbConstants.USB_ENDPOINT_XFER_INT) (
nëse (intf.getEndpoint (i) .getDirection () == UsbConstants.USB_DIR_IN) (
epIN = intf.getEndpoint (i);
lgView.setText (lgView.getText () + " \ N "+ "Në pikën fundore:" + intf.getEndpoint (i));
}
tjetër (
epOUT = intf.getEndpoint (i);
lgView.setText (lgView.getText () + " \ N "+ "Pika e fundit OUT:" + intf.getEndpoint (i));
}
) Tjetër (lgView.setText (lgView.getText () + " \ N " + "Nuk ka pikë përfundimtare për INTERRUPT_TRANSFER") ; }
}

MDDevice = pajisje;
mEndpointIntr = epOUT;

// hapni cilësimet për transmetimin e të dhënave
nëse (pajisja! = null) (
Lidhja UsbDeviceConnection = mUsbManager.openDevice (pajisje);
if (lidhja! = null && connection.claimInterface (intf, e vërtetë)) (

LgView.setText (lgView.getText () + " \ N "+ "Hap pajisjen SUKSES!" );
mConnection = lidhje;

) tjeter (

LgView.setText (lgView.getText () + " \ N "+ "Hap pajisjen FAIL!" );
mConnection = null;
}
}
}
}

Për t'i shtuar kodit të koduar, si, jak tashmë melodiozisht zodadavsya lexues i respektuar, shiko bashkëngjitjen për marrjen-transmetimin e të dhënave, është e panevojshme të futet protokolli i shkëmbimit të të dhënave, i cili, po e përsëris, do të jem i mirë për vidomies ne dyqan. Duket se është e pamundur të dërgosh kodin HID, të cilin do ta shtoj në paketën HID, dhe do të shtoj të njëjtin mesazh në transferim me anë të shkëmbimit, klasës UsbRequest dhe do të dërgoj pikën e mesazhit - shiko Listën 3.

Lista 3. Plotësimi i kodit për dërgimin e të dhënave në bashkëngjitje

// vendosni madhësinë e tamponit për përditësimin
// dil nga madhësia maksimale e paketës
int bufferDataLength = mEndpointIntr.getMaxPacketSize ();

lgView.setText (lgView.getText () + " \ N "+ MEndpointIntr.getMaxPacketSize ());

Buffer ByteBuffer = ByteBuffer.allocate (BufferDataLength + 1);

Kërkesa UsbRequest = UsbRequest i ri ();

buffer.vëni (mesazh);

kërkesa.initialize (mConnection, mEndpointIntr);

kërkesa.radha (buffer, bufferDataLength);

nëse (kërkim. e barabartë (mConnection.kërkesëPrisni ()))

// rishikimi ishte i suksesshëm
//lgView.setText (lgView.getText () + "\ n" + "dergimi CLEAR !!!");

kapja (përjashtim ex)

// nuk është e drejtë ...
//lgView.setText (lgView.getText () + "\ n" + "dërgimi nuk është i qartë ...");

Filtro bashkëngjitjet në AndroidManifest.xml

Nëse nuk dua të shtoj një bashkëngjitje specifike me VID (Vendor-ID) dhe PID (Product-ID) në shtesën tonë, inxhinierët e Google nuk krijojnë bashkëngjitje shtesë pa seksione të filtrit të qëllimit në manifestin e skedarit, dhe autori nuk dëshiron të shohë bashkëngjitjet e një roboti në AndroidManifest.xml.

Me sa duket, ID-ja e shitësit dhe ID-ja e produktit janë identifikues unikë për bashkëngjitjet USB. Tobto, vikoristovuchi filtrim, ju mund të shtoni një shtesë, nëse nuk keni një bashkëngjitje këndimi së bashku, ose një klasë të bashkëngjitjeve. Me sa duket, virobnikët janë përgjegjës për koston e organizimit të USB IF.

Dodatok, skedari i manifestit është vendosur në listën 4, dhe skedari me filtrin në listën 5, për shembull, është lidhur me sukses me USB flash drive nga bashkëngjitja celulare, por jo nga autori, por jo nga autori. . Programi mund të shkarkohet menjëherë me kodin e daljes.

Listimi 4. Skedari AndroidManifest.xml


" > http://schemas.android.com/apk/res/android "
> paketë = "ru.learn2prog.usbhostexample"
android: versionCode = "1"
android: Emri i versionit = "1.0">


android: minSdkVersion = "12"
android: targetSdkVersion = "14" />


android: allowBackup = "e vërtetë"
android: icon = "@ drawable / ic_launcher"
android: label = "@ string / app_name"
android: theme = "@ style / AppTheme">

android: emri = "Ru.learn2prog.usbhostexample.MainActivity"
android: label = "@ string / app_name">
>

"Android.intent.category. DEFAULT" />

"Android.intent.category.LAUNCHER" />

>

>

>
"Android.hardware.usb.action.USB_DEVICE_ATTACHED"
android: burim = "@ xml / pajisja_filter" />
>
>

>

Lista 5. Filtro skedarin device_filter.xml (directory / res / xml)

>

>

Operacionet për ngritjen dhe ngritjen e stazës sonë nuk njihen nga asnjë prej grave (div. Apliko në,). Unë dua të brutalizoj respektin për filtrin e namiriv - kur të lidhem me hostin e OS, unë do të ushqej koristuvach për nisjen e zasosuvannya tonë.

Literatura / Posilannya: 11.
12.
13.http: //developer.android.com/guide/topics/connectivity/usb/host.html - një përmbledhje e klasave të kërkuara për robotët nga USB në Android
14.Posilanja mbi shtesat vihіdnі

Yak tashmë zgaduvalosya, sistemet operative dhe Windows nuk do të jenë në gjendje të programojnë për funksionet radio të bashkëngjitjeve, të lidhura me autobusin USB. Përpunimi i transmetimeve nga këto bashkëngjitje USB në të njëjtin sistem operativ dhe shfaqja e një grumbulli drejtuesish standardë, të cilët shfaqin funksionet kryesore nga kontrolli i të gjitha bashkëngjitjeve USB dhe shkëmbejnë të dhëna midis tyre dhe sistemit.

Nëse ju duhet të shkruani një softuer për sigurimin për çdo bashkëngjitje USB, nëse i keni zgjeruar të gjitha mundësitë sipas të dhënave, atëherë mund të përdorni një nga tre mënyrat e reja:

Unë do të shkruaj një drejtues të energjisë, do ta bashkëngjit atë, i cili do të jetë në gjendje të sigurojë të gjitha funksionet e nevojshme të kontrollit dhe shkëmbimin e të dhënave, dhe programin që do të përdoret me drejtuesin në modalitetin e caktuar për shtypjen e tastit. Në të njëjtën kohë, ju mund të kaloni pa drejtuesit standard të sistemit;

shkruani një drejtues filtri, i cili është një bi-ruajtje e funksionalitetit të nevojshëm, pak më shumë në pirgun e drejtuesit mbi drejtuesit e sistemit. Kështu, të gjitha funksionet standarde të përpunimit janë përdorur nga drejtuesit USB, krijuar nga sistemi, Dhe për funksionet shtesë do të kujdeset drejtuesi juaj i filtrit, i cili do të ndërlidhet me programin;

i shpejtë nga bibliotekat e zgjerueshme të funksioneve dhe drejtuesve

Unë do ta bashkoj atë me aksesin USB.

Në shumicën e rasteve mund të përdoret aksesi i softuerit në shtojcën USB, nëse jepet bashkëngjitja në vizon, kam funksionalitet edhe më specifik. Për shembull, në bazë të ndarjes USB të "oscilografisë elektronike" ose sistemeve të mbledhjes së të dhënave, për robotët që kanë nevojë për qasje në vetë ndërtesën shtesë. Një numër i madh i llojeve të tilla mund të shihen në një bibliotekë të zgjeruar funksionesh, të cilat do të jenë praktike për të gjitha programet e njohura të softuerit të mesëm. Për shembull, meqenëse GNU ka kaluar në procesin e sigurimit të softuerit, si LibUsb, ai përfshin drejtuesit dhe bibliotekat e nevojshme të funksioneve për robotët në sistemet operative Windows dhe Linux. Një numër funksionesh janë edhe më të njohura dhe ju lejojnë të shpërndani shpejt programet, të cilat mund të ndërlidhen me bashkëngjitjet tuaja për një grup shtesë funksionesh standarde. Nuk ka nevojë të shkruani një shofer Vlas për një shtojcë, kështu që do të kursejë ndjeshëm një orë.

Për më tepër, shumica e drejtuesve nuk janë të njohur me metodën e shpërndarjes së drejtuesve,

Dhe në të njëjtën kohë, zona e programit është edhe më e palosshme, kështu që shfaqja e një zgjerimi të tillë të sigurisë së programueshme do t'i japë një ndihmë të pavlerësuar një game të gjerë kanelle. Në bazë të projektit LibUsb, mbështjellësit për robotët për Visual Basic .NET dhe C # .NET, më i popullarizuari për LibUsbDotNet, është gjithashtu një zhvillim botanik për softuerin e zgjeruar gjerësisht. E parëndësishme për tregimin e fatit, palosja e softuerit të shtesave USB, risigurimi i softuerit për sigurinë e instalimit, do ta falin detyrën, sapo të keni forcën për të ndihmuar të ardhurit. Zgjerohet në stoqe praktike, si me bashkëngjitjet tuaja USB, dhe veçanërisht me paketën e softuerit LibUsb. Përpara fjalimit, mund të shtoni një lidhje në faqen www.sourceforge.net për një tarifë, ose nga faqe të shumta dublikate.

Cila është mënyra më e mirë për të përdorur bibliotekat e funksioneve LibUsb USB? Biblioteka kërkohet në këtë mënyrë

Pra, është e mundur të ndërtoni operacione bazë, të lidhura me një shtesë USB:

Identifikimi, ose, sipas një mendimi, mbiekspozimi (numërimi). Kur shfaqet sistemi operativ, është e mundur të zbulohen bashkëngjitjet e lidhura me autobusin USB, në mënyrë që të mund të konsultoheni me funksione shtesë të bibliotekës libusb;

refuzimi i parametrave në një aneks (identifikuesit në një aneks, dhënë një ofrues dhe karakteristikat në një aneks), për të cilat ka një sërë funksionesh në bibliotekë;

vіdkrittya, zakrittya, leximi dhe shkrimi i homazheve, renditja e komandave. Përpara se të shtoni një USB, siç është, si dhe përpara sistemit tjetër të skedarëve, mund të shkoni te regjistrimi i leximit dhe të shihni funksionet shtesë të bibliotekës.

Të gjitha mundësitë e risiguruara mund të realizohen pas një wikkliku shtesë të funksioneve të bibliotekës libusb, por këtu nuk do të ketë erë të keqe, disa prej tyre morën shumë para; do të habitemi, si vikoristovovati deyakі z tsikh funk

I vogël. 6.10

Shkarkimi i drejtuesit të libusb0.sys në instalimet e shoferit

tions mbi stoqet praktike. Një përshkrim i të gjitha funksioneve të lexuesit mund të njihet nga dokumentacioni. Unë mendoj se mund të shoh funksionet e bibliotekës libusb në sistemet operative Windows.

Kur instaloni shpërndarjen nga libusb në sistemi operativ Sistemi Windows instalon drejtuesin e filtrit libusb0.sys. I gjithë drejtuesi do të jetë në krye të grupit të drejtuesve të sistemit, kështu që është e lehtë ta godasësh atë në prapanicë, duke pyetur veten për drejtuesin për çdo lidhje USB (Fig. 6.10).

Përveç kësaj, për instalimin në shofer nga programi, biblioteka libusb0.dll është instaluar në sistem.

I vogël. 6.17

Pamje e dritareve me programe kur shihet

Bashkëngjitje USB nga sistemet

Në fazën e fundit, ne morëm firmware-in për kontrolluesin, e lidhëm me kabllo përmes USB. Ale për ndërfaqen me një kompjuter, na duhet një program i veçantë që do të funksionojë në kompjuterë.

Aksi në një kohë dhe ne do të jemi të hapur.

Unë e di në paketë zgjidhjet e mikroçipit є prapanicën, për kontrolluesin tonë, dhe e rishkrova atë në mënyrën time. Për herë të parë, unë preva ndërfaqen grafike pa një viktoriane, dhe madhësia e kodit ndryshoi me 3-4 herë. Scho nabagato është më e bukur për vivchennya. Protestoni, parimi i robotëve është një. Kodi në aplikacionin standard është nga mikroçipi.

Programi është i shkruar në C ++. Projekti është një shkarkim në një version studentor jo-shkollor të Visual C ++ express 2010. Unë do të jap ide dhe komente jashtë kutisë për kodin, më lejoni të hyj në uvazi, si dhe do të doja të merrni më shumë informacion mbi programin në C ++.

Otzhe, rregulloje

I gjithë projekti ndodhet këtu, duke përfshirë tekstin origjinal

Për të lexuar dhe shkruar të dhënat përmes portës USB, duhet të modifikojmë ekranin në bashkëngjitjen tonë. Oskіlki në vіdminu nga portet e vjetra, nëse mund të lidhni deri në njëqind anekse, atëherë nuk është aq e lehtë të bësh një shfaqje. Për të qenë në gjendje ta bëjmë atë, ne do të vrapojmë deri shoferët e Windows, Dhe vetë SetupAPI. Para fjalimit, siç mund ta tregojmë vetëm ne, do të përdorim portën USB, një skedar të vogël.
Transferimi i homazheve për disa skuadra. Stërvitja e aksit ale!
Programe të mira në C ++, atëherë do të kemi nevojë për lloje edhe më të sakta të detyrimeve.
Projekti i konsolës Stvoryuєmo win32. Unë dodaєmo toudi Skedar i vetëm main.cpp

Otzhe, ne duhet të lidhim bibliotekën.
#përfshi
#përfshi
#përfshi

Pra, çelësi është të telefononi bibliotekën:
Komenti #pragma (lib, "Setupapi.lib")

Së pari, një funksion përshkruhet në programin getUSBHandle (). Її përshkruani - në komentet e kodit. Ky është komenti kryesor në kod. Është aty për të shërbyer për të njohur qëndrimet dhe edukatorët tanë, në mënyrë që të mund të shkruajmë në atribut dhe të lexojmë nga ny.
Me pak fjalë, këtu janë funksionet standarde të Windows për aksesimin e drejtuesve USB dhe përmes tyre do të shfaqim treguesin për vetë shtojcën.
Sapo të jetë tsikavo, të gjitha gypat dhe gypat, atëherë shkoni te MSDN ose te libri i Agurovit, kështu që shtrihuni në prag. Është e rëndësishme për fisnikërinë: në shtrirjen e lëkurës є shlyakh, dhe është e rëndësishme që ne ta mohojmë atë. Ka shumë përmbysje, si të merret ID nga bashkëngjitja, që është shukamo. Dhe pastaj ne e dimë mënyrën e pajisjes Mi shukaєmo vetëm në mes të bashkëngjitjeve të klasës HID. për të filluar në Guid dimëror. Reshta div në komentet e programit
Funksioni i disponueshëm - writeReadUSB. Është thjesht një funksion shtesë, do ta shkruaj në bashkëngjitjen tonë. Përfundoj respektin, do ta shkruaj dhe lexoj, do ta shtoj, në mënyrë që të vendosim treguesin tek i riu që do të zbatohet përveç komandave standarde WriteFile dhe ReadFile.
Dhe për të gjitha funksionet më të rëndësishme të kryesore nga e cila dhe për t'u riparuar nga programet. Vona wiklikє getUSBHandle, për sa kohë që treguesi nuk është i dukshëm në bashkëngjitje, më pas lexoni nga tastiera te komanda dhe në mungesë të saj, transferoni dhe lexoni të dhënat nga bashkëngjitja USB.
Keni një projekt për të shtrirë kodi i daljes Me komentet përpilohet vetë programi. Huy të jesh i lumtur.

Në këtë proces, më erdhi pak keq për bibliotekën hidapi. Fitoi є ndër-platformë. І Tilki për robotë me shtesa të fshehura. Është edhe më e thjeshtë për vicorstanna. Unë sjell projektin për të. posilannya.
Hidapi shkarkohet nga faqja zyrtare. Për të filluar punën në projekt, duhet të shtoni setupapi.lib në lidhje. projekt-> veti-> lidhës-> hyrje і nënshkrimi këtu setupapi.lib;
Huy të jesh i lumtur.
Dije, përshkruaje me denjë bibliotekën këtu: http://microsin.net/programming/PC/multi-platform-hid-api.html.
Faleminderit!

Bëhuni gati për projektin - ju lutem, faleminderit!
Lexoni gjithashtu
Sberbank (në të njëjtën Oschadbank) Sberbank (në të njëjtën Oschadbank) Zgjidhja e problemeve të licencës për Autocad Chi nuk fillon autocad Windows 7 Zgjidhja e problemeve të licencës për Autocad Chi nuk fillon autocad Windows 7 Udhëzime për regjistrimin e kodit PIN të CryptoPro, përpara orës së regjistrimit të disa dokumenteve - Udhëzime - AT Udhëzime për regjistrimin e kodit PIN CryptoPro, para orës së nënshkrimit të disa dokumenteve - Udhëzime - NË "PEK-Torg"