最近のトラックバック

  • event (夢茶爺&苦茶爺のPC奮戦備忘録)

カウンタ

おすすめ本

AccRanking

« BHT-BASIC4.0:ファイル伝送におけるXFILE命令の使い方 | メイン | VB.NET:ハンディターミナル(BHT-1300等)とのデータファイルの送受信について »

2016年4月28日 (木)

BHT-BASIC4.0:バーコードの読込み(バーコードスキャン)について

ハンディターミナルを使用する最大の要因は、バーコードの読込みを行うことです。 商品に貼られたバーコードや、商品棚に印刷されたバーコードを読み取り、 いろいろな作業を行います。

BHTシリーズで読込み可能なバーコードには EAN-13(JAN-13)、EAN-8 (JAN-8)、NW-7、Code39、Code93、Code128等があります。

バーコードを読込む処理は以下の一連の命令の実行で行います。

・OPEN命令によりバーコードデバイスをオープンする。
・バーコードが読込まれるのを待つ。
・バーコードバッファから読込まれた文字列を取得する。
・CLOSE命令によりバーコードデバイスをクローズする。

■バーコードデバイスのオープン

バーコードデバイスのオープンの OPEN命令 について説明します。
[書式1:パラメタを直接指定]
 OPEN "BAR:[読取モード][ブザー制御][LED制御]" AS [#]ファイル番号 CODE 読取コード[,読取コード...]

[書式2:パラメタをシステム設定値から指定]
OPEN "BAR:SP" AS [#]ファイル番号
<引き数>
・[読取モード]:
 ■モメンタリスイッチモード(M):
  トリガスイッチを押している間だけ照明LEDが点灯し、
  バーコードを読み取ることができる。

 ■オートオフモード(F)
  トリガスイッチを押すと照明LEDが点灯し、トリガスイッチを放すか、
  またはバーコードを読み取ると、照明LED は消える。

 ■オルタネートスイッチモード(A)
  トリガスイッチを押すと照明LEDが点灯し、トリガスイッチを放しても、
  照明LED は点灯している。バーコードデバイスファイルがクローズされるか、
  またはトリガスイッチを再度押すと照明LED は消える。

 ■連続読み取りモード(C)
  トリガスイッチに関係なく照明LEDはバーコードデバイスファイルが
  クローズされるまで点灯しています。

 ※4モードとも照明LEDが点灯している間は、
  バーコードを読み取ることができます。

・[ブザー制御]:"B"
 バーコードの読み取り成功時にブザー(バイブレータ)を作動

・[LED制御]:"L"
 バーコードの読み取り成功時に青LED が点灯しないようにする

・ファイル番号:(OPEN命令で指定したファイル番号を指定)

・読取コード:
 ■共通商品コード("A","B","C")
   先頭文字(国フラグ)やアドオンの指定ができますが
   "A"のみ指定でEAN-13(JAN-13),EAN-8(JAN-8),UPC-E全てが
   読込める

 ■NW-7("N"):
   書式:N[:[最小桁数[-最大桁数]][スタート ストップ][CD]
       [,[最小桁数[-最大桁数]][スタート ストップ][CD]]
       [,[最小桁数[-最大桁数]][スタート ストップ][CD]]]

 ■Code39("M"):
   書式:M[:[最小桁数[-最大桁数]][CD]
       [,[最小桁数[-最大桁数]][CD]]
       [,[最小桁数[-最大桁数]][CD]]]

 ■Code93("L"):
   書式:L[:[最小桁数[-最大桁数]
       [,[最小桁数[-最大桁数]]
       [,[最小桁数[-最大桁数]]]

 ■Code128("K"):
   書式:K[:[最小桁数[-最大桁数]
       [,[最小桁数[-最大桁数]]
       [,[最小桁数[-最大桁数]]]

上記のほかにいろんな指定がありますが、それは各BHTの取説を見てください。
■オープン指定の例

OPEN "BAR:M" AS #1 CODE "A", "M:4-25",  "K:4-25"

この例では読取モードとしてはモメンタリスイッチモードで、 読取コードは 共通商品コード、Code39の4桁~25桁、 Code128の4桁~25桁を可能としています。

このオープン例を使った簡単なテストプログラムを以下に示します。

実際の処理としては、上記のテストプログラムでは不十分です。 商品などのバーコードコードをスキャンする場合、 そのバーコードが準備されていればいいのですが、 準備できていないことがあります。
そんな時には、バーコードスキャンでもキー入力でも コード入力が可能な様に組んでおくことが必要です。
■バーコード・キー入力の両方を行える関数例

以下のソースはバーコードスキャンを途中でやめて、 キー入力出来る様にしたバーコード入力関数の例です。

この関数の処理は以下の様な仕様になっています。
(1)最初にカーソル位置を退避する。
(2)バーコードデバイスオープンを行い、キー入力とバーコードスキャンを待つ。
(3)バーコードスキャンがあれば、コードを変数に戻し、関数を終わる。
(4)[F4]キーが押下された場合は、戻り値にそのフラグを持って関数を終わる。
(5)[F1]キーが押下された場合は、キー入力処理になる。
(6)数字キーであれば入力文字列に追加する。
(7)[F2]キーが押下された場合は、バーコードスキャン(2)に戻る。
(8)[F4]キーが押下された場合は、戻り値にそのフラグを持って関数を終わる。

この関数はまだまだ足りない点があると思いますので、改造をして下さい。

【DENSO】ハンディターミナルBHT-1306BWB+USB通信ユニットCU-1321+ACアダプタAD2+標準バッテリBT-130L-C【送料無料・代引手数料無料】【02P05Nov16】

価格: 208,980円
(2016/11/26 22:01時点 )


■関連記事
BHT-BASIC:DENSOのハンディターミナルの開発言語のBHT-BASIC4.0を使ってみた
BHT-BASIC4.0:変数宣言の書き方(BHT-1300)
BHT-BASIC4.0:変数宣言の書き方その2(BHT-1300)
BHT-BASIC4.0:ユーザ定義関数について(BHT-1300)
BHT-BASIC4.0:演算子について(BHT-1300)
BHT-BASIC4.0:画面への表示について(BHT-1300)
BHT-BASIC4.0:キー入力について(BHT-1300)
BHT-BASIC4.0:数値用キー入力関数(ユーザ定義関数)について(BHT-1300)
BHT-BASIC4.0:ユーザ定義関数の値渡し・参照渡しについて(BHT-1300)
BHT-BASIC4.0:文字列を扱うユーザ定義関数について
BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその2
BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその3
BHT-BASIC4.0:TeraTermを使ってDENSOのハンディターミナルにファイル(プログラム)転送を行う方法
BHT-BASIC4.0:I/OポートとWAIT、さらにTIMERについて(BHT-1300)
BHT-BASIC4.0:データファイルの取り扱いについて(BHT-1300)
BHT-BASIC4.0:データファイルの取り扱いについてその2(書込み・読込みの実用的な関数)
BHT-BASIC4.0:データファイルの検索について(SEARCH関数)
BHT-BASIC4.0:ユーザ関数の引数の仮変数に対する代入の注意点
BHT-BASIC4.0:データファイルの削除等について(KILL、CLFILEのラッパ関数)
BHT-BASIC4.0:ファイルの存在確認関数を作ってみました
BHT-BASIC4.0:拡張関数のバイナリサーチ処理関数(BSEARCH.FN3)の使い方
BHT-BASIC4.0:拡張関数のサーチ処理関数(SEARCH.FN3)の使い方
BHT-BASIC4.0:簡単なメニュー表示・選択を行うユーザ関数について
BHT-BASIC4.0:ファイル伝送におけるXFILE命令の使い方
BHT-BASIC4.0:Bluetoothデバイスアドレス取得等について
VB.NET:ハンディターミナル(BHT-1300等)とのデータファイルの送受信について
楽天市場

デル株式会社

トラックバック

このページのトラックバックURL:
http://app.mitelog.jp/t/trackback/459161/33811091

BHT-BASIC4.0:バーコードの読込み(バーコードスキャン)についてを参照しているブログ:

コメント

コメントを投稿