AioSetAoCallBackProc関数を使用して、コールバック関数の登録を行います。
Ret = AioSetAoCallBackProc ( Id , CallBackProc , AoEvent , Param)
CallBackProcには、作成したコールバック関数のポインタを指定します。
各言語で以下のように設定してください。
コールバック関数名をCallBackProcとした場合
VB:Ret = AioSetAoCallBackProc(Id,
AddressOf CallBackProc,
AOE_END, 0)
VC:Ret = AioSetAoCallBackProc(Id, CallBackProc,
AOE_END, this);
AoEventには、イベント要因を以下の範囲からマクロもしくは数値で指定します。
AoEventはビット単位で以下のような意味を持ち、これらを組み合わせて指定可能です。
デバイスバッファとユーザーバッファで、使用できるイベント要因は異なります。
イベント要因 |
デバイスバッファ使用時 |
ユーザーバッファ使用時 |
マクロ |
値 |
DA変換開始条件成立イベント |
○ |
○ |
AOE_START |
00000002H |
リピート終了イベント |
○ |
○ |
AOE_RPTEND |
00000010H |
デバイス動作終了イベント |
○ |
○ |
AOE_END |
00000020H |
指定ジェネレーティング回数出力イベント |
○ |
× |
AOE_DATA_NUM |
00000080H |
指定転送数毎イベント |
× |
○ |
AOE_DATA_TSF |
00000100H |
ジェネレーティングクロック周期エラーイベント |
○ |
○ |
AOE_SCERR |
00020000H |
DA変換エラーイベント |
○ |
○ |
AOE_ADERR |
00040000H |
DA変換開始条件成立イベント
DA変換の開始条件が成立したときに発生するイベントです。
このイベントは、変換開始条件がソフトウェアの場合には無効になります。
リピート終了イベント
リピート動作が終了するたびにイベントを発生します。
デバイス動作終了イベント
リピートを含む、全ての動作が終了したときに発生するイベントです。
指定ジェネレーティング回数出力イベント
FIFOの場合、メモリ内のジェネレーティング数がAioSetAoEventSamplingTimes関数で設定した値まで減少した時にイベントを発生します。
条件を満たすごとに何度もイベントが発生します。
RINGメモリの場合、メモリから出力されるのジェネレーティング数がAioSetAoEventSamplingTimes関数で設定した値に一致した時にイベントを発生します。
リピート回数分のイベントが発生します。
Ret = AioSetAoEventSamplingTimes ( Id , AoSamplingTimes )
AoSamplingTimesにイベントを発生させるジェネレーティング回数を設定します。
メモリ形式がFIFOの場合、条件を満たすごとに何度もイベントが発生します。
RINGメモリの場合、リピート回数分のイベントが発生します。
指定転送数毎イベント
AioSetAoEventTransferTimes関数で設定された数のデータ転送が行われるたびに発生するイベントです。
指定転送数毎イベントを使用する場合、AioSetAoEventTransferTimes関数でイベントを発生させる転送数を設定します。
Ret = AioSetAoEventTransferTimes ( Id , AoTransferTimes )
AoTransferTimesにイベントを発生させる転送数を設定します。
ジェネレーティングクロック周期エラーイベント
ジェネレーティングクロック周期が速すぎて変換が停止するときに発生するイベントです。
DA変換エラーイベント
DA変換エラーが発生して変換が停止するときに発生するイベントです。
Paramにはコールバック関数に渡す任意のパラメータをポインタで設定します。