N88BASICと新規関数に互換性はありません。
以下の関数対応表と変換例を参考にプログラムの移行を行う必要があります。
N88BASIC |
新規関数 |
|
●設定・テスト関数 |
||
END |
||
ISET IFC |
||
SET REN IRESET REN |
|
|
CMD DELIM |
||
CMD TIMEOUT |
||
IEEE(0) IEEE(1) IEEE(2) |
なし |
|
●送受信関数 |
||
PRINT@ |
||
WBYTE(マルチラインメッセージ) |
||
WBYTE(バイナリデータ) |
なし |
|
INPUT@ |
なし |
GpibRecData(代用) |
LINE INPUT@ |
||
RBYTE |
なし |
|
●シリアルポール関数 |
||
POLL |
||
IEEE(4) IEEE(5) IEEE(6) |
なし |
未対応 |
●パラレルポール関数 |
||
PPOLL |
なし |
未実装 |
IEEE(7) |
なし |
未実装 |
CMD PPR |
なし |
未実装 |
●SRQ送出関数 |
||
ISET SRQ STATUS |
||
●イベント発生関数 |
||
ON SRQ GOSUB |
なし |
未実装 |
SRQ ON SRQ OFF SRQ STOP |
なし |
未実装 |
N88BASIC |
プログラム内容 |
新規関数 |
100 ISET IFC 300 END |
戻り値用変数宣言 デバイス名を指定 デバイスID用変数宣言 IFCTimeを設定 デバイスを初期化 IFCを送信 終了処理 |
long Ret; char DeviceName[50] = "Gpib000"; short DevId; short IfcTime = 1; Ret = GpibInit ( DeviceName, &DevId ); Ret = GpibSendIFC ( DevId ); Ret = GpibExit ( DevId ); |
N88BASIC |
プログラム内容 |
新規関数 |
110 ISET REN |
Enableを有効に設定 RENを有効に設定 |
short Enable = 1; Ret = GpibChangeREN ( DevId, Enable ); |
290 IRESET REN |
Enableを無効に設定 RENを無効に設定 |
short Enable = 0; Ret = GpibChangeREN ( DevId, Enable ); |
N88BASIC |
プログラム内容 |
新規関数 |
120 CMD DELIM = 0 |
変数を宣言 Delimを設定 Eoiを設定 Eosを設定(0固定) デリミタ・EOIを設定 ※設定値が異なります |
short Delim, Eoi, Eos; Delim = 1; Eoi = 1; Eos = 0; Ret = GpibSetDelim ( DevId, Delim, Eoi, Eos ); |
N88BASIC |
プログラム内容 |
新規関数 |
130 CMD TIMEOUT = 10 |
変数を宣言 TimeOutを設定 タイムアウト値を設定 ※設定値が異なります |
long TimeOut; TimeOut = 1000; Ret = GpibSetTimeOut ( DevId, TimeOut ); |
N88BASIC |
プログラム内容 |
新規関数 |
●マスタモード |
||
200 PRINT @1; "*IDN?"@ |
データ数用変数宣言 アドレス配列用変数宣言 データ用変数宣言 トーカアドレスを指定 リスナアドレスを指定
アドレスをセット
データを設定 データ数を設定 設定したアドレスにデータを送信
|
long SendLen; short Talker, ListenerArray[15]; char SendBuf[256]; Talker = 0; ListenerArray[0] = 1; ListenerArray[1] = -1; Ret = GpibSetAddrInfo ( DevId, Talker, ListenerArray ); strcpy ( SendBuf, "*IDN?" ); SendLen = strlen ( SendBuf ); Ret = GpibSendData ( DevId, &SendLen, SendBuf ); |
●スレーブモード |
||
200 PRINT @; "*IDN?"@ |
データ数用変数宣言 データ用変数宣言 データを設定 データ数を設定 データを送信
|
long SendLen; char SendBuf[256]; strcpy ( SendBuf, "*IDN?" ); SendLen = strlen ( SendBuf ); Ret = GpibSendData ( DevId, &SendLen, SendBuf ); |
N88BASIC |
プログラム内容 |
新規関数 |
190 WBYTE &H5F, &H3F; |
コマンド用変数を宣言
UNTを設定 UNLを設定
コマンド送信 |
short CmdArray[255];
CmdArray[0] = 0x5f; CmdArray[1] = 0x3f; CmdArray[2] = -1; Ret = GpibSendCommands ( DevId, CmdArray ); |
N88BASIC |
プログラム内容 |
新規関数 |
●マスタモード |
||
210 LINE INPUT @1;A$
220 PRINT A$ |
データ数用変数宣言 アドレス配列用変数宣言 データ用変数宣言
トーカアドレスを指定 リスナアドレスを指定
アドレスをセット
最大データ受信数を設定 指定したアドレスからデータを受信
正常終了した場合 受信文字表示 |
long RecLen; short Talker, ListenerArray[15]; char RecBuf[256];
Talker = 1; ListenerArray[0] = 0; ListenerArray[1] = -1; Ret = GpibSetAddrInfo ( DevId, Talker, ListenerArray ); RecLen = 256; Ret = GpibRecData ( DevId, &RecLen, RecBuf ); if ( Ret == 0 ) { Printf ( "%s\n", RecBuf ); } |
●スレーブモード |
||
210 LINE INPUT @;A$
220 PRINT A$ |
データ数用変数宣言 データ用変数宣言 最大データ受信数を設定 指定したアドレスからデータを受信
正常終了した場合 受信文字表示 |
long RecLen; char RecBuf[256]; RecLen = 256; Ret = GpibRecData ( DevId, &RecLen, RecBuf ); if ( Ret == 0 ) { Printf ( "%s\n", RecBuf ); } |
N88BASIC |
プログラム内容 |
新規関数 |
250 POLL 1,DS1;2,DS2
260 PRINT DS1 270 PRINT DS2 |
アドレス用変数を宣言 ステータスバイト用の変数を宣言 SRQ用の変数を宣言 アドレス1設定 アドレス2設定
シリアルポールを実行
正常終了した場合 アドレス1のStbを表示 アドレス2のStbを表示
|
short AddrArray[15]; short StbArray[15]; short SrqArray[15]; AddrArray[0] = 1; AddrArray[1] = 2; AddrArray[2] = -1; Ret = GpibSPollAll ( DevId, AddrArray, StbArray, SrqArray ); if ( Ret == 0 ) { Printf ( "%ld\n", StbArray[0] ); Printf ( "%ld\n", StbArray[1] ); } |
N88BASIC |
プログラム内容 |
新規関数 |
150 STATUS = &H10 160 ISET SRQ |
変数を宣言 SRQ送出を設定 ステータスバイトを設定 SRQ・Stbを設定
|
short SrqSend, Stb; SrqSend = 1; Stb = 0x10; Ret = GpibSendSRQ ( DevId, SrqSend, Stb ); |