A legegyszerűbb USB-csatlakozások disztribúciójának alapjai és szoftvere. USB programozás Androidon

Zharoznizhyuchі zasobi gyermekek számára elismert gyermekorvos. Állítólag vannak olyan helyzetek, amikor feltűnő segítség van láz esetén, ha a gyermeknek ártatlanul kell adnia. Todi apa átveszi a lázcsillapító gyógyszerek sokoldalúságát és konzisztenciáját. Szabad -e mellet adni a gyermekeknek? Hogyan lehet legyőzni a nagyobb gyerekek hőmérsékletét? Melyek a legjobbak?

Belépés
Kinek szól a könyv
Tudod a knizben
szoftver vimogs
vimogi a hardverbiztonsághoz
A szoftverkódról
A fejezetek rövid leírása
kijelölés
Finomságok
Zvorotn_y zv'yazyk
I. rész. Központ az USB-ről
Fejezet 1. USB specifikáció
1.1. USB is és ami a legfontosabb
1.1.1. USB architektúra
1.1.2. Fizikai és logikai USB architektúra
1.1.3. USB raktárak
1.1.4. Az USB-csatlakozások teljesítménye
1.1.5. A tiszteletadás továbbításának elvei
1.1.6. Pererivan mechanizmus
1.1.7. Átviteli módok
1.1.8. Logikai adatcsere
1.1.8.1. Rivn klintskogo PZ
1.1.8.2. Rivn USB rendszer-illesztőprogram
1.1.8.3. Riven host vezérlő interfész
1.1.8.4. Riven busz periféria USB-csatlakozás
1.1.8.5. Egyenértékű USB logikai melléklet
1.1.8.6. Az USB-csatlakozás funkcionális szintje
1.1.9. A ravnya tiszteletdíjának átadása
1.1.10. Danih gear teepee
1.1.11. kadri
1.1.12. végpontok
1.1.13. csatornák
1.1.14. csomagokat
1.1.14.1. Formázza a token csomagokat IN, OUT, SETUP és PING
1.1.14.2. SOF csomag formátum
1.1.14.3. Danih csomag formátum
1.1.14.4. Megerősítő csomag formátuma
1.1.14.5. SPLIT csomagformátum
1.1.15. Kontrollösszeg
1.1.15.1. A CRC kiszámításának algoritmusa
1.1.15.2. CRC számológép
1.1.16. tranzakciók
1.1.16.1. tranzakciók típusai
1.1.16.2. Tranzakció megerősítése és folyamatszabályozás
1.1.16.3. tranzakciós protokollok
1.2. Kapcsolja be az USB-mellékleteket
1.2.1. konfigurációs csomag
1.2.2. Normál tápellátás az USB-csatlakozókig
1.2.2.1. Megszabadulok a GET_STATUS -tól
1.2.2.2. Áramellátás CLEAR_FEATURE
1.2.2.3. Hívási teljesítmény SET_FEATURE
1.2.2.4. Zavdannya címe a buszon: SET_ADDRESS
1.2.2.5. A GET_DESCRIPTOR leíró eltávolítása
1.2.2.6. A SET_DESCRIPTOR leíró átadása
1.2.2.7. Töltse le a GET_CONFIGURATION konfigurációs kódot
1.2.2.8. A SET_CONFIGURATION konfigurációs kód beállítása
1.2.2.9. Otrimannya a konfigurációs kódot a GET_INTERFACE interfészhez
1.2.2.10. Zavdannya beállítási kód a SET_INTERFACE interfészhez
1.2.2.11. Szinkronizálási keretszám: SYNC_FRAME
1.2.2.12. Standard kellékek feldolgozása
1.2.3. mellékletleíró
1.2.3.1. mellékletleíró
1.2.3.2. Hozzáadok egy finomító leírót
1.2.3.3. konfigurációs leíró
1.2.3.4. interfész leírója
1.2.3.5. Végpont leíró
1.2.3.6. sorleíró
1.2.3.7. konkrét leírók
1.2.3.8. A leírók eltávolításának sorrendje
1.3. Plug and Play (PnP) rendszer
1.3.1. USB-mellékletek konfigurálása
1.3.2. USB melléklet számozása
1.3.3. Az USB-csatlakozások PnP-azonosítói
1.3.4. A mellékletek szimbolikus nevei
1.4. WDM modell
2. fejezet Programozás Movi C-ben mikrokontrollerekhez
2.1. Általános nézetek a MOV S-ről mikrokontrollerekhez
2.2. Vikoristannya standard könyvtárak
2.3. Program az AT89S5131-hez
2.3.1. fájlt
2.3.2. leíró szerkezetek
2.3.3. a projekt felépítése
3. fejezet Eszközök
3.1. programozók
3.1.1. Flip programozó
3.1.2. ER-Tronik programozó
3.2. Illesztőprogram eszközök
3.2.1. NuMega Driver Studio
3.2.2. Jungo széljáró
3.2.3. Jungo KernelDriver
3.3. Szerezze be a Microsoft Visual Studio-t
3.3.1. Attól függ (Dependency Walker)
3.3.2. Hiba keresés
3.3.3. GuidGen
3.4. Szerezze be a Microsoft DDK-t
3.4.1. DeviceTree
3.4.2. DevCon
3.4.2.1. osztályok kulcsa
3.4.2.2. driverfiles kulcs
3.4.2.3. hwids kulcs
3.4.2.4. újraolvasás gomb
3.4.2.5. veremkulcs
3.4.2.6. állapot gomb
3.4.3. Chklnf і Genlnf
3.5. Segítség a CompuWare Corporation-nek
3.5.1. Monitor
3.5.2. SymLink
3.5.3. EzDriverlninstaller
3.5.4. WdmSniff
3.6. szerezd be a Syslnternals-okat
3.6.1. WinObj
3.7. Töltse le az USB fórumot
3.7.1. HID Leíró eszköz
3.8. USB parancsellenőrző
3.9. Szerezzen HDD szoftvert
3.10. szerezd be a Sourceforge-ot
3.11. Bus Hound Monitoring Program
4. fejezet A Win32 függvénygyűjtés alapelvei .NET-ben
4.1. Vidéki házak
4.2. Win32 függvények importálása
4.3. szerkezetek
4.3.1. StructLayout attribútum
4.3.2. Marsall, mint attribútum
4.4. Közvetlen hozzáférés a tiszteletadásokhoz
4.5. Windows tartományok kezelése
4.6. Globális WMI nézetek
4.7. Internetes források a központba
rész II. klasszikus usb
5. fejezet Klas CDC
5.1. Módszerek az USB / RS-232 interfészek átalakítására
5.2. Általános információk az RS-232 interfészről
5.2.1. vonalcsere
5.2.1.1. Adatátvitel (BA / TxD / TD)
5.2.1.2. Dani, elfogadja (BB / RxD / RD)
5.2.1.3. Erőátvitel (CA / RTS)
5.2.1.4. Átvitel előtt készen áll (CB / CTS)
5.2.1.5. DCE Ready (CC / DSR)
5.2.1.6. DTE kész (CD / DTR)
5.2.1.7. Wikliku indikátor (CE / RI)
5.2.1.8. A rossz feltárása (CF / DCD)
5.2.1.9. Elfogadásra kész (CJ)
5.3. CDC specifikáció
5.3.1. szabványos leírók
5.3.2. funkcionális leírók
5.3.2.1. Funkcionális leíró fejléc
5.3.2.2. Parancs mód leírója
5.3.2.3. Absztrakt mellékletleíró
5.3.2.4. csoportleíró
5.3.3. speciális tápegység
5.3.3.1. feed SET_LINE_CODING
5.3.3.2. feed GET_LINE_CODING
5.3.3.3. feed SET_CONTROL_LINE_STATE
5.3.3.4. feed SEND_BREAK
5.3.4. értesítéseket
5.3.4.1. Értesítés RING ^ ÉSZLELÉS
5.3.4.2. értesítés SERIAL_STATE
5.4. CDC támogatás a Windows rendszerben
5.4.1. Tekintse át a Windows-funkciókat az utolsó portokkal rendelkező robotokhoz
5.4.1.1. Fő műveletek a porttal
5.4.1.2. Port beállításai
5.4.1.3. Port testreszabása
5.4.1.4. Az Otrimannya egy vonal lesz a modemhez
5.4.1.5. Robot a CDC-től platformokon. HÁLÓ
5.4.2. Windows és USB funkciók
6. fejezet HID osztály
6.1. A HID kiegészítők specifikációja
6.2. A HID-bővítményből történő adatcsere eljárása
6.3. A HID Extension Driver telepítése
6.4. HID melléklet azonosító
6.4.1. Csábító mellékletek azonosítása
6.4.2. HID melléklet konfigurációs leírója
6.4.3. HID leíró
6.4.4. jelentésleíró
6.5. Jelentésleíró szerkezet
6.5.1. elem jelentés
6.5.1.1. Elementi rövid típus
6.5.1.2. A leggyakoribb típus elemei
6.5.2. Typi elemek jelentés
6.5.2.1. Alapelemek
6.5.2.2. Globális tételek
6.5.2.3. helyi elemek
6.5.3. leírók hozzáadása
6.6. Kapcsolja be a HID mellékletet
6.6.1. feed GET_REPORT
6.6.2. feed SET_REPORT
6.6.3. feed GET_IDLE
6.6.4. kapcsolja be a SET_IDLE-t
6.6.5. feed GET_PROTOCOL
6.6.6. kapcsolja be a SET_PROTOCOL-t
6.7. Eszközök
6.8. Illesztőprogramok HID-kiterjesztésekhez a Windows rendszerben
7. fejezet USB-osztályok
rész III. USB programozás gyakorlása
8. fejezet USB-csatolóeszköz АТ89С5131 alapján
8.1. Általános információk a АТ89С5131-ről
8.2. Az AT89S5131 szerkezeti diagramja
8.3. USB regiszter AT89C5131
8.3.1. USBCON regiszter
8.3.2. USBADDR regiszter
8.3.3. USBINT regiszter
8.3.4. USBIEN regiszter
8.3.5. regisztrálja az UEPNUM
8.3.6. regisztrálja az UEPCONX-ot
8.3.7. regisztrálja az UEPSTAX-ot
8.3.8. regisztrálja az UEPRST -t
8.3.9. regisztrálja az UEPINT -et
8.3.10. regisztráljon UEPIEN
8.3.11. regisztrálja az UEPDATX-et
8.3.12. regisztráljon UBYCTLX
8.3.13. regisztrálja az UFNUML-t
8.3.14. regisztrálja az UFNUMH-t
8.4. áramkör AT89S5131
8.5. Az AT89C5131 alapprojektje
8.5.1. A programok első verziója az AT89C5131-hez
8.5.2. Dodamo ryadkovі leírók
8.5.3. Kintsev pontok kiegészítése
8.6. Összefonódó programok
9. fejezet A CDC osztály megvalósítása
9.1. A CDC megvalósítása
9.2. Melléklet leíró
9.2.1. Іnіtsіalіzatsіya Kіntsev pontokat
9.2.2. CDC feedek feldolgozása
9.2.3. RS-port és CDC-vonalak konfigurálása
9.2.4. Tisztelet átvétele és átadása
9.3. illesztőprogram telepítése
9.4. A CDC-melléklet adatcseréjének programozása a movi Delphi-n
9.5. Programcsere CDC-csatolásról mov C #-ben
9.5.1. Vikoristannya komponens MSCOMM
9.5.2. Vikoristannya funkciók Win32
9.6. CDC problémák
10. fejezet A HID osztály megvalósítása
10.1. A HID megvalósítása az AT89C5131 készüléken
10.2. Decilcoh bájtok átvitele
10.3. Funkció-jelentés
10.4. Adatátvitel a gazdagéptől (SET_REPORT)
10.5. HID bővítmény telepítése
10.6. Adatcsere egy HID kiegészítőből
10.6.1. Otrimannya іmenі HID-mellékletek
10.6.2. Otriviális attribútumok a mellékletben és az olvasási jelentésekben
10.6.3. Adatátvitel a gazdagépről a HID mellékletre
10.7. Telepítse a HID mellékleteket
10.7.1. A "Misha" melléklet megvalósítása
10.7.2. A "billentyűzet" melléklet megvalósítása
10.8. Vikoristannya a HID protokollhoz
10.8.1. a tiszteletadás értelmezése
10.8.2. Gyűjtemény
10.8.3. Masszív i gombok
10.9. HID-melléklet a decilcom jelentésből
11. fejezet A Windows speciális szolgáltatásai
11.1. Functionality Setup API
11.1.1. Túlságosan kibaszott USB-csatlakozások
11.1.2. Az Otrimannya USB-csatlakozóvá válik
11.2. Túlságosan kibaszott USB-csatlakozások a további WMI-hez
11.3. A Windows XP speciális szolgáltatásai
11.3.1. HidD_GetInputReport – HID jelentések olvasása
11.3.2. Otrimannya Danih Raw Input
11.4. DirectX funkciókat
11.5. Párbeszéd az új javak átadásáról
11.6. Robot a mellékletek szimbolikus neveivel
11.7. Flash meghajtó biztonságos
11.8. Vyavlennya kiegészítő és látható mellékletek
11.9. Internetes források
12. fejezet Illesztőprogramok elosztása
12.1. Alapvető WDM illesztőprogram-rutinok
12.1.1. DriverEntry eljárás
12.1.2. AddDevice eljárás
12.1.3. Letöltési eljárás
12.1.4. Vezetői rutinok
12.1.4.1. csomag fejléce
12.1.4.2. Beszúrás / Vivedennya veremközéppontok
12.4.1.3. A sofőr rutinjai
12.1.5. IOCTL áramellátási szolgáltatás
12.2. A vezető blokkolása és felfordítása a vezetői eljárások előtt
12.2.1. Robot eljárás sofőrrel
12.2.2. Driver újrateremtés
12.2.2.1. Re-stratation az SCM-manager segítségével
12.2.2.2. Illesztőprogram paraméterek a nyilvántartásban
12.2.3. A robotizált eljárások korrupciója
12.2.4. Az illesztőprogram biztosítása a fájl közepén
12.3. Driver Studio a színfalak mögött
12.3.1. Néhány szó a Driver Studio könyvtáráról
12.3.1.1. KDriver osztály
12.3.1.2. KDevice osztály
12.3.1.3. osztályú Klrp
12.3.1.4. KRegistryKey osztály
12.3.1.5. KLowerDevice osztály
12.3.1.6. klasszikus usb
12.3.2. Інші osztályok Driver Studio
12.3.3. Csatlakoztatva a Driver Studio bővítmény mögötti illesztőprogram-sablonhoz
12.3.3.1. Krok 1. A projekt vezetője
12.3.3.2. Croc 2. Vibir architektúra illesztőprogram
12.3.3.3. Croc 3. Vibir shini
12.3.3.4. Croc 4. Zavdannya pontkészlet
12.3.3.5. Croc 5. Irány az osztály és a fájl
12.3.3.6. Croc 6. A vezetői funkciók vibrációja
12.3.3.7. Krok 7. Vibir a tápegységek feldolgozásának módszeréhez
12.3.3.8. Croc 8. A beállítások az illesztőprogram paramétereiből származnak
12.3.3.9. Croc 9. A vezető ereje
12.3.3.10. Krok 10. IOCTL kódkezelő
12.3.3.11. Croc 11. További beállítások
12.3.4. Az illesztőprogram sablonjának frissítése
12.3.5. Alapmódszereket adom hozzá az osztályhoz
12.3.6. A Danikh olvasatának megvalósítása
12.3.7. illesztőprogram telepítése
12.3.8. Danih felolvasó program
12.3.9. A tiszteletadás felolvasása az első típusok végpontjaiból
12.3.10. "Tiszta" USB-illesztőprogram
rész IV. dovidnik
13. fejezet INF fájlformátum
13.1. INF fájl szerkezet
13.1.1. szakasz Verzió
13.1.2. szakasz Gyártó
13.1.3. részben DestinationDirs
13.1.3.1. DefaultDescDir kulcs
13.1.3.2. Fájllista-szakasz gombjai
13.1.3.3. dirid kulcs
13.1.3.4. subdir kulcs
13.1.4. Fejezet a modell leírására
13.1.5. szakasz xxx. AddRegw xxx. DelReg
13.1.6. szakasz xxx. LogConfig
13.1.7. szakasz xxx. CopyFiles
13.1.8. szakasz Húrok
13.1.9. szakasz linkjeit
13.2. INF-fájlok készítése és tesztelése
13.3. Bővítmények telepítése egy további INF fájl mögé
13.4. USB átstrukturáló csatlakozók
14. fejezet A Windows alapvető funkciói
14.1. CreateFile és CloseHandle funkciók: az objektum megnyitása és bezárása
14.1.1. további nézetek
14.1.2. vagyis hogyan kell fordulni
14.1.3. butt wiklik
14.2. Funkció ReadFile: danikh olvasása
14.2.1. további nézetek
14.2.2. vagyis hogyan kell fordulni
14.2.3. butt wiklik
14.3. Funkció Write File: adatátvitel
14.3.1. további nézetek
14.3.2. vagyis hogyan kell fordulni
14.3.3. popsi a wiklikhez
14.4. ReadFileEx funkció. ARS-chitannya danih
14.4.1. vagyis hogyan kell fordulni
14.4.2. további nézetek
14.4.3. butt wiklik
14.5. WriteFiieEx funkció: APC adatátvitel
14.5.1. vagyis hogyan kell fordulni
14.5.2. butt wiklik
14.6. WaitForSingieObject függvény
14.6.1. vagyis hogyan kell fordulni
14.7. WaitForMultipleObjects funkció: a jelzőállomás tisztítása az objektumoktól
14.7.1. vagyis hogyan kell fordulni
14.8. GetOverlapped Result függvény: aszinkron művelet eredménye
14.8.1. vagyis hogyan kell fordulni
14.9. DeviceloControl funkció: közvetlen vezetővezérlés
14.9.1. vagyis hogyan kell fordulni
14.10. Funkció Mégse / o: művelet átirányítása
14.10.1. vagyis hogyan kell fordulni
14.11. Query Dos Device funkció
14.11.1. vagyis hogyan kell fordulni
14.11.2. butt wiklik
14.12. Dos Device funkció meghatározása: DOS műveleteket adok hozzá
14.12.1. vagyis hogyan kell fordulni
14.12.2. butt wiklik
15. fejezet Windows funkcióstruktúrák a legutóbbi portokhoz
15.1. Felépítés egy COMMCONFIG porton
15.2. COMMPROP porthatósági struktúra
15.3. Időtúllépési struktúra COMMTIMEOUTS
15.4. A COMSTAT port állapotának felépítése
15.5. DCB szerkezet
15.6. BuildCommDCB funkció: A Charge DCB szerkezet összecsukása
15.6.1. további nézetek
15.6.2. vagyis hogyan kell fordulni
15.6.3. butt wiklik
15.7. BuildCommDCBAndTimeouts funkció: a DCB struktúra és az időtúllépések megnyitása a sorból
15.8. SetCommBreak és ClearCommBreak funkciók
15.8.1. vagyis hogyan kell fordulni
15.9. Funkció ClearCommError: a portnak küldött kegyelmek elutasítása és elvetése
15.9.1. vagyis hogyan kell fordulni
15.10. EscapeCommFunction: portvezérlés
15.10.1. vagyis hogyan kell fordulni
15.11. Funkciók GetCommMask és SetCommMask: maszk wiklik podiy
15.11.1. vagyis hogyan kell fordulni
15.12. WaitCommEvent funkció a COM port ellenőrzéséhez
15.12.1. vagyis hogyan kell fordulni
15.12.2. további nézetek
15.12.3. popsi a wiklikhez
15.13. Funkciók GetCommConfig és SetCommConfig: paraméterek konfigurálása a porton
15.13.1. vagyis hogyan kell fordulni
15.13.2. butt wiklik
15.14. CommConfigDialog Funkcionalitás: Port konfigurációs párbeszéd
15.14.1. vagyis hogyan kell fordulni
15.14.2. további nézetek
15.14.3. butt wiklik
15.15. GetCommProperties funkció: port jogosultság olvasása
15.15.1. vagyis hogyan kell fordulni
15.15.2. popsi a wiklikhez
15.16. Funkciók GetCommState és SetCommState: stan port
15.16.1. vagyis hogyan kell fordulni
15.16.2. popsi a wiklikhez
15.17. Funkciók GetCommTimeouts és SetComniTimeouts: időtúllépési port
15.17.1. vagyis hogyan kell fordulni
15.17.2. butt wiklik
15.18. PurgeComm funkció: A port pufferének csökkentése
15.18.1. vagyis hogyan kell fordulni
15.18.2. butt wiklik
15.19. SetupComm funkció: pufferméretek konfigurálása
15.19.1. vagyis hogyan kell fordulni
15.20. Funkciók GetDefaultCommConfig SetDefaitltCommConfig: a bemenet portjának beállításai
15.20.1. vagyis hogyan kell fordulni
15.21. Funkció TransmitCommChar. speciális szimbólumok átvitele
15.21.1. vagyis hogyan kell fordulni
15.22. Funkció GetCommModemStatus: a modem állapota
15.22.1. vagyis hogyan kell fordulni
15.22.2. butt wiklik
15.23. EnumPorts funkció: túlságosan kibaszott portok
15.23.1. további nézetek
15.23.2. vagyis hogyan kell fordulni
15.23.3. butt wiklik
16. fejezet A Windows telepítési API-struktúrái
16.1. Funkció beállítás DiGetCiassDevs: mellékletek felújítása
16.1.1. vagyis hogyan kell fordulni
16.2. Funkció SetupDiDestroyDevicelnfoList A blokk összekapcsolása a melléklet leírásával
16.2.1. vagyis hogyan kell fordulni
16.3. Funkció SetupDiEnumDevicelnterfaces: Információ a mellékletekről
16.3.1. vagyis hogyan kell fordulni
16.4. Funkció SetupDiGetDevicelnterfaceDetaii: részletes információk a mellékletekről
16.5. Funkció SetupDiEnumDevicelnfo: Információk a beállításokról
16.6. Funkció SetupDiGetDeviceRegistryProperty: A Plug and Play jogosultság eltávolítása
16.7. CM_Get_DevNode_Status függvény: a melléklet állapota
16.8. Funkciók CM_Request_Device_Eject
17. fejezet: Windows HID API függvénystruktúrák
17.1. HidD_Hello függvény: a könyvtár átdolgozása
17.2. Funkció HidD_JetHidGuid: GUID elutasítása
17.3. HidD_GetPreparsedData függvény: Mellékletleíró kiterjesztése
17.4. HidD_EreePreparsedData függvény: Kiterjesztési kezelő leíró
17.5. Funkció HidD_Get Feature: Feature-report elutasítása
17.6. Funkció HidD_SetFeature: Feature-jelentés átvitele
17.7. HidD_GetNumlnputBuffers függvény: a pufferek számának levágása
17.8. Funkció HidD_SetNumlnputBuffers: a pufferek számának beállítása
17.9. HidD_GetAttributes funkció: Attribútumok lekérése az Attribútumokban
17.10. HidD_GetManufacturerString függvény. otryannya sor virobnik
17.11. HidD_GetProductString függvény egy sor termékhez csatolásához
17.12. HidD_GetSerialNumberString függvény. a sorozatszám otrimannya sora
17.13. HidD_GetIndexedString függvény. az index sorának elutasítása
17.14. A HidD_Jetlnput jelentés funkció elutasítja a bemeneti jelentést
17.15. HidD_SetOutputReport függvény. átvitel Kimeneti jelentés
17.16. HidP_GetCaps funkció: a csatolandó jogosultságok elutasítása
17.17. HidP_MaxDataListLength függvény: a jelentésméretek elutasítása
17.18. HidD_FIushQueue függvény: puffer eldobása
17.19. Funkció HidP_GetLinkColiectionNodes: gyűrűfa
17.20. Funkciók HidP_GetScaledUsageValue u HidP_SetScaledUsage Value
17.21. Funkció HidF_MaxUsageListLength: a kulcskódok pufferének mérete
17.22. HidP_UsageListDifference függvény: láthatóság a tömbök között
kiegészítők
Dodatok 1. Dodatkov_ függvények
Dodatok 2. Alkalmazások összeállítása a Delphi legújabb verzióiban
Dodatok 3. Azonosítók táblázata mov (LangID)
Dodatok 4. Virobnik-kódok táblázata (szállítóazonosító, eszközazonosító)
Dodatok 5. Eszközkezelő parancsikon beállítása
Dodatok 6. Ételek részei
Dodatok 7. A CD leírása
irodalom
showman

