技術情報

アプリケーション開発ガイド -受信データを読み出す(プリンタからの応答確認など)-

受信データを読み出す

機能

受信バッファから受信データを読み出します。

書式

詳細説明

データを受信すると、データは受信バッファに格納され、受信データを処理するためには、バッファからデータを読み出す必要があります。
プリンタから応答を受信する場合などに使用します。

LOC関数で、受信バッファ内のデータ数を確認し、INPUT$関数で、そのデータ数を指定して読み出してください。
INPUT$関数は、lenで指定された文字数分だけ、受信バッファからデータを読み出しますが、受信バッファ内のデータ数がlenより少ない場合、len以上になるまで待ち続けます。そのため、受信トラブルにより受信データが欠落すると、INPUT$関数は無限に待ち続けることになります。

filenoには、通信デバイスファイルをオープンする際に指定した値を指定してください。

使用例

データを受信するまで待って、受信データを読み出す

  private recvlen%
private recvdata$
open "COM1:115200" as #1
wait 0,&h08                          '受信するまで待つ
recvlen% = loc(#1)                   '受信バッファ内のデータ数を確認
recvdata$ = input$(recvlen%, #1)     '受信データを読み出し
print recvdata$                      '受信データを表示
close #1

データを受信するか、タイムアウト(10秒)を待つ。受信した場合、受信データを読み出す

  private recvlen%
private recvdata$
open "COM1:115200" as #1
timea = 100
wait 0,&h18                          '受信するか、タイムアウトまで待つ
if loc(#1) > 0 then
recvlen% = loc(#1)                 '受信バッファ内のデータ数を確認
recvdata$ = input$(recvlen%, #1)   '受信データを読み出し
print recvdata$                    '受信データを表示
close #1
else
if timea = 0 then
print "Timeout"
close #1
endif
endif

お問合せ

QBdirect