(57)【特許請求の範囲】
【請求項１】
バーコードを読取りバーコードイメージを生成する読取手段と、
前記読取手段により生成された読取候補バーコードのバーコードイメージを取得しＲＡＭに格納した第１のバーコードのバーコードイメージと、第１のバーコードイメージより後に読取手段に生成された読取候補バーコードのバーコードイメージを取得しＲＡＭに格納した第２のバーコードのバーコードイメージにおいて、第２のバーコードイメージと第１のバーコードイメージとが同一のバーコードイメージであり、第２のバーコードイメージと第１のバーコードイメージの変化量が、予め設定した変化量である閾値と比較して、当該変化量が閾値を超えた場合に、バーコード読取装置が操作者により規定動作が行われたものと判定し、第２のバーコードイメージを読取るバーコードと確定する制御手段と、
を備えるバーコード読取装置。
【請求項２】
前記規定動作に対応する動作条件を記憶する記憶手段を備え、
前記制御手段は、前記読取手段により生成された読取候補バーコードの前記第１のバーコードイメージを取得し、当該第１のバーコードイメージより後に前記読取手段に読取られ生成された同一バーコードの前記第２のバーコードイメージを取得し、前記第１のバーコードイメージに対する前記第２のバーコードイメージの変化状態が前記記憶された動作条件を満たすか否かが判定され、当該変化状態が前記動作条件を満たす場合に、前記バーコード読取装置に規定動作があったと判定する請求項１に記載のバーコード読取装置。
【請求項３】
情報の通知を行う通知手段を備え、
前記制御手段は、前記読取手段により生成されたバーコードイメージのバーコードの読取を確定した旨を前記通知手段に通知させる請求項２に記載のバーコード読取装置。
【請求項４】
前記制御手段は、前記第１のバーコードイメージを取得した旨を前記通知手段に通知させる請求項３に記載のバーコード読取装置。
【請求項５】
前記通知手段は、音出力、表示出力及び振動出力の少なくとも一つにより通知を行う請求項３又は４に記載のバーコード読取装置。
【請求項６】
コンピュータを、
バーコードを読取りバーコードイメージを生成する読取手段、
前記読取手段により生成された読取候補バーコードのバーコードイメージを取得しＲＡＭに格納した第１のバーコードのバーコードイメージと、第１のバーコードイメージより後に読取手段に生成された読取候補バーコードのバーコードイメージを取得しＲＡＭに格納した第２のバーコードのバーコードイメージにおいて、第２のバーコードイメージと第１のバーコードイメージとが同一のバーコードイメージであり、第２のバーコードイメージと第１のバーコードイメージの変化量が、予め設定した変化量である閾値と比較して、当該変化量が閾値を超えた場合に、バーコード読取装置が操作者により規定動作が行われたものと判定し、第２のバーコードイメージを読取るバーコードと確定する制御手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード読取装置及びプログラムに関する。
【背景技術】
【０００２】
従来、商品等に付されたバーコードを読取るためのバーコード読取装置が知られている。バーコード読取装置は、光を読取対象のバーコードに照射し、その反射光を受光してデコードすることにより、バーコードのデータを取得する。
【０００３】
また、バーコードを読取る場合に、読取りたいバーコードの特定が必要なケースがある。つまり、バーコード読取装置から照射した光や視野の中に、複数のバーコードが入っている状態において、読取りたいバーコードを特定するケースである。
【０００４】
図１５に、バーコードＢ１１，Ｂ１２，Ｂ１３，Ｂ１４，Ｂ１５とバーコードの読取操作方向とを示す。図１５に示すように、バーコードＢ１１，Ｂ１２，Ｂ１３，Ｂ１４，Ｂ１５の５つのバーコードが所定領域内に集まっている場合に、読取対象としてのバーコードＢ１５を読取る例を考える。また、バーコード読取装置の照明光Ｌ１の照射範囲内のバーコードが読取られるものとする。
【０００５】
読取りたいバーコードＢ１５は左下にあり、上方から下方へ照明光Ｌ１を移動させて読取を行う。すると、バーコードＢ１５よりも、バーコードＢ１１，Ｂ１２，Ｂ１３が先に読取範囲に入ってしまい（照明光Ｌ１が当たってしまい）、それらを読み取ってしまったり、バーコードＢ１４のように、すぐ横にあるバーコードに照明光Ｌ１が当たってしまうことにより、バーコードＢ１４を読取ってしまったりするという問題があった。
【０００６】
上記バーコードの特定において、意図しないバーコードの読取を回避するために、下記第１〜第５の手法が考えられている。
【０００７】
第１の手法は、複数のバーコードに光が当たった場合に、中心部に存在するバーコードを優先して読取を行う手法である。これにより、操作者は、読取りたいバーコードをより中心部にくるように、スキャニングすることにより、期待通りのバーコードを読むことが可能となる（実際には全てのバーコードの読取を行い、確定した読取結果として、中心部のものを優先する）。
【０００８】
第２の手法は、複数のバーコードに光が当たり、読取りが確定（デコード完了）したバーコードのイメージに対して照明光の幅を変化させ、どのバーコードを読み取ったのかを視覚的に分かるようにする手法である。図１６（ａ）に、バーコードＢ１６，Ｂ１７に照明光Ｌ２を当てた状態を示す。図１６（ｂ）に、バーコードＢ１６のみに照明光Ｌ２を当てた状態を示す。
【０００９】
例えば、図１６（ａ）に示すように、バーコードＢ１６，Ｂ１７が並んでいる状態において、照明光Ｌ２をバーコードＢ１６，Ｂ１７に当てる。そして、図１６（ｂ）に示すように、バーコードＢ１６を読取り、照明光Ｌ２を短くして照明光Ｌ３とし、照明光Ｌ３がバーコードＢ１６のみに当たっているようにする。
【００１０】
第３の手法は、予め、複数のバーコードに光が当たらないように、発光する光の幅を絞り、不要なバーコードに対して、光が当たらないようにする手法である。
【００１１】
第４の手法は、バーコード読取装置に距離センサを搭載し、読取たいバーコードイメージとの距離を識別し、規定距離（予め設定された一定の距離）においてのみ、読取を行うようにする手法である。これは、図１５に示すように、複数のバーコードが印刷されている紙面の上部から、下部にある読取りたいバーコードＢ１５まで、光をスライドするのみでは有効ではない。しかし、規定距離よりもバーコード読取装置を離した状態で、読取りたいバーコードＢ１５まで光を当てた上で、規定の距離にバーコード読取装置を持ってくる（バーコードＢ１５にバーコード読取装置を近づける）ことにより、バーコードＢ１５の読取が可能となる。
【００１２】
第５の手法は、読取結果を確定させるためのトリガキーの操作を２アクションにする手法である。通常、バーコード読取装置において、読取開始時には、トリガキーを押下することにより光が発光されて読取ができるようになるか、何も操作しなくても、常に光が発光され、読取可能状態となっている。トリガキーの２アクションによる読取確定を行うことにより、光が発光されている状態で、読取りたいバーコードに光が当たっていても、まだ、読取は確定せず、さらに、もう一度、トリガキーを押下する等のアクションをすることにより、バーコード読取を確定する。これにより、操作途中で発光している光が、たとえ、意図しないバーコードに当たっていても、読取を行わないようにすることができる。
【００１３】
他にも、複数のバーコードが近接している場合に、バーコード読取範囲を全範囲の左半分又は右半分にするか操作入力して設定し、その設定したバーコード読取範囲でバーコード読取を行う手法も考えられている（例えば、特許文献１参照）。
【特許文献１】特開２０００−１１０８６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかし、従来の方式は、上述した通りで、複数のバーコードの中からバーコード読取を確定することが可能であるが、それぞれ、以下のような問題があった。上記従来の第１の手法では、中心部に存在するバーコードを優先して読取を行うだけであるため、発光している光（読取範囲）の中に、読取りたいバーコードとは異なるバーコードが、一つ又は複数入った場合に、意図しないバーコードの読取りが確定してしまっていた。
【００１５】
また、上記従来の第２の手法では、どのバーコードを読取ったのかが照明光の変化により視覚的にわかるようになっただけであり、読取りたいバーコードを特定するこはできなかった。
【００１６】
また、上記従来の第３の手法では、読取りたいバーコードの幅と同じサイズのバーコードが複数存在していた場合は、区別することができなかった。
【００１７】
また、上記従来の第４の手法では、距離センサという、特殊なデバイスを搭載しなくてはならなかった。さらに、規定の距離内で、操作した場合は、意図しないバーコードの読取が確定してしまっていた。
【００１８】
また、上記従来の第５の手法では、読取結果を確定させるためのトリガキーの操作が増えるために、操作が複雑になり、操作性が低くなっていた。
【００１９】
また、上記従来の読取範囲を操作設定する手法では、読取範囲を設定させるための操作が増えるために、操作が複雑になり、操作性が低くなっていた。
【００２０】
本発明の課題は、特殊なデバイスを用いることなく、読取りたいバーコードを確実に読取って確定するとともに、バーコード読取の操作性を高めることである。
【課題を解決するための手段】
【００２１】
上記課題を解決するために、請求項１に記載の発明のバーコード読取装置は、
バーコードを読取りバーコードイメージを生成する読取手段と、
前記読取手段により生成された読取候補バーコードのバーコードイメージを取得しＲＡＭに格納した第１のバーコードのバーコードイメージと、第１のバーコードイメージより後に読取手段に生成された読取候補バーコードのバーコードイメージを取得しＲＡＭに格納した第２のバーコードのバーコードイメージにおいて、第２のバーコードイメージと第１のバーコードイメージとが同一のバーコードイメージであり、第２のバーコードイメージと第１のバーコードイメージの変化量が、予め設定した変化量である閾値と比較して、当該変化量が閾値を超えた場合に、バーコード読取装置が操作者により規定動作が行われたものと判定し、第２のバーコードイメージを読取るバーコードと確定する制御手段と、
を備える。
【００２２】
請求項２に記載の発明は、請求項１に記載のバーコード読取装置において、
前記規定動作に対応する動作条件を記憶する記憶手段を備え、
前記制御手段は、前記読取手段により生成された読取候補バーコードの第１のバーコードイメージを取得し、当該第１のバーコードイメージより後に前記読取手段に読取られ生成された同一バーコードの第２のバーコードイメージを取得し、前記第１のバーコードイメージに対する前記第２のバーコードイメージの変化状態が前記記憶された動作条件を満たすか否かが判定され、当該変化状態が前記動作条件を満たす場合に、前記自装置に規定動作があったと判定する。
【００２３】
請求項３に記載の発明は、請求項２に記載のバーコード読取装置において、
情報の通知を行う通知手段を備え、
前記制御手段は、前記読取手段により生成されたバーコードイメージのバーコードの読取を確定した旨を前記通知手段に通知させる。
【００２４】
請求項４に記載の発明は、請求項３に記載のバーコード読取装置において、
前記制御手段は、前記第１のバーコードイメージを取得した旨を前記通知手段に通知させる。
【００２５】
請求項５に記載の発明は、請求項３又は４に記載のバーコード読取装置において、
前記通知手段は、音出力、表示出力及び振動出力の少なくとも一つにより通知を行う。
【００２６】
請求項６に記載の発明は、
コンピュータを、
バーコードを読取りバーコードイメージを生成する読取手段、
前記読取手段により生成された読取候補バーコードのバーコードイメージを取得しＲＡＭに格納した第１のバーコードのバーコードイメージと、第１のバーコードイメージより後に読取手段に生成された読取候補バーコードのバーコードイメージを取得しＲＡＭに格納した第２のバーコードのバーコードイメージにおいて、第２のバーコードイメージと第１のバーコードイメージとが同一のバーコードイメージであり、第２のバーコードイメージと第１のバーコードイメージの変化量が、予め設定した変化量である閾値と比較して、当該変化量が閾値を超えた場合に、バーコード読取装置が操作者により規定動作が行われたものと判定し、第２のバーコードイメージを読取るバーコードと確定する制御手段、
として機能させるためのプログラムである。
【発明の効果】
【００２７】
本発明によれば、特殊なデバイスを用いることなく、読取りたいバーコードを確実に読取って確定できるとともに、バーコード読取の操作性を高めることができる。
【発明を実施するための最良の形態】
【００２８】
以下、添付図面を参照して本発明に係る好適な実施の形態及び変形例を順に詳細に説明する。なお、本発明は、図示例に限定されるものではない。
【００２９】
図１〜図１４を参照して本発明に係る実施の形態を説明する。先ず、図１及び図２を参照して本実施の形態の装置構成を説明する。図１に、本実施の形態のハンディターミナル１の回路構成を示す。図２に、スキャナ部１６の内部構成を示す。
【００３０】
本実施の形態のバーコード読取装置としてのハンディターミナル１は、バーコード読取、ユーザ操作による情報の入力、情報の記憶、等の機能を有する携帯端末である。ハンディターミナル１は、通常モードでは、バーコード読取のトリガキーを操作する毎にバーコード読取用のレーザ光を発光及び受光してバーコード読取を行うが、バーコード連続読取モードになると、トリガキーの操作でバーコード読取が開始されて、バーコード読取用のレーザ光を連続的に発光及び受光してバーコード読取を繰り返し行う装置である。
【００３１】
図１に示すように、ハンディターミナル１は、制御手段としてのＣＰＵ（Central Processing Unit）１１、入力部１２、ＲＡＭ（Random Access Memory）１３、通知手段としての表示部１４、ＲＯＭ（Read Only Memory）１５、バーコード読取手段としてのスキャナ部１６、記憶手段としてのフラッシュメモリ１７、Ｉ／Ｆ（InterFace）１８、通知手段としての音出力部１９等を備えて構成され、各部がバス２０を介して接続される。
【００３２】
ＣＰＵ１１は、ハンディターミナル１の各部を中央制御する。ＣＰＵ１１は、ＲＯＭ１５に記憶されているシステムプログラム及び各種アプリケーションプログラムの中から指定されたプログラムをＲＡＭ１３に展開し、ＲＡＭ１３に展開されたプログラムとの協働で、各種処理を実行する。
【００３３】
ＣＰＵ１１は、ＲＯＭ１５に記憶されたスキャンプログラムとの協働により、スキャナ部１６によりスキャンされた読取候補バーコードのバーコードイメージを取得してＲＡＭ１３のバーコードイメージ３２に格納し、読取候補バーコードのバーコードイメージ３２より後にスキャナ部１６にスキャンされた同一バーコードのバーコードイメージを取得してＲＡＭ１３のバーコードイメージ５２に格納し、バーコードイメージ５２に対するバーコードイメージ５２の変化状態が動作閾値データ６５〜６８の動作条件を満たすか否かを判定する。そして、ＣＰＵ１１は、動作条件を満たす場合に、ハンディターミナル１に規定動作があったと判定し、バーコードの読取を確定し（読取確定バーコードを確定し）、そのバーコードのデコードデータをフラッシュメモリ１７に記憶するとともに、読取バーコードを確定した旨を表示部１４に表示する。
【００３４】
読取候補バーコードとは、スキャナ部１６にスキャンされたバーコードであり、ハンディターミナル１が規定動作をしたか否かの判定の基準となるバーコードである。読取確定バーコードとは、読取候補バーコードと同一のバーコードであり、読取候補バーコードよりも後にスキャナ部１６にスキャンされたバーコードであり、ハンディターミナル１が規定動作をしたか否かの判定に用いられるバーコードイメージのバーコートである。
【００３５】
入力部１２は、バーコード読取を指示するためのトリガキー、数字・文字入力キー、各種機能キー等の各種キーを含み、操作者から押下入力された各キーのキー入力信号をＣＰＵ１１に出力する。また、入力部１２は、表示部１４と一体的にタッチパネルが構成されることとしてもよい。
【００３６】
ＲＡＭ１３は、情報を一時的に格納する揮発性のメモリであり、実行される各種プログラムやこれら各種プログラムに係るデータ等を格納するワークエリアを有する。ＲＡＭ１３には、後述する格納データ３０，５０が格納される。
【００３７】
表示部１４は、ＬＣＤ（Liquid Crystal Display）、ＥＬＤ（ElectroLuminescent Display）等で構成され、ＣＰＵ１１からの表示信号に従って各種表示を行う。
【００３８】
ＲＯＭ１５は、各種プログラム、各種データが予め読み出し専用に記憶される記憶部である。ＲＯＭ１５は、スキャナプログラムを記憶する。
【００３９】
スキャナ部１６は、ＣＰＵ１１の制御信号に従い、バーコードからバーコードイメージを読取り、そのバーコードイメージのデータをＣＰＵ１１に出力する一次元バーコードスキャナである。図２に示すように、スキャナ部１６は、発光部１６１と、バイブレーションミラー１６２と、受光部１６３と、ゲイン回路１６４と、二値化回路１６５と、を備えて構成される。
【００４０】
発光部１６１は、レーザ光Ｌを発光する。バイブレーションミラー１６２は、ＣＰＵ１１の制御信号に従い、図示しないモータ等によりバイブレートされることにより、発光部１６１から発光されたレーザ光Ｌを反射して左右に広げる。受光部１６３は、バイブレーションミラー１６２に反射されたレーザ光Ｌが実際にバーコードに当たった反射光を受光して電気信号に変換するモジュールである。
【００４１】
ゲイン回路１６４は、受光部１６３で受光した反射光の電気信号を増幅して波形を最適化する。二値化回路１６５は、ゲイン回路１６４で最適化された電気信号をバーコードイメージとしての二値データに変換してＣＰＵ１１に出力する。ＣＰＵ１１は、二値化回路１６５から入力された二値データをデコードすることとなる。
【００４２】
フラッシュメモリ１７は、各種データ等の情報が読み出し及び書き込み可能な記憶部である。フラッシュメモリ１７は、後述する閾値データ４０，６０が記憶される。また、フラッシュメモリ１７は、バーコード確定後のデコードデータが記憶される。
【００４３】
Ｉ／Ｆ１８は、通信ケーブルを介して外部機器と情報を送受信する。Ｉ／Ｆ１８は、例えば、ＵＳＢ（Universal Serial Bus）方式の有線通信部である。また、ハンディターミナル１が無線通信機能を有する無線通信部を有する構成としてもよい。
【００４４】
音出力部１９は、アンプ、スピーカ等から構成され、ＣＰＵ１１の制御信号に従い、アンプにより音の信号を増幅し、ブザー音等の音をスピーカから出力する。
【００４５】
次に、図３及び図４を参照して、ＲＡＭ１３及びフラッシュメモリ１７に記憶されるデータを説明する。図３（ａ）に、読取候補バーコードの格納データ３０の構成を示す。図３（ｂ）に、読取候補バーコードの閾値データ４０の構成を示す。図４（ａ）に、読取確定バーコードの格納データ５０の構成を示す。図４（ｂ）に、読取確定バーコードの閾値データ６０の構成を示す。
【００４６】
ＲＡＭ１３には、スキャナ処理において、図３（ａ）に示す読取候補バーコードの格納データ３０と、図４（ａ）に示す読取確定バーコードの格納データ５０と、が格納される。
【００４７】
格納データ３０は、デコードデータ３１と、バーコードイメージ３２と、条件成立回数（Ｍ）３３と、を含む。
【００４８】
デコードデータ３１は、読取候補バーコードのデコードが完了した際の読取データである。デコードデータ３１に格納されているデコードデータと、今回デコードした結果とが比較され、同一であるか否かの判定に使用する。
【００４９】
バーコードイメージ３２は、読取候補バーコードを構成する黒バー及び白スペースの幅と、左右のマージン幅のデータである。実際にバーコードを読取った時点では、バーコード以外のごみデータ等が、イメージとして存在するが、デコードが完了しているため、取得したバーコードイメージのどの部分がデータとして有効であり、どの部分が不要な部分であるかが、判別できる。このため、バーコードとして構成される有効なデータ及びその両側にあるマージン部のみがイメージデータとしてバーコードイメージ３２に格納されている。また、バーコードイメージ３２の左右のマージン幅のデータをみることにより、バーコードの開始位置と終了位置とがわかる。
【００５０】
条件成立回数３３は、読取候補バーコードとしての成立条件が成立した回数のデータである。変数Ｍは、条件成立回数３３の変数である。
【００５１】
格納データ５０は、デコードデータ５１と、バーコードイメージ５２と、条件成立回数（Ｎ）５３と、を含む。デコードデータ５１、バーコードイメージ５２、条件成立回数５３は、順に、格納データ３０のデコードデータ３１、バーコードイメージ３２、条件成立回数３３のデータ形式と同様である。
【００５２】
デコードデータ５１は、読取確定バーコードのデコードが完了した際の読取データである。バーコードイメージ５２は、読取確定バーコードを構成する黒バー及び白スペースの幅と、左右のマージン幅のデータである。条件成立回数５３は、読取確定バーコードとしての成立条件が成立した回数のデータである。変数Ｎは、条件成立回数３３の変数である。
【００５３】
フラッシュメモリ１７には、図３（ｂ）に示す読取候補バーコードの閾値データ４０と、図４（ｂ）に示す読取確定バーコードの閾値データ６０と、が記憶されている。
【００５４】
閾値データ４０は、閾値（右）４１と、閾値（左）４２と、閾値（遠）４３と、閾値（近）４４と、を含む。閾値（右）４１は、読取候補バーコードのバーコードイメージ右側の変化の許容範囲を示すデータであり、例えばｘｘ％（ｘｘ：任意のパーセンテージ値であり、以下同様とする。）のデータとする。バーコードイメージ５２に格納されているバーコードイメージの右側のマージン幅と、今回読取ったバーコードイメージの右側のマージン幅と、を比較し、閾値（右）４１に格納されているｘｘ％以内であることを、そのバーコードイメージを読取候補バーコードとして採用する条件の一つとする。閾値（左）４２は、閾値（右）４１と同様に、読取候補バーコードのバーコードイメージ左側の変化の許容範囲を示すデータであり、例えばｘｘ％のデータとする。
【００５５】
閾値（遠）４３は、閾値（右）４１と同様に、読取候補バーコードのバーコードイメージの遠ざかり方の変化の許容範囲を示すデータであり、例えばｘｘ％のデータとする。バーコードイメージ５２に格納されているバーコードイメージのデータ部分の幅と、今回読取ったバーコードイメージのデータ部分と、を比較し、ここで格納されているｘｘ％以内であることを、バーコードイメージを読取候補バーコードとして採用する条件の一つとする。閾値（近）４４は、閾値（右）４１と同様に、読取候補バーコードのバーコードイメージの近づき方の変化の許容範囲を示すデータであり、例えばｘｘ％のデータとする。
【００５６】
閾値データ６０は、閾値（右）６１と、閾値（左）６２と、閾値（遠）６３と、閾値（近）６４と、動作閾値（右）６５と、動作閾値（左）６６と、動作閾値（遠）６７と、動作閾値（近）６８と、規定パターン６９と、を含む。
【００５７】
閾値（右）６１、閾値（左）６２、閾値（遠）６３、閾値（近）６４は、順に、閾値データ４０の閾値（右）４１、閾値（左）４２、閾値（遠）４３、閾値（近）４４と同様のデータ形式である。閾値（右）６１は、読取確定バーコードのバーコードイメージ右側の変化の許容範囲を示すデータである。閾値（左）６２は、読取確定バーコードのバーコードイメージ左側の変化の許容範囲を示すデータである。閾値（遠）６３は、読取確定バーコードのバーコードイメージの遠ざかり方の変化の許容範囲を示すデータである。閾値（近）６４は、読取確定バーコードのバーコードイメージの近づき方の変化の許容範囲を示すデータである。
【００５８】
動作閾値（右）６５は、ハンディターミナル１（スキャナ部１６）が右方向に規定動作の移動をしたと判断するための閾値のデータであり、例えばｘｘ％のデータとする。バーコードイメージ５２に格納されているバーコードイメージの、右側のマージン幅と、今回読取ったバーコードイメージの右側のマージン幅と、を比較し、動作閾値（右）６５に格納されているｘｘ％以上であれば、右方向に規定動作の移動をしたと判定される。但し、あまりにも大きい移動がおきた際に、ガードをかけ、規定動作の移動とみなさないようにすることも可能である。
【００５９】
動作閾値（左）６６は、動作閾値（右）６５と同様に、ハンディターミナル１（スキャナ部１６）が左方向に規定動作の移動をしたと判断するための閾値のデータであり、例えばｘｘ％のデータとする。
【００６０】
動作閾値（遠）６７は、ハンディターミナル１（スキャナ部１６）が後方向に規定動作の移動をしたと判断するための閾値のデータであり、例えばｘｘ％のデータとする。バーコードイメージ５２に格納されているバーコードイメージのデータ部分の幅と、今回読取ったバーコードイメージのデータ部分と、を比較し、動作閾値（遠）６７に格納されているｘｘ％以上であれば、後方向に規定動作の移動をしたと判定される。但し、あまりにも大きい移動がおきた際に、ガードをかけ、規定動作の移動とみなさないようにすることも可能である。
【００６１】
動作閾値（近）６８は、ハンディターミナル１（スキャナ部１６）が前方向に規定動作の移動をしたと判断するための閾値のデータであり、例えばｘｘ％のデータとする。
【００６２】
規定パターン６９は、バーコードの読取を確定させるための規定動作の動作パターン（ハンディターミナル１（スキャナ部１６）の移動パターン）を識別するデータである。本実施の形態では、規定パターン６９がハンディターミナル１をバーコードに一回近づける動作（近づけ動作）の動作パターンの識別情報であるものとする。
【００６３】
ここで、閾値データ４０，６０に関し、図５を参照して、バーコードに対するハンディターミナル１（スキャナ部１６）の移動によるバーコード読取の変化を説明する。図５に、バーコードＢ０を読取ったバーコードイメージＩ１〜Ｉ４を示す。
【００６４】
図５に示すように、バーコードＢ０を読取る場合に、ハンディターミナル１を、左方向、右方向、遠方向、近方向に動かすと、それぞれ順に、バーコードイメージＩ１，Ｉ２，Ｉ３，Ｉ４が生成される。このため、前回読取ったバーコードイメージと、今回読取ったバーコードイメージと、を比較することにより、どれだけ、その方向にハンディターミナル１を動かしたかが判別できる。
【００６５】
そこで、一定以上の間、同一位置で読取が行われた状態を、読取候補バーコード（又は読取確定バーコード）として成立させるため、取得したバーコードイメージの開始位置Ｂ０１及び終了位置Ｂ０２が、どれだけ動いたかを判別し、一定の閾値（±ｘｘ％）内での移動（変化）であれば、読取位置が前回と同一であると判定するようにすることにより、ハンディターミナル１の手持ち操作によるぶれを吸収することが可能である。逆に、ここで設定されている閾値を超えていた場合は、スキャナを大きく動かしたものと判定し、その場合に読取ったバーコードが、読取候補バーコード（又は読取確定バーコード）とは看做さないようにする。この判定に、閾値４１〜４４、閾値６１〜６４が用いられる。
【００６６】
動作閾値６５〜６８は、ハンディターミナル１の操作のぶれによる移動の判定ではなく、ハンディターミナル１が規定動作の移動をしたか否かの判定を行うための情報である。
【００６７】
次に、図６〜図１４を参照して、ハンディターミナル１の動作を説明する。先ず、図６及び図７を参照して、ハンディターミナル１で実行されるスキャン処理の概要を説明する。図６に、スキャン処理の概要の流れを示す。図７（ａ）に、バーコードＢ１に対する読取候補バーコードの取得動作を示す。図７（ｂ）に、バーコードＢ１に対する読取確定バーコードの取得動作を示す。
【００６８】
スキャン処理は、ハンディターミナル１でバーコードを読取り、そのバーコード読取を確定する処理である。ハンディターミナル１でスキャン処理が開始されると、ユーザによりハンディターミナル１が把持されて、スキャナ部１６が発光するレーザ光の照射方向が読取りたいバーコードに向けられ、スキャナ部１６によりバーコードイメージの二値データが取得される（ステップＳ１）。そして、ＣＰＵ１１により、ステップＳ１でスキャナ部１６により取得されたバーコードイメージの二値データがデコードされ、デコードデータが生成されてＲＡＭ１３に格納される（ステップＳ２）
【００６９】
そして、ＣＰＵ１１により、ハンディターミナル１のスキャン動作が規定動作であるか否かが判定される（ステップＳ３）。ステップＳ３では、読取りたいバーコードに対して、ハンディターミナル１をどのように動作させたかを、ステップＳ１で取得したバーコードのイメージと、ステップＳ２で生成されたデコードデータと、に基づいて算出し、規定動作になっているかどうかが判定される。本実施の形態における規定のスキャン動作とは、読取りたいバーコードにレーザ光を照射したまま、ハンディターミナル１をそのバーコードに近づける動作である。
【００７０】
そして、ＣＰＵ１１により、ステップＳ３の判定結果に基づいて、ハンディターミナル１のスキャン動作が規定動作になっているか否かが判別される（ステップＳ４）。規定動作になっていない場合（ステップＳ４；ＮＯ）、ステップＳ１に移行される。
【００７１】
規定動作になっている場合（ステップＳ４；ＹＥＳ）、バーコードの読取を確定した旨が表示部１４に表示され、ステップＳ２で生成されたＲＡＭ１３内のデコードデータが読取結果としてフラッシュメモリ１７に記憶され（ステップＳ５）、スキャン処理が終了する。
【００７２】
スキャナ処理では、例えば、図７（ａ）に示すように、先ず、ハンディターミナル１がバーコードＢ１にレーザ光が照射される位置に移動される。この状態で、ステップＳ１，Ｓ２に対応して、バーコードＢ１のバーコードイメージを常にスキャンしデコードしている。しかし、読取る距離に変化がないためステップＳ４でステップＳ１に移行され、ステップＳ５でバーコードの読取を確定した旨が表示部１４に表示されることはない。
【００７３】
そこで、図７（ｂ）に示すように、バーコードＢ１にレーザ光を照射したままハンディターミナル１をバーコードＢ１側に近づける(押し込む)規定動作を行うと、読取る距離の変化が発生し、ステップＳ４でスキャナ動作として規定動作が判定できたタイミングで、ステップＳ５でバーコードの読取を確定した旨が表示部１４に表示される。
【００７４】
次いで、図８〜図１３を参照して、ハンディターミナル１で実行される図７のスキャン処理の詳細を説明する。図８に、スキャン処理の流れを示す。図９に、図８の続きのスキャン処理の流れを示す。図１０に、読取候補バーコード判定処理の流れを示す。図１１に、読取確定バーコード判定処理の流れを示す。
【００７５】
ハンディターミナル１において、例えば、ユーザにより入力部１２を介してバーコード連続読取モードの設定が入力されたことをトリガとして、ＲＯＭ１５から読み出されて適宜ＲＡＭ１３に展開されたスキャンプログラムと、ＣＰＵ１１との協働で、以下のスキャン処理が実行される。
【００７６】
このとき、例えば、複数のバーコードが近接している状態で、そのうちの一つの読取りたいバーコードに向けてレーザ光が照射されるよう、ユーザによりハンディターミナル１の位置及び姿勢が調整される。
【００７７】
図８及び図９に示すように、先ず、スキャナ部１６により、レーザ光が照射されているバーコードのバーコードイメージの二値データ（黒バー及び白スペースの幅データ及び左右のマージン幅のデータ）が取得される（ステップＳ１１）。そして、ステップＳ１１で取得されたバーコードイメージの二値データがキャラクタ化されることによりデコードされてデコードデータが生成される（ステップＳ１２）。
【００７８】
そして、ステップＳ１２で生成されたデコードデータが正常なデータであるか否かにより、デコードが完了したか否かが判別される（ステップＳ１３）。デコードが完了していない場合（ステップＳ１３；ＮＯ）、ステップＳ１１に移行される。
【００７９】
デコードが完了した場合（ステップＳ１３；ＹＥＳ）、ステップＳ１１で読取られたバーコードが読取候補バーコードとされ、ステップＳ１１で取得された読取候補バーコードのバーコードイメージが格納データ３０のバーコードイメージ３２としてＲＡＭ１３に格納され、ステップＳ１２で生成された読取候補バーコードのデコードデータが格納データ３０のデコードデータ３１としてＲＡＭ１３に格納される（ステップＳ１４）。そして、ステップＳ１４でＲＡＭ１３に格納された情報等を用いて、ステップＳ１１，Ｓ１２で読取りしたバーコードを読取候補バーコードとして確定してよいか否かを判定する読取候補バーコード判定処理が実行される（ステップＳ１５）。ステップＳ１５の読取候補バーコード判定処理は、詳細に後述される。
【００８０】
そして、ステップＳ１５の判定結果に基づいて、読取候補バーコードとして確定する判定が成立するか否かが判別される（ステップＳ１６）。読取候補バーコードとして確定する判定が成立しない場合（ステップＳ１６；ＮＯ）、ステップＳ１１に移行される。
【００８１】
読取候補バーコードとして確定する判定が成立する場合（ステップＳ１６；ＹＥＳ）、読取候補バーコードの取得が完了した旨及びデコードしたバーコードの数値が表示部１４にメッセージ表示される（ステップＳ１７）。なお、ステップＳ１７は、読取候補バーコードを判定した旨をユーザに知らせる処理なので、ステップＳ１７を省略してもよい。
【００８２】
そして、スキャナ部１６により、レーザ光が照射されているバーコードのバーコードイメージの二値データ（黒バー及び白スペースの幅データ及び左右のマージン幅のデータ）が取得される（ステップＳ１８）。そして、ステップＳ１８で取得されたバーコードイメージの二値データがキャラクタ化されることによりデコードされてデコードデータが生成される（ステップＳ１９）。
【００８３】
そして、ステップＳ１９で生成されたデコードデータが正常なデータであるか否かにより、デコードが完了したか否かが判別される（ステップＳ２０）。デコードが完了した場合（ステップＳ２０；ＹＥＳ）、ステップＳ１８で読取られたバーコードが読取確定バーコードとされ、ステップＳ１８で取得された読取確定バーコードのバーコードイメージが格納データ５０のバーコードイメージ５２としてＲＡＭ１３に格納され、ステップＳ１９で生成された読取確定バーコードのデコードデータが格納データ５０のデコードデータ５１としてＲＡＭ１３に格納される（ステップＳ２１）。
【００８４】
そして、ステップＳ２１でＲＡＭ１３に格納された情報を用いて、読取候補バーコードのバーコードイメージに対する読取確定バーコードのバーコードイメージの変化分により、ハンディターミナル１に規定動作があったか否かを判定する読取確定バーコード判定処理が実行される（ステップＳ２２）。ステップＳ２２の読取確定バーコード判定処理は、詳細に後述される。
【００８５】
そして、ステップＳ２２の判定結果に基づいて、ハンディターミナル１に規定動作があったとする判定が成立するか否かが判別される（ステップＳ２３）。ハンディターミナル１に規定動作があったとする判定が成立した場合（ステップＳ２３；ＹＥＳ）、ステップＳ１８で読取られたバーコードの読取が確定される（ステップＳ２４）。そして、バーコードの読取が確定した旨及びデコードしたバーコードの数値が表示部１４にメッセージ表示され、ＲＡＭ１３に格納されるデコードデータ５１がフラッシュメモリ１７に記憶され（ステップＳ２５）、スキャン処理が終了する。
【００８６】
デコードが完了していない場合（ステップＳ２０；ＮＯ）、ステップＳ１８→ステップＳ１９→ステップＳ２０→ステップＳ２６→ステップＳ１８のループの実行時間が、予め設定された規定時間以上になったか否か（タイムアウトになったか否か）により、読取候補バーコードの再読取りをするか否かが判別される（ステップＳ２６）。タイムアウトになると、バーコードの読取の確定をあきらめて、再び読取候補バーコードのスキャンを行うためである。
【００８７】
読取候補バーコードの再読取りをしない場合（ステップＳ２６；ＮＯ）、ステップＳ１８に移行される。読取候補バーコードの再読取りをする場合（ステップＳ２６；ＹＥＳ）、ステップＳ１１に移行される。
【００８８】
ハンディターミナル１に規定動作があったとする判定が成立しない場合（ステップＳ２３；ＮＯ）、ステップＳ２２で設定された読取候補バーコードの再読取りをするかの情報に基づいて、読取候補バーコードの再読取りをするか否かが判別される（ステップＳ２７）。読取候補バーコードの再読取りをしない場合（ステップＳ２７；ＮＯ）、ステップＳ１８に移行される。読取候補バーコードの再読取りをする場合（ステップＳ２７；ＹＥＳ）、ステップＳ１１に移行される。このとき、バーコードイメージ３２、デコードデータ３１、バーコードイメージ５２及びデコードデータ５１が消去されることとしてもよい。
【００８９】
図１０を参照して、スキャン処理のステップＳ１５の読取候補バーコード判定処理を説明する。図１０に、読取候補バーコード判定処理の流れを示す。
【００９０】
スキャン処理のステップＳ１４実行後、先ず、ＲＡＭ１３の格納データ３０のデコードデータ３１が参照され、直近の読取候補バーコードのデコードデータと、その１つ前のデコードデータとが比較され、同一のデコードデータであるか否かが判別される（ステップＳ１５１）。
【００９１】
同一のデコードデータである場合（ステップＳ１５１；ＹＥＳ）、フラッシュメモリ１７に記憶された閾値データ４０の閾値４１〜４４が読み出され、ＲＡＭ１３の格納データ３０のバーコードイメージ３２が参照され、直近の読取候補バーコードのバーコードイメージと、その１つ前のバーコードイメージとが比較され、読取候補バーコードの移動距離が閾値４１〜４４内であるか否かにより、バーコードの読取位置が同一であるか否かが判別される（ステップＳ１５２）。ステップＳ１５２では、図５で説明したように、バーコードの開始位置及び終了位置の移動距離が、右方向、左方向、遠方向、近方向にそれぞれ対応する閾値４１〜４４内（±ｘｘ％内）であるか否かにより判別される。
【００９２】
バーコードの読取位置が同一である場合（ステップＳ１５２；ＹＥＳ）、ＲＡＭ１３の格納データ３０の条件成立回数３３の変数Ｍが１インクリメントされる（ステップＳ１５３）。条件成立回数３３の変数Ｍの初期値は、例えば０に設定されるものとする。そして、条件成立回数３３の変数Ｍが、予め設定された規定値より大きいか否かが判別される（ステップＳ１５４）。この条件成立回数３３の変数Ｍの規定値は、設定により可変であるものとする。この規定値が大きければ大きいほど、読取りたいバーコードを特定し易くなるが、読取レスポンスが低下するため、用途に応じて、最適な値を規定値として設定するのが好ましい。
【００９３】
条件成立回数Ｍ＞規定値である場合（ステップＳ１５４；ＹＥＳ）、読取候補バーコードを確定するか否かの判定結果として、判定成立が設定され（ステップＳ１５５）、読取候補バーコード判定処理が終了する。
【００９４】
同一のデコードデータでない場合（ステップＳ１５１；ＮＯ）、バーコードの読取位置が同一でない場合（ステップＳ１５２；ＮＯ）、又は条件成立回数Ｍ＞規定値でない場合（ステップＳ１５４；ＮＯ）、読取候補バーコードを確定するか否かの判定結果として、判定不成立が設定され（ステップＳ１５６）、読取候補バーコード判定処理が終了する。ステップＳ１６では、ステップＳ１５５又はＳ１５６で設定された判定結果に基づいて、判別が行われる。
【００９５】
図１１を参照して、スキャン処理のステップＳ２２の読取確定バーコード判定処理を説明する。図１１に、読取確定バーコード判定処理の流れを示す。
【００９６】
スキャン処理のステップＳ２１実行後、先ず、ＲＡＭ１３の格納データ３０のデコードデータ３１と、格納データ５０のデコードデータ５１とが参照され、デコードデータ５１の直近のデコードデータと、デコードデータ３１の読取候補バーコードのデコードデータとが比較され、同一のデコードデータであるか否かが判別される（ステップＳ２２１）。
【００９７】
同一のデコードデータである場合（ステップＳ２２１；ＹＥＳ）、フラッシュメモリ１７に記憶された閾値データ６０の閾値６１〜６４が読み出され、ＲＡＭ１３の格納データ３０のバーコードイメージ３２と、格納データ５０のバーコードイメージ５２とが参照され、バーコードイメージ３２の読取候補バーコードのバーコードイメージと、バーコードイメージ５２の直近のバーコードイメージとが比較され、読取候補バーコードからの現在のバーコードの移動距離が閾値６１〜６４内であるか否かにより、バーコードの読取位置が同一であるか否かが判別される（ステップＳ２２２）。ステップＳ２２２では、バーコードの開始位置及び終了位置の移動距離が、右方向、左方向、遠方向、近方向にそれぞれ対応する閾値６１〜６４内（±ｘｘ％内）であるか否かにより判別される。
【００９８】
バーコードの読取位置が同一である場合（ステップＳ２２２；ＹＥＳ）、ＲＡＭ１３の格納データ５０の条件成立回数５３の変数Ｎが１インクリメントされる（ステップＳ２２３）。条件成立回数５３の変数Ｎの初期値は、例えば０に設定されるものとする。そして、条件成立回数５３の変数Ｎが、予め設定された規定値より大きいか否かが判別される（ステップＳ２２４）。この条件成立回数５３の変数Ｎの規定値は、設定により可変であるものとする。この規定値が大きければ大きいほど、読取りたいバーコードを特定し易くなるが、読取レスポンスが低下するため、用途に応じて、最適な値を規定値として設定するのが好ましい。
【００９９】
条件成立回数Ｎ＞規定値である場合（ステップＳ２２４；ＹＥＳ）、フラッシュメモリ１７に記憶された閾値データ６０の動作閾値６５〜６８、規定パターン６９が読み出され、ＲＡＭ１３の格納データ３０のバーコードイメージ３２と、格納データ５０のバーコードイメージ５２とが参照され、バーコードイメージ３２の読取候補バーコードのバーコードイメージと、バーコードイメージ５２の直近のバーコードイメージとが比較され、読取候補バーコードからの現在のバーコードの移動距離が閾値６１〜６４以上であるか否かにより、バーコードの移動状態が規定動作どおりであるか否かが判別される（ステップＳ２２５）。ステップＳ２２５では、バーコードの開始位置及び終了位置の移動距離が、右方向、左方向、遠方向、近方向にそれぞれ対応する動作閾値６５〜６８以上（ｘｘ％以上）であるか否かにより判別される。
【０１００】
ここで、図１２を参照して、ステップＳ２２５を具体的に説明する。図１２に、バーコードイメージＩ１０，Ｉ１１及びその差分を示す。
【０１０１】
図１２に示すように、読取候補バーコードのバーコードイメージＩ１０と、ステップＳ２２５時点での読取確定バーコードのバーコードイメージＩ１１と、を考える。本実施の形態では、バーコードの読取の確定のためにハンディターミナル１を前方向に近づけた(押し込んだ)操作を想定しているため、バーコードイメージＩ１０に対するバーコードイメージＩ１１のように、イメージが大きくなっている必要がある。また、バーコードイメージＩ１１は、規定パターン６９（近づけ動作）の規定動作後のバーコードイメージであるとする。
【０１０２】
バーコードイメージＩ１１に対するバーコードイメージＩ１０の左方向の差分ΔＡと右方向の差分ΔＢとは、それぞれ設定可能であり、この差分ΔＡ，ΔＢの値により、近づける(押し込む)距離と、左右のぶれ度合いをどれだけ吸収するかを定義することが可能である。差分ΔＡ，ΔＢが、動作閾値６２，６１に対応する。
【０１０３】
図１１に戻り、バーコードの移動状態が規定動作どおりである場合（ステップＳ２２５；ＹＥＳ）、読取確定バーコード設定の判定結果として、判定成立が設定され（ステップＳ２２６）、読取確定バーコード判定処理が終了する。
【０１０４】
同一のデコードデータである場合（ステップＳ２２１；ＮＯ）、又はバーコードの移動状態が規定動作どおりでない場合（ステップＳ２２５；ＮＯ）、読取確定バーコード設定の判定結果として、判定不成立が設定され、また読取候補バーコードの再読込設定がなされる（ステップＳ２２７）、読取確定バーコード判定処理が終了する。
【０１０５】
バーコードの読取位置が同一でない場合（ステップＳ２２２；ＮＯ）、又は条件成立回数Ｎ＞規定値でない場合（ステップＳ２２４；ＮＯ）、読取確定バーコード設定の判定結果として、判定不成立が設定され、また読取候補バーコードを再読込しない設定がなされ（ステップＳ２２８）、読取確定バーコード判定処理が終了する。
【０１０６】
ここで、図１３を参照して、上記スキャン処理におけるハンディターミナル１の具体的な動きを説明する。図１３（ａ）に、バーコードＢ２の読取の状態を示す。図１３（ｂ）に、バーコードＢ３，Ｂ４の読取の状態を示す。図１３（ｃ）に、バーコードＢ５，Ｂ６の読取の状態を示す。図１３（ｄ）に、バーコードＢ６の読取候補バーコード読取の状態を示す。図１３（ｅ）に、バーコードＢ６の読取確定バーコード読取の状態を示す。
【０１０７】
図１２（ａ）に示すように、ここでは、５つのバーコードＢ２，Ｂ３，Ｂ４，Ｂ５，Ｂ６が印刷された商品Ｇ１を想定し、実際に読取りたいバーコードが、左下のバーコードＢ６である状態を考える。ハンディターミナル１がバーコード読取モードに設定されており、スキャナ部１６から常にレーザ光が照射され、商品Ｇ１の印刷面の上からなぞると、レーザ光が当たっているバーコードに対しては、常にデコードが行われることになる。
【０１０８】
通常では、デコードが完了すると、その読取結果をデコードデータとして出力する。しかし、本実施の形態では、ハンディターミナル１自体が規定の動きをしていない場合は、たとえ、デコードが完了していても、そのデコードデータを読取結果として出力（フラッシュメモリ１７への記憶）しないため、以下のような動作となる。
【０１０９】
図１３（ａ）に示すように、先ず、商品Ｇ１の最上段の横長のバーコードＢ２にレーザ光が照射されるようにハンディターミナル１が移動され、バーコードＢ２のデコードが完了するが、ハンディターミナル１に規定動作（近づけ動作）が無い為、読取結果の出力は行われない。そして、図１３（ｂ）に示すように、商品Ｇ１の２段目の小さいバーコードＢ３，Ｂ４にレーザ光が照射されるようにハンディターミナル１が移動され、バーコードＢ３，Ｂ４のどちらかのデコードが完了するが、ハンディターミナル１に規定動作が無い為、読取結果の出力は行われない。
【０１１０】
そして、図１３（ｃ）に示すように、商品Ｇ１の最下段のバーコードＢ５，Ｂ６にレーザ光が照射されるようにハンディターミナル１が移動され、読取りたいバーコードＢ６又はその右側のバーコードＢ５のデコードが完了するが、ハンディターミナル１に規定動作が無い為、読取結果の出力は行われない。そして、図１３（ｄ）に示すように、読取りたいバーコードＢ６にレーザ光が照射されるようにハンディターミナル１が移動され、読取候補バーコードとしてバーコードＢ６のデコードが完了するが、ハンディターミナル１に規定動作が無い為、読取結果の出力は行われない。
【０１１１】
そして、図１３（ｅ）に示すように、読取りたいバーコードＢ６にレーザ光が照射されたまま規定動作（近づけ動作）をとるようハンディターミナル１が移動され、且つ読取確定バーコードとしてバーコードＢ６のデコードが完了しているため、バーコードＢ６の読取結果が出力される。
【０１１２】
上記規定動作としての近づけ(押し込み)動作は、パソコンのデスクトップ上にあるアイコンをクリックすることにより実行する操作と同等である。「読取候補バーコードの判定」は、デスクトップ上にある実行したいアイコン上にマウスをもってきて、その下にあるアイコンを判定するものと同等である。「読取確定バーコードの判定」は、選択したアイコンをマウスによりクリックすることにより実行するものと同等である。このため、上記規定動作としての近づけ(押し込み)動作の操作は、マウスのクリックと同等の操作をハンディターミナル１で実現するものである。
【０１１３】
以上、本実施の形態によれば、ハンディターミナル１において、スキャナ部１６によりスキャンされた同一のバーコードのバーコードイメージに基づいて、ハンディターミナル１に規定動作があるか否かを判定し、ハンディターミナル１に規定動作があると判定された場合に、前記スキャンされたバーコードイメージのバーコードの読取を確定する。すなわち、たとえ複数のバーコードが存在する状態で、ハンディターミナル１が発するレーザ光が不特定のバーコードに当たっていたとしても、手で持っているハンディターミナル１で規定動作の動きを行わない限り、誤ったバーコードの読取が行われないため、読取りたいバーコードに確実にレーザ光を当てて、規定動作をすることにより、意図しないバーコードの読取が行われてしまったり、どのバーコードを読んだのかがわからなくなってしまったりすることを回避でき、読取たいバーコードを確実に読むことが可能となる。このため、距離センサやジャイロセンサ等の特殊なデバイスを用いることなく、読取りたいバーコードを確実に読取って確定でき、トリガキー等のキー操作が不要で、バーコード読取の操作性を高めることができる。
【０１１４】
また、ハンディターミナル１において、スキャナ部１６により生成された読取候補バーコードのバーコードイメージを取得してＲＡＭ１３のバーコードイメージ３２に格納し、読取候補バーコードのバーコードイメージ３２より後にスキャナ部１６に生成された同一バーコードのバーコードイメージを取得してＲＡＭ１３のバーコードイメージ５２に格納し、バーコードイメージ５２に対するバーコードイメージ５２の変化量が動作閾値データ６５〜６８の動作条件を満たすか否かが判定され、動作条件を満たす場合に、ハンディターミナル１に規定動作があったと判定し、バーコードの読取を確定する。このため、動作閾値６５〜６８を用いて、ハンディターミナル１に規定動作があるか否かを容易に判定できる。
【０１１５】
また、スキャナ処理のステップＳ２５において、バーコードの読取が確定した旨を表示部１４に表示する。このため、ユーザが目視によりバーコードの読取が確定した旨を容易に認識できる。
【０１１６】
また、スキャナ処理のステップＳ１７において、読取候補バーコードが確定した旨を表示部１４に表示する。このため、ユーザが目視により読取候補バーコードが確定した旨を容易に認識できる。
【０１１７】
（変形例）
図１４を参照して、上記実施の形態の変形例を説明する。図１４（ａ）に、商品Ｇ２のバーコード読取開始の状態を示す。図１４（ｂ）に、バーコードＢ７の読取候補バーコード読取の状態を示す。図１４（ｃ）に、バーコードＢ７の読取確定バーコード読取の状態を示す。
【０１１８】
本変形例の装置構成として、上記実施の形態と同様にハンディターミナル１を用いる。上記実施の形態では、スキャナ処理のステップＳ１７において、読取候補バーコードの確定の旨が表示部１４に表示され、同じくステップＳ２５において、バーコードの読取の確定の旨が表示部１４にメッセージ表示され、その表示により、各バーコード読取の旨をユーザに通知する構成であった。
【０１１９】
本変形例では、スキャナ処理のステップＳ１７において、読取候補バーコードの確定の旨を示すブザー音が音出力部１９により出力され、同じくステップＳ２５において、バーコードの読取の旨を示すブザー音が音出力部１９により出力され、各バーコード読取の旨をユーザに通知する構成とする。
【０１２０】
例えば、図１４（ａ）に示すように、商品Ｇ２上に印刷されたバーコードＢ７を読取る例を考える。図１４（ｂ）に示すように、バーコードＢ７にレーザ光が照射されるようにハンディターミナル１が移動され、読取りたいバーコードＢ７のデコードが完了し、読取候補バーコードの確定の旨を示す「プ」の音が音出力部１９により出力される。
【０１２１】
そして、図１４（ｃ）に示すように、ハンディターミナル１が規定動作（近づけ動作）するよう移動され、バーコードＢ７のデコードが完了し、バーコードの読取の確定の旨を示す「ピ」の音が音出力部１９により出力される。
【０１２２】
以上、本変形例によれば、スキャナ処理のステップＳ２５において、バーコードの読取が確定した旨のブザー音を音出力部１９により出力する。このため、ユーザが聴覚によりバーコードの読取が確定した旨を容易に認識できる。スキャナ処理のステップＳ１７において、読取候補バーコードが確定した旨のブザー音を音出力部１９により出力する。このため、ユーザが聴覚により読取候補バーコードが確定した旨を容易に認識できる。
【０１２３】
なお、上記実施の形態及び変形例における記述は、本発明に係るバーコード読取装置及びプログラムの一例であり、これに限定されるものではない。
【０１２４】
例えば、上記実施の形態では、読取候補バーコードの設定、読取バーコードの確定の旨を、表示部１４によるメッセージ表示、又は音出力部１９による音出力により、ユーザに通知する構成としたが、これに限定されるものではない。例えば、読取候補バーコードの確定、バーコードの読取の確定の旨を、ＬＥＤ（Light Emitting Diode）等の点灯部の点灯、点滅、メッセージの音声出力、バイブレータによる振動等、他の通知方式により通知する構成としてもよい。さらに、少なくとも２つの異なる種類の通知方式を組合わせて通知させる構成としてもよい。これらの構成によれば、ユーザが、視覚的、聴覚的及び触覚的に通知を認識できる。また、前記通知を行わない構成としてもよい。
【０１２５】
また、上記実施の形態及び変形例では、規定動作として、一度の近づけ(押し込み)動作を行う構成であったが、これに限定されるものではない。例えば、二度の近づけ(押し込み)動作（マウスのダブルクリックと同等）、三度以上の近づけ(押し込み)動作、レーザ光をバーコードに当てたまま距離を離す引離し動作、前記近づけ動作及び引離し動作を組合わせた動作等、他の規定動作としてもよい。
【０１２６】
また、上記実施の形態及び変形例では、読取手段として、レーザ光を照射するスキャナ部１６を用いる構成としたが、これに限定されるものではない。例えば、ＬＥＤ光を照射するスキャナ部や、リニアイメージャ等、他のバーコードの読取手段を用いる構成としてもよい。
【０１２７】
上記実施の形態及び変形例では、バーコード読取装置としてとしてハンディターミナルを用いる構成としたが、これに限定されるものではない。例えば、ＥＣＲ（Electronic Cash Register）、ＰＯＳ（Point Of Sales System）端末等に接続されるバーコード読取装置等、他のバーコード読取装置としてもよい。
【０１２８】
また、上記実施の形態における、バーコード読取装置としてのハンディターミナル１の各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱することのない範囲で適宜変更可能であることは勿論である。
【図面の簡単な説明】
【０１２９】
【図１】本発明に係る実施の形態のハンディターミナルの回路構成を示すブロック図である。
【図２】スキャナ部の内部構成を示すブロック図である。
【図３】（ａ）は、読取候補バーコードの格納データの構成を示す図である。（ｂ）は、読取候補バーコードの閾値データの構成を示す図である。
【図４】（ａ）は、読取確定バーコードの格納データの構成を示す図である。（ｂ）は、読取確定バーコードの閾値データの構成を示す図である。
【図５】バーコードを読取った４つのバーコードイメージを示す。
【図６】スキャン処理の概要を示すフローチャートである。
【図７】（ａ）は、バーコードに対する読取候補バーコードの取得動作を示す図である。（ｂ）は、バーコードに対する読取確定バーコードの取得動作を示す図である。
【図８】スキャン処理を示すフローチャートである。
【図９】図８の続きのスキャン処理を示すフローチャートである。
【図１０】読取候補バーコード判定処理を示すフローチャートである。
【図１１】読取確定バーコード判定処理を示すフローチャートである。
【図１２】２つのバーコードイメージ及びその差分を示す図である。
【図１３】（ａ）は、１つのバーコードの読取の状態を示す図である。（ｂ）は、他の２つのバーコードの読取の状態を示す図である。（ｃ）は、さらに他の２つのバーコードの読取の状態を示す図である。（ｄ）は、読取候補バーコード読取の状態を示す図である。（ｅ）は、読取確定バーコード読取の状態を示す図である。
【図１４】（ａ）は、商品のバーコード読取開始の状態を示す図である。（ｂ）は、読取候補バーコード読取の状態を示す図である。（ｃ）は、読取確定バーコード読取の状態を示す図である。
【図１５】５つのバーコードとバーコードの読取操作方向とを示す図である。
【図１６】（ａ）は、２つのバーコードに照明光を当てた状態を示す図である。（ｂ）は、１つのバーコードのみに照明光を当てた状態を示す図である。
【符号の説明】
【０１３０】
１  ハンディターミナル
１１  ＣＰＵ
１２  入力部
１３  ＲＡＭ
１４  表示部
１５  ＲＯＭ
１６  スキャナ部
１６１  発光部
１６２  バイブレーションミラー
１６３  受光部
１６４  ゲイン回路
１６５  二値化回路
１７  フラッシュメモリ
１８  Ｉ／Ｆ
１９  音出力部
２０  バス
【図１】
0005233276.tif 000002
【図２】
0005233276.tif 000003
【図３】
0005233276.tif 000004
【図４】
0005233276.tif 000005
【図５】
0005233276.tif 000006
【図６】
0005233276.tif 000007
【図７】
0005233276.tif 000008
【図８】
0005233276.tif 000009
【図９】
0005233276.tif 000010
【図１０】
0005233276.tif 000011
【図１１】
0005233276.tif 000012
【図１２】
0005233276.tif 000013
【図１３】
0005233276.tif 000014
【図１４】
0005233276.tif 000015
【図１５】
0005233276.tif 000016
【図１６】
0005233276.tif 000017