GpibSendData


機能

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

書式

Ret = GpibSendData (  Id, SendLen, SendBuf )

引数

Id [ VB.NET: Short ][ C, C++: short ][ C#: short ]

DevIDを使用する場合:

マスタモードで使用する場合:

GpibSetAddrInfoでデータを受信するスレーブ機器のアドレスをリスナに指定します。

トーカにはマスタ機器アドレスを指定してください。

(複数のスレーブ機器に同時にデータを送信する場合はこちらを使用してください)

スレーブモードで使用する場合:

GpibSetAddrInfoを実行する必要はありません。

EqpIDを使用する場合:

指定したEqpIDが持っているスレーブ機器のアドレスに送信します。

 

SendLen [ VB.NET: Integer ][ C, C++: long * ][ C#: ref int ]

送信するデータ数を設定、送信したデータ数を取得します。

(初期状態では送信したバイト数にデリミタは含まれません)

 

IN

1 ~ 2147483647(7FFFFFFFH)

送信するデータ数(バイト数)

OUT

 

送信したデータ数(バイト数)

 

SendBuf [ VB.NET: StringBuilder / Byte() ][ C, C++: char * ][ C#: string / byte[] ]

送信データを設定します。

戻り値

Ret [ VB.NET: Integer ][ C, C++: long ][ C#: int ]

 

0

正常終了

10001

無効なIDが指定された

10002

ドライバを呼び出せません

10912

SendLenがNULLポインタです

10913

SendBufがNULLポインタです

10921

アドレス指定情報が間違っています(DevIDを使用した場合のみ)

10940

非同期関数の実行中

20923

マスタ(コントローラ)でない時にアドレスを伴う通信を行いました

20941

非同期関数の強制終了

20942

強制終了キーによる終了

20944

タイムアウト

20945

接続機器なし(GPIBエラー)

初期値

なし

説明

SendLenにデリミタ値を含めたい場合はGpibSetStatusの設定で含めることができます。

デリミタのみのデータを送信したい場合はGpibSetDelimでデリミタをなしに設定し、デリミタをデータとして送信してください。

使用例

DevIDを使用する場合:

マスタモードの場合:

アドレス1のスレーブ機器とアドレス2のスレーブ機器に同時に同じデータ(*IDN?)を送信し、正常終了の場合に送信数を出力します。

C言語

short Talker, ListenerArray[15];

long SendLen;

char SendBuf[256]; 

Talker = 0;

ListenerArray[0] = 1;

ListenerArray[1] = 2;

ListenerArray[2] = -1;

Ret = GpibSetAddrInfo ( DevId, Talker, ListenerArray );

strcpy ( SendBuf, "*IDN?" );        

SendLen = strlen ( SendBuf );

Ret = GpibSendData ( DevId, &SendLen, SendBuf );

if ( Ret == 0 ) Printf ( "%ld\n", SendLen );

 

スレーブモードの場合:

マスタにデータを送信し、正常終了の場合に送信数を出力します。

C言語

long SendLen;

char SendBuf[256]; 

strcpy ( SendBuf, "*IDN?" );        

sendLen = strlen ( SendBuf );

Ret = GpibSendData ( DevId, &SendLen, SendBuf );

if ( Ret == 0 ) Printf ( "%ld\n", SendLen );

 

EqpIDを使用する場合:

指定したEqpIDの相手機器にデータ(IDN*)を送信し、正常終了の場合に送信数を出力します。

C言語

long SendLen;

char SendBuf[256]; 

strcpy ( SendBuf, "*IDN?" );        

SendLen = strlen ( SendBuf );

Ret = GpibSendData ( EqpId, &SendLen, SendBuf );

if ( Ret == 0 ) Printf ( "%ld\n", SendLen );

関連項目

GpibRecData | GpibSetDelim | GpibSetTimeOut | GpibSetAddrInfo | GpibSetEscape