USB プロジェクト - WindowsアプリケーションにはBASICが良く似合う [USB]
マイコン側に"Generic HID"デバイスが用意できたので、これを制御するPC側のアプリケーションを作成します。 色々とサンプル・アプリケーションを探し回ったのですが、なかなか適当なのがありません。 古い Visual C++ や Visual BASIC のプロジェクトは、たとえ変換できたとしても、現代のVS2008では、簡単には動きそうにありません。 その中で、Visual BASIC 2005 Express Edition で作ったHIDクラスというものがありました。
Visual BASIC 2005 でHIDを操作する
その期待させるようなアプリケーションがあるのは、ここです。 このページの上から4分の1ほどの所に"HIDClass"というリンクがあります。 コメント欄で hamayan さんに指摘をいただきましたが、 http://www.lvr.com/ というのは、有名なUSB本の原作者の方のサイトなのですね。
Usb Complete: Everything You Need To Develop Custom Usb Peripherals (Complete Guides Series)
- 作者: Jan Axelson
- 出版社/メーカー: Lakeview Research
- 発売日: 2005/06/15
- メディア: ペーパーバック
苦も無くビルト完了
さっそく、"hidclass_vs5.zip"をダウンロードして、"Visual BASIC 2008 Express Edition"で開いてみました。 いくつかオプションを指定するとプロジェクトが自動的に変換されます。 「無警告」でした。
ビルトすると、アプリケーションが出来ました。 実行ボタンを押してデバッグ開始です。
エラーが出る
アプリケーション画面で、Vender IDとProduct IDを入れて、"Find My Device"をクリックすると、ちゃんとデバイスを見つけてくれました。 ここで、"Send and Receive Data"にある"Once"をクリックすると、レポートの送信と受信が行われると期待していたのですが、エラーメッセージが出てしまいました。
何だか難しい日本語ですが、要するに配列の添え字が大きくなりすぎたようです。 問題発生箇所を確認したところ、私が作ったデバイスは、1バイトしかデータを送受信しないのに、2バイト分のデータを取り出そうとしたのが原因であることがわかりました。 そこで、プログラムを修正しました。 以下、1210行辺りの記述です。
lstResults.Items.Add("An Output report has been written.") 'Display the report data in the form's list box. Debug.WriteLine(" Output Report ID: " & OutputReportBuffer(0)) Debug.WriteLine(" Output Report Data:") lstResults.Items.Add(" Output Report ID: " & OutputReportBuffer(0)) lstResults.Items.Add(" Output Report Data:") txtBytesReceived.Text = "" For Count = 1 To UBound(OutputReportBuffer) '2 'Add a leading zero to values from 0 to F. If Len(Hex(OutputReportBuffer(Count))) < 2 Then ByteValue = "0" & Hex(OutputReportBuffer(Count)) Else ByteValue = Hex(OutputReportBuffer(Count)) End If Debug.WriteLine(" " & ByteValue) lstResults.Items.Add(" " & ByteValue) Next Count
再度、挑戦
プログラムを修正して、再度実行します。 "Autoincrement values"をチェックして、"Continuous"ボタンをクリックすると、 約1秒ごとにLEDのパターンが変化し、ボタンを押したときの反応も"Bytes Received"で 確認することが出来ます。
あとは、お好みの機能を実装すれば、PC側アプリケーションは、何とかなりますね。
参考文献
USBハード&ソフト開発のすべて―USBコントローラの使い方からWindows/Linuxドライバの作成まで (TECHI―Bus Interface)
- 作者: インターフェース編集部
- 出版社/メーカー: CQ出版
- 発売日: 2006/07
- メディア: 単行本
USBターゲット機器開発のすべて―各種USBコントローラの使い方と基本ソフトウェアの作成法 (TECHI―Bus Interface)
- 作者:
- 出版社/メーカー: CQ出版
- 発売日: 2005/08
- メディア: 単行本
USB Complete: The Developer's Guide (Complete Guides Series)
- 作者: Jan Axelson
- 出版社/メーカー: Lakeview Research
- 発売日: 2009/06
- メディア: ペーパーバック
http://janaxelson.com/hidpage.htm に変わってる
by お名前(必須) (2016-05-12 09:51)