És ez csak egy kicsit fizikailag a számítógéphez van kötve, javítani kell a köztük lévő adatcserét. Hogyan rezeged a portot és szervezed a kapcsolatot? A COM-porthoz ugyanazok a szabványos megoldások állnak rendelkezésre. A beszéd előtt az új PCI-kártyák számához adjunk hozzá 8, 16 vagy 32 COM-portot az ipari számítógépeken (az új PCI-kártyák kategóriájának száma kiterjesztve az utolsó portokra, vezérlőkre stb.) . Ilyen rangban, ha a külső mellékletek matricáját össze kell kötni az RS-232 interfésszel, akkor tudhat drága adaptereket és egzotikus kifizetéseket a bővítéshez, mint például a gőzhajók oroszországi használatának régi hagyománya. A beszéd előtt a speciális adapter neve "DB9m / DB25f adapter" a számítógépes bolt vezetőjétől gyorsan elrontható.

SHO HID-pritiy

Gyakorlatilag lehetetlen, hogy minden tartozék USB-interfészen keresztül csatlakozzon a számítógéphez. Ezen kívül az új PC-ken kívülről van COM port.

Az USB-interfész egyfajta megoldás, amely új külső mellékleten alapul, számítógéppel, pontosabban HID-interfésszel, amely az USB 1.1 protokollon alapul.

