<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > 基于Wave Panel 的HID 設備通訊接口設計

基于Wave Panel 的HID 設備通訊接口設計

作者: 時(shí)間:2013-07-10 來(lái)源:網(wǎng)絡(luò ) 收藏

2. 3 寫(xiě)報表

與讀報表相反,寫(xiě)報表是指主機向HID 設備輸出數據.寫(xiě)報表對延遲的要求較高,但這一功能不是必需的,根據HID 設備的實(shí)際用途而定 .鼠標.鍵盤(pán).游戲桿等較簡(jiǎn)單的設備只向主機發(fā)送數據,這些數據通常是一些控制信息和狀態(tài)信息 ,例如改變HID 設備液晶屏上的顯示信息.控制設備上發(fā)光元件的亮滅等.

應用程序的寫(xiě)報表線(xiàn)程流程與讀報表線(xiàn)程類(lèi)似,首先將要輸出的數據按Wave Panel 規定的數據格式進(jìn)行封裝,復制到一個(gè)緩沖區內,再調用WriteFile()將緩沖區數據輸出到Wave Panel 即可,這些信息主要是與幀狀態(tài)變化相關(guān)的信息.

2. 4 設備關(guān)閉

設備關(guān)閉模塊功能比較簡(jiǎn)單.當主機與WavePanel 的通訊結束時(shí),調用CloseHandle( ) 將打開(kāi)的Wave Panel 關(guān)閉即可.

3 Wave Panel 通訊接口的設計

以上述通訊過(guò)程為基礎,設計一個(gè)名為CHid-Comm 的通訊接口,其總體框架為:

其中,成員函數OpenDevice()和CloseDevice()分別用于識別.打開(kāi)和關(guān)閉Wave Panel.ReadReport-Thread()用于創(chuàng )建讀報表線(xiàn)程.由于線(xiàn)程為異步方式執行,因此ReadReportThread( ) 在調用ReadFile( ) 時(shí)要使用一個(gè)OVERLAPPED 結構變量,該變量含有一個(gè)I/ O 完成后觸發(fā)事件的句柄.當HID 設備沒(méi)有向主機輸入數據時(shí),事件處于無(wú)信號狀態(tài),線(xiàn)程被阻塞;當有數據輸入時(shí),事件被觸發(fā),線(xiàn)程恢復運行,接收并將數據保存在讀報表緩沖區,供數據解析函數使用.WriteReportThread()與ReadReportThread( ) 的功能類(lèi)似,用于創(chuàng )建寫(xiě)報表線(xiàn)程.

成員變量VID.PID 和PVN 用于保存三項屬性值,ReadBuffer 和WriteBuffer 分別定義讀報表緩沖區和寫(xiě)報表緩沖區,其大小由HID 設備的輸入報表和輸出報表長(cháng)度決定.S 實(shí)際上,該接口不僅可以用于WavePanel,同樣也適用于其它HID 設備.只需要重新設置VID.PID 和PVN 值以及ReadBuffer.WriteBuffer 緩沖區的大小,而無(wú)須對識別.打開(kāi).讀寫(xiě)報表等功能進(jìn)行修改.

圖3 是主機應用程序調用CHidComm 接口實(shí)現與Wave Panel 通訊的情況.以十六進(jìn)制形式輸出讀報表緩沖區的值,并顯示狀態(tài)變化情況.需要注意的一個(gè)重要問(wèn)題是Wave Panel 輸入報表并不使用報表ID,在這種情況下應將讀報表緩沖區ReadBuffer 的第0 字節設置為0×00,否則讀報表線(xiàn)程將無(wú)法接收到輸入報表.

4 結束語(yǔ)

Wave Panel 是一類(lèi)較復雜的編輯HID 設備,沒(méi)有提供Windows 環(huán)境下的通訊功能.基于WavePanel 對Windows 環(huán)境下的HID 設備通訊進(jìn)行研究,能夠解決許多UNIX.Linux.Mac 等操作系統支持的專(zhuān)用HID 設備無(wú)法在Windows 環(huán)境下使用的問(wèn)題.較之現有的一些解決方案,設計的CHidComm 接口具有較強的通用性,并可以方便地對功能進(jìn)行擴展.今后的工作主要是擴展該接口在64 位Windows 環(huán)境下的功能.


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 控制器 視頻

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>