IBRD

NI-488.2

IBRD

ボードレベル/デバイスレベル


目的

デバイスからユーザバッファにデータを読み取ります。

形式

C

unsigned long ibrd (int ud, void *rdbuf, size_t count)

Visual Basic

CALL ibrd (ud%, rdbuf$)

または

status% = ilrd (ud%, rdbuf$, count&)

対話式制御(使用に関する注意)

ibrd count

入力

ud ボードまたはデバイスデスクリプタ
count GPIBから読み取るバイト数

出力

rdbuf データが読み取られるバッファのアドレス
関数からの戻り値 Ibstaの値

説明

デバイスレベル

udがデバイスデスクリプタの場合、ibrdはGPIBのアドレスを指定し、countバイトまでのデータ読み取り、rdbufで指定されたバッファにデータを入れます。countバイトのデータを受信するかENDを受信すると、操作は正常終了します。タイムアウト時間内に転送が完了できないと、処理はエラーで終了します。転送された実際のバイト数はIbcntグローバル関数に返されます。

ボードレベル

udがボードデスクリプタの場合、ibrdcountバイトまでのデータをGPIBデバイスから読み取りrdbufによって指定されたバッファにそのデータを配置します。ボードレベルのibrdは、GPIBがすでに正しくアドレス指定されているものと仮定します。countバイトのデータを受信するかENDを受信すると、操作は正常終了します。転送をタイムアウト時間内に完了できなかったり、あるいはボードがCICでない場合にCICがGPIB上でDCL(Device Clear: デバイスクリア)を送信すると、操作はエラーで終了します。転送された実際のバイト数はIbcntグローバル関数に返されます。

発生する可能性のあるエラー

EABO タイムアウト時間内にcountバイトまたはENDを受信しなかったか、あるいは読み取り処理の開始後にDCL(Device Clear: デバイスクリア)を受信しました。
EADR ボードレベル: GPIBが正しくアドレス指定されませんでした。ibcmdを使ってGPIBをアドレス指定してください。
デバイスレベル: デバイスのGPIBアドレスとアクセスボードのGPIBアドレス間に競合が存在します。代わりにibconfigIbcPADIbcSAD)を使用してください。
EARG バッファまたはcountが無効です。
EBUS デバイスレベル: デバイスがGPIBに接続されていません。
ECIC デバイスレベル: アクセスボードがCICでありません。デバイスレベルのコールとバスの管理を参照してください。
EDVR NI-488.2ドライバの構成またはインストールが正しくありません。
EHDL udが無効または範囲外です。
ELCK 他の処理によりロックされているため、要求された動作が行われませんでした。
ENEB インタフェースが取り付けられていないか、正しく構成されていません。
EOIP 非同期I/Oの処理中です。