Ha sok hto-t és vvazhaє-t akarok, de a HID-interfész (Human Interface Device) alkalmas billentyűzetekre, miscikre és joystickre, akkor haszontalan megoldásokra legyen alkalmas, a kapott külső csatolmányokról, számítógépekről csatlakozva.

Ha forgatnia kell az alacsony sebességű adatcserét (akár 64 kbit / s), ha fel kell gyorsítania egy órát a teljesítménymeghajtók 100%-án, akkor csak útközben a HID segítségével. A be- és kijáratnál egyszerű és teljes ilyen döntés szabványos szoftveres USB-interfész alapján, garantált interfésszel minden bővített szoftverplatformon.

HID kiegészítő tápellátás

A szoftveres HID-mellékletek rendszerezése szempontjából minden könnyen elérhető: a Windows-os vezérlőkből a robotok számára kész átíró algoritmusok alapján gyorsan készíthet kompakt kódot. Ugyanakkor a kereskedőnél elsöprő egy órát tölteni a vlasny protokoll megvalósításával a felső szintről történő adatcserére, ami a HID protokoll megszervezéséhez szükséges absztrakció egy része (div. táblázat). Ezenkívül a programozó könnyen végrehajthatja a protokollban írt csere megvalósítását (vizuálisan, működő HID-melléklet jelenlétében) - a programozó könnyen befejezheti magát a protokollt egyszerűen felbontva a protokollt. program számítógépes csatolással történő feldolgozásra. Hát b! A Masu robotok már felvették a HID-melléklet készítőjét.

