(57)【要約】      （修正有）【課題】プログラムやファームウェア等のアップデート作業の業務効率を高めることのできる光学情報読取装置を提供する。【解決手段】バーコードハンディターミナルがバッテリパックを搭載した状態にあり、このバッテリパックの給電電圧が所定の電圧値よりも高い状態にあること且つバーコードハンディターミナルがクレードルに位置決めされていることを前提としてアップデートが実行される。そして、予め設定した時刻（典型的には深夜）になると、バージョンアップのためのチェックが行われ（Ｓ３２）、次いでアップデートが実行される。【選択図】図８
2013088955.tif 000002
【特許請求の範囲】
【請求項１】
ホスト側コンピュータと電気的に接続してデータ転送を行う載置台に載置可能であって、バーコードを光学的に読み取った読取データを蓄積するメモリを備え、該載置台を介して該メモリに蓄積された読取データを該ホスト側コンピュータに送信する光学情報読取装置であって、
前記光学情報読取装置が前記載置台に設置された状態で、前記読取データを前記ホスト側コンピュータに送信するための読取データ通信コネクションを確立又は解除する通信コネクション処理手段と、
前記読取データ通信コネクションが確立されてから解除されるまでの間に、前記光学情報読取装置に組み込まれているプログラムのアップデートが必要か否かを確認するために前記ホスト側コンピュータと通信するアップデートチェック手段と、
前記アップデートチェック手段により確認した結果に基づいて、光学情報読取装置に組み込まれているプログラムのアップデートを実行するアップデート実行手段と、を備えることを特徴とする光学情報読取装置。
【請求項２】
前記アップデート実行手段は、前記メモリに蓄積された読取データとともに読取作業の経過情報を示すログデータを前記ホスト側コンピュータに送信した後に前記プログラムのアップデートを実行する、請求項１に記載の光学情報読取装置。
【請求項３】
前記アップデートチェックが、前記ホスト側コンピュータから前記光学情報読取装置に送信されるバージョン要求によって開始される、請求項１又は２に記載の光学情報読取装置。
【請求項４】
前記載置台が外部電源から電源供給を受け、該載置台によって前記光学情報読取装置に内蔵されているバッテリに充電が行われる、請求項１〜３のいずれか一項に記載の光学情報読取装置。
【請求項５】
前記バッテリが前記光学情報読取装置に対して脱着可能であり、
該バッテリの給電電圧が所定の電圧値以上のときに前記アップデートが実行される、請求項４に記載の光学情報読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は光学情報読取装置に関する。
【背景技術】
【０００２】
光学情報読取装置の典型例としてバーコードハンディターミナルが知られている（特許文献１）。この携帯式光学情報読取装置であるバーコードハンディターミナルは、工場、倉庫などにおいて商品やその梱包箱に付されたバーコードを読み取るのに用いられる。バーコードハンディターミナルはレーザ光を発し、このレーザ光でバーコードを走査して読み取りを行い、その読み取り結果をディスプレイに表示する。
【０００３】
この種の光学情報読取装置であるＰＯＳシステムに関し、ここの端末機にインストールされたプログラムのアップデートの概要が特許文献２に記載されている。特許文献２に記載のソフトウェアアップデートでは、明確な開示はないものの、ユーザの操作に基づいて行われると思われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−６３８０２号公報
【特許文献２】特表２００８−５１１９２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
光学情報読取装置は、ユーザが日々の業務で収集したデータを蓄積し、これをメインフレームサーバーに送信するのが基本的な機能であり、その意味で情報収集端末機器と呼ぶことができる。この光学情報読取装置には、ユーザの業務を遂行するためのプログラムとしてファームウェア及び日々の業務のためのアプリケーションが組み込まれている。そして、これらのプログラムは機能追加などのために比較的頻繁にバージョンアップが必要とされる。
【０００６】
プログラムのアップデートは、従来、ユーザの操作に委ねられていたが、上述したように比較的頻繁にバージョンアップされることから、できるだけ最新のプログラムによって業務を遂行できるようにするのが望ましい。ここで、ユーザの操作に基づくプログラムのアップデートは、必ずしも上手く成功するとは限らない。具体的に説明すると、例えば、ユーザがプログラムのアップデートを行おうとしたときに、通信ネットワークに障害が発生している場合がある。この場合ユーザは、通信ネットワークの障害が発生していないと思われる時間帯に改めてプログラムのアップデートを行う必要があるため、アップデート作業の業務効率が低下する。加えて、ユーザがこの時間帯にアップデートするのを忘れてしまった場合、バージョンの古いプログラムによって業務が遂行されることになり、ユーザの業務に支障を及ぼす虞がある。
【０００７】
そこで、本発明の目的は、プログラムやファームウェア等のアップデート作業の業務効率を高めることのできる光学情報読取装置を提供することにある。
【０００８】
本発明の更なる目的は、煩雑な操作をユーザに強要することなくアップデートすることのできる光学情報読取装置を提供することにある。
【０００９】
本発明の更なる目的は、ユーザの業務に支障を及ぼすことなくアップデートすることのできる光学情報読取装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記の技術的課題は、本発明によれば、
ホスト側コンピュータと電気的に接続してデータ転送を行う載置台に載置可能であって、バーコードを光学的に読み取った読取データを蓄積するメモリを備え、該載置台を介して該メモリに蓄積された読取データを該ホスト側コンピュータに送信する光学情報読取装置であって、
前記光学情報読取装置が前記載置台に設置された状態で、前記読取データを前記ホスト側コンピュータに送信するための読取データ通信コネクションを確立又は解除する通信コネクション処理手段と、
前記読取データ通信コネクションが確立されてから解除されるまでの間に、前記光学情報読取装置に組み込まれているプログラムのアップデートが必要か否かを確認するために前記ホスト側コンピュータと通信するアップデートチェック手段と、
前記アップデートチェック手段により確認した結果に基づいて、光学情報読取装置に組み込まれているプログラムのアップデートを実行するアップデート実行手段と、
を備えることを特徴とする光学情報読取装置を提供することにより達成される。
【００１１】
すなわち、本発明によれば、アップデートチェック手段によって読取データ通信コネクションが確立されてから解除されるまでの間に、アップデートチェックが行われる。ここで、読取データ通信コネクションが確立されている間は、通信ネットワークの障害が発生している可能性は低いと言える。すなわち、ネットワーク障害が発生していれば、そもそも読取データ通信コネクション自体が確立されない。したがって、この間にプログラムのアップデートを行うことで、通信ネットワークの障害が発生していない可能性の高い時間帯にアップデートを行うことができ、ひいてはアップデート作業の業務効率を高めることができる。また、アップデートし忘れを防止することもできることから、アップデートを失念した状態で業務を遂行することによってユーザの業務に支障が及ぶのを未然に防ぐことができる。なお、アップデートの要否のチェックはユーザにアップデート実行の可否を求めてもよいし、所定の条件が成立したときに自動的にアップデートを実行してもよい。
【００１２】
本発明の好ましい実施形態によれば、前記アップデート実行手段は、前記メモリに蓄積された読取データとともに読取作業の経過情報を示すログデータを前記ホスト側コンピュータに送信した後に、前記プログラムのアップデートを実行する。この実施形態によれば、プログラムのアップデートによりログデータの内容が変わってしまう虞があることから、プログラムアップデート前のログデータをホストに送った後に、アップデートを実行することにより、より正確なログデータをホストに送ることができる。
【００１３】
本発明の他の目的、作用効果は、以下の本発明の好ましい実施例の詳しい説明から明らかになろう。
【図面の簡単な説明】
【００１４】
【図１】本発明を適用したバーコードハンディターミナルを斜め上方から見た斜視図である。
【図２】本発明を適用したバーコードハンディターミナルの分解斜視図である。
【図３】本発明を適用したバーコードハンディターミナルを後方から見た図であり、バッテリパックを取り外した状態の図である。
【図４】本発明を適用したバーコードハンディターミナルの全体システムの説明図である。
【図５】本発明を適用したバーコードハンディターミナルの全体システムのブロック図である。
【図６】アップデートの一連の処理を説明するためのフローチャートである。
【図７】業務時間内でのアップデートのためにクレードルを介してバーコードハンディターミナルとメインフレームサーバーとのコネクションを確立するための処理を説明するためのフローチャートである。
【図８】業務時間外にアップデートを実行する処理を説明するためのフローチャートである。
【図９】業務データの送受信を行った後にアップデートの要否をチェックするフローチャートである。
【図１０】業務データの送受信を行う前にアップデートの要否をチェックするフローチャートである。
【図１１】アップデート処理の具体例を説明するためのフローチャートである。
【発明を実施するための形態】
【実施例】
【００１５】
以下に、添付の図面に基づいて本発明の好ましい実施例を説明する。
【００１６】
図１は実施例の携帯式光学情報読取装置であるバーコードハンディターミナルを斜め前方から見た斜視図である。この図１を参照して、実施例のバーコードハンディターミナル１００は、その上部の前面に表示部１０を有し、表示部１０は液晶ディスプレイ（ＬＣＤ）で構成されている。バーコードハンディターミナル１００は、その前面において、上記ＬＣＤで構成された表示部１０の下方に位置する入力部１１を有する。入力部１１は、メニューキー１２、バーコードのスキャンの開始を指示するトリガーキー１３、４方向キー１４、ＥＮＴキー１５、キャンセルキー１６、テンキー群１７、テンキー群１７の下方に横並びに配置されたファンクションキー群１８、電源スイッチ１９で構成されている。他方、バーコードハンディターミナル１００の後面には、その上端部にバーコード読み取り窓が従来と同様に形成され、また、下端に、従来と同様に接続端子が配列されている。また、バーコードハンディターミナル１００の入力部１１の後側にバッテリが脱着可能に取り付けられる。
【００１７】
図２は実施例のバーコードハンディターミナル１００の分解斜視図である。図３は、バッテリパックを取り外した状態のバーコードハンディターミナル１００を後方から見た図である。図４はバーコードハンディターミナルの全体システムを示す図である。図５はバーコードハンディターミナルのブロック図である。
【００１８】
図２を参照して、バーコードハンディターミナル１００の部品を説明すると、図中、参照符号２０は合成樹脂成型品の表示窓２０ａを備えたフロントケースであり、２１は合成樹脂成型品のリヤケースであり、２２はメインパッキンを示す。メインパッキン２２は、フロントケース２０とリヤケース２１との突き合わせ面に沿って連続する形状を有し、このメインパッキン２２を介在した状態でフロントケース２０とリヤケース２１は合体されてバーコードハンディターミナル１００の筐体を構成し、フロントケース２０とリヤケース２１とで囲まれた内部空間に種々の部品が位置決めした状態で収容される。
【００１９】
リヤケース２１には、その上端部つまりＬＣＤ１０の上方の端部に横長の矩形の読み取り窓２５が形成されている。リヤケース２１には、また、上下の中間部分に電池端子窓２６が形成され、この電池端子窓２６に臨んで電池端子基板２７が取り付けられる。リヤケース２１の下部にはバッテリパック２８を受け入れる凹部２９が形成されており、バッテリ２８は、その容量によって、比較的大容量のバッテリ２８Ａと比較的小容量のバッテリ２８Ｂを選択でき（図４）、これに対応したバッテリカバー３０Ａ、３０Ｂが用意され、バッテリカバー３０Ａ、３０Ｂはリヤケース２１に対して脱着自在である。図２の参照符号３１はバッテリカバー用のパッキンを示す。
【００２０】
バッテリパック２８には、その上端面に給電端子２８ａが設置されており、バッテリパック２８をリヤケース２１のバッテリ受け凹所２９に設置することでバッテリパック２８がバーコードハンディターミナル１００の電池端子基板２７の受電端子（図示せず）と電気的に接続され、このバッテリパック２８の電気エネルギーによってバーコードハンディターミナル１００が駆動される。
【００２１】
上述したように、バーコードハンディターミナル１００は、バッテリパック２８を装着するための装着部としてバッテリ受け凹所２９を有している(図３)。本実施例では、バッテリ受け凹所２９はリヤケース２１の下方に設けられているが、装着部はどこに設けられていてもよい。装着部にバッテリパック２８が装着されると、装着部（凹部）２９に形成された受電端子８０とバッテリパック２８の給電端子２８ａとが接触する。そして、受電端子８０と給電端子２８ａとが接触した状態で、バッテリパック２８の電力がバーコードハンディターミナル１００に供給される。
【００２２】
リヤケース２１の下端には、端子窓３１が形成されており、この端子窓３１に臨んで、端子ホルダ３２に組み込まれた端子基板３３がリヤケース２１の下端に取り付けられる。この端子基板３３に設けられた端子（作図上の理由で図面には現れていない）は端子窓３１を通じて外部に露出し、この端子窓３１を通じて、後に説明するクレードル３４（図４）を通じて外部と交信することができると共に、充電ユニット９５、９６（図４）によってバッテリパック２８の充電が可能である。図２の参照符号３６は端子ホルダテープを示す。
【００２３】
より具体的には、バッテリパック２８が取り付けられたバーコードハンディターミナル１００が、充電ユニット７３に載置されると、充電ユニット７３からバッテリパック２８に電力が供給され、バッテリパック２８の充電が行われるとともに、外部機器（ＰＣ７０等）との通信に必要な電力がＣＰＵ１０１や通信回路等に供給される。バッテリパック２８の充電が完了すると、充電ユニット７３からの電力は、必要な分だけＣＰＵや通信回路等にのみ供給される。このような電力供給の切り替えは、後述する電源回路１０３（図５）が担っている。
【００２４】
リヤケース２１には、上記の電池端子基板２７に関連して電池保護テープ４０，電池端子クッション４１を介して電池端子押さえ部材４２が設置され、この電池端子押さえ部材４２がリヤケース２１にネジ止めされることにより、電池端子基板２７の端子部２７ａがリヤケース２１から遠ざかる方向へ変位するのが電池端子押さえ部材４２によって規制される。この電池端子基板２７の側方にバイブレータ４４が配置され、このバイブレータ４４はリヤケース２１に取り付けられる。
【００２５】
リヤケース２１の上記の読み取り窓２５には、リヤケース２１の外側からスキャナフィルタ４６が取り付けられ、他方、リヤケース２１の内側には、リヤクッション４７を介してスキャナホルダ４８がリヤケース２１にＯ-リング４９を介してネジ止めされる。
【００２６】
スキャナホルダ４８にはスキャナモジュール５０が搭載されており、このスキャナモジュール５０が発するレーザ光を読み取り窓２５に導き及び対象物に付されたバーコードから戻ってくる光をスキャナモジュール５０に導くための反射ミラー５１がスキャナホルダ４８に組み付けられている。
【００２７】
スキャナモジュール５０は、従来と同様に、半導体レーザ発光素子、受光素子であるフォトダイオード、ガルバノミラー、スキャナ基板などを含んでおり、半導体レーザ発光素子が発したレーザ光を所定の周期で揺動するガルバノミラーで反射して読み取り窓２５を通じてバーコードに向けて出射すると共にバーコードを走査し、バーコードから戻ってくる光をスキャナモジュール５０に取り込んでフォトダイオードで受光する。フォトダイオードが受光すると、その受光信号がスキャナ基板の受光回路及び増幅回路で増幅される。なお、スキャナ基板にはミラー駆動回路が設けられており、このミラー駆動回路によってガルバノミラーが駆動され、ガルバノミラーは上述した揺動運動を行う。
【００２８】
図２の参照符号５３は第１のスキャナクッションを示す。このスキャナクッション５３はスキャナホルダ４８の前方に配置され、その前方に位置するスキャナクッション板金５４はスキャナホルダ４８にネジ止めされる。
【００２９】
このスキャナクッション板金５４の前方には第２のスキャナクッション５５が位置し、更に、その前方にメイン基板５７が配置される。メイン基板５７は上述したＬＣＤ１０とほぼ同じ大きさを有し、このメイン基板５７には制御用ＣＰＵ１０１やメモリ（図５の参照符号５８）を含む比較的大きな回路規模を有するメイン回路が設けられており、バーコードハンディターミナル１００の全体制御や取得したバーコードの読み取り処理を行うと共にその読み取り結果をメモリ５８（図５）に保存し、また、ＬＣＤ１０に表示するための信号を生成する。
【００３０】
メイン基板５７は、その前方に位置するＬＣＤホルダ６０と共通のネジを使ってスキャナホルダ４８に固定される。すなわち、ＬＣＤホルダ６０はメイン基板５７を挟み込んだ状態でスキャナホルダ４８にネジ止めされる。ＬＣＤホルダ６０にはＬＣＤ１０がきつく嵌合される。
【００３１】
メイン基板５７の下方にはキー基板６１が配設され、このキー基板６１には、その前方のメインキートップ６２がネジ止めされる。メインキートップ６２には、上述した操作部１１つまりメニューキー１２、トリガーキー１３、テンキー群１７などが設けられている（図１）。
【００３２】
上述した部品を組み込んだリヤケース２１に対してフロントケース２０が上述したメインパッキン２２を介して組み付けられることになるが、それに先立ってＬＣＤ１０の周辺部にＬＣＤフロントクッション６３が配置され、このＬＣＤフロントクッション６３によってＬＣＤ１０はフロントケース２０によって押さえ付けられた状態となる。フロントケース２０には、その前面に光透過性のフロントパネル６４やフロントシート６５が組み付けられる。
【００３３】
図４を参照して、実施例のバーコードハンディターミナル１００は、ホスト側のコンピュータであるメインフレームサーバー７０とＲＳ−２３２ケーブル７１やＵＳＢケーブル７２を介して交信可能であり、また、クレードル３４に置くことでメインフレームサーバー７０と交信可能である。バーコードハンディターミナル１００はメインフレームサーバー７０と交信することで、バーコードハンディターミナル１００にインストールされているプログラム（ファームウェア、アプリケーション）のアップデートが実行される。また、このアップデートは、ＳＤカードのような脱着可能な外部メモリ（ＳＤカード）８０によって行うこともできる。また、IrDAやWLANやBluetoothなどの無線通信を使ってのアップデートも可能である。
【００３４】
引き続き図５を参照して、バーコードハンディターミナル１００は、電源の種別を検知する手段及びバッテリの残量を検知する手段８２と、クレードル３４から電源供給を受けていることを検知する手段８４とを有する。電源の種別を検知するとは、次の状態を検知することをいう。(1)バーコードハンディターミナル１００がバッテリパック２８を搭載した状態でクレードル３４に置かれて、このクレードル３４から電源の供給を受けている状態では、商用電源（外部電源）とバッテリパック２８の双方が電源となりうる(クレードルからの給電が優先する)、(2)バーコードハンディターミナル１００からバッテリパック２８を取り外した状態でクレードル３４に置かれた状態では、商用電源（外部電源）が電源となる、(3)バッテリパック２８を搭載したバーコードハンディターミナル１００を、バーコードハンディターミナル１００に給電できない状態(例えば、メインフレームサーバー７０と接続するためのＵＳＢケーブル７２のみが接続され、ＡＣアダプターが接続されていない状態)の通信クレードルに設置された状態では、バッテリパック２８が電源となる。
【００３５】
この電源の種別の検出は、上記(1)の場合には例えば、電源種別検知８２がバッテリの接続を検知した状態で、かつ、外部給電検知手段８４が充電クレードルの接続を検知することによって検出することができ、上記(2)の場合には例えば、電源種別検知８２がバッテリの接続を検知していない状態で、かつ、外部給電検知手段８４が充電クレードルの接続を検知することによって検出することができ、上記(3)の場合には例えば、電源種別検知手段８２がバッテリの接続を検知した状態で、かつ、外部給電検知手段８４が充電クレードルの接続を検知していないことによって検出することができる。
【００３６】
バーコードハンディターミナル１００はクレードル３４に置いたときに、バーコードハンディターミナル１００がクレードル３４の所定位置に位置決めされたことを例えばクレードル３４の所定の端子とバーコードハンディターミナル１００の所定の端子が接続した状態になることで検知され、アプリケーションのアップデートを実行する前段階にこれを検知することで、バーコードハンディターミナル１００のアップデートを開始する準備が整ったとしてアップデートモードに切り換えられる。アプリケーションのアップデートを実行する前段階でのこのチェックは、商用電源から給電を受けているクレードル３４がバーコードハンディターミナル１００に電源を供給することのできる状態にあることによってアップデートモードに切り替えるようにしてもよい。また、変形例として、これに加えてバーコードハンディターミナル１００がバッテリパック２８を搭載しており、このバッテリパック２８の給電電圧が所定の電圧値よりも高い状態にあることを条件にアップデートモードに切り替えるようにしてもよい。換言すると、アップデートモードへの切り替えは、バーコードハンディターミナル１００の電源がアップデート中に欠乏しない状態であることを確認した後に行うのが好ましい。これによれば、アップデート中にバーコードハンディターミナル１００の電源が欠乏することに伴うプログラムの毀損を未然に防止できる。
【００３７】
なお、バーコードハンディターミナル１００の通信制御にＡＣＫ/ＮＡＣＫ制御が加えられている。したがって、アップデート実行中にバーコードハンディターミナル１００がクレードル３４から外れたり、外部メモリ（ＳＤカード）８０がバーコードハンディターミナル１００から外れるなどの事故が発生したとしても、ＡＣＫ/ＮＡＣＫ制御によってタイムアウト期間内に復帰させることができればアップデートを正常に再開させることができる。
【００３８】
図６は、業務データの送受信を行うことを前提としてバーコードハンディターミナル１００に組み込まれているプログラムのアップデートに関する一連の処理を説明するためのフローチャートである。この図６を参照して、バーコードハンディターミナル１００がクレードル３４の所定位置に置かれたことを前提として、先ずステップＳ１０において、メインフレームサーバー７０との間の接続を確立する処理が行われる。次の図７を参照して、このコネクションの確立処理を説明する。
【００３９】
図７を参照して、通信ユニットつまりクレードル３４にバーコードハンディターミナル１００が設置されると（Ｓ２０）、バーコードハンディターミナル１００に送受信すべき業務データ（例えば商品の在庫数などのデータ）が蓄積されているかの検出が行われる（Ｓ２１）。バーコードハンディターミナル１００のメモリに、新たなバーコードの情報が記憶されているかを確認することにより、この検出を行うことができる。ステップＳ２１でＹＥＳつまり送受信すべき業務データが存在する場合にはステップＳ２２に進んでバーコードハンディターミナル１００とメインフレームサーバー７０とを接続のための処理に移る。上記ステップＳ２１でＮＯつまり送受信すべき業務データが存在しない場合にはステップＳ２３に進んでバーコードハンディターミナル１００とメインフレームサーバー７０との接続を行わない。
【００４０】
上記の図７の処理は、ユーザのルーチンワークのときを主眼においた処理であり、業務時間内において、バーコードハンディターミナル１００に蓄積して業務データをメインフレームサーバー７０に送信することを意図してバーコードハンディターミナル１００をクレードル３４に置いた場合の処理である。本実施例では、ユーザが所定のキー入力を行うことによって上記の図７の処理が開始されるようにしているが、本発明はこれに限られず、例えばバーコードハンディターミナル１００をクレードル３４に載置したことを契機として、自動的に上記の図７の処理が開始されるようにしてもよい。なお、バーコードハンディターミナル１００をクレードル３４に設置することにより、クレードル３４を通じて、バーコードハンディターミナル１００に搭載したバッテリパック２８の充電が行われる。
【００４１】
次の図８は、業務時間外にプログラムをアップデートすることを主眼に置いた処理を示すフローチャートである。もちろん、バーコードハンディターミナル１００をクレードル３４に設置することによりクレードル３４を通じて、バーコードハンディターミナル１００に搭載したバッテリパック２８の充電が行われるのは、業務時間内にバーコードハンディターミナル１００をクレードル３４に設置した場合と同じである。
【００４２】
アップデートを所定の時刻（典型的には深夜）に実行するには、予め設定した時刻にアップデートのために、ホスト側のコンピュータであるメインフレームサーバー７０と接続処理を行うコネクション手段と、プログラムのアップデートファイルの有無をメインフレームサーバー７０に対して確認するアップデートチェック手段とを有し、そして、予め設定した時刻にアップデートチェックを行い、メインフレームサーバー７０にアップデートファイルが存在するときにプログラムのアップデートを実行するのがよい。
【００４３】
具体的には、図８を参照して、通信ユニットつまりクレードル３４にバーコードハンディターミナル１００が設置されると（Ｓ３０）、予め設定した時刻であるか否かの判定が行われる（Ｓ３１）。このステップＳ３１は、業務開始までに時間的な余裕があるか否かを判定するための工程である。したがって、設定する時刻は、例えば深夜など業務時間外であって始業まで時間的に余裕がある時刻が設定される。この時刻はユーザが任意の時刻を指定することにより設定できるようにするのが最も好ましい。
【００４４】
設定した時刻が到来するとステップＳ３２に進み、このステップＳ３２においてバージョンアップのためのアップデートチェックが行われる。このアップデートチェックの一連の処理を図９を参照して説明する。
【００４５】
図９を参照して、ステップＳ４０乃至Ｓ４２はバーコードハンディターミナル１００つまり端末が主体となってアップデートのための通信を開始する場合の手順を示す。他方、ステップＳ４３乃至Ｓ４５はメインフレームサーバー７０が主体となってアップデートのための通信を開始する場合の手順を示す。
【００４６】
バーコードハンディターミナル１００が主体となる場合について説明すると、先ずステップＳ４０においてバーコードハンディターミナル１００からメインフレームサーバー７０にプログラムの最新のバージョンを要求する。次のステップＳ４１では、メインフレームサーバー７０が自らの指定ファイルを読み込んでバージョンの確認を行った後にバーコードハンディターミナル１００に応答する。次のステップＳ４２では、バーコードハンディターミナル１００は自らのプログラムのバージョン情報を読み出して、メインフレームサーバー７０からの応答情報と比較する。
【００４７】
次に、メインフレームサーバー７０が主体となる場合について説明すると、先ずステップＳ４３においてメインフレームサーバー７０からバーコードハンディターミナル１００にプログラムのバージョンを要求する。次のステップＳ４４では、バーコードハンディターミナル１００が所有しているプログラムのバージョンを読み出してメインフレームサーバー７０に応答する。次のステップＳ４２では、メインフレームサーバー７０は指定ファイルからバージョンを確認してバーコードハンディターミナル１００からの応答情報と比較する。
【００４８】
そして、ステップＳ４６に進んでバーコードハンディターミナル１００のプログラムのバージョンがメインフレームサーバー７０と異なるときには、ステップＳ４７で、メインフレームサーバー７０が供給体制にあるバージョンがバーコードハンディターミナル１００の事前に登録してあるパターンに該当するか否かを判断する。ＹＥＳつまり例えばバージョン番号の新しいプログラムや番号が異なっている場合には、ステップＳ４８に進んでバージョンアップ（アップデート）の処理に移る。このアップデート処理の詳細は後に説明する。他方、ステップＳ４６、Ｓ４７でＮＯの場合にはバージョンアップ（アップデート）不要の処理に移る（Ｓ４９）。
【００４９】
図６に戻って、コネクションが確立された後（ステップＳ１０）、業務データの送受信が行われる（ステップＳ１１）。ここでいう業務データには、検品作業などでメモリに溜め込まれた商品の在庫数などの商品データや、作業経過を記録するためのログデータなどが含まれる。また、業務の開始前であれば、検品作業の際に参照するマスターデータなどが業務データに含まれる。この業務データの送受信が完了した後、アップデートが必要か否かを判断する（ステップＳ１２）。この判断は、ＣＰＵ１０１によって、上述したステップＳ４８、Ｓ４９を受けて行われる。ステップＳ１２においてアップデートが必要と判断されたときには、ＣＰＵ１０１は、緊急にアップデートが必要か否かを判断する（ステップＳ１３）。この判断は、「すぐにアップデートを行う？」などの文字をＬＣＤ１０に表示してユーザの入力を待つようにしてもよい。或いは、アップデートの対象となるプログラムの優先度が高い場合には、すぐにアップデートが必要と判断するようにしてもよい。アップデートが必要と判断した場合（ステップＳ１３：ＹＥＳ）、図１１を用いて後述するアップデート処理が実行される（Ｓ１５）。
【００５０】
一方、ステップＳ１２においてアップデートが必要ないと判断されたとき、或いは、ステップＳ１３において緊急にアップデートする必要がないと判断されたときは、ステップＳ１４でバーコードハンディターミナル１００とメインフレームサーバー７０とのコネクションが解除される。ユーザは業務に支障が無ければアップデートの実行を選択して、バーコードハンディターミナル１００に含まれるプログラムのアップデートを行えばよい。
【００５１】
ここで、本実施例では、ステップＳ１１の業務データの送受信処理において、読取作業の経過情報を示すログデータをメインフレームサーバー７０に送るようにしている。すなわち、アップデート処理（ステップＳ１５）が実行される前に、ログデータが送られる。これにより、アップデート処理によってログデータの内容が変わってしまうのを防ぐことができる。換言すれば、アップデート前のログデータをメインフレームサーバー７０に送ることができる。
【００５２】
なお、本実施例では、業務時間内にバーコードハンディターミナル１００をクレードル３４に設置することは、ユーザがバーコードハンディターミナル１００に蓄積したバーコードデータをメインフレームサーバー７０に送信する意図であるとみなすことができることから、このバーコードデータの送信処理を優先し、その後でアップデートに関する処理を行うようにしてある。しかし、本発明はこれに限られず、例えばアップデートが必要か否かの判断（ステップＳ１２）を業務データの送受信よりも前に行ってもよい（図１０）。
【００５３】
具体的に、この変形例を図１０を参照して説明すると、コネクションが確立された後（ステップＳ１０）、アップデートが必要か否かを判断する（ステップＳ５１）。この判断は、ＣＰＵ１０１によって、上述したように、ステップＳ４８、Ｓ４９を受けて行われる。ステップＳ５１においてアップデートが必要と判断されたときには、ＣＰＵ１０１は、緊急にアップデートが必要か否かを判断する（ステップＳ５２）。この判断は、「すぐにアップデートを行う？」などの文字をＬＣＤ１０に表示してユーザの入力を待つようにしてもよい。或いは、アップデートの対象となるプログラムの優先度が高い場合には、すぐにアップデートが必要と判断するようにしてもよい。アップデートが必要と判断した場合（ステップＳ５１及びＳ５２でＹＥＳ）、アップデート処理が実行される（Ｓ５３）。
【００５４】
ステップＳ５１又はＳ５２でＮＯと判断した場合には業務データの送受信が行なわれ（ステップＳ５４）、これが完了するとコネクションが解除される（Ｓ５５）。
【００５５】
図１１はアップデート処理の手順を説明するためのフローチャートである。先ずバーコードハンディターミナル１００が主体となる場合について説明すると、先ずステップＳ６０においてバーコードハンディターミナル１００からメインフレームサーバー７０にアップデート用ファイルの送信を要求する。メインフレームサーバー７０はバーコードハンディターミナル１００からの要求に従い指定されたファイルを順次バーコードハンディターミナル１００に送信する（Ｓ６１）。バーコードハンディターミナル１００は要求したアップデート用ファイルの全てを受信したら、メインフレームサーバー７０とバーコードハンディターミナル１００とのコネクションを解除する（Ｓ６２）。
【００５６】
メインフレームサーバー７０が主体となってアップデートする場合について説明すると、先ずステップＳ６３においてメインフレームサーバー７０からバーコードハンディターミナル１００にアップデート用ファイルを送信して、バーコードハンディターミナル１００でアップデートすることを要求する。バーコードハンディターミナル１００はメインフレームサーバー７０から送られてきたアップデート用ファイルをメモリに保存する（Ｓ６４）。アップデート用のファイルの全てをバーコードハンディターミナル１００が受け取ったら、メインフレームサーバー７０とバーコードハンディターミナル１００とのコネクションを解除する（Ｓ６５）。
【００５７】
次のステップＳ６６ではアップデートを実行した後のリセットが必要か否かの判断が行われ、ＹＥＳであればＳ６７でバーコードハンディターミナル１００のリセットが実行される。ＮＯであれば、バーコードハンディターミナル１００はそのまま動作を継続する（Ｓ６８）。
【００５８】
如上のように、実施例のアップデート制御において、業務時間内のルーチンワークにおいてバーコードハンディターミナル１００からメインフレームサーバー７０に蓄積したデータを送信する際には、これを行った後にＬＣＤ１０に表示される「アップデートチェックを行う？」（図６のＳ１５）などの表示を見ることにより、ユーザは比較的時間の余裕のあるときにはアップデートを実行することになる。また、業務が終わりバーコードハンディターミナル１００に装着してあるバッテリパック２８を充電するためにバーコードハンディターミナル１００をクレードルに設置することでバーコードハンディターミナル１００はバッテリパック２８を取り外すことなく充電が行われることになるが深夜になると、バーコードハンディターミナル１００又はメインフレームサーバー７０の主導の下でアップデートが自動的に行われることになる。
【００５９】
したがって、ユーザは最新のプログラムを使って業務を遂行することができるだけでなく、アップデートのためのボタン操作やアップデートの完了を待つ必要もないし、アップデートのために業務に支障が及ぶこともない。
【００６０】
また、通信ネットワークの障害が発生している可能性は低いと言える読取データ通信コネクションが確立されている間にプログラムのアップデートを行うことで、通信ネットワークの障害が発生していない可能性の高い時間帯にアップデートを行うことができ、ひいてはアップデート作業の業務効率を高めることができる。
【００６１】
実施例のバーコードハンディターミナル１００は一次元コード（いわゆるバーコード）の読み取りに適用されているが、本発明は一次元コードに限定されるものではない。ＱＲコードなどのマトリックスコードや一次元バーコードを上下に複数重ねたスタックコードのような二次元コードを読み取る光学情報読取装置にも本発明を好適に適用できる。したがって、この明細書において使用した「バーコード」は特に限定しない限り、当業者が認識する広義の意味つまり一次元コード、二次元コードを含む意味であると理解されるべきである。
【符号の説明】
【００６２】
１００  バーコードハンディターミナル
１０    表示部（ＬＣＤ）
１１    入力部
２８    バッテリパック
３４    クレードル（載置台）
５０    スキャナモジュール
７０    メインフレームサーバー（ホスト側コンピュータ）
８０    外部メモリ（ＳＤカード）
８６    電源回路（給電電圧値検出回路を含む）
【図１】
2013088955.tif 000003
【図２】
2013088955.tif 000004
【図３】
2013088955.tif 000005
【図４】
2013088955.tif 000006
【図５】
2013088955.tif 000007
【図６】
2013088955.tif 000008
【図７】
2013088955.tif 000009
【図８】
2013088955.tif 000010
【図９】
2013088955.tif 000011
【図１０】
2013088955.tif 000012
【図１１】
2013088955.tif 000013