ハンディターミナルの通信 転送ユーティリティ

ハンディターミナルの通信には、転送ユーティリティを使うことがあります。

転送ユーティリティのメッセージのメモです。

No エラー メッセージ メモ
00 Er_NOERROR 通信は正常終了しました
01 Er_NOFILE 指定したファイル/パスが見つかりません
02 Er_FILENAME 指定ファイル名の書式が不正です
03 Er_RECORDS 指定ファイルのレコード件数が範囲外です
04 Er_DIGITS 項目桁数が範囲外です
05 Er_ITEMS 項目数が範囲外です
06 Er_SUMOFDIGITS レコード長が範囲外です
07 Er_PROGWITHPARAM 項目桁数は必要ありません
08 Er_DATWITHOUTPARAM フィールドファイルの項目桁数が不正です
09 Er_UNDEFOPT 入力したオプションが不正です
30 Er_INVALIDPROTOCOL 無効なプロトコルです
40 Er_IDMORETHN ID番号が違います
51 Er_TXTIMEOUT 通信エラーです(送信待ちタイマがタイムアウトした)
52 Er_RXTIMEOUT 通信エラーです(応答待ちタイマがタイムアウトした)
53 Er_TXNAKEXPIRED 通信エラーです(NAK送信が連続10回になった)
54 Er_RXNAKEXPIRED 通信エラーです(NAK受信が連続10回になった)
55 Er_RECEIVEEOT 通信エラーです(送信局が、テキスト送信に対してEOT応答を受信した)
60 Er_TRNASMITTING 送信中です
61 Er_RECEIVING 受信中です
70 Er_HEADINGTEXT 受信したヘッディングテキストが不正です
71 Er_PATHNOTFOUND 指定したパスが見つかりません
72 Er_DISKFULL ディスクがいっぱいです
73 Er_NOMEMORY 表示用メモリが足りません
74 Er_NOTIMER 使用できるタイマがありません
75 Er_NOCOMPORT 通信ポートが使用できません
76 Er_RECORDFORMAT レコードのフォーマットが不正です
77 Er_FNAMCHECKER 受信するファイルと指定したファイルのファイル名が異なります
90 Er_ABORT 中断ボタンが押されました
91 Er_COMCANCEL 通信先から中断されました
(注)
YmodemのV1.13より、”02: Er_FILENAME”エラーはこのエラーになりました
 通信オプション設定を確認する。

フィールド情報等

99 Er_GENERALFAIL その他のエラーが発生しました

BHTの実行時エラー

主なエラーと意味、対策など
(詳細はマニュアル参照)

