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