通信APIテスター for Serial device monitor Readme.txt 2004/05/25 Hideki Kurihara http://hp.vector.co.jp/authors/VA038157/ ■免責 本ソフトウエアを運用された結果の影響については、作者は免責とさせていただきます。 ■通信APIテスター for Serial device monitorとは 1)プラットホームSDKにコミュニケーション関数として定義されている全APIをボタン操作により、個々に呼び出す事ができます。 2)デバイス制御ブロック(DCB)の全パラメーターを個々に設定する事ができます。 3)Serial device monitorと組み合わせて使用することにより、API呼び出しによりデバイスドライバーに発生するIRPを観察することができます。 4)Serial device monitorのモニター内容と通信APIの対応を把握していただく事を主な目的としたプログラムです。Serial device monitorをお持ちでなくても、通信APIの学習や、ちょっとしたテスト等に役立つかもしれません。 ※通信APIテスターなどと、おおげさな名前を付けていますが、単に通信APIをボタン操作により呼び出すだけのプログラムです。(^^; ■動作環境  Windows NT 4.0 (SP6a)  Windows 98  Windows Me  Windows 2000  Windows XP  Windows Server 2003 ■サポートについて  ご質問などに関しては以下のサイトの掲示板で、できる範囲でお答えします。  ただし、サポート義務を負うものではありません。  http://homepage3.nifty.com/j1/ ■インストール インストーラーは用意しておりません。 アーカイブを解凍後、CAPITest.exeを実行してお使いください。 ■アンインストール レジストリは使用していません。アーカイブを解凍して得たファイルを全て削除してください。 ■使い方 ・このプログラムは通信APIの動作を把握している、あるいは、把握する事ができる人を対象にしています。 ・各通信APIの動作についてはプラットホームSDKを参照してください。 ・各ボタンに対応する関数の実行結果はLogダイアログボックス内に表示されます。  以下に一般的な通信APIの呼び出し例を示します。 ・Serial device monitorをお持ちの場合は、モニター準備を先に行ってください。 【初期化処理】 1)対象とする通信ポートをコンボボックスから選択します。 2)CreateFile   ・CreateFileが成功すると各ボタンが有効になります。 3)BuildCommDCB   ・通信パラメーターを設定してください   ・BuildCommDCBが成功するとStructure->DCBがUNDEFINEからDEFINEにかわります。    (BuildCommDCBが作成したDCBが記憶されます) 4)DCB ButtonをクリックするとDCB設定ダイアログボックスが表示されます。   ・DCBパラメーターを設定してください 5)SetCommState   ・DCBの指定に従って通信デバイスが構成されます。 6)SetTimeouts   ・タイムアウトパラメーターを設定してください 7)SetCommMask   ・監視するイベントパラメーターを設定してください 8)EscapeCommFunction   ・必要なファンクションを設定してください 9)SetupComm   ・Queueサイズを設定してください 10)PurgeComm   ・全てのチェックボックスをチェックして初期化します。 【終了処理】 1)EscapeCommFunction   ・必要なファンクションを設定してください 2)CloseHandle   ・各ボタンが無効になります。 【オーバーラップ I/O】  本プログラムではCreateFile時にはオーバーラップ I/O処理を行うようにプログラムしています。以下の3つの関数は処理の完了待ちのプログラムループを持ちます。完了待ち中はWaitダイアログボックスが表示されます。  1)ReadFile  2)WriteFile  3)WaitCommEvent  ReadFile  ・ReadFileボタンの右にあるlengthに読み出したいデータの長さを指定します。  ・読み出されたデータは上記lengthの右のエディットボックスに表示されます。  ・指定した長さのデータが存在しない場合は、タイムアウト条件に従ってWaitします。  WriteFile  ・WriteFileボタンの右にあるエディットボックスに書き込みたいデータを入力します。  ・制御線の状態等により送信待ちになるときにはWaitします。  WaitCommEvent  ・SetCommMaskにより指定されたイベントが発生するまでWaitします。 【その他の関数】 ・必要に応じて、その他の関数を組み合わせて通信デバイスの状態の判断をし、必要な処理をしてください。 ※特にClearCommErrorは通信制御に必要な重要な情報を提供します。 以上