ハンディターミナルはそれ自身単体で使用するわけではなく、 データファイルの送受信処理をパソコンと行い、 そのデータファイルのデータを使用して処理を進めることはよくあります。
それで今回は、ファイルの送受信を行う 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
コメント