エラー番号
(16進)
意味と対策など
0 システムの内部要因によるエラー。
1 NEXT に対応するFOR がありません。
2 文法エラー
3 RETURN に対応するGOSUB がありません。
4 DATA ステートメントがありません。
READ ステートメントで読むデータがもうありません。)
5 パラメタの値が範囲外です。
6 演算結果が許容範囲をこえています。
7 メモリが足りません。(ネストが深すぎるなど)
8 配列が宣言されていません。
9 添字の値が範囲外です。
(添字の値が配列のサイズをこえているか、次元の指定が宣言と異なっています。)
0A 二重宣言(配列が二重に宣言されました。)
0B 0による除算が実行されました。
0C CASE およびEND SELECT に対応するSELECT がありません。
0D END DEF またはEXIT DEF ステートメントが、DEF FN ステートメントブロックの外で実行されました。
0E 実引数の値が仮引数の型の範囲を超えています
仮引数とローカル変数の数の合計が範囲外です。(合計数が254 を越えました。)
0F 文字列長が範囲外です。
10 式が長すぎるか、複雑すぎます。
11 アプリケーションスタックオーバーフロー
12 スコープ違反です。
14 エラーが発生していないのにRESUME ステートメントが実行されました。
(エラー割込み処理ルーチンの外でRESUME ステートメントが実行されました。)
1F CALL ステートメントで、範囲外の機能番号が指定されました。
32 ファイルタイプが間違っています。
33 受信テキストのフォーマットが正しくありません。
34 ファイル名かファイル番号が正しくありません。
(指定されたファイルはオープンされていません。)
35 ファイルが見つかりません。
36 ファイルタイプが正しくありません。
(ステートメントまたは関数と、ファイルタイプ(データファイル、通信デバイスファイル、バーコードデバイスファイル)が矛盾しています。)
37 ファイルはオープン済みです。
(オープン済みのファイルに対してOPEN ステートメントが実行されました。)
38 ファイル名が受信ヘッダのものと異なっています。
39 ファイル数が多すぎます。
3A ファイル番号の値が範囲外です。
3B レコード数が、定義された最大値をこえました。
3C FIELD オーバーフロー
(FIELD ステートメントで指定されたレコード長が、255 バイトをこえています。)
3D FIELD ステートメントで指定されたフィールド幅が、ファイルと異なっています。
→ファイルを削除して実行する。
(ファイルレイアウトを変更して、PD4だけ入れ替えて実行したときなどに発生)
3E FIELD ステートメントが実行されていないのに、PUT またはGET ステートメントが実行されました。フィールド変数のスコープが範囲外です。
3F レコード番号が正しくありません。
(レコード番号の値が範囲外です。)
40 パラメタが設定されていません。
(ID が設定されていません。)
41 ファイルが壊れています。
42 読み出し専用ファイルに書き込もうとしました。
43 フラッシュROM 上のファイルは変更できません。
読み出し専用のファイルは変更できません。
45 同時オープンが禁止されているデバイスファイルをオープンしようとしました。
46 通信エラーが発生しました。
47 通信が異常終了したか、クリアキーによって中断されました。
48 通信タイムアウト
(指定された時間内にCS 信号を受信できませんでした。)
49 受信したプログラムファイルが不正です。
4A レコード件数が多すぎます。
(BHT/BHT-Ir プロトコル指定時)
4B 指定プロトコルと、通信相手のプロトコルが異なります。
(Ymodem プロトコル指定時)
6F ファイルが既に存在しています。
90 ファイル受信時、解凍に失敗しました。
(Ymodem プロトコル指定時)
A0 画像データが不正です。
(サイズが大きすぎます。データが壊れています。)
A1 画像データ表示に失敗しました。
A2 画像データ表示に失敗しました。
F0 引数の数が異なります。
F1 引数の型が異なります。
F2 文字列変数領域が不足しています。
→古い機種から 新しい機種に変えたときに発生することがある。
“SCREEN.FN3” 1 など
100 通信経路の指定に失敗しました。
101 通信経路の接続に失敗しました。
102 通信経路が指定されていません。
103 すでに通信経路が接続されています。
104 すでに通信経路が切断されています。
105 電源断を検出しました。
106 TCP/IP モジュールの内部要因エラー
107 TCP/IP モジュールが起動していません。
108 TCP/IP モジュールの使用するメモリが不足しています。
110 2XX 以外の応答を受け取りました。
111 ファイルがクローズされていません。
201 ソケットの接続はできません。
202 FTP 転送するファイルが見つかりません。
209 ソケット識別子が無効です。
20D 切断せず異なるFTP サーバに接続しようとした。
216 パラメタの1 つが無効です。FTP ハンドルが無効です。
パラメタの1 つが無効か、ソケットがすでにバインドされています。
218 ソケット数が多すぎます。
224 ソケットにアドレスを割り付け中です。
225 前回のソケットのクローズが完了していません。
228 受信する最大データ数が小さすぎます。
229 指定したソケットが接続先のソケットと一致しません。
22A このオプションが指定のレベルで認識されません。
22B このプロトコルファミリは、指定したプロトコルタイプおよびプロトコルに対応していません。
22F 指定したアドレスファミリはこのソケットでは不正です。
230 指定IP アドレスはすでに使用されています。
231 指定したアドレスが不正です。
236 相手側からRST を受信し、コネクションが切れました。
237 システム領域のメモリが足りません。
238 ソケットはすでに接続されています。
239 ソケットが接続されていません。
23A ソケットがクローズされています。(TCP ソケットのみ)
23C タイムアウトが発生しました。
23D 接続に失敗しました。
293 通信経路上に問題が発生しました。
241 ホストまでの接続経路がありません。
295 ログイン要求したがユーザがありません。
400 設定値を読み出せませんでした。
(書き込めませんでした。)
401 SS 無線通信デバイスファイルまたは微弱無線通信デバイスファイルのオープンに失敗しました。
450 無線通信デバイスからの応答がありません。
503 CU が他のBHT とリンク確立されています。
504 既にCU 設定の実行中です。
505 タイムアウト
506 サポートしていない通信速度です。
600 Bluetooth 通信デバイスのオープンに失敗しました。
601 接続に失敗しました。
602 接続処理がタイムアウトしました。
620 リモートデバイスと接続されていません。
610 Bluetooth 通信デバイスのオープンに失敗しました。
621 リモートデバイス名の獲得に失敗しました。
622 Bluetooth 通信デバイスからの応答がありません。
630 サービス検索に失敗しました。
631 サービス検索処理がタイムアウトしました。
640 低消費電力モードへ遷移できませんでした。
641 既に低消費電力モードに遷移しています。

