データの受信を行います。
Ret = GpibRecData ( Id, RecLen, RecBuf )
Id [ VB.NET: Short ][ C, C++: short ][ C#: short ]
DevIDを使用する場合:
マスタモードで使用する場合:
GpibSetAddrInfoでデータを送信するスレーブ機器のアドレスをトーカに指定します。
リスナにはマスタ機器のアドレスと他に同じデータを受信するスレーブ機器のアドレスを指定してください。
(1つのスレーブ機器から同時にデータを複数の機器で受信する場合はこちらを使用してください)
スレーブモードを使用する場合:
GpibSetAddrInfoを実行する必要はありません。
EqpIDを使用する場合:
指定したEqpIDが持っているスレーブ機器のアドレスから受信します。
RecLen [ VB.NET: Integer ][ C, C++: long * ][ C#: ref int ]
受信可能なデータ数設定、受信したデータ数を取得します。
(初期状態では受信したバイト数にデリミタは含まれません)
IN |
1 ~ 2147483647(7FFFFFFFH) |
受信可能な上限データ数(バイト数) |
OUT |
|
受信したデータ数(バイト数) |
RecBuf [ VB.NET: StringBuilder / Byte() ][ C, C++: char * ][ C#: out string / byte[] ]
受信データのバッファを設定します。
Ret [ VB.NET: Integer ][ C, C++: long ][ C#: int ]
0 |
正常終了 |
10001 |
無効なIDが指定された |
10002 |
ドライバを呼び出せません |
10952 |
RecLenが設定範囲外 |
10962 |
RecLenがNULLポインタです |
10963 |
RecBufがNULLポインタです |
10971 |
アドレス指定情報が間違っています(DevIDを使用した場合のみ) |
20973 |
マスタ(コントローラ)でない時にアドレスを伴う通信を行いました |
20990 |
他の非同期関数が実行中 |
20991 |
非同期関数の強制終了 |
20992 |
強制終了キーによる終了 |
20993 |
受信バッファがFULLになりました |
20994 |
タイムアウト |
20995 |
接続機器なし(GPIBエラー) |
その他のエラー(参照:エラーコード詳細)
なし
RecLenにデリミタ値を含めたい場合はGpibSetStatusの設定で含めることができます。
戻り値が20993の場合、残りのデータを以下の設定で受信することができます。
DevIDを使用する場合:
GpibSetAddrInfoでトーカ・リスナともに-1を指定し、GpibRecDataを実行してください。
EqpIDを使用する場合:
GpibRecDataを再度実行してください。
DevIDを使用する場合:
マスタモードの場合:
アドレス1のスレーブ機器からデータを受信し、アドレス2のスレーブ機器も同時に同じデータを受信し、正常終了の場合に受信数と受信データを出力します。
C言語 |
short Talker, ListenerArray[15]; long RecLen; char RecBuf[256]; Talker = 1; ListenerArray[0] = 0; ListenerArray[1] = 2; ListenerArray[2] = -1; Ret = GpibSetAddrInfo ( DevId, Talker, ListenerArray ); RecLen = 256; Ret = GpibRecData ( DevId, &RecLen, RecBuf ); if ( Ret == 0 ) { Printf ( "%ld\n", RecLen ); Printf ( "%s\n", RecBuf ); } |
スレーブモードの場合:
マスタ機器からデータを受信し、正常終了の場合に受信数と受信データを出力します。
C言語 |
long RecLen; char RecBuf[256]; RecLen = 256; Ret = GpibRecData ( DevId, &RecLen, RecBuf ); if ( Ret == 0 ) { Printf ( "%ld\n", RecLen ); Printf ( "%s\n", RecBuf ); } |
EqpIDを使用する場合:
指定したEqpIDの相手機器からデータを受信し、正常終了の場合に受信数と受信データを出力します。
C言語 |
long RecLen; char RecBuf[256]; RecLen = 256; Ret = GpibRecData ( EqpId, &RecLen, RecBuf ); if ( Ret == 0 ) { Printf ( "%ld\n", RecLen ); Printf ( "%s\n", RecBuf ); } |
GpibSendData | GpibSetDelim | GpibSetTimeOut | GpibSetAddrInfo | GpibSetEscape