■29454 / ) |
Re[1]: ポーリング処理 |
□投稿者/ chobi (10回)-(2008/12/09(Tue) 23:10:23)
|
GPIBの動作の流れとしては (1) SRQがLOWに下がる(定期的にスキャンするのかな、WM(ウインドウメッセージ)でも掴まえるのかな・・ボードの仕様が全く分からない) (2) コントローラはシステム内のどのトーカがSRQを発したのかステータスバイトを送らせて調べる。(ポーリング処理) (3) 発見したら必要な処理を施す。(多分SRQを発信したトーカをリセットするのかな?専用のAPIがあるんじゃないですか?)
で、(3)の処理を同期処理するか、非同期処理をするかで 同期処理の場合、"GpibWaitSrqEvent"で(3)の処理が終わるまで、他の処理は止めてひたすら待つ 非同期処理の場合、(3)の処理が終わるまで他の処理は継続して、(3)が終了した時点で"CALLBACK lpOnSrqEvent"が呼ばれる という感じではないでしょうか。(GpibSetSrqEventを登録するか否かで"CALLBACK"が呼ばれるかどうかが決まる)
>まずここで疑問が…何を基準に任意のビットデータを指定すればよいのかわかりません。
多分、コールバック関数に渡したいデータがないのならばダミーデータでも入れといて使わなければ良いだけでしょう
>最初にコールバック関数を宣言するのですが、C言語ではvoidで宣言されていて、C#ではどのように宣言したらいいのかわかりません
C#でもVOIDで良いでしょう。コールバック関数の戻り値を受け取れる人はいませんから・・・ 通常コールバック関数では、(3)でリセットされたトーカの初期設定でもするのではないでしょうか?
とういような推論はいかがでしょうか?
|
|