HID-kiegészítők és számítógépek közötti adatcsere szervezése

Ismertesse a HID-csatolás interakcióját a számítógéppel, élje át a "host" kifejezést. Ezen a bizonyos vipad-on úgy tűnik, hogy az USB-protokollral ellátott interfész fizikai architektúrájához jó szúrás. Tehát a számítógép összes portja gazdagép. Előttük csatlakoztathat egy USB-mellékletet (flash meghajtók, mish, webkamerák, fényképezők stb.), nem hagyhatja ki a gazdagépet. A fogadó biztosítja a csatlakozást, csatlakozást, csatlakozást, a mellékletek konfigurálását, valamint a statisztikák gyűjtését és az energetikai szolgáltatások kezelését.

A HID-pritiy maga is beállíthatja az abszorpció gyakoriságát az óra előtt, amikor elkezd megjelenni az új tribute-okban. Ez azt jelenti, hogy a programozó ilyen alacsony szintre bízza a rendszert, a művelet gyakorisága és az adatcsere paraméterei már a HID-melléklet vezérlőjének programjában voltak beállítva. A HID CIM protokoll az USB 1.1 vagy USB 2.0 kimenő leírásából származik, amelyben egy nem merev protokollt használnak a rendszerezéshez. Speciális, a biztonság szintjéhez igazítható terhelésekkel azonban el lehet érni a ciklikus élmény végét, mindaddig, amíg egy és ugyanazon adatblokkok folyamatosan kerülnek átvitelre.

A HID kiegészítő program jellemzői

A HID mellékletek speciális leírókhoz használhatók. Ha a gazdagép be van állítva, akkor csatlakozzon a HID osztályhoz, majd a vezérlés átkerül a meghajtóra. Az adattovábbítás igazolás alapján történik.

Windows esetén a HID mellékletekhez való hozzáféréshez a HidServ rendszerszolgáltatás jelenik meg. További részletek a HID-csatlakozók tápegységeinek funkciójáról és a HID-illesztőprogrammal rendelkező robot egyéb jellemzőiről P. V. Agurov robotja „USB interfész. A győztes programok gyakorlata ”(Szentpétervár: BHV-Petersburg, 2005).

HID-mellékletek programja a "Verkhniy Rivny"-en

Az "alkalmazott" programok kemény élettartama, mint például a Pascalban való munka, megfordítja a HID modult. PAS, wrapper szoftver a hidhez. dll (Rejtett felhasználói könyvtár). Megjelennek a fájl előtti megjegyzések, de a Microsoft vállalat hidsdi.h és hidpi.h modulja van az alapon. És maga a HID fájl. A PAS a JEDI () csomag része.

A Delphi for win32 köztes szoftverben HID-mellékletekkel rendelkező robotok esetében a TJvHidDeviceController összetevő elakadt, amely a HID-mellékletekhez való hozzáférés globális kezelője. És még ezen az alapon is készíthet egyedi másolatot a robotról, konkrét mellékletekkel.

A TJvHidDeviceController fő hatásköre és részkomponensei

A TJvHidDeviceController komponens könnyebben látható. Az OnArrival megközelítés a HID csatolási rendszerhez való megfelelő csatlakozásra (kapcsolatra) irányul, a melléklethez való hozzáférés a felosztás mintájában található a TJvHidDevice osztály egy példányán keresztül. Egy egyszerű OnDeviceChange pod_ya reagál a bővítmény változására, de csak a rendszer változásait jelzi. Az OnDeviceData megközelítés a következőhöz kerül: HidDev: TJvHidDevice; - eszköz, milyen boules otrimanі danі;

Az OnDeviceDataError pod_ya a tribute-ok továbbításának megbocsátásáról, a HidDev paraméterek átadásáról a feldolgozási eljárásnak: TJvHidDevice; - HID-melléklet és hiba: DWORD; - kegyelmi kód. Az OnDeviceUnplug ötlete arról szól, hogy megtekintse a mellékletet a rendszer beállítási listájából. A Plug and Unplug modulok típusai megegyeznek (cob szövegben: TJvHidUnplugEvent = TJvHidPlugEvent). Az objektum átkerül az obrobnikba a TJvHidDevice osztályba, amelyet a HID melléklet jelenít meg.

A HID -rendszerekben látható HID -mellékletek utolsó nagyjavításához az Enumerate metódushoz az OnEnumerate altípus tartozik a wiklik metódushoz, azaz A primus fő oka az Enumerate módszer használata, amelyet nyilvánvaló HID-csatolások "levezetésére" használnak egy mintavevőn keresztül, például a gazdagépről (számítógépről) származó HID-mellékletek átdolgozásakor.

Az OnRemoval megközelítés egy rendszerrel és azonos típusú TJvHidUnplugEvent mintavevővel, de az OnDeviceUnplug számára is használható fizikai csatoláson alapul. A CountByProductName függvény a termék argumentum nevében megjelenő mellékletek száma, a CountByVendorName pedig a virobnik nevének argumentumában megadott függvény.

A TJvHidDevice alapvető jogosultságai és alosztályai

Klas TJvHidDevice – az elvitt HID csatolmány virtuális észlelése. Az osztály új objektumát el lehet dobni, ahogy már mondtuk, az OnArrival vagy OnEnumerate podból. A TJvHidDeviceController és a TJvHidDevice osztályok funkcionalitása gyakran duplikálódik, némelyikük be van építve a robotok számára készült idegen eszközbe, explicit HID-mellékletekkel és az egyikükhöz való hozzáférést biztosító mechanizmusokkal. A melléklet egyedileg azonosítható a SerialNumber, ProductName és VendorName képességeivel. Annak érdekében, hogy kijavítsa az ilyen objektum stázisából származó szükséges díjakra vonatkozó információkat, gyorsan lépjen az OnData oldalra. Az adatok megjelenítése a WriteFile metóduson keresztül történik (szoros értelemben - a függvényen keresztül). A WriteFile a WriteFile (kernel32) rendszerfüggvény körüli burkolóanyag.

Ellenőrizze, hogy a melléklet készül-e, majd használja a saját OnUnplug mintáját. Mielőtt elkezdené az adatcserét a HID-bővítményekből, emlékezni kell az ilyen csere lehetőségére a HasReadWriteAccess segítségével. Az általános osztályban a kegyelem alapján az OnDataError pod alapján történik az adatcsere.

És most érthetőek egy „élő” projekt kódrészletei, amely tesztprogramot valósít meg a nem szabványos mellékletekből - HID alapú műanyag chipkártyákból - származó adatcsere megszervezésére. A realizmusért folytatott küzdelemben a szerző felvállalta azt a szabadságot, hogy ne wikidjon a kódhoz fűződő technológiai kötés „megszerzése” listáiból.

A ScanDevices metódus (1. lista) arra szolgál, hogy tájékoztassa a rendszerben való hegedülés folyamatát a szükséges HID csatolásról. A kód nagy része az Enumerate metódus hibáztatása mögött van, nem szükséges és nem is lesz trükkös hozzáfűzni, például, hogy a program tesztet tudjon futtatni, hozzáadhat egy robot lehetőségét. a HID-ből látható felület segítségével. Az AddError módszer a harag megjelenítésére szolgál a robotprogramok folyamatában.

A 2. lista közelében az OnEnumerate pod minta került a szükséges melléképület tréfájára. Az egyszerűség kedvéért elismerjük, hogy a program csak egy szükséges típusú kiegészítővel dolgozható fel.

Először nézze meg a projekt megvalósítását, a három válasz mellett a felső szintű adatcsere elfogadott formájára, azaz a szerkezetére vonatkozóan, hogy a poklikanoy középen van az adatfogadási-továbbítási módok között. valamint az alkalmazott alkalmazás konkrét fejlesztése. A jobb oldalon, abban, ahol a kereskedő reménykedhet kreatív egészségének megvalósításában. A fejlesztők számára egy-egy új protokoll bevezetésének folyamata sokszor kétoldalú, ugyanakkor az hegedül, akinek fontosabb a cserealgoritmus megvalósítása. Zagalom, mintha bi nem lenne csereprotokollja, ügyeljen arra, hogy minél többet és önellátóan dolgozzon a skin programmal, ne kelljen a Skoda by deyakim átvett hagyományaira hagyatkoznia. bo legjobb megoldás- valami, ami a programozott középhez való minimális kapcsolódással és a kovácsolt fejlesztés nagy lehetőségeivel terminusban valósul meg. A számviteli alapelvek, a felső szint cseréjének jegyzőkönyve alapján a siket tanú a „parancs”. A 3. felsorolásból látható, hogy a szerző szereti a dánokat, nem egyszer próbálkoztak vele, amikor szoftver modulok... Jak, csodálatos, hogy megkaptuk a є típusú String -et! A protokollhoz tartozó összes parancs kategóriákra (osztályokra) van felosztva, amelyek közepén mindegyik parancskód található, amelyek egyedileg jellemzik a jelentést. Az edParam paraméter a mellékletben lévő adatok, az edAnswerData paraméter pedig a mellékletben található adatok megjelenítésére szolgál. A rekord tagjainak leírásának karakterlánc-típusa vizuálisan és szándékosan manipulálhatja az adatokat HEX-sorok formátumában. Először is, a lemez leírásának formátuma ideológiailag fontos itt középen és elsőbbség nélkül. különböző formákїї beküldés (INI, HEX, XML stb.)

