GpibRecData


機能

データの受信を行います。

書式

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