C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 53 を表示中)
■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)でリセットされたトーカの初期設定でもするのではないでしょうか?

とういような推論はいかがでしょうか?
返信 編集キー/


管理者用

- Child Tree -