A parancs vitimizálása, azaz a tribute melléklethez való eljuttatása a 8 bájtos tribute csomagok gyűjtéséből valósult meg (4. lista). A Tsya dovzhina nem egyetlen döntés, egy ilyen rezgés, amikor a vimogami diktálja a felső rivnya protokollját, és az adott bőrtípusban használható. Tse, scho kell nevezni, a jobb oldalon élvezet. Csodálatos IsUSBMode zászló az ExecuteCommand metódusban (a "World of PC-disk" 5. listája) redundanciák azokkal kapcsolatban, akik USB-ről cserélik le a robotokat, tudjuk, hogyan kell használni a COM portot vagy interfészt. A csutkán egy tribute-csoport látható a mellékletben, amelyet egy szinkronsorozatba kell átvinni egy meglehetősen fordított formátumban (például 3E3E3E2B), amely azt fogja látni, hogy az erőt fel kell venni egy csomó bejáratnál. törvényes tisztelgés. Gondolom, ebben a vipadban nem a HID-ről szóló stílusok vannak, hanem a felső szint konkrét protokolljaira való hivatkozások, ideológiailag a "zaliz" típus alapján, és speciális alkalmazott feladatok közvetítésére szolgálnak.

A GetDataExecutor mintavevőben az adatok csatolásáról (8 bájtos csomag) az OnNewInputData opciót kifejezetten az eredeti adatok későbbi feldolgozásra történő átvitelére, valamint a régi és az új lemez 6 PC-re való jelentése miatt beállítottuk. lista. Egy ilyen rangsorban a nem morzsolódó díjak reménye és egy adott feldolgozás összekapcsolásának kérése van, amely lehetővé teszi egy adott algoritmus hozzáadását a sír korai szakaszához, ismétlődő vagy szükségtelen bemeneti információkat.

Az itt bemutatott tomparobotok HID-kiegészítőkkel, és illusztrálják a statty eredeti ötletét - a nem szabványos HID-kiegészítők Delphi segítségével történő programozásának nyilvánvaló egyszerűségét.


1. ábra Android-robotokat adok hozzá USB Host és Accessory módban (baba a http://developer.android.com webhelyről)

Úgy tűnik, az USB-illesztőprogram nem az egyetlen módja annak, hogy ugyanazokkal a különálló mellékletekkel csatlakozzon. Az Android lehetővé teszi a Wi-Fi, NFC, Wi-Fi P2P, SIP, valamint a szabványos netkapcsolat használatát. Tehát a kereskedő arzenáljában elegendő lehetőség van a legjobb ötleteik kidolgozására.

A verzió bővítésével csatlakozunk az USB-COM adapter külső csatlakozóihoz. Anyag a keretezésben az USB-COM adapter tárolása szerint Android є - div., Napryklad ,. Egy ilyen kapcsolat népszerűsége túlterhelt remek szám A csatolmányok kis mikrokontrollereiből már szétszakadt, melyek linkjei a kiegészítő COM portra (az utolsó portra) csatlakoznak, de a 10. kötettől a számítógépről az önálló "kapcsolatra" a szabványos adatátviteli mód. ".

A COM porttal rendelkező USB -illesztőprogram lehetővé teszi az adatátvitel és az adatfeldolgozás sebességének egyszerű beállítását kézi eljárással a felhasználó számára. Az átviteli sebesség, a navigáció a rossz minőségű mellékletek (billentyűzet, kábel, joystick) idején, 10-1500 Kbit / s sebességűvé válás, az egyszerűség és egyáltalán nem a kábelrendszerek és kapcsolók gyakorisága, a a csatlakozás konfigurálása a kábelhez való automatikus csatlakozáshoz kapcsolási mellékletek nélkül), kegyelmek és frissítések vezérlése ugyanazon a protokollon - az adott technológia nem egyeztetett újrahuzalozásának tengelye (div., 12. o.).

Vzagal, aki a tribute-ok átvitelére szolgáló USB-meghajtóról beszél, nem fogjuk elolvasni P. Agurov "USB interfész" című könyvét. A netezésben gyakran kritizálni vágyó Vona, akit utoljára 2006-ban engedtek ki, nem egyszer segített a megoldás megismerésében, amikor a technológia fejlődésével kapcsolatos információkon viccelődött. Alul a tápegység jelenik meg: a vezérlő mikroáramkörének és áramkörének kiválasztásától a mikrokontroller által írt programokig és a számítógép oldaláról az USB protokollon keresztüli adatátvitel alkalmazásáig. Lehetetlen nem "első kézből" élelmiszer-adományozást adni - az USB IF (USB Implementers Forum) nem kereskedelmi szervezet oldala, hogy foglalkozzanak ezen interfész sajátosságainak fejlesztésével -, Truth Danish anyag angol nyelv. Ott azonban többet megtudhat az USB interfész csatlakoztatásáról. Є vonakodás eltolás részei a sajátosságok -. Tim, hto ts_kavitsya szoftveres megoldások A mikrokontroller oldaláról is csodálkozhat a teljesítményen.

Az adott cikk mindazoknak szól az elsőnek, akik olyanok, mint egy elektronikus csatolmány (már nem önálló); b anya a program, ami vele működik Androidban.

Trochi a klasszikus USB-csatlakozásokról

Fel kell ismerni, hogy a szoftverbiztonság elosztását az adatcseréhez speciális mellékletekkel erősen le kell rakni a mikrokontrollerre. Intelligens okokból nem kár (ha információkat kaphat a különböző típusú mellékletek programjairól), ha ugyanazon jogszabály keretein belül minden típusú USB-csatolóhoz fenekű programokat hoz. Viszont közbeiktat minket egy kód, ami a helyére kerül, ami egy push-t valósít meg, és hozzá fogok adni hozzáférést a vezérlőpontokhoz az információcseréhez. Lehetőség van arra is, hogy felvegye az adatátvitelt az USB -mellékletek egyik típusának fenekén, és a mellékletek osztályát HID (emberi interfész eszköz - mellékletek egy osztálya az emberekkel való interakcióhoz). Az egész osztály magában foglalja a "povilny" mellékleteket, mint például a billentyűzet, a Misha, a joystick és ennek a megvalósításnak az alkalmazása a további kis mikrokontrollerekhez a hálózatban (є, például і в).

Miért szereti annyira a HID osztály a független melléképületek virobnikjait? Procision Vіkіpedіyu: „A bevezetett klasszikus mellékletek (mint például a billentyűzet és a medvék) részletes specifikációinak Krymje a mellékletek speciális osztályainak szabványos HID jelölését részletes specifikációk nélkül. Az egész osztály USB HID Consumer Control, és a szabályozás hiányának napjára ez a link a kiegészítőhöz. Ugyanakkor próbálja meg ezeket az operációs rendszerhez szabványos illesztőprogramokat és egy billentyűzetes macit használni. Ily módon lehetőség nyílik olyan USB-mellékletek telepítésére, amelyek nem teszik lehetővé speciális illesztőprogramok telepítését a kiterjesztettebb számítógépes operációs rendszerekben." Késő már csak ezt megtenni, ezért az Android operációs rendszer sajátosságait dolgozza fel (nem futtatja a CyanogenMod firmware -t).

A HID csatolmányról történő adatcserére az egyik lehetőség a megszakításos átvitel, az átvitel eredményeként, ha kis méretű tribute csomagok átvitele szükséges (a csomag maximális mérete az adatok tárolása után 64 órán belül 1024 óra) intervallum. Az átvitelre szánt csomagot jelentésnek nevezik (angolul - report, lásd 71., 95. oldal). Egy ilyen jelentésnek teljes nézetet kell adni az önálló csatolmányból származó információcseréhez, 64 bájtnyi információ egy csomagban, pl. érdemes sokat hozzátenni a vezérlőhöz, és a fényadatok átviteléhez is állomásokat, vagy egyszerű érzékelőt találni.

szükséges eszközöket

