すでに、サポート終了でリプレース対象になっているBHT-100Qが数台あまってきている。
状態は悪くないため、このまま捨ててしまうには少々もったいない。
そこで、卓上ハンディターミナル(GT10Qとか)の変わりにならないか検証を行なった。
必要な物
- BHT-100QのCOMポートにつなぐケーブル
- BHT-100Qのコントロールソフト
【ケーブル】
ケーブルはDENSO WAVEから購入すると高い(8000円ぐらい?)ので自作した
自作の内容については、次回まわしで・・・
【ソフト】
ハンディターミナル用のソフトは次のような単純なプログラムを作成した。
PCとHTとの通信条件は
通信パラメタ | 値 |
| 伝送速度(bps) | 9600 |
| 垂直パリティ | なし |
| 文字長 | 8 ビット |
| ストップビット長 | 1 ビット |
'==================================================================
'
' BHT010 BHT100Q like GT10Q for BHT100Q
'
'==================================================================
'
'2009.06.05 オリジナル
'2011.03.02 外部公開で問題になりそうな箇所を修正
On Error Goto errorProg:
'+===========================================================================+
'| 変数の定義 |
'+===========================================================================+
const pgmno$ = "010" 'プログラム管理番号
const ver$ = "110302.0001" 'バージョン
private tempkey$
const BarFile = 1 'バーコードファイル番号
const CPORT = 3
const CSET = "COM2:9600,N,8,1"
'+---------------------------------------------------------------------------+
'| |
'| 【関数名】 inpbar$(f.no%, bar$, keylist$)[255] |
'| 【機能】 バーコード読み取りを待つ |
'| デバイス番号 f.no% |
'| バーコードタイプ bar$ |
'| 終了キーリスト keylist$ |
'| 読み込んだバーコード |
'| |
'| 【処理内容】 |
'| ・バーコード入力を待ち、そのバーコードデータを戻り値とします。 |
'| ・指定されたキーが押された場合、そのキーデータを戻り値として終了 |
'| します。 |
'| |
'+---------------------------------------------------------------------------+
Function inpbar$(f.no%, bar$, keylist$)[255]
private barlen%
private wk$[255]
if bar$="QM" Then
open "BAR:f" as #f.no% code "Q","M"
else
open "BAR:f" as #f.no% code bar$
end if
while 1
wait 0,&h03
If (Inp(0) And &h02) = &h02 Then '// CODE39あり(Eof(#portBar%) = 0)
' Print "24=";loc(#f.no%),eof(#f.no%)
wk$ = Input$(loc(#f.no%), #f.no%) '// 全データ
beep
inpbar$ = wk$
close #f.no%
exit Function
endif
If (Inp(0) And &h01) = &h01 Then '// KeyBoard
wk$ = inkey$
if instr(1,keylist$,wk$) > 0 then
inpbar$ = wk$
close #f.no%
exit Function
endif
endif
wend
end Function
'+---------------------------------------------------------------------------+
'| タイトルバーの表示 |
'+---------------------------------------------------------------------------+
Sub DispTitle(msg$)
private strTemp$[100]
' 1234567890123456789012
strTemp$=msg$ + " "
strTemp$=left$(strTemp$,22)
screen 1,1 : locate 1,1 : print strTemp$;
screen 1,0
end Sub
'+===========================================================================+
'| 初期設定 |
'+===========================================================================+
screen 1,0
Print "system cold start"
Print "BHT-CTL";pgmno$;" ";ver$ : Print
Print "ComPort設定:";
Print CSET : print
Print "complite!!"
beep 3
Print
Print "Press any buttom."
wait 0,&h01
tempkey$ = inkey$
'+===========================================================================+
'| メインメニュー |
'+===========================================================================+
private ibar$[255]
main:
beep 1,1,1,1
'【画面表示】
cls
DispTitle(" バーコード読み込み") : print
while 1
ibar$ = inpbar$(BarFile,"QM","0123456789") 'QRバーコードor[0123456789]キーを待つ
if len(ibar$) = 1 then '読み取りが1文字の場合はキーと判断する
beep 1,1,1,1
else
open CSET AS #CPORT
print #CPORT,ibar$
close #CPORT
print len(ibar$);",[";ibar$;"]"
end if
wend
'==========================================================
' エラー処理
'==========================================================
errorProg:
screen 0,0
Print
Print "BHT";pgmno$;" ";ver$ : Print
Print "Err="; Hex$(Err);" "
Print "Erl="; Hex$(Erl);" "
tempKey$ = Input$(1)
Resume Next
結果は、良好!!
ただ、少しだけ問題はあり。
- 行末が0x0Dではなく 0x0D 0x0A なので、PC側の受信ソフトも多少の変更で対応
- 充電のためにCU7001へ置くときにCOMポートケーブルが邪魔

えだまるさんこんにちは。会社のハンディーBHT-100Qが壊れておりこの機種をさがしていました。まだBHT-100Qをお持ちですか?
返信削除