すでに、サポート終了でリプレース対象になっている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をお持ちですか?
返信削除