●パソコンソフトのデバッグ

デバイスドライバーは「汎用ドライバー」のままにしておき、専用基板を接続してパソコンソフトの
デバッグにかかりました。

Visual C++ でデバッグ

『1』 モニター条件入力用ダイアログBOXの確認

お決まりのフォームなのでバグも無く、デバッグは即完了です!

モニター条件入力ダイアログの確認

『2』 モニタースタート、ストップボタンを押したら、専用基板にUSBバス経由でコマンド送信できるか

コマンド指示で、専用基板のLEDが点灯・消灯するようにしてあるので、このLEDにてコマンド送信
ができているか確認しました。   結果OKでした。

LED消灯 LED点灯

『3』 単発データの取り込みテスト

パソコンソフトの収集開始ボタンを押して、IIC疑似信号クロック200KHzで16件のデータを
取り込んでみました。     結果OKでした。

『4』 連続データの取り込みテスト

パソコンのモニタースタートボタンを押して、IIC疑似信号クロック200KHzで5秒間のデータを取り込んでみました。

結果はOKですが、リストBOXへの表示がかなり遅い!

データを取り込みながら、リストBOXに1行ずつアスキー文字列を追加しているのですが、
リストBOXの表示データが少ない時(垂直スクロールバーが出ていない時)には高速で表示できるのに、
垂直スクロールバーが表示されてスクロールが始まると、表示スピードが極端に落ちてしまいました。

表示スクロールは、  CListBox::AddString() 関数で文字列追加後、スクロールが必要な時に
CListBox::SetTopIndex() 関数を呼び出しています。

これでは表示処理に時間をとられて、専用基板のメモリーに貯まっているデータを読み込むまでには
かなりの時間を要してしまいました。

もっと速く表示が出来る方法をいろいろ探ってみた結果、スクロールが必要な時に
 SetTopIndex() 関数を呼び出すのをやめて、そのかわり
 PostMessage( WM_VSCROLL, SB_LINEDOWN, 0 ); 関数を呼び出し、
コントロールにWM_VSCROLL メッセージを発行することにしました。

 でも・・・ まだ、表示スピードは満足できるものではありません。

これ以上速く表示する方法を探れなかったので、チェックBOXをコントロールに追加し、
スクロールなしモードを追加することとしました。

データサンプリング中画面

『5』 取り込みデータをクリップボードへのコピー機能のデバッグ

クリップボードへのコピーも正常でした。

選択部分をクリップボードへコピー
メモ帳に貼り付け

●USBデバイスドライバーのデバッグ

一番大変そうなデバイスドライバーのデバッグを遂に始めることになりました。
結果は、DDK、SDKサンプルを参考に作成した始めてのUSBデバイスドライバー のデバッグは
思った以上に大変なものとなりました・・・・。
SDK、DDKなどの説明はほとんどが英語のみであり、調べたい内容がどこに記載しているのかさえ
見つけるのに四苦八苦の状態でしたから・・・。
ここで取り上げるにはあまりにも内容が多いので割愛することにします・・・。