Re: [問題]使用 win32 SDK/DDK 寫 USB HID 的一些問題

看板Programming作者 (涼雨)時間14年前 (2010/11/17 10:20), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
我目前寫這個東西也是遇到一些問題 一樣是寫USB通訊,透過WDK和Win API 以下是我試出來的經驗 write方面,必須使用SendReport才能送出(writefile會失敗) read方面,必須使用ReadFile才能接收(用ReadReport會失敗) 我不知道為什麼??請問有人知道原因嗎?我看網路的範例,大部分都沒這樣做 以上都是固定每次傳送接收64Byte,第一個Byte放Report ID 雖然是可以通訊了,但是因為Firmware組希望每個不同的CMD通訊可以傳送 不同的長度,所以他們將所有的CMD都作成Report ID,並且規定長度都不同。 但是這樣我卻都收不到資料了。 //========================== 譬如 CMD 1 是開啟,該長度是3 2 開啟的回應,該長度是4 而CMD本身就是Report ID 我送出 : 1 3 X 我會期待接收到 : 2 4 X X //========================== 但是我卻都無法收到,推測是跟長度有關,因為如果Frimware都改成每個CMD 固定長度64就沒問題。請問有方法每次傳輸都可以透過API去告知切換長度嗎? 我用HidP_GetCaps抓到也只知道最長CMD的in、out,即使我自己知道每個CMD 會接收多少Byte,指定給ReadFile,一樣是失敗。會是Driver不知道嗎? 但是Firmare組已經把Report Id的Report Count都設定長度了。 一直找不到資料,好像很少人會這樣伸縮長度,網路上查到的通常都是傳送的Device 那邊伸縮長度(指定Report 長度)的教學,但是接收這邊的AP一直查不到這些資料 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.66.251.14 clarkman:轉錄至看板 C_and_CPP 11/17 10:22
文章代碼(AID): #1Cuplmo6 (Programming)
文章代碼(AID): #1Cuplmo6 (Programming)