Azt is tudjuk - táblagép vagy telefon, amelynek Android verziója nem kevesebb, mint 3.1. Itt azt kell jelentenünk, hogy az USB Host API jelzések növelik a megvalósításokat nem minden mobil mellékletben (kérjük, menjen a developer.android.com, div. Posilannya oldalra). Egyes táblagépeknél/telefonoknál az USB-portok csak töltéshez és személyi számítógéphez való csatlakozáshoz állnak rendelkezésre. Ismét átirányítom az olvasót az előadóink által csatolt vagy nem elérhető mobil mellékletek listájára (oszt.).

Szükség lesz még egy USB-csatlakozóra (első alkalommal lesz elegendő USB flash meghajtó), egy OTG-adapterre (On-The-Go - lásd a 2. ábrát) vagy egy USB-kábelre a melléklethez való csatlakoztatáshoz. Az OTG meghajtó a következő információkkal rendelkezik: „Ha USB OTG-n keresztül csatlakozik, a csatolási rang (fej vagy rendelés) láthatónak tűnik, vagy a jumper látható a töltőkábel 4. és 5. érintkezője között. USB OTG kábelek esetén ilyen jumper csak a két rózsa egyikébe szerelhető (div.). »Úgy látszik, szükségünk van egy ilyen jumperre a mobilmelléklet oldaláról.


