IBCMDA
ボードレベル
目的
GPIBコマンドを非同期に送信します。
形式
C
unsigned long ibcmda (int ud, const void *cmdbuf, size_t count) |
Visual Basic
CALL ibcmda (ud%, cmdbuf$) |
または
status% = ilcmda (ud%, cmdbuf$, count&) |
対話式制御(使用に関する注意)
ibcmda cmdbuf
入力
ud | ボードのユニットデスクリプタ |
cmdbuf | 送信するコマンドバイトのバッファ |
count | 送信するコマンドバイト数 |
出力
関数からの戻り値 | Ibstaの値 |
説明
ibcmdaは、countバイトをcmdbufからGPIB上にコマンドバイト(インタフェースメッセージ)として送信します。転送されたコマンドバイト数はグローバル関数Ibcntに返されます。インタフェースメッセージの定義は、IEEE 488コマンドメッセージの一覧を参照してください。
コマンドバイトは、GPIBの状態を構成するために使用します。GPIBデバイスに命令を送信するためのものではありません。デバイス特定の指示を送信するには、ibwrtを使用します。
非同期のI/Oコール(ibcmda、ibrda、ibwrta )は、I/O処理中にアプリケーションがGPIB以外の処理を実行できるように設計されています。非同期のI/Oが開始されると、後続のNI-488.2コールは厳しく制限されます。実行中のI/O処理を干渉するようなコールはすべて拒否されます。 この場合、ドライバがEOIPを返します。
I/Oが完了したら、アプリケーションはNI-488.2ドライバと再同期化する必要があります。再同期化を行うには、以下のいずれかのコールを使用してください。
ibwait | 返されたIbstaにCMPLが含まれている場合、ドライバとアプリケーションは再同期化されています。 |
ibnotify | ibnotify Callbackに渡されたIbstaの値にCMPLが含まれている場合、ドライバとアプリケーションは再同期化されています。 |
ibstop | I/Oが取り消され、ドライバとアプリケーションが再同期化されます。 |
ibonl | I/Oが取り消されインタフェースはリセットされて、ドライバとアプリケーションが再同期化されます。 |
発生する可能性のあるエラー
ECIC | インタフェースがCIC(Controller-In-Charge: コントローラインチャージ)でありません。 |
EDVR | NI-488.2ドライバの構成またはインストールが正しくありません。 |
EHDL | udが無効または範囲外です。 |
ELCK | 他の処理によりロックされているため、要求された動作が行われませんでした。 |
ENEB | インタフェースが取り付けられていないか、正しく構成されていません。 |
ENOL | GPIBにリスナがありません。 |
EOIP | 非同期I/Oの処理中です。 |