freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

usb接hid設(shè)備培訓(xùn)課程-資料下載頁(yè)

2025-06-25 23:36本頁(yè)面
  

【正文】 t (Constant) 。 。 以下定義了鍵盤的按鍵值輸入報(bào)表項(xiàng)目,共6個(gè)字節(jié),存放鍵編號(hào)(0~101) 。 用法見HID Usage Table中的第10節(jié)中的鍵盤用法定義 ; 這樣的設(shè)計(jì)可以允許一次輸入6個(gè)按鍵的鍵值DB 0x95, 6 。 Report Count (6)DB 0x75, 8 。 Report Size (8)DB 0x15, 0 。 Logical Minimum (0)DB 0x25, 101 。 Logical Maximum (101)DB 0x05, 7 。 Usage Page (7: Key Codes)DB 0x19, 0 。 Usage Minimum (0)DB 0x29, 101 。 Usage Maximum (101)DB 0x81, 0 。 Input (Data, Array)DB 0xC0 。 End_Collection ================================ 集合結(jié)束通過(guò)上面的報(bào)表描述符的定義,確定了鍵盤的輸入報(bào)表和輸出報(bào)表的數(shù)據(jù)格式。其中輸入報(bào)表共8個(gè)字節(jié),輸出報(bào)表只有1個(gè)字節(jié)。修飾鍵保留鍵值1鍵值2鍵值3鍵值4鍵值5鍵值6圖84 鍵盤的輸入報(bào)表格式字節(jié)0字節(jié)1字節(jié)2字節(jié)3字節(jié)4字節(jié)5字節(jié)6字節(jié)77~5圖85 鍵盤的輸出報(bào)表格式43210Scroll Lock 指示燈Nnm Lock 指示燈Caps Lock 指示燈常數(shù),保留Compose 指示燈Kana 指示燈字節(jié)0 HID的特定請(qǐng)求除了USB設(shè)備的11個(gè)標(biāo)準(zhǔn)請(qǐng)求外,HID規(guī)范另外還定義了6個(gè)HID特定控制請(qǐng)求。所有的HID設(shè)備都必須支持Get_Report請(qǐng)求,同時(shí)支持啟動(dòng)的設(shè)備必須支持Get_Protocol請(qǐng)求和Set_Protocol請(qǐng)求,其他的請(qǐng)求是可選擇的。如果設(shè)備沒有中斷輸出端點(diǎn),此設(shè)備需要支持Get_Report請(qǐng)求來(lái)從主機(jī)讀取數(shù)據(jù)。在控制傳輸?shù)脑O(shè)置階段的數(shù)據(jù)包中的8個(gè)字節(jié)中的第一字節(jié)bmRequestType的編碼含義參閱第6章中的USB標(biāo)準(zhǔn)請(qǐng)求。第2個(gè)字節(jié)bRequest定義請(qǐng)求的內(nèi)容。wValue因請(qǐng)求的不同而不同。wIndex指明HID所在的接口。表810 HID特定的請(qǐng)求bmRequestTypebRequest (值)wValuewIndexwLength數(shù)據(jù)階段1 01 00001bGet_Report (1)報(bào)表類型,報(bào)表ID接口報(bào)表長(zhǎng)度報(bào)表0 01 00001bSet_Report (9)報(bào)表類型,報(bào)表ID接口報(bào)表長(zhǎng)度報(bào)表1 01 00001bGet_Idle (2)0,報(bào)表ID接口1閑置時(shí)間0 01 00001bSet_Idle (10)閑置時(shí)間,報(bào)表ID接口0無(wú)1 01 00001bGet_Protocol (3)0接口10: 啟動(dòng)協(xié)議1: 報(bào)表協(xié)議0 01 00001bSet_Protocol (11)0: 啟動(dòng)協(xié)議1: 報(bào)表協(xié)議接口0無(wú) Get_Report請(qǐng)求Get_Report的作用是啟用主機(jī)使用控制傳輸,來(lái)從設(shè)備讀取數(shù)據(jù)。在使用時(shí)wValue字段的高字節(jié)是報(bào)表類型,1表示Input報(bào)表,2表示Output報(bào)表,3表示Feature報(bào)表。wValue的低字節(jié)是報(bào)表的Report ID,如果沒有定義Report ID,該字節(jié)為設(shè)0。在攜帶請(qǐng)求的控制傳輸?shù)臄?shù)據(jù)階段,HID設(shè)備回傳指定的報(bào)表內(nèi)容。HlD規(guī)范不建議使用該請(qǐng)求獲得未經(jīng)定時(shí)的數(shù)據(jù),這樣的數(shù)據(jù)建議使用中斷輸入管道獲得。該請(qǐng)求用來(lái)取得在主機(jī)初始化設(shè)備時(shí)的特征項(xiàng)目狀態(tài)和其他信息。使用開機(jī)協(xié)議的主機(jī)可以使用此請(qǐng)求來(lái)獲得按鍵或鼠標(biāo)數(shù)據(jù)。 Set_Report請(qǐng)求Set_Report請(qǐng)求的參數(shù)含義和Get_Report一樣,但Set_Report請(qǐng)求的數(shù)據(jù)方向與Get_Report相反,在后面的數(shù)據(jù)階段,主機(jī)傳送報(bào)表到HID設(shè)備,這樣的輸出報(bào)表可以用于復(fù)位設(shè)備的控制,復(fù)位產(chǎn)生的效果取決于對(duì)應(yīng)的控制的類型是相對(duì)(Reletive)的還是絕對(duì)(Absolute)的。 Set_Idle請(qǐng)求Set_Idle請(qǐng)求的作用是靜默一個(gè)在中斷輸入管道的特定的報(bào)表,直到一個(gè)發(fā)生一個(gè)相關(guān)的事件或過(guò)去了規(guī)定的時(shí)間,當(dāng)數(shù)據(jù)從上一個(gè)報(bào)表后沒有改變時(shí),可以通過(guò)限制中斷輸入端點(diǎn)的報(bào)表頻率來(lái)節(jié)省傳輸帶寬。HID設(shè)備不是必需支持此請(qǐng)求。wValue字段的高字節(jié)是設(shè)置的閑置時(shí)間,是報(bào)表之間的最大間隔時(shí)間。該字節(jié)為0表示閑置時(shí)間為無(wú)限長(zhǎng),在這種情況下,設(shè)備只有在報(bào)表數(shù)據(jù)有改變時(shí)才傳送報(bào)表,否則設(shè)備傳回一個(gè)NAK。wValue字段的低字節(jié)指示此請(qǐng)求應(yīng)用的報(bào)表的Report ID。如果低字節(jié)是0,此請(qǐng)求應(yīng)用到設(shè)備的所有輸入報(bào)表。閑置時(shí)間以4ms為單位,范圍在4ms~1020ms之間。如果報(bào)表的數(shù)據(jù)自從上一次報(bào)表后有改變,或是接收到一個(gè)請(qǐng)求,設(shè)備會(huì)傳送一個(gè)報(bào)表。如果報(bào)表的數(shù)據(jù)沒有改變,而且從上一次報(bào)表后過(guò)去的時(shí)間自尚未達(dá)到規(guī)定的閑置時(shí)間,設(shè)備會(huì)傳回一個(gè)NAK。如果報(bào)表的數(shù)據(jù)沒有改變,而且持續(xù)時(shí)間已經(jīng)達(dá)到的閑置時(shí)間,設(shè)備會(huì)傳送一個(gè)報(bào)表。閑置時(shí)間設(shè)置為0表示無(wú)限長(zhǎng)的閑置時(shí)間,設(shè)備只有在報(bào)表的數(shù)據(jù)有改變時(shí)才會(huì)傳送一個(gè)報(bào)表,對(duì)于其他的中斷輸入請(qǐng)求則是傳回NAK。在檢測(cè)HID設(shè)備時(shí),Wndows的HID驅(qū)動(dòng)程序會(huì)試圖將閑置時(shí)間設(shè)置成0。如果HID設(shè)備不支持此請(qǐng)求,主機(jī)會(huì)收到傳回的Stall。 Get_Idle請(qǐng)求Get_Idle請(qǐng)求的作用是過(guò)的設(shè)備的當(dāng)前閑置時(shí)間,在數(shù)據(jù)階段,HID設(shè)備回傳一個(gè)字節(jié)的閑置時(shí)間值。 Get_Protocol請(qǐng)求Get_Protocol請(qǐng)求的作用是主機(jī)獲取設(shè)備目前作用的是啟動(dòng)協(xié)議還是報(bào)表協(xié)議。在數(shù)據(jù)階段中設(shè)備回傳的1個(gè)字節(jié)信息包中的數(shù)據(jù)值為0表示啟動(dòng)協(xié)議,為1表示報(bào)表協(xié)議。啟動(dòng)設(shè)備必需支持該請(qǐng)求。 Set_Protocol請(qǐng)求Set_Protocol的作用是主機(jī)指定設(shè)備使用啟動(dòng)協(xié)議或報(bào)表協(xié)議。在數(shù)據(jù)階段中主機(jī)傳送的1個(gè)字節(jié)信息包中的數(shù)據(jù)值為0表示指定啟動(dòng)協(xié)議,為1表示指定報(bào)表協(xié)議。啟動(dòng)設(shè)備必需支持該請(qǐng)求。 HID程序設(shè)計(jì)HID設(shè)備是Windows系統(tǒng)提供了完善支持的一類,應(yīng)用程序可以通過(guò)標(biāo)準(zhǔn)的API函數(shù)調(diào)用,實(shí)現(xiàn)與HID設(shè)備的通信。Windows系統(tǒng)提供了幾千個(gè)API函數(shù),作為應(yīng)用程序與操作系統(tǒng)的接口,、。 HID訪問(wèn)使用的API函數(shù),因?yàn)榕cHID設(shè)備通信有一定的復(fù)雜性。首先,在應(yīng)用程序與HID傳輸數(shù)據(jù)之前,應(yīng)用程序必須先識(shí)別該設(shè)備并且讀取它的報(bào)表信息,這些動(dòng)作需要調(diào)用多個(gè)API函數(shù)才可以實(shí)現(xiàn)。應(yīng)用程序需要尋找連接到系統(tǒng)上的是哪些HID設(shè)備,然后讀取每個(gè)設(shè)備的信息直到查找到所需的屬性。如果是客戶化的設(shè)備,應(yīng)用程序可以尋找特定的廠商與產(chǎn)品ID,或者應(yīng)用程序可以尋找特定類型的設(shè)備,例如鍵盤或鼠標(biāo)。表811 用于HID設(shè)備的API函數(shù)用于了解HID設(shè)備情況的API函數(shù)()HidD_GetAttributes請(qǐng)求獲得HID設(shè)備的廠商ID、產(chǎn)品ID和版本號(hào)HidD_FreePreparsedData釋放函數(shù)HidD_GetPreparsedData所使用的資源HidD_GetHidGuid請(qǐng)求獲得HID設(shè)備的GUIDHidD_GetIndexString請(qǐng)求獲得由索引識(shí)別的字符串HidD_GetManufactureString請(qǐng)求獲得設(shè)備制造商字符串HidD_GetPhysicalDescriptor請(qǐng)求獲得設(shè)備實(shí)體字符串HidD_GetPreparsedData請(qǐng)求獲得與設(shè)備能力信息相關(guān)的緩沖區(qū)的代號(hào)HidD_GetProductString請(qǐng)求獲得產(chǎn)品字符串HidD_GetSerialNumberString請(qǐng)求獲得產(chǎn)品序列號(hào)字符串HidP_GetButtonCaps請(qǐng)求獲得HID報(bào)表中所有按鈕的能力HidP_GetCaps請(qǐng)求獲得用于描述設(shè)備能力的結(jié)構(gòu)的指針HidP_GetLinkCollectionNotes請(qǐng)求獲得描述在頂層集合中的連接集合(Link Collection)關(guān)系的結(jié)構(gòu)的數(shù)組HidP_GetSpecificButtonCaps請(qǐng)求獲得報(bào)表中按鈕的能力,該請(qǐng)求可以設(shè)定一個(gè)Usage Page、Usage或是Link CollectionHidP_GetSpecificValueCaps請(qǐng)求獲得報(bào)表中數(shù)值的能力,該請(qǐng)求可以設(shè)定一個(gè)Usage Page、Usage或是Link CollectionHidP_GetValueCaps請(qǐng)求獲得HID報(bào)表中所有數(shù)值的能力HidP_MaxUsageListLength請(qǐng)求獲得HID報(bào)表中可以回傳的按鈕的最大數(shù)目,該請(qǐng)求可以設(shè)定一個(gè)Usage PageHidP_UsageListDifference比較兩個(gè)按鈕列表,并且求出在一個(gè)列表中設(shè)定而在另一個(gè)列表中沒有設(shè)定的按鈕用于從設(shè)備讀取、向設(shè)備傳送報(bào)表的API函數(shù)()HidD_GetFeature從設(shè)備讀取一個(gè)特征報(bào)表HidD_SetFeature向設(shè)備傳送一個(gè)特征報(bào)表HidP_GetButtons從設(shè)備讀取包含每個(gè)按下的按鈕的用法(Usage)的緩沖區(qū)的指針,該請(qǐng)求可以設(shè)定一個(gè)Usage PageHidP_GetButtonEx從設(shè)備讀取包含每個(gè)按下的按鈕的Usage和Usage Page的緩沖區(qū)的指針HidP_GetScaledUsageValue從設(shè)備讀取一個(gè)已經(jīng)經(jīng)過(guò)比例因子調(diào)整的有符號(hào)數(shù)值HidP_GetUsageValue從設(shè)備讀取一個(gè)指向數(shù)值的指針HidP_GetUsageValueArray從設(shè)備讀取包含多個(gè)數(shù)據(jù)項(xiàng)的Usage的數(shù)據(jù)HidP_SetButtons向設(shè)備傳送設(shè)置按鈕的數(shù)據(jù)HidP_SetScaledUsageValue將一個(gè)實(shí)際數(shù)值轉(zhuǎn)換成設(shè)備使用的邏輯數(shù)值,并將其插入到報(bào)表中HidP_SetUsageValue向設(shè)備傳送數(shù)據(jù)HidP_SetUsageValueArray向設(shè)備傳送包含多個(gè)數(shù)據(jù)項(xiàng)的Usage的數(shù)據(jù)HidD_FlushQueue清空輸入緩沖區(qū)HidD_GetNumInputBuffer獲得驅(qū)動(dòng)程序用于存儲(chǔ)輸入報(bào)表的環(huán)形緩沖區(qū)的大小,默認(rèn)值是8HidD_SetNumInputBuffer設(shè)置驅(qū)動(dòng)程序用于存儲(chǔ)輸入報(bào)表的環(huán)形緩沖區(qū)的大小用于查找和識(shí)別設(shè)備的API函數(shù)()SetupDiGetClassDevs獲得HID的信息,針對(duì)已安裝的設(shè)備,回傳一個(gè)指向其信息集的代碼SetupDiEnumDeviceInterfaces請(qǐng)求獲得設(shè)備信息群內(nèi)的一個(gè)設(shè)備的信息SetupDiGetDeviceInterfaceDetail請(qǐng)求獲得設(shè)備的路徑SetupDiDestroyDeviceInfoList釋放SetupDiGetClassDevs使用的資源用于打開、關(guān)閉設(shè)備和實(shí)現(xiàn)數(shù)據(jù)傳送的API函數(shù)()CreatFile取得設(shè)備的路徑后,調(diào)用該函數(shù)獲得設(shè)備代號(hào)WriteFile向設(shè)備傳送輸出報(bào)表ReadFile從設(shè)備讀取輸入報(bào)表CloseHandle關(guān)閉設(shè)備,釋放CreateFile所使用的資源 查找HID的過(guò)程在實(shí)現(xiàn)HID的訪問(wèn)之前,首先要查找指定(根據(jù)設(shè)備的廠商ID、產(chǎn)品ID和產(chǎn)品序列號(hào))的HID。查找指定設(shè)備的過(guò)程如下:? 調(diào)用函數(shù)HidD_GetHidGuid獲得USB設(shè)備的GUID;? 調(diào)用函數(shù)SetupDiGetClassDevs,獲得一個(gè)包含全部HID信息的結(jié)構(gòu)數(shù)組的指針,下面根據(jù)此數(shù)組逐項(xiàng)查找指定的HID;? 調(diào)用函數(shù)SetupDiEnumDeviceInterfaces,填寫SP_DEVICE_INTERFACE_DATA結(jié)構(gòu)的數(shù)據(jù)項(xiàng),該結(jié)構(gòu)用于識(shí)別一個(gè)HID設(shè)備接口;? 調(diào)用函數(shù)SetupDiGetDeviceInterfaceDetail,獲得一個(gè)指向該設(shè)備的路徑名;? 調(diào)用函數(shù)CreateFile,獲得設(shè)備句柄;? 調(diào)用函數(shù)HidD_GetAttributes,填寫HIDD_ATTRIBUTES結(jié)構(gòu)的數(shù)據(jù)項(xiàng),該結(jié)構(gòu)包含設(shè)備的廠商ID、產(chǎn)品ID和產(chǎn)品序列號(hào),比照這些數(shù)值確定該設(shè)備是否是查找的設(shè)備。查找HID的流程如下圖。調(diào)用HidD_GetHidGuid獲得GUID調(diào)用SetupDiGetClassDevs獲得全部HID信息調(diào)用SetupDiEnumDeviceInterfaces獲得特定HID識(shí)別信息調(diào)用SetupDiGetDeviceInterfaceDetail獲得特定HID路徑名調(diào)用CreateFile獲得特定HID句柄調(diào)用HidD_GetAttributes獲得特定HID的廠商ID、產(chǎn)品ID找到指定HID?查找完畢?結(jié)束開始YesYesNoNo圖86 查找設(shè)備的流程下面介紹VB實(shí)現(xiàn)的查找過(guò)程。(1) 獲得GUID應(yīng)用程序要與HID設(shè)備通信之前,必須先獲得HID類別的GUID(Globally Unique Indentifer)。GUID是一個(gè)128位的數(shù)值,每個(gè)對(duì)象都有惟一的GUID。,可以接引用,或是使用 HidD_GetHidGuid函數(shù)來(lái)取得HID類別的 GUID?!?函數(shù)聲明Public Declare Function HidD_GetHidGuid Lib (ByRef HidGuid As GUID) As Long
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1