■機能 データの送信を行います。VBでBinary送信を行う場合はGpTalkExBinaryを使用してください。
■書式
(VB.NET用)
Dim Srlen, Ret As Integer
Dim Cmd(xxxx) As Integer ' (xxxxはコマンド配列数のMax値を指定)
Dim Srbuf As String
Ret = GpTalkEx(Cmd, Srlen, Srbuf)
(C言語用)
DWORD Srlen, Ret;
DWORD *Cmd;
BYTE *Srbuf;
Ret = GpTalkEx(Cmd, &Srlen, Srbuf);
(C#用)
uint Srlen, Ret;
uint[] Cmd = new uint[xxxx]; /* (xxxxはコマンド配列数のMax値を指定) */
string Srbuf;
Ret = gpib.TalkEx(Cmd, out Srlen, Srbuf);
(Python用)
Srlen, Ret = ctypes.c_ulong(), ctypes.c_ulong()
Cmd = (ctypes.c_ulong * xxxx)() # (xxxxはコマンド配列数のMax値を指定)
Srbuf = (ctypes.c_ubyte * xxxx)() # (xxxxはデータ数のMax値を指定)
Ret.value = GpibPy.GpTalkEx(Cmd, ctypes.byref(Srlen), Srbuf)
■モード マスタモード/スレーブモード
■引数
Cmd : コマンド配列
[0] トーカ+リスナ数(=リスナ数+1)
(スレーブモード=0)
[1] トーカアドレス
[2] リスナアドレス
[3] リスナアドレス
・
・
Srlen : (入力)送信バイト長(1Mbyte Max)
(出力)実際に送信したバイト長
Srbuf : 送信データ
SrbufB : 送信データ(Binaryデータ用)
Ret : 終了情報(戻り値)
0 : 正常終了
80 : 初期化未実行
140 : 非同期関数の実行中
240 : ESCキーが押された
242 : アドレス指定ミス
243 : バッファ指定エラー
252 : GPIBエラー
254 : タイムアウト
255 : パラメータエラー
(詳細は「戻り値一覧」参照)
■補足
①GpTalk()と比較して次のような違いがあります。
実際に送信したバイト数を受け取ることができます。
GpBoardstsEx()の設定(32H)により、自動的に送信するデリミタをバイト数に含めることができます(デフォルトではカウントしません)。
GpBoardstsEx()の設定(31H)により、デリミタを自動的に送信しないようにすることができます(デフォルトでは送信します)。
②コマンド配列についてCmd[0]には送出するコマンド数を与えますので、スレーブモード時はCmd[0]=0としてください。
③送信データ長=0のときには、1Mbyteを送信します。