N88BASICからの移行


N88BASICと新規関数に互換性はありません。

以下の関数対応表と変換例を参考にプログラムの移行を行う必要があります。

N88BASIC

新規関数

●設定・テスト関数

END

変換例

GpibExit

ISET IFC

GpibInit

GpibSendIFC

SET REN

IRESET REN

変換例

GpibChangeREN

 

CMD DELIM

変換例

GpibSetDelim

CMD TIMEOUT

変換例

GpibSetTimeOut

IEEE(0)

IEEE(1)

IEEE(2)

なし

GpibGetStatus

●送受信関数

PRINT@

変換例

GpibSendData

WBYTE(マルチラインメッセージ)

変換例

GpibSendCommands

WBYTE(バイナリデータ)

なし

GpibSendData

INPUT@

なし

GpibRecData(代用)

LINE INPUT@

変換例

GpibRecData

RBYTE

なし

GpibSendCommands

GpibRecData

●シリアルポール関数

POLL

変換例

GpibSPollAll

IEEE(4)

IEEE(5)

IEEE(6)

なし

未対応

●パラレルポール関数

PPOLL

なし

未実装

IEEE(7)

なし

未実装

CMD PPR

なし

未実装

●SRQ送出関数

ISET SRQ

STATUS

変換例

GpibSendSRQ

●イベント発生関数

ON SRQ GOSUB

なし

未実装

SRQ ON

SRQ OFF

SRQ STOP

なし

未実装

 


 

ISET IFC, END ⇒ GpibInit, GpibSendIFC, GpibExit

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 );

TOP

 


 

ISET REN, IRESET REN ⇒ GpibChangeREN

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 );

TOP

 


 

CMD DELIM ⇒ GpibSetDelim

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 );

TOP

 


 

CMD TIMEOUT ⇒ GpibSetTimeOut

N88BASIC

プログラム内容

新規関数

 

 

130   CMD TIMEOUT = 10

変数を宣言

TimeOutを設定

タイムアウト値を設定

※設定値が異なります

long TimeOut;

        TimeOut = 1000; 

        Ret = GpibSetTimeOut ( DevId, TimeOut );

TOP

 


 

PRINT @ ⇒ GpibSendData

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 );

TOP

 


 

WBYTE(マルチライン・メッセージ) ⇒ GpibSendCommands

N88BASIC

プログラム内容

新規関数

 

 

 

 

 

190   WBYTE &H5F, &H3F;  

コマンド用変数を宣言

 

UNTを設定

UNLを設定

 

コマンド送信

short CmdArray[255];

 

        CmdArray[0] = 0x5f; 

        CmdArray[1] = 0x3f; 

        CmdArray[2] = -1; 

        Ret = GpibSendCommands ( DevId,

                CmdArray );

TOP

 


 

LINE INPUT @ ⇒ GpibRecData

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 );

        }

TOP

 


 

POLL ⇒ GpibSPollAll

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] );

        }

TOP

 


 

ISET SRQ, STATUS ⇒ GpibSendSRQ

N88BASIC

プログラム内容

新規関数

 

 

150   STATUS = &H10

160   ISET SRQ

変数を宣言

SRQ送出を設定

ステータスバイトを設定

SRQ・Stbを設定

 

 short SrqSend, Stb;

        SrqSend = 1;

        Stb = 0x10;

         Ret = GpibSendSRQ ( DevId,

                SrqSend, Stb );

TOP