2. ábra Az USB-kábel és az OTG-kábel jellemzői (kép a http://tech.firstpost.com webhelyről)

Egy ilyen OTG-kábel a hosszabbítóhoz függetlenül forrasztható. Ehhez vásárolni kell egy régimódi rózsát egy rádióüzletből, valamint a szerzőnek például vikoristovuvav egy régi kábelt egy hordozható merevlemezről:

A robotikában is barom leszek. USB program Eszközinformáció, telepítve a Google Play Marketről. A táblagép / telefon USB-rózsájához való csatlakozás indítására szolgáló program a Java API mögé csatolja a jakot, valamint a segítségért Linux kernelek... Tehát, ha a csatolmány nem a Java USB Host API segítségével készült az USB -eszközinformációkban, akkor nagy hatékonysággal győzni fogok egy mobil melléklet mellett, függetlenül attól, hogy (beleértve a saját) Android -programomat, a segítséggel fogok -e írni Java és USB Host API.

Inodi is, akárcsak egy fahéjas buvaє információ, amelyet az lsusb operatív parancs hajt végre Linux rendszerek... A -v і -d lsusb kulcsokkal mutasson meg mindent az USB csatolmányokról, vagy akár mindent, ami a csatolási osztályhoz tartozó szoftver fejlesztőjének szükséges (Div. 3. ábra).


3. ábra Az lsusb és lsusb -v -d parancsok alkalmazása

Dal, szükséges számítógép s telepítse az Androidot SDK és integrált köztes szoftver (IDE) Eclipse ADT bővítménnyel (ha csak SDK használható). Hogyan kell telepíteni és telepíteni egy kiegészítést az Androidhoz, elgondolkodhat például az interneten vagy az interneten.

Nos, і, feltétlenül el kell érni az eredményt, új niyak nélkül! Szeretnék egy gyors másolatot kérni a szerzőtől az Android USB-tárhelyéről szóló információkról.

Clasi Java robotokhoz USB-ről Android API-ra

Otzhe, amint az a weboldal-fejlesztési USB Host API for Android-on (div.) látszik - "Először is fontos látni, hogy milyen előkelően leszel győztes a robotokban." Az 1. táblázat leírja az USB Host API -ból származó robotok legfontosabb osztályait (lásd az információátvitelt a http://developer.android.com webhelyről).

1. táblázat Az USB-ről érkező robotok osztályainak leírása Android rendszerben

Nevezze meg az osztályt leírására
UsbManager Lehetővé teszi a felsorolást és a csatlakoztatott USB-eszközökkel való kommunikációt.
Lehetővé teszi az USB -mellékletek csatlakoztatásának megkezdését és az adatok cseréjét velük.
USB eszköz Csatlakoztatott USB-t jelöl készülék és módszereket tartalmaz az azonosító információk, interfészek és végpontok eléréséhez.
USB-mellékleteket és módszereket biztosít az azonosítási információk, interfészek és pontok elérésére.
Usb-interfész Az USB -eszköz interfészét jelenti, amely meghatározza az eszköz funkcionalitását. Egy eszköz egy vagy több interfésszel rendelkezhet, amelyen kommunikál.
Ez egy "interfész" USB-csatolást mutat be, amely egyfajta funkciókészlet ehhez a melléklethez. Egy melléklet használható egy vagy több interfészhez információcseréhez.
UsbEndpoint Egy interfész végpontot jelöl, amely egy kommunikációs csatorna az interfész számára. Egy interfész egy vagy több végponttal rendelkezhet, és általában rendelkezik bemeneti és kimeneti végpontokkal az eszközzel való kétirányú kommunikációhoz.
Ez jelenti az interfész "végpontját", amely a teljes felület csatornája. Az interfész egy vagy több végpontból állhat, és kiválaszthat egy végpontot az információk továbbításának elutasításához.
UsbDeviceConnection Az eszközzel való kapcsolatot jelképezi, amely adatokat továbbít a végpontokra. Ez az osztály lehetővé teszi az adatok oda-vissza küldését szinkron vagy aszinkron módon.
"Kapcsolat" bemutatása az adott mellékhez. Szükséges a tiszteletdíjak átutalásához az indulási helyre. Az egész osztály lehetővé teszi az otrimuvati adatok továbbítását vagy szinkron vagy aszinkron átvitelét.
UsbRequest Egy aszinkron kérést jelent az eszközzel való kommunikációhoz egy UsbDeviceConnection-en keresztül.
Ez egy aszinkron tápegység az UsbDeviceConnection kapcsolaton keresztüli adatcseréhez.
UsbConstants USB-konstansokat határoz meg, amelyek megfelelnek a Linux kernel linux / usb / ch9.h fájljában található definícióknak.
Vizuális állandók, amelyek a Linux kernel linux / usb / ch9.h fájljában található értékeket képviselik.

Az USB Host API programozó túlnyomó többségének győztes osztálya van a robotjában. A viglyad tárolásának algoritmusa hozzávetőlegesen a következő: visnachamo csatolás (meta - programozott hozzáférés az UsbDevice osztályhoz), kapcsolódva a gazdagéphez (mobil melléklet), az UsbManager segítségével. Ha a melléklethez elérhető a szoftver, akkor az UsbInterface és az UsbEndpoint megadása szükséges a hozzá való kapcsolódáshoz. Amint átvitte a saját végpontjára, nyissa meg az UsbDeviceConnection-t, majd használhatja az USB-mellékletet. Aszinkron átviteli módban az UsbRequest osztály győzedelmeskedik.

Próbáljuk meg kezdeni egy egyszerű kiegészítő megnyitásával, hogyan kell használni az API-t, hozzárendelni a kapcsolatokat a gazdagéphez az Android operációs rendszerrel, hozzáadni és látni az információkat a telefon vagy táblagép képernyőjén.

projekt elindítása

Az Eclipse-ben a projekt a Fájl-> Új-> Android alkalmazásprojekt további menüpontot követi. Az is nagyon fontos, hogy a kiegészítő alkalmazások jelzései alatti lebegéshez szükséges kódot az Android SDK-ból kapja (mappa android sdk minták / android-N (API szint) / USB). 4) Alkalmazza a további adatokat az Android SDK-kezelőn keresztül (be kell jelölnie a Samples for SDK melletti négyzetet). Az alábbi listákban a kódot megjegyzés nélkül helyezze el, mivel ezek elmagyarázzák a folyamat lényegét.


4. ábra Vicces "rakétavető"

Projekt létrehozásakor ne felejtse el megjelölni a szükséges API szintet a Minimum Requared SDK opcióban (API Level 12, Android verzió 3.1 / Honeycomb /, bármi). A projektnek még egyszerűbb interfésze lesz egy corystuvach - egy smut (Activity) és a TextView információszolgáltatáshoz. Tekintse meg a részletes projektet részletesen.

Az Activity számára automatikusan megnyíló osztályhoz a projektünknek új osztálypéldányokkal kell rendelkeznie az USB-vel rendelkező robot számára:

privát TextView lgView;
privát UsbManager mUsbManager;
privát UsbDevice mDevice;
privát UsbDeviceConnection mConnection;
privát UsbEndpoint mEndpointIntr;

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

és hozzáférést biztosítunk az UsbManager osztályhoz

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

Hozzon létre egy egyéni onResume () pod. A Dob'єmosya meti - schob a mellékelt melléképületekkel kapcsolatos információkat figyelembe vettük a háztartásunk ablakának aktiválásakor (1. osztály).

Lista 1. OnResume ()

public void onResume () (
szuper .onResume ();

// tárolja a tárolót a mellékletek listájával
HashMap< String , UsbDevice>deviceList = mUsbManager.getDeviceList ();
Iterátor< UsbDevice>deviceIterator = deviceList.values ​​() .iterator ();

lgView.setText ("Eszközök száma:" + deviceList.size ());

while (deviceIterator.hasNext ()) (
UsbDevice device = (UsbDevice) deviceIterator.next ();

// a csatolmány ProductID értékének csonkja
\ N "+ "Eszköz termékazonosító:" + device.getProductId ());
}
// viznachaєmo namir, leírása a szűrőben
// namіrіv AndroidManifest.xml
Szándékos szándék = getIntent ();
lgView.setText (lgView.getText () + " \ N "+ "Szándék:" + szándék);
String action = intent.getAction ();

// a melléklet csatlakoztatásakor az átvitel a következőre kerül továbbításra
// a setDevice () függvényben
UsbDevice device = (UsbDevice) intent.getParcelableExtra (UsbManager.EXTRA_DEVICE);
if (UsbManager.ACTION_USB_DEVICE_ATTACHED .equals (művelet)) {
setDevice (eszköz);
lgView.setText (lgView.getText () + " \ N " + "Az UsbManager.ACTION_USB_DEVICE_ATTACHED.equals (action) IGAZ") ;
) Else if (UsbManager.ACTION_USB_DEVICE_DETACHED .equals (action)) (
if (mDevice! = null && mDevice.equals (device)) (
setDevice (null);
lgView.setText (lgView.getText () + " \ N " + "Az UsbManager.ACTION_USB_DEVICE_DETACHED.equals (action) IGAZ") ;
}
}

Dal, az Activity esetében a setDevice () függvény telepítve van, ez szükséges a mellékleteinkkel rendelkező robotokhoz (div. Listing 2). Az onResume () samplerben a setDevice () függvényben pontosan megjelent az USB Host API tárolási algoritmusa, a leírások az elülső részben.

2. lista. Funkció setDevice ()

private void setDevice (USbDevice eszköz) (
lgView.setText (lgView.getText () + " \ N "+ "SetDevice" + eszköz);

// vizuálisan elérhető kiegészítő felület
if (device.getInterfaceCount ()! = 1) (

LgView.setText (lgView.getText () + " \ N "+ "Nem található interfész");
Visszatérés;
}
UsbInterface intf = device.getInterface (0);

// csatolást készít a ponthoz
if (intf.getEndpointCount () == 0) (

LgView.setText (lgView.getText () + " \ N "+ "Nem található a végpont");
Visszatérés;
) Más (
lgView.setText (lgView.getText () + " \ N "+ "Végpontok száma:" + intf.getEndpointCount ());
}

UsbEndpoint epIN = null;
UsbEndpoint epOUT = null;

// shukaєmo kіntsevі pontok cserével történő átvitelhez
for (int i = 0; i< intf.getEndpointCount () ; i++ ) {
if (intf.getEndpoint (i) .getType () == UsbConstants.USB_ENDPOINT_XFER_INT) (
if (intf.getEndpoint (i) .getDirection () == UsbConstants.USB_DIR_IN) (
epIN = intf.getEndpoint (i);
lgView.setText (lgView.getText () + " \ N "+ "IN végpont:" + intf.getEndpoint (i));
}
más (
epOUT = intf.getEndpoint (i);
lgView.setText (lgView.getText () + " \ N "+ "OUT végpont:" + intf.getEndpoint (i));
}
) Egyéb (lgView.setText (lgView.getText () + " \ N " + "Nincsenek végpontok a INTERRUPT_TRANSFER számára") ; }
}

MDevice = eszköz;
mEndpointIntr = epOUT;

// megjeleníti a tiszteletadások továbbításának beállításait
if (eszköz! = null) (
UsbDeviceConnection kapcsolat = mUsbManager.openDevice (eszköz);
if (kapcsolat! = null && connection.claimInterface (intf, true)) {

LgView.setText (lgView.getText () + " \ N "+ "Siker eszköz megnyitása!" );
mConnection = kapcsolat;

) Más (

LgView.setText (lgView.getText () + " \ N "+ "Eszköz megnyitása FAIL!" );
mConnection = null;
}
}
}
}

A kód végén, amely már dallamosan zodadavsya tiszteletreméltó olvasó, lásd a mellékletet az adatok fogadására-továbbítására, megfosztják az adatcsere protokolljától, amely ismétlem, búcsút mondok a forgalmazó. Úgy tűnik, hogy lehetetlen HID kódot küldeni, amihez HID csomagot küldök, és hozzáadok egy bizonyos üzenetcsomagot az átvitel átírásához, UsbRequest osztályt és üzenetpontot küldök - lásd a 3. listát.

Felsorolás 3. Kiegészítés a melléklethez adatok küldéséhez szükséges kódhoz

// beállítja a puffer méretét a frissítéshez
// kilép a csomag maximális méretéből
int bufferDataLength = mEndpointIntr.getMaxPacketSize ();

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

ByteBuffer puffer = ByteBuffer.allocate (bufferDataLength + 1);

UsbRequest kérés = new UsbRequest ();

buffer.put (üzenet);

request.initialize (mConnection, mEndpointIntr);

request.queue (puffer, bufferDataLength);

if (request.equals (mConnection.requestWait ()))

// a revízió sikeres volt
//lgView.setText (lgView.getText () + "\ n" + "küldés CLEAR !!!");

fogás (kivétel kivétel)

// nem jó ...
//lgView.setText (lgView.getText () + "\ n" + "küldés nem egyértelmű ...");

Mellékletek szűrése az AndroidManifest.xml fájlban

Ha nem akarok viccből hozzáadni egy konkrét bővítményt VID (szállítóazonosító) és PID (termékazonosító) termékkel, akkor a Google mérnökei szándék nélkül nem hoznak létre bővítményeket. -filter szakaszt a jegyzékfájlban, és a szerző nem akar robotmellékleteket látni az AndroidManifest.xml fájlban.

Azt hiszem, a szállítóazonosító és a termékazonosító egyedi azonosítók az USB-mellékletekhez. Tobto, vikoristovuchi szűrés, felvehetsz egy kiegészítést, mivel ez nem lehetséges énekes melléklettel, vagy mellékletek osztályával. Nyilvánvalóan a virobnik felelősek az USB IF megszervezésének költségeiért.

Dodatok, a jegyzékfájl megjelenik a 4. listában, és a szűrővel ellátott fájl az 5. listában, például sikeresen csatlakoztatva van az USB flash meghajtó mellékletéhez a mobil melléklethez. A program a kimeneti kóddal egyszerre letölthető.

4. lista. AndroidManifest.xml fájl


" > http://schemas.android.com/apk/res/android "
> package = "ru.learn2prog.usbhostexample"
android: versionCode = "1"
android: versionName = "1.0">


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


android: allowBackup = "igaz"
android: icon = "@ drawable / ic_launcher"
android: label = "@ string / app_name"
android: theme = "@ style / AppTheme">

android: név = "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: resource = "@ xml / device_filter" />
>
>

>

Lista 5. Szűrőfájl device_filter.xml (könyvtár / res / xml)

>

>

A zasosuvannya létesítésével és létrehozásával kapcsolatos műveleteket semmiféleképpen nem tekintjük (Div. Jelentkezés,). Szeretném brutalizálni a tiszteletet a namiriv szűrője iránt - ha csatlakozik a fogadó operációs rendszerhez, a koristuvach-ot a zasosuvannya elindításával fogom etetni.

Irodalom / Posilannya: 11.
12.
13.http: //developer.android.com/guide/topics/connectivity/usb/host.html – az USB-n keresztüli robotokhoz szükséges osztályok áttekintése Android rendszeren
14.Posilanja a vihіdnі kiegészítésekről

Jak már zgaduvalosya, operációs rendszerek és a Windows nem lesz képes elérni a szoftvert a rádió a funkcionalitást mellékletek csatlakozik az USB-busz. Az ezekből az USB-mellékletekből származó adatfolyamok feldolgozása ugyanazon az operációs rendszeren, valamint egy köteg szabványos illesztőprogram megjelenítése, amelyek megjelenítik az összes USB-melléklet vezérléséből származó fő funkciókat, és adatokat cserélnek közöttük és a rendszer között.

Ha szoftvert kell írnia bármilyen USB-csatolás biztosításához, ha az adatok alapján minden lehetőséget kibővített, akkor három fiatal nemes közül választhat:

Írok egy power drivert, csatolom, mintha minden szükséges vezérlési funkcióról és adatcseréről, illetve a programról gondoskodtak volna, ahogy a billentyűleütésre kijelölt módban használná a vezető. Ugyanakkor meg lehet boldogulni szabványos rendszer-illesztőprogramok nélkül is;

írjon egy szűrő-illesztőprogramot, amely egy bi-megőrzi a szükséges funkcionalitást, ale roztashovuvavsya használt illesztőprogramban a rendszer meghajtói felett. Így az összes szabványos feldolgozási funkciót az USB-illesztőprogramok használták, rendszer által létrehozott, A további funkciókról pedig a szűrő-illesztőprogram gondoskodik, amely összekapcsolódik a programmal;

gyors a bővíthető függvénykönyvtárak és illesztőprogramok révén

USB hozzáférésre csatolom.

A legtöbb esetben szoftveres hozzáférés használható az USB -melléklethez, valamint egy specifikusabb funkció. Például az "elektronikus oszcillográfia" vagy az adatgyűjtő rendszerek USB-lebontása alapján olyan robotok számára, amelyeknek hozzá kell férniük a kiterjesztéshez. Az ilyen típusok nagy száma megcsodálható a széleskörűen kibővített függvénykönyvtárak segítségével, amelyek minden népszerű köztes szoftver esetében praktikusak lesznek. Például, mivel a GNU keresztülment a szoftverek biztonságossá tételén, mint például a LibUsb, tartalmazza a szükséges illesztőprogramokat és függvénykönyvtárakat a robotokhoz Windows és Linux operációs rendszerekben. A függvénykönyvtár még népszerűbb, és lehetővé teszi a programok gyors szétválasztását, amelyek összekapcsolódnak a mellékletekkel egy további szabványos funkcióhoz. Nem kell Vlas-illesztőprogramot írni egy melléklethez, így jelentős az egy óra megtakarítása.

Ezenkívül a járművezetők többsége nem ismeri az illesztőprogramok terjesztésének módszerét,

Ugyanakkor a program területe még jobban összehajtható, így egy ilyen nagymértékben kibővített programozható biztonság megnyilvánulása megbecsülhetetlen segítséget nyújt a fahéj széles skálájának. A LibUsb projekt alapján a Visual Basic .NET és a C # .NET robotjai számára készült burkolatok a legnépszerűbbek a LibUsbDotNet, valamint a széles körben kibővített szoftver botanikai fejlesztése. A jóslás szempontjából lényegtelen, hogy az USB csatolószoftver összecsukása, a telepítés biztonsága érdekében a szoftver viszontbiztosítása megbocsátja a feladatot, amint lesz ereje segíteni az újoncoknak. Praktikus készletekkel bővíthető, például az USB -mellékletekkel, és különösen a LibUsb szoftvercsomaggal. A beszéd előtt felvehet egy linket a www.sourceforge.net oldalra térítés ellenében, vagy számos másodlagos webhelyről.

Mi a legjobb a LibUsb USB-könyvtárakban? A Könyvtárat ilyen módon kéri

Tehát lehetséges az alapvető műveletek elkészítése USB-kiegészítővel csatlakoztatva:

Azonosítás, vagy vélemény szerint túlexponálás (felsorolás). A művelet során látni fogja az USB buszhoz csatlakoztatott mellékleteket, így kérheti a libusb könyvtár további funkcióit;

mellékletben szereplő paraméterek elutasítása (mellékletben szereplő azonosítók, mellékletben proxy és jellemzők megadása), amelyre a könyvtárban számos funkció van;

vіdkrittya, zakrittya, a tiszteletadatok felírása, parancsok elolvasása. Mielőtt hozzáadna egy USB -t, mint például egyes fájlrendszerek, ide -oda lehet olvasni a felvételt, majd megnézni a könyvtár további funkcióit.

A libusb könyvtár funkcióinak kiegészítő wikklice mögött minden viszontbiztosítási lehetőség megvalósulhat, de itt nem lesz bűz, egy részhez sok pénz kellett; nem fogunk meglepődni, hiszen vikoristovuvati deyakі z tsikh funk

Kicsi. 6.10

A libusb0.sys illesztőprogram letöltése az illesztőprogramban települ

gyakorlati készletekről. Az olvasó összes funkciójának leírása a dokumentációból megismerhető. Feltételezem, hogy Windows operációs rendszerekben látom a libusb könyvtár funkcióit.

Amikor telepíti a disztribúciót a libusb -ről a operációs rendszer A Windows rendszer telepíti a libusb0.sys szűrő-illesztőprogramot. Az egész illesztőprogram a rendszerillesztő-verem tetején lesz, így könnyű a fenekére ütni, ha kíváncsiak vagyunk az USB-csatolás illesztőprogramjaira (6.10. ábra).

Ezenkívül a programból az illesztőprogramba történő telepítéshez a libusb0.dll könyvtár is telepítve van a rendszerbe.

Kicsi. 6.17

Az ablakok nézete programokkal, amikor látják

USB-csatolások a rendszerekről

Az utolsó szakaszban a vezérlő firmware-jét vettük, és USB-n keresztül csatlakoztattuk. A számítógéppel való interakcióhoz speciális speciális programra van szükségünk, mivel a számítógépeken elindul.

A tengely egyszerre, és nyitva leszünk.

Tudom, hogy a csomagban található Microchip megoldások є a fenék, a kontrollerünkhöz, és a magam módján átírtam. Először viktorián nélkül törtem fel a grafikus felületet, és 3-4-szer változott a kód mérete. A Scho nabagato szebb a vivchennya számára. Tiltakozás, a robotok elve egy. A szabványos alkalmazás kódja a mikrochipből származik.

A program C++ nyelven íródott. A projekt a Visual C ++ express 2010 nem iskolai tanulói verziójának letöltése. A kódhoz azonnali ötleteket és megjegyzéseket adok, engedjetek be az uvaz-ba, valamint szeretnék lásd a legújabb programozást C ++ nyelven.

Otzhe, javítsd ki

A teljes projekt itt található, beleértve az eredeti szöveget

Ahhoz, hogy az USB porton keresztül le tudjuk olvasni és le tudjuk írni az adatokat, módosítanunk kell a mellékletünkön található megjelenítést. Oskilki a vidminu régi kikötőkből, vagy száz melléképülethez kötve, akkor nem olyan egyszerű műsort csinálni. Ahhoz, hogy túl tudjunk rajta lépni, megtesszük windows illesztőprogramok, És maga a SetupAPI. A beszéd előtt, mivel csak mi tudjuk megmutatni, az USB -portot használjuk, egy kis fájlt.
Tiszteletadás átadása néhány csapatnak. Ale tengely edzés!
Jó programok C ++-ban, akkor még pontosabb típusú tribute-okra lesz szükségünk.
Stvoryuєmo konzolprojekt win32. Dodaєmo toudi Egyetlen fájl main.cpp

Otzhe, össze kell kapcsolnunk a könyvtárat.
#beleértve
#beleértve
#beleértve

Tehát a legfontosabb, hogy felhívjuk a könyvtárat:
#pragma megjegyzés (lib, "Setupapi.lib")

Először egy függvényt írunk le a getUSBHandle () programban. Її leírja - a kód megjegyzéseiben. Ez a kódex fő megjegyzése. Arra szolgál, hogy megismerjük ráhangolódásunkat és záporokra neveljük, hogy a mellékletbe le tudjuk írni és elolvasni.
Dióhéjban itt vannak a szabványos Windows-funkciók az USB-illesztőprogramok eléréséhez, és rajtuk keresztül megmutatjuk a jelzőt magának a mellékletnek.
Amint itt van a tsikavó, minden funkció és jak, aztán menjen az MSDN-hez vagy Agurov könyvéhez, szóval légy résen. Fontos a nemesség számára: a bőr mellékszerelésnél є shlyakh, és fontos, hogy tagadjuk. Sok az inverzió, hogy hogyan lehet a csatolmányból megszerezni az azonosítót, ami shukamo. És akkor ismerjük az eszköz útját.Mi shukaєmo csak a HID osztály mellékleteinek közepén. télen kezdeni Guid. Reshta div a program megjegyzéseiben
Elérhető funkció - writeReadUSB. Ez csak egy kiegészítő funkció, leírom a mellékletünkbe. Tiszteletet zárok, írok-olvasok, mellékelem, hogy a szabványos WriteFile és ReadFile parancsok segítségével állítsuk be a jelzőt az új implementálandóra.
Annak érdekében, hogy a fő funkció rendben legyen, és a program javítsa. Vona wiklikє getUSBHandle, amíg a jelző nem látszik a mellékleten, majd olvassa el a parancsot a billentyűzetről, és ennek hiányában vigye át és olvassa ki az adatokat az USB-csatolásról.
Van egy projekt, hogy feküdjön le kimeneti kód A megjegyzésekkel maga a program is összeáll. Huy, hogy boldog legyen.

Közben kicsit megsajnáltam a könyvtári hidapit. Megnyerte a cross-platformot. І Tilki rejtett tartozékokkal rendelkező robotokhoz. Vicorystannában még egyszerűbb. Felhozom neki a projektet. posilannya.
Hidapi letöltések a hivatalos oldalról. A projekten való munka megkezdéséhez hozzá kell adnia a setupapi.lib fájlt a hivatkozáshoz. projekt-> tulajdonságok-> linker-> bemenet і aláírás itt setupapi.lib;
Huy, hogy boldog legyen.
Ismerje meg a könyvtár leírását itt: http://microsin.net/programming/PC/multi-platform-hid-api.html.
Köszönöm!

Nyugodtan fogadja el a projektet – köszönjük szépen!
Olvassa el is
Sberbank (valamint Oschadbank) Sberbank (valamint Oschadbank) Az Autocad Chi licencproblémáinak megoldása nem indítja el az Autocad Windows 7 rendszert Az Autocad Chi licencproblémáinak megoldása nem indítja el az Autocad Windows 7 rendszert Útmutató a CryptoPro PIN kódjának regisztrálásához, bizonyos dokumentumok regisztrációjának órája előtt - Útmutató - AT Útmutató a CryptoPro PIN kódjának regisztrálásához