BHTで使用するファイルの拡張子

ファイルの拡張子

ファイルの拡張子は 自由に決めていいのですが、以下の拡張子には特別な意味があります。

拡張子 説明
PD4 プログラムファイル
FNT フォントファイル
LB4 ライブラリファイル

BHTの各種設定の取り決め

BHTにはいろんな機種があり、プログラミングする上で気にする部分は次の内容です。

仕様 格納できる値 備考
画面のサイズ
QVGA?
QVGAでの文字の表示 現行機種の多くの場合、QVGAサイズの機種が多い。
フォントサイズ フォントの大きさ

フォント
のサイズ
画面モード 文字サイズ
横x縦(半角)
表示文字
横x縦(半角)
標準 ANK 12x16 20x20
漢字モード 30x30(15x30) 8x10(16x10)
ANK 12x16 20x20
漢字モード 24x24(12x24) 10x13(20x13)
40 40x40(20x40) 6x8(12x8)
30 30x30(15x30) 8x10(16x10)
24 24x24(12x24) 10x13(20x13)
16 16x16(8x16) 15x20(30x20)
文字の大きさは、フォントサイズ、画面モード、倍角の3つの属性で決まります

フォントサイズは、OUTステートメントで指定
OUT &h6080, 0 ‘ 標準フォント
OUT &h6080, 1 ‘ 小フォント
OUT &h6080, 40 ‘ 縦横40ドット
etc.

画面モードは、SCREENステートメントで指定
SCREEN 0 ‘ ANKモード
SCREEN 1 ‘ 漢字モード

倍角には、以下の4つがあります。
・ 倍角しない
・ 横倍角(文字幅が2倍)
・ 縦倍角(文字高さが2倍)
・ 4倍角(文字幅,高さ共に2倍)

スキャンできるコード 通常のバーコードのみ EAN-13/-8(JAN-13/-8),UPC-A/-E,UPC/EAN(アドオン付 き),Interleaved 2of5,CODABAR(NW-7),CODE39,CODE93,CODE-128、GS1-128(EAN-128),STF,RSS(GS1 DataBar)
QRコードも可能 QRコード、マイクロQRコード、SQRC、iQRコード、PDF417、マイクロPDF417、Maxiコード、DataMatrix(ECC200)、GS1 Composite
通信方法 有線で行う(YModem等) 送受信後のファイルの処置を考慮する。
無線で行う(FTP等) 以下を確認する
・接続するWanのセキュリティ関係(SSIDやパスワード等)
・自BHTのIPアドレス、サブネットマスクの割り当て
・接続先のIPアドレス、FTPなら接続用のユーザー名、パスワードや接続先のサーバサービスなど
リジューム 電源投入時、最初からスタートさせる
電源を落とした状態からの復帰 無線接続などは切れている状態なので、プログラム側で再接続などの工夫をする必要がある。
自動パワーオフ 自動パワーオフをする 自動パワーオフすると、電池の持ちは向上すると思われるが、次に電源入れた時の挙動、とくにリジュームオンの時の対処をプログラミング時に考慮すること。
電源ボタンの押下時間 通常は3秒。 これを長くすることで、誤操作を防止する。
ガベージ ガベージのタイミング 頻繁過ぎるとメモリを痛めるので頻度を考慮する。