光学情報読取装置
【課題】プログラムやファームウェア等のアップデート作業の業務効率を高めることのできる光学情報読取装置を提供する。
【解決手段】バーコードハンディターミナルがバッテリパックを搭載した状態にあり、このバッテリパックの給電電圧が所定の電圧値よりも高い状態にあること且つバーコードハンディターミナルがクレードルに位置決めされていることを前提としてアップデートが実行される。そして、予め設定した時刻(典型的には深夜)になると、バージョンアップのためのチェックが行われ(S32)、次いでアップデートが実行される。
【解決手段】バーコードハンディターミナルがバッテリパックを搭載した状態にあり、このバッテリパックの給電電圧が所定の電圧値よりも高い状態にあること且つバーコードハンディターミナルがクレードルに位置決めされていることを前提としてアップデートが実行される。そして、予め設定した時刻(典型的には深夜)になると、バージョンアップのためのチェックが行われ(S32)、次いでアップデートが実行される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は光学情報読取装置に関する。
【背景技術】
【0002】
光学情報読取装置の典型例としてバーコードハンディターミナルが知られている(特許文献1)。この携帯式光学情報読取装置であるバーコードハンディターミナルは、工場、倉庫などにおいて商品やその梱包箱に付されたバーコードを読み取るのに用いられる。バーコードハンディターミナルはレーザ光を発し、このレーザ光でバーコードを走査して読み取りを行い、その読み取り結果をディスプレイに表示する。
【0003】
この種の光学情報読取装置であるPOSシステムに関し、ここの端末機にインストールされたプログラムのアップデートの概要が特許文献2に記載されている。特許文献2に記載のソフトウェアアップデートでは、明確な開示はないものの、ユーザの操作に基づいて行われると思われる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−63802号公報
【特許文献2】特表2008−511920号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
光学情報読取装置は、ユーザが日々の業務で収集したデータを蓄積し、これをメインフレームサーバーに送信するのが基本的な機能であり、その意味で情報収集端末機器と呼ぶことができる。この光学情報読取装置には、ユーザの業務を遂行するためのプログラムとしてファームウェア及び日々の業務のためのアプリケーションが組み込まれている。そして、これらのプログラムは機能追加などのために比較的頻繁にバージョンアップが必要とされる。
【0006】
プログラムのアップデートは、従来、ユーザの操作に委ねられていたが、上述したように比較的頻繁にバージョンアップされることから、できるだけ最新のプログラムによって業務を遂行できるようにするのが望ましい。ここで、ユーザの操作に基づくプログラムのアップデートは、必ずしも上手く成功するとは限らない。具体的に説明すると、例えば、ユーザがプログラムのアップデートを行おうとしたときに、通信ネットワークに障害が発生している場合がある。この場合ユーザは、通信ネットワークの障害が発生していないと思われる時間帯に改めてプログラムのアップデートを行う必要があるため、アップデート作業の業務効率が低下する。加えて、ユーザがこの時間帯にアップデートするのを忘れてしまった場合、バージョンの古いプログラムによって業務が遂行されることになり、ユーザの業務に支障を及ぼす虞がある。
【0007】
そこで、本発明の目的は、プログラムやファームウェア等のアップデート作業の業務効率を高めることのできる光学情報読取装置を提供することにある。
【0008】
本発明の更なる目的は、煩雑な操作をユーザに強要することなくアップデートすることのできる光学情報読取装置を提供することにある。
【0009】
本発明の更なる目的は、ユーザの業務に支障を及ぼすことなくアップデートすることのできる光学情報読取装置を提供することにある。
【課題を解決するための手段】
【0010】
上記の技術的課題は、本発明によれば、
ホスト側コンピュータと電気的に接続してデータ転送を行う載置台に載置可能であって、バーコードを光学的に読み取った読取データを蓄積するメモリを備え、該載置台を介して該メモリに蓄積された読取データを該ホスト側コンピュータに送信する光学情報読取装置であって、
前記光学情報読取装置が前記載置台に設置された状態で、前記読取データを前記ホスト側コンピュータに送信するための読取データ通信コネクションを確立又は解除する通信コネクション処理手段と、
前記読取データ通信コネクションが確立されてから解除されるまでの間に、前記光学情報読取装置に組み込まれているプログラムのアップデートが必要か否かを確認するために前記ホスト側コンピュータと通信するアップデートチェック手段と、
前記アップデートチェック手段により確認した結果に基づいて、光学情報読取装置に組み込まれているプログラムのアップデートを実行するアップデート実行手段と、
を備えることを特徴とする光学情報読取装置を提供することにより達成される。
【0011】
すなわち、本発明によれば、アップデートチェック手段によって読取データ通信コネクションが確立されてから解除されるまでの間に、アップデートチェックが行われる。ここで、読取データ通信コネクションが確立されている間は、通信ネットワークの障害が発生している可能性は低いと言える。すなわち、ネットワーク障害が発生していれば、そもそも読取データ通信コネクション自体が確立されない。したがって、この間にプログラムのアップデートを行うことで、通信ネットワークの障害が発生していない可能性の高い時間帯にアップデートを行うことができ、ひいてはアップデート作業の業務効率を高めることができる。また、アップデートし忘れを防止することもできることから、アップデートを失念した状態で業務を遂行することによってユーザの業務に支障が及ぶのを未然に防ぐことができる。なお、アップデートの要否のチェックはユーザにアップデート実行の可否を求めてもよいし、所定の条件が成立したときに自動的にアップデートを実行してもよい。
【0012】
本発明の好ましい実施形態によれば、前記アップデート実行手段は、前記メモリに蓄積された読取データとともに読取作業の経過情報を示すログデータを前記ホスト側コンピュータに送信した後に、前記プログラムのアップデートを実行する。この実施形態によれば、プログラムのアップデートによりログデータの内容が変わってしまう虞があることから、プログラムアップデート前のログデータをホストに送った後に、アップデートを実行することにより、より正確なログデータをホストに送ることができる。
【0013】
本発明の他の目的、作用効果は、以下の本発明の好ましい実施例の詳しい説明から明らかになろう。
【図面の簡単な説明】
【0014】
【図1】本発明を適用したバーコードハンディターミナルを斜め上方から見た斜視図である。
【図2】本発明を適用したバーコードハンディターミナルの分解斜視図である。
【図3】本発明を適用したバーコードハンディターミナルを後方から見た図であり、バッテリパックを取り外した状態の図である。
【図4】本発明を適用したバーコードハンディターミナルの全体システムの説明図である。
【図5】本発明を適用したバーコードハンディターミナルの全体システムのブロック図である。
【図6】アップデートの一連の処理を説明するためのフローチャートである。
【図7】業務時間内でのアップデートのためにクレードルを介してバーコードハンディターミナルとメインフレームサーバーとのコネクションを確立するための処理を説明するためのフローチャートである。
【図8】業務時間外にアップデートを実行する処理を説明するためのフローチャートである。
【図9】業務データの送受信を行った後にアップデートの要否をチェックするフローチャートである。
【図10】業務データの送受信を行う前にアップデートの要否をチェックするフローチャートである。
【図11】アップデート処理の具体例を説明するためのフローチャートである。
【発明を実施するための形態】
【実施例】
【0015】
以下に、添付の図面に基づいて本発明の好ましい実施例を説明する。
【0016】
図1は実施例の携帯式光学情報読取装置であるバーコードハンディターミナルを斜め前方から見た斜視図である。この図1を参照して、実施例のバーコードハンディターミナル100は、その上部の前面に表示部10を有し、表示部10は液晶ディスプレイ(LCD)で構成されている。バーコードハンディターミナル100は、その前面において、上記LCDで構成された表示部10の下方に位置する入力部11を有する。入力部11は、メニューキー12、バーコードのスキャンの開始を指示するトリガーキー13、4方向キー14、ENTキー15、キャンセルキー16、テンキー群17、テンキー群17の下方に横並びに配置されたファンクションキー群18、電源スイッチ19で構成されている。他方、バーコードハンディターミナル100の後面には、その上端部にバーコード読み取り窓が従来と同様に形成され、また、下端に、従来と同様に接続端子が配列されている。また、バーコードハンディターミナル100の入力部11の後側にバッテリが脱着可能に取り付けられる。
【0017】
図2は実施例のバーコードハンディターミナル100の分解斜視図である。図3は、バッテリパックを取り外した状態のバーコードハンディターミナル100を後方から見た図である。図4はバーコードハンディターミナルの全体システムを示す図である。図5はバーコードハンディターミナルのブロック図である。
【0018】
図2を参照して、バーコードハンディターミナル100の部品を説明すると、図中、参照符号20は合成樹脂成型品の表示窓20aを備えたフロントケースであり、21は合成樹脂成型品のリヤケースであり、22はメインパッキンを示す。メインパッキン22は、フロントケース20とリヤケース21との突き合わせ面に沿って連続する形状を有し、このメインパッキン22を介在した状態でフロントケース20とリヤケース21は合体されてバーコードハンディターミナル100の筐体を構成し、フロントケース20とリヤケース21とで囲まれた内部空間に種々の部品が位置決めした状態で収容される。
【0019】
リヤケース21には、その上端部つまりLCD10の上方の端部に横長の矩形の読み取り窓25が形成されている。リヤケース21には、また、上下の中間部分に電池端子窓26が形成され、この電池端子窓26に臨んで電池端子基板27が取り付けられる。リヤケース21の下部にはバッテリパック28を受け入れる凹部29が形成されており、バッテリ28は、その容量によって、比較的大容量のバッテリ28Aと比較的小容量のバッテリ28Bを選択でき(図4)、これに対応したバッテリカバー30A、30Bが用意され、バッテリカバー30A、30Bはリヤケース21に対して脱着自在である。図2の参照符号31はバッテリカバー用のパッキンを示す。
【0020】
バッテリパック28には、その上端面に給電端子28aが設置されており、バッテリパック28をリヤケース21のバッテリ受け凹所29に設置することでバッテリパック28がバーコードハンディターミナル100の電池端子基板27の受電端子(図示せず)と電気的に接続され、このバッテリパック28の電気エネルギーによってバーコードハンディターミナル100が駆動される。
【0021】
上述したように、バーコードハンディターミナル100は、バッテリパック28を装着するための装着部としてバッテリ受け凹所29を有している(図3)。本実施例では、バッテリ受け凹所29はリヤケース21の下方に設けられているが、装着部はどこに設けられていてもよい。装着部にバッテリパック28が装着されると、装着部(凹部)29に形成された受電端子80とバッテリパック28の給電端子28aとが接触する。そして、受電端子80と給電端子28aとが接触した状態で、バッテリパック28の電力がバーコードハンディターミナル100に供給される。
【0022】
リヤケース21の下端には、端子窓31が形成されており、この端子窓31に臨んで、端子ホルダ32に組み込まれた端子基板33がリヤケース21の下端に取り付けられる。この端子基板33に設けられた端子(作図上の理由で図面には現れていない)は端子窓31を通じて外部に露出し、この端子窓31を通じて、後に説明するクレードル34(図4)を通じて外部と交信することができると共に、充電ユニット95、96(図4)によってバッテリパック28の充電が可能である。図2の参照符号36は端子ホルダテープを示す。
【0023】
より具体的には、バッテリパック28が取り付けられたバーコードハンディターミナル100が、充電ユニット73に載置されると、充電ユニット73からバッテリパック28に電力が供給され、バッテリパック28の充電が行われるとともに、外部機器(PC70等)との通信に必要な電力がCPU101や通信回路等に供給される。バッテリパック28の充電が完了すると、充電ユニット73からの電力は、必要な分だけCPUや通信回路等にのみ供給される。このような電力供給の切り替えは、後述する電源回路103(図5)が担っている。
【0024】
リヤケース21には、上記の電池端子基板27に関連して電池保護テープ40,電池端子クッション41を介して電池端子押さえ部材42が設置され、この電池端子押さえ部材42がリヤケース21にネジ止めされることにより、電池端子基板27の端子部27aがリヤケース21から遠ざかる方向へ変位するのが電池端子押さえ部材42によって規制される。この電池端子基板27の側方にバイブレータ44が配置され、このバイブレータ44はリヤケース21に取り付けられる。
【0025】
リヤケース21の上記の読み取り窓25には、リヤケース21の外側からスキャナフィルタ46が取り付けられ、他方、リヤケース21の内側には、リヤクッション47を介してスキャナホルダ48がリヤケース21にO-リング49を介してネジ止めされる。
【0026】
スキャナホルダ48にはスキャナモジュール50が搭載されており、このスキャナモジュール50が発するレーザ光を読み取り窓25に導き及び対象物に付されたバーコードから戻ってくる光をスキャナモジュール50に導くための反射ミラー51がスキャナホルダ48に組み付けられている。
【0027】
スキャナモジュール50は、従来と同様に、半導体レーザ発光素子、受光素子であるフォトダイオード、ガルバノミラー、スキャナ基板などを含んでおり、半導体レーザ発光素子が発したレーザ光を所定の周期で揺動するガルバノミラーで反射して読み取り窓25を通じてバーコードに向けて出射すると共にバーコードを走査し、バーコードから戻ってくる光をスキャナモジュール50に取り込んでフォトダイオードで受光する。フォトダイオードが受光すると、その受光信号がスキャナ基板の受光回路及び増幅回路で増幅される。なお、スキャナ基板にはミラー駆動回路が設けられており、このミラー駆動回路によってガルバノミラーが駆動され、ガルバノミラーは上述した揺動運動を行う。
【0028】
図2の参照符号53は第1のスキャナクッションを示す。このスキャナクッション53はスキャナホルダ48の前方に配置され、その前方に位置するスキャナクッション板金54はスキャナホルダ48にネジ止めされる。
【0029】
このスキャナクッション板金54の前方には第2のスキャナクッション55が位置し、更に、その前方にメイン基板57が配置される。メイン基板57は上述したLCD10とほぼ同じ大きさを有し、このメイン基板57には制御用CPU101やメモリ(図5の参照符号58)を含む比較的大きな回路規模を有するメイン回路が設けられており、バーコードハンディターミナル100の全体制御や取得したバーコードの読み取り処理を行うと共にその読み取り結果をメモリ58(図5)に保存し、また、LCD10に表示するための信号を生成する。
【0030】
メイン基板57は、その前方に位置するLCDホルダ60と共通のネジを使ってスキャナホルダ48に固定される。すなわち、LCDホルダ60はメイン基板57を挟み込んだ状態でスキャナホルダ48にネジ止めされる。LCDホルダ60にはLCD10がきつく嵌合される。
【0031】
メイン基板57の下方にはキー基板61が配設され、このキー基板61には、その前方のメインキートップ62がネジ止めされる。メインキートップ62には、上述した操作部11つまりメニューキー12、トリガーキー13、テンキー群17などが設けられている(図1)。
【0032】
上述した部品を組み込んだリヤケース21に対してフロントケース20が上述したメインパッキン22を介して組み付けられることになるが、それに先立ってLCD10の周辺部にLCDフロントクッション63が配置され、このLCDフロントクッション63によってLCD10はフロントケース20によって押さえ付けられた状態となる。フロントケース20には、その前面に光透過性のフロントパネル64やフロントシート65が組み付けられる。
【0033】
図4を参照して、実施例のバーコードハンディターミナル100は、ホスト側のコンピュータであるメインフレームサーバー70とRS−232ケーブル71やUSBケーブル72を介して交信可能であり、また、クレードル34に置くことでメインフレームサーバー70と交信可能である。バーコードハンディターミナル100はメインフレームサーバー70と交信することで、バーコードハンディターミナル100にインストールされているプログラム(ファームウェア、アプリケーション)のアップデートが実行される。また、このアップデートは、SDカードのような脱着可能な外部メモリ(SDカード)80によって行うこともできる。また、IrDAやWLANやBluetoothなどの無線通信を使ってのアップデートも可能である。
【0034】
引き続き図5を参照して、バーコードハンディターミナル100は、電源の種別を検知する手段及びバッテリの残量を検知する手段82と、クレードル34から電源供給を受けていることを検知する手段84とを有する。電源の種別を検知するとは、次の状態を検知することをいう。(1)バーコードハンディターミナル100がバッテリパック28を搭載した状態でクレードル34に置かれて、このクレードル34から電源の供給を受けている状態では、商用電源(外部電源)とバッテリパック28の双方が電源となりうる(クレードルからの給電が優先する)、(2)バーコードハンディターミナル100からバッテリパック28を取り外した状態でクレードル34に置かれた状態では、商用電源(外部電源)が電源となる、(3)バッテリパック28を搭載したバーコードハンディターミナル100を、バーコードハンディターミナル100に給電できない状態(例えば、メインフレームサーバー70と接続するためのUSBケーブル72のみが接続され、ACアダプターが接続されていない状態)の通信クレードルに設置された状態では、バッテリパック28が電源となる。
【0035】
この電源の種別の検出は、上記(1)の場合には例えば、電源種別検知82がバッテリの接続を検知した状態で、かつ、外部給電検知手段84が充電クレードルの接続を検知することによって検出することができ、上記(2)の場合には例えば、電源種別検知82がバッテリの接続を検知していない状態で、かつ、外部給電検知手段84が充電クレードルの接続を検知することによって検出することができ、上記(3)の場合には例えば、電源種別検知手段82がバッテリの接続を検知した状態で、かつ、外部給電検知手段84が充電クレードルの接続を検知していないことによって検出することができる。
【0036】
バーコードハンディターミナル100はクレードル34に置いたときに、バーコードハンディターミナル100がクレードル34の所定位置に位置決めされたことを例えばクレードル34の所定の端子とバーコードハンディターミナル100の所定の端子が接続した状態になることで検知され、アプリケーションのアップデートを実行する前段階にこれを検知することで、バーコードハンディターミナル100のアップデートを開始する準備が整ったとしてアップデートモードに切り換えられる。アプリケーションのアップデートを実行する前段階でのこのチェックは、商用電源から給電を受けているクレードル34がバーコードハンディターミナル100に電源を供給することのできる状態にあることによってアップデートモードに切り替えるようにしてもよい。また、変形例として、これに加えてバーコードハンディターミナル100がバッテリパック28を搭載しており、このバッテリパック28の給電電圧が所定の電圧値よりも高い状態にあることを条件にアップデートモードに切り替えるようにしてもよい。換言すると、アップデートモードへの切り替えは、バーコードハンディターミナル100の電源がアップデート中に欠乏しない状態であることを確認した後に行うのが好ましい。これによれば、アップデート中にバーコードハンディターミナル100の電源が欠乏することに伴うプログラムの毀損を未然に防止できる。
【0037】
なお、バーコードハンディターミナル100の通信制御にACK/NACK制御が加えられている。したがって、アップデート実行中にバーコードハンディターミナル100がクレードル34から外れたり、外部メモリ(SDカード)80がバーコードハンディターミナル100から外れるなどの事故が発生したとしても、ACK/NACK制御によってタイムアウト期間内に復帰させることができればアップデートを正常に再開させることができる。
【0038】
図6は、業務データの送受信を行うことを前提としてバーコードハンディターミナル100に組み込まれているプログラムのアップデートに関する一連の処理を説明するためのフローチャートである。この図6を参照して、バーコードハンディターミナル100がクレードル34の所定位置に置かれたことを前提として、先ずステップS10において、メインフレームサーバー70との間の接続を確立する処理が行われる。次の図7を参照して、このコネクションの確立処理を説明する。
【0039】
図7を参照して、通信ユニットつまりクレードル34にバーコードハンディターミナル100が設置されると(S20)、バーコードハンディターミナル100に送受信すべき業務データ(例えば商品の在庫数などのデータ)が蓄積されているかの検出が行われる(S21)。バーコードハンディターミナル100のメモリに、新たなバーコードの情報が記憶されているかを確認することにより、この検出を行うことができる。ステップS21でYESつまり送受信すべき業務データが存在する場合にはステップS22に進んでバーコードハンディターミナル100とメインフレームサーバー70とを接続のための処理に移る。上記ステップS21でNOつまり送受信すべき業務データが存在しない場合にはステップS23に進んでバーコードハンディターミナル100とメインフレームサーバー70との接続を行わない。
【0040】
上記の図7の処理は、ユーザのルーチンワークのときを主眼においた処理であり、業務時間内において、バーコードハンディターミナル100に蓄積して業務データをメインフレームサーバー70に送信することを意図してバーコードハンディターミナル100をクレードル34に置いた場合の処理である。本実施例では、ユーザが所定のキー入力を行うことによって上記の図7の処理が開始されるようにしているが、本発明はこれに限られず、例えばバーコードハンディターミナル100をクレードル34に載置したことを契機として、自動的に上記の図7の処理が開始されるようにしてもよい。なお、バーコードハンディターミナル100をクレードル34に設置することにより、クレードル34を通じて、バーコードハンディターミナル100に搭載したバッテリパック28の充電が行われる。
【0041】
次の図8は、業務時間外にプログラムをアップデートすることを主眼に置いた処理を示すフローチャートである。もちろん、バーコードハンディターミナル100をクレードル34に設置することによりクレードル34を通じて、バーコードハンディターミナル100に搭載したバッテリパック28の充電が行われるのは、業務時間内にバーコードハンディターミナル100をクレードル34に設置した場合と同じである。
【0042】
アップデートを所定の時刻(典型的には深夜)に実行するには、予め設定した時刻にアップデートのために、ホスト側のコンピュータであるメインフレームサーバー70と接続処理を行うコネクション手段と、プログラムのアップデートファイルの有無をメインフレームサーバー70に対して確認するアップデートチェック手段とを有し、そして、予め設定した時刻にアップデートチェックを行い、メインフレームサーバー70にアップデートファイルが存在するときにプログラムのアップデートを実行するのがよい。
【0043】
具体的には、図8を参照して、通信ユニットつまりクレードル34にバーコードハンディターミナル100が設置されると(S30)、予め設定した時刻であるか否かの判定が行われる(S31)。このステップS31は、業務開始までに時間的な余裕があるか否かを判定するための工程である。したがって、設定する時刻は、例えば深夜など業務時間外であって始業まで時間的に余裕がある時刻が設定される。この時刻はユーザが任意の時刻を指定することにより設定できるようにするのが最も好ましい。
【0044】
設定した時刻が到来するとステップS32に進み、このステップS32においてバージョンアップのためのアップデートチェックが行われる。このアップデートチェックの一連の処理を図9を参照して説明する。
【0045】
図9を参照して、ステップS40乃至S42はバーコードハンディターミナル100つまり端末が主体となってアップデートのための通信を開始する場合の手順を示す。他方、ステップS43乃至S45はメインフレームサーバー70が主体となってアップデートのための通信を開始する場合の手順を示す。
【0046】
バーコードハンディターミナル100が主体となる場合について説明すると、先ずステップS40においてバーコードハンディターミナル100からメインフレームサーバー70にプログラムの最新のバージョンを要求する。次のステップS41では、メインフレームサーバー70が自らの指定ファイルを読み込んでバージョンの確認を行った後にバーコードハンディターミナル100に応答する。次のステップS42では、バーコードハンディターミナル100は自らのプログラムのバージョン情報を読み出して、メインフレームサーバー70からの応答情報と比較する。
【0047】
次に、メインフレームサーバー70が主体となる場合について説明すると、先ずステップS43においてメインフレームサーバー70からバーコードハンディターミナル100にプログラムのバージョンを要求する。次のステップS44では、バーコードハンディターミナル100が所有しているプログラムのバージョンを読み出してメインフレームサーバー70に応答する。次のステップS42では、メインフレームサーバー70は指定ファイルからバージョンを確認してバーコードハンディターミナル100からの応答情報と比較する。
【0048】
そして、ステップS46に進んでバーコードハンディターミナル100のプログラムのバージョンがメインフレームサーバー70と異なるときには、ステップS47で、メインフレームサーバー70が供給体制にあるバージョンがバーコードハンディターミナル100の事前に登録してあるパターンに該当するか否かを判断する。YESつまり例えばバージョン番号の新しいプログラムや番号が異なっている場合には、ステップS48に進んでバージョンアップ(アップデート)の処理に移る。このアップデート処理の詳細は後に説明する。他方、ステップS46、S47でNOの場合にはバージョンアップ(アップデート)不要の処理に移る(S49)。
【0049】
図6に戻って、コネクションが確立された後(ステップS10)、業務データの送受信が行われる(ステップS11)。ここでいう業務データには、検品作業などでメモリに溜め込まれた商品の在庫数などの商品データや、作業経過を記録するためのログデータなどが含まれる。また、業務の開始前であれば、検品作業の際に参照するマスターデータなどが業務データに含まれる。この業務データの送受信が完了した後、アップデートが必要か否かを判断する(ステップS12)。この判断は、CPU101によって、上述したステップS48、S49を受けて行われる。ステップS12においてアップデートが必要と判断されたときには、CPU101は、緊急にアップデートが必要か否かを判断する(ステップS13)。この判断は、「すぐにアップデートを行う?」などの文字をLCD10に表示してユーザの入力を待つようにしてもよい。或いは、アップデートの対象となるプログラムの優先度が高い場合には、すぐにアップデートが必要と判断するようにしてもよい。アップデートが必要と判断した場合(ステップS13:YES)、図11を用いて後述するアップデート処理が実行される(S15)。
【0050】
一方、ステップS12においてアップデートが必要ないと判断されたとき、或いは、ステップS13において緊急にアップデートする必要がないと判断されたときは、ステップS14でバーコードハンディターミナル100とメインフレームサーバー70とのコネクションが解除される。ユーザは業務に支障が無ければアップデートの実行を選択して、バーコードハンディターミナル100に含まれるプログラムのアップデートを行えばよい。
【0051】
ここで、本実施例では、ステップS11の業務データの送受信処理において、読取作業の経過情報を示すログデータをメインフレームサーバー70に送るようにしている。すなわち、アップデート処理(ステップS15)が実行される前に、ログデータが送られる。これにより、アップデート処理によってログデータの内容が変わってしまうのを防ぐことができる。換言すれば、アップデート前のログデータをメインフレームサーバー70に送ることができる。
【0052】
なお、本実施例では、業務時間内にバーコードハンディターミナル100をクレードル34に設置することは、ユーザがバーコードハンディターミナル100に蓄積したバーコードデータをメインフレームサーバー70に送信する意図であるとみなすことができることから、このバーコードデータの送信処理を優先し、その後でアップデートに関する処理を行うようにしてある。しかし、本発明はこれに限られず、例えばアップデートが必要か否かの判断(ステップS12)を業務データの送受信よりも前に行ってもよい(図10)。
【0053】
具体的に、この変形例を図10を参照して説明すると、コネクションが確立された後(ステップS10)、アップデートが必要か否かを判断する(ステップS51)。この判断は、CPU101によって、上述したように、ステップS48、S49を受けて行われる。ステップS51においてアップデートが必要と判断されたときには、CPU101は、緊急にアップデートが必要か否かを判断する(ステップS52)。この判断は、「すぐにアップデートを行う?」などの文字をLCD10に表示してユーザの入力を待つようにしてもよい。或いは、アップデートの対象となるプログラムの優先度が高い場合には、すぐにアップデートが必要と判断するようにしてもよい。アップデートが必要と判断した場合(ステップS51及びS52でYES)、アップデート処理が実行される(S53)。
【0054】
ステップS51又はS52でNOと判断した場合には業務データの送受信が行なわれ(ステップS54)、これが完了するとコネクションが解除される(S55)。
【0055】
図11はアップデート処理の手順を説明するためのフローチャートである。先ずバーコードハンディターミナル100が主体となる場合について説明すると、先ずステップS60においてバーコードハンディターミナル100からメインフレームサーバー70にアップデート用ファイルの送信を要求する。メインフレームサーバー70はバーコードハンディターミナル100からの要求に従い指定されたファイルを順次バーコードハンディターミナル100に送信する(S61)。バーコードハンディターミナル100は要求したアップデート用ファイルの全てを受信したら、メインフレームサーバー70とバーコードハンディターミナル100とのコネクションを解除する(S62)。
【0056】
メインフレームサーバー70が主体となってアップデートする場合について説明すると、先ずステップS63においてメインフレームサーバー70からバーコードハンディターミナル100にアップデート用ファイルを送信して、バーコードハンディターミナル100でアップデートすることを要求する。バーコードハンディターミナル100はメインフレームサーバー70から送られてきたアップデート用ファイルをメモリに保存する(S64)。アップデート用のファイルの全てをバーコードハンディターミナル100が受け取ったら、メインフレームサーバー70とバーコードハンディターミナル100とのコネクションを解除する(S65)。
【0057】
次のステップS66ではアップデートを実行した後のリセットが必要か否かの判断が行われ、YESであればS67でバーコードハンディターミナル100のリセットが実行される。NOであれば、バーコードハンディターミナル100はそのまま動作を継続する(S68)。
【0058】
如上のように、実施例のアップデート制御において、業務時間内のルーチンワークにおいてバーコードハンディターミナル100からメインフレームサーバー70に蓄積したデータを送信する際には、これを行った後にLCD10に表示される「アップデートチェックを行う?」(図6のS15)などの表示を見ることにより、ユーザは比較的時間の余裕のあるときにはアップデートを実行することになる。また、業務が終わりバーコードハンディターミナル100に装着してあるバッテリパック28を充電するためにバーコードハンディターミナル100をクレードルに設置することでバーコードハンディターミナル100はバッテリパック28を取り外すことなく充電が行われることになるが深夜になると、バーコードハンディターミナル100又はメインフレームサーバー70の主導の下でアップデートが自動的に行われることになる。
【0059】
したがって、ユーザは最新のプログラムを使って業務を遂行することができるだけでなく、アップデートのためのボタン操作やアップデートの完了を待つ必要もないし、アップデートのために業務に支障が及ぶこともない。
【0060】
また、通信ネットワークの障害が発生している可能性は低いと言える読取データ通信コネクションが確立されている間にプログラムのアップデートを行うことで、通信ネットワークの障害が発生していない可能性の高い時間帯にアップデートを行うことができ、ひいてはアップデート作業の業務効率を高めることができる。
【0061】
実施例のバーコードハンディターミナル100は一次元コード(いわゆるバーコード)の読み取りに適用されているが、本発明は一次元コードに限定されるものではない。QRコードなどのマトリックスコードや一次元バーコードを上下に複数重ねたスタックコードのような二次元コードを読み取る光学情報読取装置にも本発明を好適に適用できる。したがって、この明細書において使用した「バーコード」は特に限定しない限り、当業者が認識する広義の意味つまり一次元コード、二次元コードを含む意味であると理解されるべきである。
【符号の説明】
【0062】
100 バーコードハンディターミナル
10 表示部(LCD)
11 入力部
28 バッテリパック
34 クレードル(載置台)
50 スキャナモジュール
70 メインフレームサーバー(ホスト側コンピュータ)
80 外部メモリ(SDカード)
86 電源回路(給電電圧値検出回路を含む)
【技術分野】
【0001】
本発明は光学情報読取装置に関する。
【背景技術】
【0002】
光学情報読取装置の典型例としてバーコードハンディターミナルが知られている(特許文献1)。この携帯式光学情報読取装置であるバーコードハンディターミナルは、工場、倉庫などにおいて商品やその梱包箱に付されたバーコードを読み取るのに用いられる。バーコードハンディターミナルはレーザ光を発し、このレーザ光でバーコードを走査して読み取りを行い、その読み取り結果をディスプレイに表示する。
【0003】
この種の光学情報読取装置であるPOSシステムに関し、ここの端末機にインストールされたプログラムのアップデートの概要が特許文献2に記載されている。特許文献2に記載のソフトウェアアップデートでは、明確な開示はないものの、ユーザの操作に基づいて行われると思われる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−63802号公報
【特許文献2】特表2008−511920号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
光学情報読取装置は、ユーザが日々の業務で収集したデータを蓄積し、これをメインフレームサーバーに送信するのが基本的な機能であり、その意味で情報収集端末機器と呼ぶことができる。この光学情報読取装置には、ユーザの業務を遂行するためのプログラムとしてファームウェア及び日々の業務のためのアプリケーションが組み込まれている。そして、これらのプログラムは機能追加などのために比較的頻繁にバージョンアップが必要とされる。
【0006】
プログラムのアップデートは、従来、ユーザの操作に委ねられていたが、上述したように比較的頻繁にバージョンアップされることから、できるだけ最新のプログラムによって業務を遂行できるようにするのが望ましい。ここで、ユーザの操作に基づくプログラムのアップデートは、必ずしも上手く成功するとは限らない。具体的に説明すると、例えば、ユーザがプログラムのアップデートを行おうとしたときに、通信ネットワークに障害が発生している場合がある。この場合ユーザは、通信ネットワークの障害が発生していないと思われる時間帯に改めてプログラムのアップデートを行う必要があるため、アップデート作業の業務効率が低下する。加えて、ユーザがこの時間帯にアップデートするのを忘れてしまった場合、バージョンの古いプログラムによって業務が遂行されることになり、ユーザの業務に支障を及ぼす虞がある。
【0007】
そこで、本発明の目的は、プログラムやファームウェア等のアップデート作業の業務効率を高めることのできる光学情報読取装置を提供することにある。
【0008】
本発明の更なる目的は、煩雑な操作をユーザに強要することなくアップデートすることのできる光学情報読取装置を提供することにある。
【0009】
本発明の更なる目的は、ユーザの業務に支障を及ぼすことなくアップデートすることのできる光学情報読取装置を提供することにある。
【課題を解決するための手段】
【0010】
上記の技術的課題は、本発明によれば、
ホスト側コンピュータと電気的に接続してデータ転送を行う載置台に載置可能であって、バーコードを光学的に読み取った読取データを蓄積するメモリを備え、該載置台を介して該メモリに蓄積された読取データを該ホスト側コンピュータに送信する光学情報読取装置であって、
前記光学情報読取装置が前記載置台に設置された状態で、前記読取データを前記ホスト側コンピュータに送信するための読取データ通信コネクションを確立又は解除する通信コネクション処理手段と、
前記読取データ通信コネクションが確立されてから解除されるまでの間に、前記光学情報読取装置に組み込まれているプログラムのアップデートが必要か否かを確認するために前記ホスト側コンピュータと通信するアップデートチェック手段と、
前記アップデートチェック手段により確認した結果に基づいて、光学情報読取装置に組み込まれているプログラムのアップデートを実行するアップデート実行手段と、
を備えることを特徴とする光学情報読取装置を提供することにより達成される。
【0011】
すなわち、本発明によれば、アップデートチェック手段によって読取データ通信コネクションが確立されてから解除されるまでの間に、アップデートチェックが行われる。ここで、読取データ通信コネクションが確立されている間は、通信ネットワークの障害が発生している可能性は低いと言える。すなわち、ネットワーク障害が発生していれば、そもそも読取データ通信コネクション自体が確立されない。したがって、この間にプログラムのアップデートを行うことで、通信ネットワークの障害が発生していない可能性の高い時間帯にアップデートを行うことができ、ひいてはアップデート作業の業務効率を高めることができる。また、アップデートし忘れを防止することもできることから、アップデートを失念した状態で業務を遂行することによってユーザの業務に支障が及ぶのを未然に防ぐことができる。なお、アップデートの要否のチェックはユーザにアップデート実行の可否を求めてもよいし、所定の条件が成立したときに自動的にアップデートを実行してもよい。
【0012】
本発明の好ましい実施形態によれば、前記アップデート実行手段は、前記メモリに蓄積された読取データとともに読取作業の経過情報を示すログデータを前記ホスト側コンピュータに送信した後に、前記プログラムのアップデートを実行する。この実施形態によれば、プログラムのアップデートによりログデータの内容が変わってしまう虞があることから、プログラムアップデート前のログデータをホストに送った後に、アップデートを実行することにより、より正確なログデータをホストに送ることができる。
【0013】
本発明の他の目的、作用効果は、以下の本発明の好ましい実施例の詳しい説明から明らかになろう。
【図面の簡単な説明】
【0014】
【図1】本発明を適用したバーコードハンディターミナルを斜め上方から見た斜視図である。
【図2】本発明を適用したバーコードハンディターミナルの分解斜視図である。
【図3】本発明を適用したバーコードハンディターミナルを後方から見た図であり、バッテリパックを取り外した状態の図である。
【図4】本発明を適用したバーコードハンディターミナルの全体システムの説明図である。
【図5】本発明を適用したバーコードハンディターミナルの全体システムのブロック図である。
【図6】アップデートの一連の処理を説明するためのフローチャートである。
【図7】業務時間内でのアップデートのためにクレードルを介してバーコードハンディターミナルとメインフレームサーバーとのコネクションを確立するための処理を説明するためのフローチャートである。
【図8】業務時間外にアップデートを実行する処理を説明するためのフローチャートである。
【図9】業務データの送受信を行った後にアップデートの要否をチェックするフローチャートである。
【図10】業務データの送受信を行う前にアップデートの要否をチェックするフローチャートである。
【図11】アップデート処理の具体例を説明するためのフローチャートである。
【発明を実施するための形態】
【実施例】
【0015】
以下に、添付の図面に基づいて本発明の好ましい実施例を説明する。
【0016】
図1は実施例の携帯式光学情報読取装置であるバーコードハンディターミナルを斜め前方から見た斜視図である。この図1を参照して、実施例のバーコードハンディターミナル100は、その上部の前面に表示部10を有し、表示部10は液晶ディスプレイ(LCD)で構成されている。バーコードハンディターミナル100は、その前面において、上記LCDで構成された表示部10の下方に位置する入力部11を有する。入力部11は、メニューキー12、バーコードのスキャンの開始を指示するトリガーキー13、4方向キー14、ENTキー15、キャンセルキー16、テンキー群17、テンキー群17の下方に横並びに配置されたファンクションキー群18、電源スイッチ19で構成されている。他方、バーコードハンディターミナル100の後面には、その上端部にバーコード読み取り窓が従来と同様に形成され、また、下端に、従来と同様に接続端子が配列されている。また、バーコードハンディターミナル100の入力部11の後側にバッテリが脱着可能に取り付けられる。
【0017】
図2は実施例のバーコードハンディターミナル100の分解斜視図である。図3は、バッテリパックを取り外した状態のバーコードハンディターミナル100を後方から見た図である。図4はバーコードハンディターミナルの全体システムを示す図である。図5はバーコードハンディターミナルのブロック図である。
【0018】
図2を参照して、バーコードハンディターミナル100の部品を説明すると、図中、参照符号20は合成樹脂成型品の表示窓20aを備えたフロントケースであり、21は合成樹脂成型品のリヤケースであり、22はメインパッキンを示す。メインパッキン22は、フロントケース20とリヤケース21との突き合わせ面に沿って連続する形状を有し、このメインパッキン22を介在した状態でフロントケース20とリヤケース21は合体されてバーコードハンディターミナル100の筐体を構成し、フロントケース20とリヤケース21とで囲まれた内部空間に種々の部品が位置決めした状態で収容される。
【0019】
リヤケース21には、その上端部つまりLCD10の上方の端部に横長の矩形の読み取り窓25が形成されている。リヤケース21には、また、上下の中間部分に電池端子窓26が形成され、この電池端子窓26に臨んで電池端子基板27が取り付けられる。リヤケース21の下部にはバッテリパック28を受け入れる凹部29が形成されており、バッテリ28は、その容量によって、比較的大容量のバッテリ28Aと比較的小容量のバッテリ28Bを選択でき(図4)、これに対応したバッテリカバー30A、30Bが用意され、バッテリカバー30A、30Bはリヤケース21に対して脱着自在である。図2の参照符号31はバッテリカバー用のパッキンを示す。
【0020】
バッテリパック28には、その上端面に給電端子28aが設置されており、バッテリパック28をリヤケース21のバッテリ受け凹所29に設置することでバッテリパック28がバーコードハンディターミナル100の電池端子基板27の受電端子(図示せず)と電気的に接続され、このバッテリパック28の電気エネルギーによってバーコードハンディターミナル100が駆動される。
【0021】
上述したように、バーコードハンディターミナル100は、バッテリパック28を装着するための装着部としてバッテリ受け凹所29を有している(図3)。本実施例では、バッテリ受け凹所29はリヤケース21の下方に設けられているが、装着部はどこに設けられていてもよい。装着部にバッテリパック28が装着されると、装着部(凹部)29に形成された受電端子80とバッテリパック28の給電端子28aとが接触する。そして、受電端子80と給電端子28aとが接触した状態で、バッテリパック28の電力がバーコードハンディターミナル100に供給される。
【0022】
リヤケース21の下端には、端子窓31が形成されており、この端子窓31に臨んで、端子ホルダ32に組み込まれた端子基板33がリヤケース21の下端に取り付けられる。この端子基板33に設けられた端子(作図上の理由で図面には現れていない)は端子窓31を通じて外部に露出し、この端子窓31を通じて、後に説明するクレードル34(図4)を通じて外部と交信することができると共に、充電ユニット95、96(図4)によってバッテリパック28の充電が可能である。図2の参照符号36は端子ホルダテープを示す。
【0023】
より具体的には、バッテリパック28が取り付けられたバーコードハンディターミナル100が、充電ユニット73に載置されると、充電ユニット73からバッテリパック28に電力が供給され、バッテリパック28の充電が行われるとともに、外部機器(PC70等)との通信に必要な電力がCPU101や通信回路等に供給される。バッテリパック28の充電が完了すると、充電ユニット73からの電力は、必要な分だけCPUや通信回路等にのみ供給される。このような電力供給の切り替えは、後述する電源回路103(図5)が担っている。
【0024】
リヤケース21には、上記の電池端子基板27に関連して電池保護テープ40,電池端子クッション41を介して電池端子押さえ部材42が設置され、この電池端子押さえ部材42がリヤケース21にネジ止めされることにより、電池端子基板27の端子部27aがリヤケース21から遠ざかる方向へ変位するのが電池端子押さえ部材42によって規制される。この電池端子基板27の側方にバイブレータ44が配置され、このバイブレータ44はリヤケース21に取り付けられる。
【0025】
リヤケース21の上記の読み取り窓25には、リヤケース21の外側からスキャナフィルタ46が取り付けられ、他方、リヤケース21の内側には、リヤクッション47を介してスキャナホルダ48がリヤケース21にO-リング49を介してネジ止めされる。
【0026】
スキャナホルダ48にはスキャナモジュール50が搭載されており、このスキャナモジュール50が発するレーザ光を読み取り窓25に導き及び対象物に付されたバーコードから戻ってくる光をスキャナモジュール50に導くための反射ミラー51がスキャナホルダ48に組み付けられている。
【0027】
スキャナモジュール50は、従来と同様に、半導体レーザ発光素子、受光素子であるフォトダイオード、ガルバノミラー、スキャナ基板などを含んでおり、半導体レーザ発光素子が発したレーザ光を所定の周期で揺動するガルバノミラーで反射して読み取り窓25を通じてバーコードに向けて出射すると共にバーコードを走査し、バーコードから戻ってくる光をスキャナモジュール50に取り込んでフォトダイオードで受光する。フォトダイオードが受光すると、その受光信号がスキャナ基板の受光回路及び増幅回路で増幅される。なお、スキャナ基板にはミラー駆動回路が設けられており、このミラー駆動回路によってガルバノミラーが駆動され、ガルバノミラーは上述した揺動運動を行う。
【0028】
図2の参照符号53は第1のスキャナクッションを示す。このスキャナクッション53はスキャナホルダ48の前方に配置され、その前方に位置するスキャナクッション板金54はスキャナホルダ48にネジ止めされる。
【0029】
このスキャナクッション板金54の前方には第2のスキャナクッション55が位置し、更に、その前方にメイン基板57が配置される。メイン基板57は上述したLCD10とほぼ同じ大きさを有し、このメイン基板57には制御用CPU101やメモリ(図5の参照符号58)を含む比較的大きな回路規模を有するメイン回路が設けられており、バーコードハンディターミナル100の全体制御や取得したバーコードの読み取り処理を行うと共にその読み取り結果をメモリ58(図5)に保存し、また、LCD10に表示するための信号を生成する。
【0030】
メイン基板57は、その前方に位置するLCDホルダ60と共通のネジを使ってスキャナホルダ48に固定される。すなわち、LCDホルダ60はメイン基板57を挟み込んだ状態でスキャナホルダ48にネジ止めされる。LCDホルダ60にはLCD10がきつく嵌合される。
【0031】
メイン基板57の下方にはキー基板61が配設され、このキー基板61には、その前方のメインキートップ62がネジ止めされる。メインキートップ62には、上述した操作部11つまりメニューキー12、トリガーキー13、テンキー群17などが設けられている(図1)。
【0032】
上述した部品を組み込んだリヤケース21に対してフロントケース20が上述したメインパッキン22を介して組み付けられることになるが、それに先立ってLCD10の周辺部にLCDフロントクッション63が配置され、このLCDフロントクッション63によってLCD10はフロントケース20によって押さえ付けられた状態となる。フロントケース20には、その前面に光透過性のフロントパネル64やフロントシート65が組み付けられる。
【0033】
図4を参照して、実施例のバーコードハンディターミナル100は、ホスト側のコンピュータであるメインフレームサーバー70とRS−232ケーブル71やUSBケーブル72を介して交信可能であり、また、クレードル34に置くことでメインフレームサーバー70と交信可能である。バーコードハンディターミナル100はメインフレームサーバー70と交信することで、バーコードハンディターミナル100にインストールされているプログラム(ファームウェア、アプリケーション)のアップデートが実行される。また、このアップデートは、SDカードのような脱着可能な外部メモリ(SDカード)80によって行うこともできる。また、IrDAやWLANやBluetoothなどの無線通信を使ってのアップデートも可能である。
【0034】
引き続き図5を参照して、バーコードハンディターミナル100は、電源の種別を検知する手段及びバッテリの残量を検知する手段82と、クレードル34から電源供給を受けていることを検知する手段84とを有する。電源の種別を検知するとは、次の状態を検知することをいう。(1)バーコードハンディターミナル100がバッテリパック28を搭載した状態でクレードル34に置かれて、このクレードル34から電源の供給を受けている状態では、商用電源(外部電源)とバッテリパック28の双方が電源となりうる(クレードルからの給電が優先する)、(2)バーコードハンディターミナル100からバッテリパック28を取り外した状態でクレードル34に置かれた状態では、商用電源(外部電源)が電源となる、(3)バッテリパック28を搭載したバーコードハンディターミナル100を、バーコードハンディターミナル100に給電できない状態(例えば、メインフレームサーバー70と接続するためのUSBケーブル72のみが接続され、ACアダプターが接続されていない状態)の通信クレードルに設置された状態では、バッテリパック28が電源となる。
【0035】
この電源の種別の検出は、上記(1)の場合には例えば、電源種別検知82がバッテリの接続を検知した状態で、かつ、外部給電検知手段84が充電クレードルの接続を検知することによって検出することができ、上記(2)の場合には例えば、電源種別検知82がバッテリの接続を検知していない状態で、かつ、外部給電検知手段84が充電クレードルの接続を検知することによって検出することができ、上記(3)の場合には例えば、電源種別検知手段82がバッテリの接続を検知した状態で、かつ、外部給電検知手段84が充電クレードルの接続を検知していないことによって検出することができる。
【0036】
バーコードハンディターミナル100はクレードル34に置いたときに、バーコードハンディターミナル100がクレードル34の所定位置に位置決めされたことを例えばクレードル34の所定の端子とバーコードハンディターミナル100の所定の端子が接続した状態になることで検知され、アプリケーションのアップデートを実行する前段階にこれを検知することで、バーコードハンディターミナル100のアップデートを開始する準備が整ったとしてアップデートモードに切り換えられる。アプリケーションのアップデートを実行する前段階でのこのチェックは、商用電源から給電を受けているクレードル34がバーコードハンディターミナル100に電源を供給することのできる状態にあることによってアップデートモードに切り替えるようにしてもよい。また、変形例として、これに加えてバーコードハンディターミナル100がバッテリパック28を搭載しており、このバッテリパック28の給電電圧が所定の電圧値よりも高い状態にあることを条件にアップデートモードに切り替えるようにしてもよい。換言すると、アップデートモードへの切り替えは、バーコードハンディターミナル100の電源がアップデート中に欠乏しない状態であることを確認した後に行うのが好ましい。これによれば、アップデート中にバーコードハンディターミナル100の電源が欠乏することに伴うプログラムの毀損を未然に防止できる。
【0037】
なお、バーコードハンディターミナル100の通信制御にACK/NACK制御が加えられている。したがって、アップデート実行中にバーコードハンディターミナル100がクレードル34から外れたり、外部メモリ(SDカード)80がバーコードハンディターミナル100から外れるなどの事故が発生したとしても、ACK/NACK制御によってタイムアウト期間内に復帰させることができればアップデートを正常に再開させることができる。
【0038】
図6は、業務データの送受信を行うことを前提としてバーコードハンディターミナル100に組み込まれているプログラムのアップデートに関する一連の処理を説明するためのフローチャートである。この図6を参照して、バーコードハンディターミナル100がクレードル34の所定位置に置かれたことを前提として、先ずステップS10において、メインフレームサーバー70との間の接続を確立する処理が行われる。次の図7を参照して、このコネクションの確立処理を説明する。
【0039】
図7を参照して、通信ユニットつまりクレードル34にバーコードハンディターミナル100が設置されると(S20)、バーコードハンディターミナル100に送受信すべき業務データ(例えば商品の在庫数などのデータ)が蓄積されているかの検出が行われる(S21)。バーコードハンディターミナル100のメモリに、新たなバーコードの情報が記憶されているかを確認することにより、この検出を行うことができる。ステップS21でYESつまり送受信すべき業務データが存在する場合にはステップS22に進んでバーコードハンディターミナル100とメインフレームサーバー70とを接続のための処理に移る。上記ステップS21でNOつまり送受信すべき業務データが存在しない場合にはステップS23に進んでバーコードハンディターミナル100とメインフレームサーバー70との接続を行わない。
【0040】
上記の図7の処理は、ユーザのルーチンワークのときを主眼においた処理であり、業務時間内において、バーコードハンディターミナル100に蓄積して業務データをメインフレームサーバー70に送信することを意図してバーコードハンディターミナル100をクレードル34に置いた場合の処理である。本実施例では、ユーザが所定のキー入力を行うことによって上記の図7の処理が開始されるようにしているが、本発明はこれに限られず、例えばバーコードハンディターミナル100をクレードル34に載置したことを契機として、自動的に上記の図7の処理が開始されるようにしてもよい。なお、バーコードハンディターミナル100をクレードル34に設置することにより、クレードル34を通じて、バーコードハンディターミナル100に搭載したバッテリパック28の充電が行われる。
【0041】
次の図8は、業務時間外にプログラムをアップデートすることを主眼に置いた処理を示すフローチャートである。もちろん、バーコードハンディターミナル100をクレードル34に設置することによりクレードル34を通じて、バーコードハンディターミナル100に搭載したバッテリパック28の充電が行われるのは、業務時間内にバーコードハンディターミナル100をクレードル34に設置した場合と同じである。
【0042】
アップデートを所定の時刻(典型的には深夜)に実行するには、予め設定した時刻にアップデートのために、ホスト側のコンピュータであるメインフレームサーバー70と接続処理を行うコネクション手段と、プログラムのアップデートファイルの有無をメインフレームサーバー70に対して確認するアップデートチェック手段とを有し、そして、予め設定した時刻にアップデートチェックを行い、メインフレームサーバー70にアップデートファイルが存在するときにプログラムのアップデートを実行するのがよい。
【0043】
具体的には、図8を参照して、通信ユニットつまりクレードル34にバーコードハンディターミナル100が設置されると(S30)、予め設定した時刻であるか否かの判定が行われる(S31)。このステップS31は、業務開始までに時間的な余裕があるか否かを判定するための工程である。したがって、設定する時刻は、例えば深夜など業務時間外であって始業まで時間的に余裕がある時刻が設定される。この時刻はユーザが任意の時刻を指定することにより設定できるようにするのが最も好ましい。
【0044】
設定した時刻が到来するとステップS32に進み、このステップS32においてバージョンアップのためのアップデートチェックが行われる。このアップデートチェックの一連の処理を図9を参照して説明する。
【0045】
図9を参照して、ステップS40乃至S42はバーコードハンディターミナル100つまり端末が主体となってアップデートのための通信を開始する場合の手順を示す。他方、ステップS43乃至S45はメインフレームサーバー70が主体となってアップデートのための通信を開始する場合の手順を示す。
【0046】
バーコードハンディターミナル100が主体となる場合について説明すると、先ずステップS40においてバーコードハンディターミナル100からメインフレームサーバー70にプログラムの最新のバージョンを要求する。次のステップS41では、メインフレームサーバー70が自らの指定ファイルを読み込んでバージョンの確認を行った後にバーコードハンディターミナル100に応答する。次のステップS42では、バーコードハンディターミナル100は自らのプログラムのバージョン情報を読み出して、メインフレームサーバー70からの応答情報と比較する。
【0047】
次に、メインフレームサーバー70が主体となる場合について説明すると、先ずステップS43においてメインフレームサーバー70からバーコードハンディターミナル100にプログラムのバージョンを要求する。次のステップS44では、バーコードハンディターミナル100が所有しているプログラムのバージョンを読み出してメインフレームサーバー70に応答する。次のステップS42では、メインフレームサーバー70は指定ファイルからバージョンを確認してバーコードハンディターミナル100からの応答情報と比較する。
【0048】
そして、ステップS46に進んでバーコードハンディターミナル100のプログラムのバージョンがメインフレームサーバー70と異なるときには、ステップS47で、メインフレームサーバー70が供給体制にあるバージョンがバーコードハンディターミナル100の事前に登録してあるパターンに該当するか否かを判断する。YESつまり例えばバージョン番号の新しいプログラムや番号が異なっている場合には、ステップS48に進んでバージョンアップ(アップデート)の処理に移る。このアップデート処理の詳細は後に説明する。他方、ステップS46、S47でNOの場合にはバージョンアップ(アップデート)不要の処理に移る(S49)。
【0049】
図6に戻って、コネクションが確立された後(ステップS10)、業務データの送受信が行われる(ステップS11)。ここでいう業務データには、検品作業などでメモリに溜め込まれた商品の在庫数などの商品データや、作業経過を記録するためのログデータなどが含まれる。また、業務の開始前であれば、検品作業の際に参照するマスターデータなどが業務データに含まれる。この業務データの送受信が完了した後、アップデートが必要か否かを判断する(ステップS12)。この判断は、CPU101によって、上述したステップS48、S49を受けて行われる。ステップS12においてアップデートが必要と判断されたときには、CPU101は、緊急にアップデートが必要か否かを判断する(ステップS13)。この判断は、「すぐにアップデートを行う?」などの文字をLCD10に表示してユーザの入力を待つようにしてもよい。或いは、アップデートの対象となるプログラムの優先度が高い場合には、すぐにアップデートが必要と判断するようにしてもよい。アップデートが必要と判断した場合(ステップS13:YES)、図11を用いて後述するアップデート処理が実行される(S15)。
【0050】
一方、ステップS12においてアップデートが必要ないと判断されたとき、或いは、ステップS13において緊急にアップデートする必要がないと判断されたときは、ステップS14でバーコードハンディターミナル100とメインフレームサーバー70とのコネクションが解除される。ユーザは業務に支障が無ければアップデートの実行を選択して、バーコードハンディターミナル100に含まれるプログラムのアップデートを行えばよい。
【0051】
ここで、本実施例では、ステップS11の業務データの送受信処理において、読取作業の経過情報を示すログデータをメインフレームサーバー70に送るようにしている。すなわち、アップデート処理(ステップS15)が実行される前に、ログデータが送られる。これにより、アップデート処理によってログデータの内容が変わってしまうのを防ぐことができる。換言すれば、アップデート前のログデータをメインフレームサーバー70に送ることができる。
【0052】
なお、本実施例では、業務時間内にバーコードハンディターミナル100をクレードル34に設置することは、ユーザがバーコードハンディターミナル100に蓄積したバーコードデータをメインフレームサーバー70に送信する意図であるとみなすことができることから、このバーコードデータの送信処理を優先し、その後でアップデートに関する処理を行うようにしてある。しかし、本発明はこれに限られず、例えばアップデートが必要か否かの判断(ステップS12)を業務データの送受信よりも前に行ってもよい(図10)。
【0053】
具体的に、この変形例を図10を参照して説明すると、コネクションが確立された後(ステップS10)、アップデートが必要か否かを判断する(ステップS51)。この判断は、CPU101によって、上述したように、ステップS48、S49を受けて行われる。ステップS51においてアップデートが必要と判断されたときには、CPU101は、緊急にアップデートが必要か否かを判断する(ステップS52)。この判断は、「すぐにアップデートを行う?」などの文字をLCD10に表示してユーザの入力を待つようにしてもよい。或いは、アップデートの対象となるプログラムの優先度が高い場合には、すぐにアップデートが必要と判断するようにしてもよい。アップデートが必要と判断した場合(ステップS51及びS52でYES)、アップデート処理が実行される(S53)。
【0054】
ステップS51又はS52でNOと判断した場合には業務データの送受信が行なわれ(ステップS54)、これが完了するとコネクションが解除される(S55)。
【0055】
図11はアップデート処理の手順を説明するためのフローチャートである。先ずバーコードハンディターミナル100が主体となる場合について説明すると、先ずステップS60においてバーコードハンディターミナル100からメインフレームサーバー70にアップデート用ファイルの送信を要求する。メインフレームサーバー70はバーコードハンディターミナル100からの要求に従い指定されたファイルを順次バーコードハンディターミナル100に送信する(S61)。バーコードハンディターミナル100は要求したアップデート用ファイルの全てを受信したら、メインフレームサーバー70とバーコードハンディターミナル100とのコネクションを解除する(S62)。
【0056】
メインフレームサーバー70が主体となってアップデートする場合について説明すると、先ずステップS63においてメインフレームサーバー70からバーコードハンディターミナル100にアップデート用ファイルを送信して、バーコードハンディターミナル100でアップデートすることを要求する。バーコードハンディターミナル100はメインフレームサーバー70から送られてきたアップデート用ファイルをメモリに保存する(S64)。アップデート用のファイルの全てをバーコードハンディターミナル100が受け取ったら、メインフレームサーバー70とバーコードハンディターミナル100とのコネクションを解除する(S65)。
【0057】
次のステップS66ではアップデートを実行した後のリセットが必要か否かの判断が行われ、YESであればS67でバーコードハンディターミナル100のリセットが実行される。NOであれば、バーコードハンディターミナル100はそのまま動作を継続する(S68)。
【0058】
如上のように、実施例のアップデート制御において、業務時間内のルーチンワークにおいてバーコードハンディターミナル100からメインフレームサーバー70に蓄積したデータを送信する際には、これを行った後にLCD10に表示される「アップデートチェックを行う?」(図6のS15)などの表示を見ることにより、ユーザは比較的時間の余裕のあるときにはアップデートを実行することになる。また、業務が終わりバーコードハンディターミナル100に装着してあるバッテリパック28を充電するためにバーコードハンディターミナル100をクレードルに設置することでバーコードハンディターミナル100はバッテリパック28を取り外すことなく充電が行われることになるが深夜になると、バーコードハンディターミナル100又はメインフレームサーバー70の主導の下でアップデートが自動的に行われることになる。
【0059】
したがって、ユーザは最新のプログラムを使って業務を遂行することができるだけでなく、アップデートのためのボタン操作やアップデートの完了を待つ必要もないし、アップデートのために業務に支障が及ぶこともない。
【0060】
また、通信ネットワークの障害が発生している可能性は低いと言える読取データ通信コネクションが確立されている間にプログラムのアップデートを行うことで、通信ネットワークの障害が発生していない可能性の高い時間帯にアップデートを行うことができ、ひいてはアップデート作業の業務効率を高めることができる。
【0061】
実施例のバーコードハンディターミナル100は一次元コード(いわゆるバーコード)の読み取りに適用されているが、本発明は一次元コードに限定されるものではない。QRコードなどのマトリックスコードや一次元バーコードを上下に複数重ねたスタックコードのような二次元コードを読み取る光学情報読取装置にも本発明を好適に適用できる。したがって、この明細書において使用した「バーコード」は特に限定しない限り、当業者が認識する広義の意味つまり一次元コード、二次元コードを含む意味であると理解されるべきである。
【符号の説明】
【0062】
100 バーコードハンディターミナル
10 表示部(LCD)
11 入力部
28 バッテリパック
34 クレードル(載置台)
50 スキャナモジュール
70 メインフレームサーバー(ホスト側コンピュータ)
80 外部メモリ(SDカード)
86 電源回路(給電電圧値検出回路を含む)
【特許請求の範囲】
【請求項1】
ホスト側コンピュータと電気的に接続してデータ転送を行う載置台に載置可能であって、バーコードを光学的に読み取った読取データを蓄積するメモリを備え、該載置台を介して該メモリに蓄積された読取データを該ホスト側コンピュータに送信する光学情報読取装置であって、
前記光学情報読取装置が前記載置台に設置された状態で、前記読取データを前記ホスト側コンピュータに送信するための読取データ通信コネクションを確立又は解除する通信コネクション処理手段と、
前記読取データ通信コネクションが確立されてから解除されるまでの間に、前記光学情報読取装置に組み込まれているプログラムのアップデートが必要か否かを確認するために前記ホスト側コンピュータと通信するアップデートチェック手段と、
前記アップデートチェック手段により確認した結果に基づいて、光学情報読取装置に組み込まれているプログラムのアップデートを実行するアップデート実行手段と、を備えることを特徴とする光学情報読取装置。
【請求項2】
前記アップデート実行手段は、前記メモリに蓄積された読取データとともに読取作業の経過情報を示すログデータを前記ホスト側コンピュータに送信した後に前記プログラムのアップデートを実行する、請求項1に記載の光学情報読取装置。
【請求項3】
前記アップデートチェックが、前記ホスト側コンピュータから前記光学情報読取装置に送信されるバージョン要求によって開始される、請求項1又は2に記載の光学情報読取装置。
【請求項4】
前記載置台が外部電源から電源供給を受け、該載置台によって前記光学情報読取装置に内蔵されているバッテリに充電が行われる、請求項1〜3のいずれか一項に記載の光学情報読取装置。
【請求項5】
前記バッテリが前記光学情報読取装置に対して脱着可能であり、
該バッテリの給電電圧が所定の電圧値以上のときに前記アップデートが実行される、請求項4に記載の光学情報読取装置。
【請求項1】
ホスト側コンピュータと電気的に接続してデータ転送を行う載置台に載置可能であって、バーコードを光学的に読み取った読取データを蓄積するメモリを備え、該載置台を介して該メモリに蓄積された読取データを該ホスト側コンピュータに送信する光学情報読取装置であって、
前記光学情報読取装置が前記載置台に設置された状態で、前記読取データを前記ホスト側コンピュータに送信するための読取データ通信コネクションを確立又は解除する通信コネクション処理手段と、
前記読取データ通信コネクションが確立されてから解除されるまでの間に、前記光学情報読取装置に組み込まれているプログラムのアップデートが必要か否かを確認するために前記ホスト側コンピュータと通信するアップデートチェック手段と、
前記アップデートチェック手段により確認した結果に基づいて、光学情報読取装置に組み込まれているプログラムのアップデートを実行するアップデート実行手段と、を備えることを特徴とする光学情報読取装置。
【請求項2】
前記アップデート実行手段は、前記メモリに蓄積された読取データとともに読取作業の経過情報を示すログデータを前記ホスト側コンピュータに送信した後に前記プログラムのアップデートを実行する、請求項1に記載の光学情報読取装置。
【請求項3】
前記アップデートチェックが、前記ホスト側コンピュータから前記光学情報読取装置に送信されるバージョン要求によって開始される、請求項1又は2に記載の光学情報読取装置。
【請求項4】
前記載置台が外部電源から電源供給を受け、該載置台によって前記光学情報読取装置に内蔵されているバッテリに充電が行われる、請求項1〜3のいずれか一項に記載の光学情報読取装置。
【請求項5】
前記バッテリが前記光学情報読取装置に対して脱着可能であり、
該バッテリの給電電圧が所定の電圧値以上のときに前記アップデートが実行される、請求項4に記載の光学情報読取装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2013−88955(P2013−88955A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−227478(P2011−227478)
【出願日】平成23年10月14日(2011.10.14)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
2.QRコード
【出願人】(000129253)株式会社キーエンス (681)
【Fターム(参考)】
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願日】平成23年10月14日(2011.10.14)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
2.QRコード
【出願人】(000129253)株式会社キーエンス (681)
【Fターム(参考)】
[ Back to top ]