イベントを使用すると、デバイス動作中に発生した様々な状態(変換終了、エラー発生など)をアプリケーションプログラムへ通知することができます。
イベント通知の際に渡されるパラメータによって、どんなイベントが発生したのかを取得し、イベントによって処理を振り分けることができます。
イベントの通知には次の2種類の方法があります。
メッセージ通知
デバイスドライバから、Win32APIのPostMessage関数を実行してアプリケーションにメッセージを通知する方法です。
一般的によく使用されるイベント通知方法です。
通知の際にコールされるハンドラの作成方法は、使用する開発言語によって異なります。
Windowハンドルを持たないアプリケーション(コンソールアプリケーション等)では使用できません。
イベントメッセージルーチンの作成方法
Visual Basic .NET
Visual C#
Visual C++ (MFC)
コールバック関数
あらかじめ作成したコールバック関数を登録しておき、通知の際デバイスドライバは登録された関数を直接呼び出します。
ポインタや関数ポインタの扱いが必要になりますが、コード量が少なくシンプルです。
Windowsメッセージ通知よりも高速に動作し、Windowハンドルを持たないアプリケーション(コンソールアプリケーション等)でも使用できます。
コールバック関数の作成方法
Visual Basic .NET
Visual C#
Visual C++ (MFC)
Python
コールバック関数内の処理は簡素にし、すぐにOSへ処理を戻すようにしてください。
特に、USBデバイスを利用する場合、コールバック処理中は各ステータスが更新されません。あらかじめ、ご了承願います。
ボードデバイス | USBデバイス | |
デバイスステータス
AioGetAiStatus AioGetAoStatus AioGetCntStatus |
常に更新されます | ステータスは更新されません |
エラーステータス
|
常に更新されます | ステータスは更新されません |
サンプリング回数
AioGetAiSamplingCount AioGetAiSamplingData |
常に更新されます | サンプリング回数は更新されません |