ハンディターミナルはそれ自身単体で使用するわけではなく、 データファイルの送受信処理をパソコンと行い、 そのデータファイルのデータを使用して処理を進めることはよくあります。
それで今回は、ファイルの送受信を行う XFILE命令 について説明します。
私があるシステムで XFILE命令 を使った受信時は以下のコマンドでした。 フィールド末尾の空白ですが、データとしないと FIELD命令 で指定した分の桁数が確保されない気がしました。 でもファイルを読込んだ時には、文字列の右側の空白を取除く(トリム)必要があります。
受信と送信に分けて関数を作ってみました。
=====
2016/04/02:の時の情報
それで今回は、ファイルの送受信を行う XFILE命令 について説明します。
[書式]
XFILE "[ドライブ名:]ファイル名"[, "プロトコル指定"]
<引き数>
ドライブ名:ドライブ指定("A" OR "D")
<各ドライブに対応する通信プロトコル>
"A":Ymodem, BHT-Ir, BHT
"D":Ymodemのみ
ファイル名:ファイル指定
プロトコル指定:以下の各指定を文字列で行う。
■伝送方向:
・省略時(デフォルト):BHTからファイル送信
・"R"または"r" :パソコンまたは他BHTからファイル受信
■シリアル番号:
・省略時(デフォルト):シリアル番号の付加無し
・"S"または"s" :伝送ブロックにシリアル番号を付加
■水平パリティチェック(BCC):
・省略時(デフォルト):水平パリティの付加無し
・"P"または"p" :伝送ブロックに水平パリティを付加
■伝送モニタ:
・省略時(デフォルト):シリアル番号の表示無し
・"M"または"m" :伝送ブロックのシリアル番号を表示
■ファイル受信時のフィールド末尾の空白の扱い:
・省略時(デフォルト):空白をデータとして扱わない
・"T"または"t" :空白をデータとして扱う
■リンク確立時のタイムアウト時間:
・"1"~"8":30秒~240秒で30秒間隔
・"9" :タイムアウトなし
■ファイル名同一チェック:
・省略時(デフォルト):同一チェックを行う
(ファイル名で指定した名前と同じ
名前で送られてきたファイルのみ受信)
・"N"または"n" :同一チェックを行わない
(送信側と異なるファイル名にて受信可能)
■プロトコル指定の例
XFILE "TEST.DAT", "RSPMT1"この例はほぼ全てのプロトコル指定を行っています。 つまり、ファイル「TEST.DAT」の受信でシリアル番号の付加、水平パリティの付加、シリアル番号の表示、フィールド末尾の空白をデータ、 リンク確立時のタイムアウト時間30秒の指定です。
私があるシステムで XFILE命令 を使った受信時は以下のコマンドでした。 フィールド末尾の空白ですが、データとしないと FIELD命令 で指定した分の桁数が確保されない気がしました。 でもファイルを読込んだ時には、文字列の右側の空白を取除く(トリム)必要があります。
XFILE "TEST.DAT", "RPMT"
■XFILE命令 をラップした関数について
受信と送信に分けて関数を作ってみました。
'--------------------------------------- 'ファイル送信 '--------------------------------------- 'Function GfSndFile%(pintFp%, pstrSpeed$, pstrFile$, pstrOption$) '引 数: ' pintFp% :ファイル番号 ' pstrSpeed$ :送信スピード ' pstrFile$ :送信ファイル名 ' pstrOption$ :送信オプション '戻り値: ' GfSndFile% :送信OK(GcTrue%)NG(GcFalse%) '--------------------------------------- Function GfSndFile%(pintFp%, pstrSpeed$, pstrFile$, pstrOption$) On Error Goto GfSndFile.ErrProc OPEN "COM1:" + pstrSpeed$ AS pintFp% XFILE pstrFile$, pstrOption$ GfSndFile% = GcTrue% GfSndFile.Return '終了処理 CLOSE pintFp% On Error Goto 0 Exit Function '----- 'エラー処理 '----- GfSndFile.ErrProc GfSndFile% = GcFalse% Resume GfSndFile.Return End Function '--------------------------------------- 'ファイル受信 '--------------------------------------- 'Function GfRcvFile%(pintFp%, pstrSpeed$, pstrFile$, pstrOption$) '引 数: ' pintFp% :ファイル番号 ' pstrSpeed$ :受信スピード ' pstrFile$ :受信ファイル名 ' pstrOption$ :受信オプション("R")以外のオプション '戻り値: ' GfRcvFile% :受信OK(GcTrue%)NG(GcFalse%) '--------------------------------------- Function GfRcvFile%(pintFp%, pstrSpeed$, pstrFile$, pstrOption$) On Error Goto GfRcvFile.ErrProc OPEN "COM1:" + pstrSpeed$ AS pintFp% XFILE pstrFile$, "R" + pstrOption$ GfRcvFile% = GcTrue% GfRcvFile.Return '終了処理 CLOSE pintFp% On Error Goto 0 Exit Function '----- 'エラー処理 '----- GfRcvFile.ErrProc GfRcvFile% = GcFalse% Resume GfRcvFile.Return End Function
=====
2016/04/02:の時の情報
PR
コメント