(57)【要約】【課題】煩雑な設定作業を行うことなく、静的情報コードと動的情報コードの双方を読み取り可能な光学情報読取装置を提供する。【解決手段】バーコードリーダ２０では、通常のバーコードまたはアクティブコードの要素コードが含まれる画像データを取得し（Ｓ１０）、画像データに基づいて当該画像データにアクティブコードの要素コードが含まれているか否かを判定する（Ｓ２０）。画像データに要素コードが含まれていると判定された場合、アクティブコードを読取可能なアクティブコード読取モードに切り替える（Ｓ３０）。これにより、通常のバーコードを読取可能な通常ラベル読取モードにあっても、取得した画像データにアクティブコードの要素コードが含まれていれば、通常ラベル読取モードからアクティブコード読取モードに自動的に切り替えられるので、煩雑な設定作業を行うことなく、通常のバーコードとアクティブコードの双方を読み取ることができる。【選択図】図２
2007094976.tif 000002
【特許請求の範囲】
【請求項１】
表示媒体に印刷された静的情報コードを読取可能な第１の読取モードと、情報コード表示装置の表示画面に順次個別に表示される複数の要素コードからなる動的情報コードを読取可能な第２の読取モードと、を備える光学情報読取装置であって、
前記静的情報コードまたは前記要素コードが含まれる画像情報を取得可能な画像情報取得手段と、
前記画像情報に基づいて当該画像情報に前記要素コードが含まれているか否かを判定可能なコード種別判定手段と、
前記コード種別判定手段により前記画像情報に前記要素コードが含まれていると判定された場合、前記動的情報コードを読取可能な第２の読取モードに切り替える読取モード切替手段と、を備えることを特徴とする光学情報読取装置。
【請求項２】
前記コード種別判定手段は、
前記画像情報に基づいて、前記静的情報コードまたは前記要素コードを解読したコード情報を生成可能なデコード手段と、
前記コード情報に対して所定の演算処理を行う演算手段と、
を有し、前記演算結果から、
前記コード情報が前記要素コードを解読したものである場合、前記画像情報に前記動的情報コードが含まれていることを判定し、
前記コード情報が前記要素コードを解読したものでない場合、前記画像情報に前記動的情報コードが含まれていないことを判定することを特徴とする請求項１記載の光学情報読取装置。
【請求項３】
前記コード種別判定手段は、
前記画像情報に基づいて、当該画像情報に含まれる光の強度に関する情報を生成可能な光強度情報生成手段と、
前記光の強度に関する情報に基づいて、前記情報コード表示装置の表示画面をその裏面から照らすバックライトによる明暗のばらつきを前記画像情報が含んでいるか否かを判断する明暗判断手段と、
を有し、前記明暗判断手段による判断結果から、
前記画像情報が前記バックライトによる明暗のばらつきを含んでいる場合、前記画像情報に前記動的情報コードが含まれていることを判定し、
前記画像情報が前記バックライトによる明暗のばらつきを含んでいない場合、前記画像情報に前記動的情報コードが含まれていないことを判定することを特徴とする請求項１記載の光学情報読取装置。
【請求項４】
前記コード種別判定手段は、
前記画像情報に基づいて、前記情報コード表示装置の表示画面を構成する画素間の仕切枠を当該画像情報が含んでいるか否かを判断可能な画素仕切枠判断手段を有し、前記画素仕切枠判断手段による判断結果から、
前記画像情報が前記画素間の仕切枠を含んでいる場合、前記画像情報に前記動的情報コードが含まれていることを判定し、
前記画像情報が前記画素間の仕切枠を含んでいない場合、前記画像情報に前記動的情報コードが含まれていないことを判定することを特徴とする請求項１記載の光学情報読取装置。
【請求項５】
前記コード種別判定手段は、
前記画像情報取得手段により任意時刻ｔ０に取得された画像情報を基準画像情報として保持可能な基準画像情報保持手段と、
前記画像情報取得手段により任意時刻ｔ０の後の時刻ｔ１に取得された画像情報に含まれる前記静的情報コードまたは前記要素コードと前記基準画像情報に含まれる前記静的情報コードまたは前記要素コードとを比較するコード画像比較手段と、
前記コード画像比較手段により前記両コードの画像が異なる場合、前記任意時刻ｔ０から前記時刻ｔ１までの時間Δｔが、前記情報コード表示装置の表示画面に表示される前記要素コードが次の要素コードに切り替わる時間間隔とほぼ同等時間であるか否かを判断可能な切替間隔判断手段と、
を有し、前記切替間隔判断手段による判断結果から、
前記時間Δｔが前記要素コードの切り替わる時間間隔とほぼ同等時間である場合、前記後の時刻ｔ１に取得された画像情報に前記動的情報コードが含まれていることを判定し、
前記時間Δｔが前記要素コードの切り替わる時間間隔とほぼ同等時間でない場合、前記後の時刻ｔ１に取得された画像情報に前記動的情報コードが含まれていないことを判定することを特徴とする請求項１記載の光学情報読取装置。
【請求項６】
前記読取モード切替手段は、前記第２の読取モードにおいて、前記コード種別判定手段により、前記画像情報に前記動的情報コードが含まれていないと判定された場合には、当該第２の読取モードから前記第１の読取モードに切り替えることを特徴とする請求項１〜５のいずれか一項に記載の光学情報読取装置。
【請求項７】
前記読取モード切替手段は、前記第２の読取モードにおいて、前記要素コードの読み取りを、所定時間内または所定回数内に完了できなかった場合には、当該第２の読取モードから前記第１の読取モードに切り替えることを特徴とする請求項１〜５のいずれか一項に記載の光学情報読取装置。
【請求項８】
前記第２の読取モードにおける前記要素コードの読取条件を保持可能な読取条件テーブルを備えており、
前記第２の読取モードは、前記読取条件テーブルに保持された読取条件に基づいて前記要素コードを読み取る場合において、
前記要素コードの読み取りを、所定時間内または所定回数内に完了できた場合には、当該所定時間に対応する時間設定値または当該所定回数に対応する回数設定値を、前記読取条件として前記読取条件テーブルに保持し、
前記要素コードの読み取りを、所定時間内または所定回数内に完了できなかった場合には、当該所定時間に対応する時間設定値または当該所定回数に対応する回数設定値を緩やかな条件値に修正し、修正後の時間設定値または回数設定値を、前記読取条件として前記読取条件テーブルに保持することを特徴とする請求項１〜７のいずれか一項に記載の光学情報読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報コード表示装置の表示画面に順次個別に表示される複数の要素コードからなる動的情報コードを読取可能な光学情報読取装置に関するものである。
【背景技術】
【０００２】
従来より、情報コード表示装置の表示画面に順次個別に表示される複数の要素コードからなる動的情報コードとして、例えば、下記特許文献１に開示されているものがあり、さらに具体的な例として、下記非特許文献１に開示されている「アクティブコード」と称されるものがある。
【０００３】
このアクティブコードは、例えば、表示される情報が時間によって変化する動的表示を行うことが可能な表示画面を備えた携帯電話機やＰＤＡ（Personal Digital Assistance;個人向け携帯型情報端末装置）等を表示装置として用いその表示画面に表示された情報コードを、約０．１秒間隔ごとに順次切り替えて表示させるもので、図１３に示すように、バーコードのような１次元コードであればコード全体１００を複数の要素コード１０１〜１０４に分割し、分割された要素コード１０１〜１０４を順次個別に当該情報コード表示装置２００の画面２０１に表示可能にしている。またＱＲコードのように２次元コードの場合にも、複数のＱＲコードに分割しそれらを順次個別に表示可能にしている。
【特許文献１】特開２００３−３１７０５１号公報
【非特許文献１】株式会社コーデックス、”ＡＣＤとは？”、［online］、［平成１７年９月３０日検索］、インターネット＜ＵＲＬ：http://www.code-x.jp/whatacd.html＞
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、このようなアクティブコードを一例とする動的情報コードは、特許文献１や非特許文献１に開示されているように、一見すると、紙等の表示媒体に印刷された通常の情報コード（以下「静的情報コード」という）と違いのない外観構成をしているが、順次切り替わる情報コードの順番や全体のコード数をバーコードリーダ（光学情報読取装置）側で把握する必要上、これらの情報が分割された各コード（要素コード）に付加されている。また、情報コードに付加されるチェックキャラクタ（チェックデジット）も、静的情報コードとは異なる算出方法によって生成されている。このため、このような動的情報コードを、静的情報コードを読取可能なバーコードリーダで読み取ろうとしても、チェックキャラクタでエラー処理の対象となる。
【０００５】
これに対し、このような動的情報コードを専用に読取可能なバーコードリーダでは、このような付加情報の存在を前提に読取処理を行うため、当該付加情報のない静的情報コードを読み取ることができないし、またチェックキャラクタの生成方法も異なることから、分割された各コード（要素コード）を読み取ろうとしてもエラー処理の対象となってしまう。つまり、動的情報コード専用のバーコードリーダでは、静的情報コードを読み取ることはできないという問題がある。
【０００６】
また、動的情報コードと静的情報コードの双方を読取可能なバーコードリーダがあるとしても、予めどちらのタイプの情報コードを読み取るかを作業者が設定した上で、読取作業を開始する必要があると考えられる。そのため、動的情報コードであるか静的情報コードあるかといった、読取対象となる情報コードのタイプとバーコードリーダの設定状態とが一致していない場合には、当該読取対象の情報コードを読み取ることはできないし、また読取作業前にこのような設定作業やその確認を余儀なくされるため、読取作業に際し操作の煩雑化や混乱を招くという問題もある。
【０００７】
本発明は、上述した課題を解決するためになされたものであり、その目的とするところは、煩雑な設定作業を行うことなく、静的情報コードと動的情報コードの双方を読み取り可能な光学情報読取装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、特許請求の範囲に記載の請求項１の光学情報読取装置では、表示媒体に印刷された静的情報コードを読取可能な第１の読取モードと、情報コード表示装置の表示画面に順次個別に表示される複数の要素コードからなる動的情報コードを読取可能な第２の読取モードと、を備える光学情報読取装置であって、前記静的情報コードまたは前記要素コードが含まれる画像情報を取得可能な画像情報取得手段と、前記画像情報に基づいて当該画像情報に前記要素コードが含まれているか否かを判定可能なコード種別判定手段と、前記コード種別判定手段により前記画像情報に前記要素コードが含まれていると判定された場合、前記動的情報コードを読取可能な第２の読取モードに切り替える読取モード切替手段と、を備えることを技術的特徴とする。
【０００９】
なお、「情報コード」とは、１次元コード（ＥＡＮ／ＵＰＣ、インターリーブド２オブ５、コーダバー、コード３９／１２８、スタンダード２オブ５、ＲＳＳ等）に限られず、２次元コード（ＱＲコード、ＰＤＦ４１７、データマトリックス、マキシコード、ＲＳＳコンポジット等）等の各種のコードシンボルを含む概念である。また、「静的情報コード」とは、これらの情報コードを紙に印刷したり金属板に食刻したり、あるいはレーザ光でマーキングするなどの方法で静的に表示したものであり、「動的情報コード」とは、これらの情報コードを複数の要素コードに分割して液晶表示装置などの画面に順次表示を切り替えながら動的に表示したものである。
【００１０】
また、特許請求の範囲に記載の請求項２の光学情報読取装置では、請求項１記載の光学情報読取装置において、前記コード種別判定手段は、前記画像情報に基づいて、前記静的情報コードまたは前記要素コードを解読したコード情報を生成可能なデコード手段と、前記コード情報に対して所定の演算処理を行う演算手段と、を有し、前記演算結果から、前記コード情報が前記要素コードを解読したものである場合、前記画像情報に前記動的情報コードが含まれていることを判定し、前記コード情報が前記要素コードを解読したものでない場合、前記画像情報に前記動的情報コードが含まれていないことを判定することを技術的特徴とする。
【００１１】
さらに、特許請求の範囲に記載の請求項３の光学情報読取装置では、請求項１記載の光学情報読取装置において、前記コード種別判定手段は、前記画像情報に基づいて、当該画像情報に含まれる光の強度に関する情報を生成可能な光強度情報生成手段と、前記光の強度に関する情報に基づいて、前記情報コード表示装置の表示画面をその裏面から照らすバックライトによる明暗のばらつきを前記画像情報が含んでいるか否かを判断する明暗判断手段と、を有し、前記明暗判断手段による判断結果から、前記画像情報が前記バックライトによる明暗のばらつきを含んでいる場合、前記画像情報に前記動的情報コードが含まれていることを判定し、前記画像情報が前記バックライトによる明暗のばらつきを含んでいない場合、前記画像情報に前記動的情報コードが含まれていないことを判定することを技術的特徴とする。
【００１２】
また、特許請求の範囲に記載の請求項４の光学情報読取装置では、請求項１記載の光学情報読取装置において、前記コード種別判定手段は、前記画像情報に基づいて、前記情報コード表示装置の表示画面を構成する画素間の仕切枠を当該画像情報が含んでいるか否かを判断可能な画素仕切枠判断手段を有し、前記画素仕切枠判断手段による判断結果から、前記画像情報が前記画素間の仕切枠を含んでいる場合、前記画像情報に前記動的情報コードが含まれていることを判定し、前記画像情報が前記画素間の仕切枠を含んでいない場合、前記画像情報に前記動的情報コードが含まれていないことを判定することを技術的特徴とする。
【００１３】
さらに、特許請求の範囲に記載の請求項５の光学情報読取装置では、請求項１記載の光学情報読取装置において、前記コード種別判定手段は、前記画像情報取得手段により任意時刻ｔ０に取得された画像情報を基準画像情報として保持可能な基準画像情報保持手段と、前記画像情報取得手段により任意時刻ｔ０の後の時刻ｔ１に取得された画像情報に含まれる前記静的情報コードまたは前記要素コードと前記基準画像情報に含まれる前記静的情報コードまたは前記要素コードとを比較するコード画像比較手段と、前記コード画像比較手段により前記両コードの画像が異なる場合、前記任意時刻ｔ０から前記時刻ｔ１までの時間Δｔが、前記情報コード表示装置の表示画面に表示される前記要素コードが次の要素コードに切り替わる時間間隔とほぼ同等時間であるか否かを判断可能な切替間隔判断手段と、を有し、前記切替間隔判断手段による判断結果から、前記時間Δｔが前記要素コードの切り替わる時間間隔とほぼ同等時間である場合、前記後の時刻ｔ１に取得された画像情報に前記動的情報コードが含まれていることを判定し、前記時間Δｔが前記要素コードの切り替わる時間間隔とほぼ同等時間でない場合、前記後の時刻ｔ１に取得された画像情報に前記動的情報コードが含まれていないことを判定することを技術的特徴とする。
【００１４】
また、特許請求の範囲に記載の請求項６の光学情報読取装置では、請求項１〜５のいずれか一項に記載の光学情報読取装置において、前記読取モード切替手段は、前記第２の読取モードにおいて、前記コード種別判定手段により、前記画像情報に前記動的情報コードが含まれていないと判定された場合には、当該第２の読取モードから前記第１の読取モードに切り替えることを技術的特徴とする。
【００１５】
さらに、特許請求の範囲に記載の請求項７の光学情報読取装置では、請求項１〜５のいずれか一項に記載の光学情報読取装置において、前記読取モード切替手段は、前記第２の読取モードにおいて、前記要素コードの読み取りを、所定時間内または所定回数内に完了できなかった場合には、当該第２の読取モードから前記第１の読取モードに切り替えることを技術的特徴とする。
【００１６】
さらにまた、特許請求の範囲に記載の請求項８の光学情報読取装置では、請求項１〜７のいずれか一項に記載の光学情報読取装置において、前記第２の読取モードにおける前記要素コードの読取条件を保持可能な読取条件テーブルを備えており、前記第２の読取モードは、前記読取条件テーブルに保持された読取条件に基づいて前記要素コードを読み取る場合において、前記要素コードの読み取りを、所定時間内または所定回数内に完了できた場合には、当該所定時間に対応する時間設定値または当該所定回数に対応する回数設定値を、前記読取条件として前記読取条件テーブルに保持し、前記要素コードの読み取りを、所定時間内または所定回数内に完了できなかった場合には、当該所定時間に対応する時間設定値または当該所定回数に対応する回数設定値を緩やかな条件値に修正し、修正後の時間設定値または回数設定値を、前記読取条件として前記読取条件テーブルに保持することを技術的特徴とする。
【発明の効果】
【００１７】
請求項１の発明では、画像情報取得手段により、静的情報コードまたは要素コードが含まれる画像情報を取得し、コード種別判定手段により、画像情報に基づいて当該画像情報に動的情報コードの要素コードが含まれているか否かを判定する。そして、コード種別判定手段により画像情報に要素コードが含まれていると判定された場合、読取モード切替手段により、動的情報コードを読取可能な第２の読取モードに切り替える。これにより、静的情報コードを読取可能な第１の読取モードにあっても、取得した画像情報に動的情報コードの要素コードが含まれていれば、読取モード切替手段によって、当該第１の読取モードから、動的情報コードを読取可能な第２の読取モードに自動的に切り替えられる。したがって、煩雑な設定作業を行うことなく、静的情報コードと動的情報コードの双方を読み取ることができる。
【００１８】
請求項２の発明では、コード種別判定手段は、デコード手段により、画像情報に基づいて静的情報コードまたは要素コードを解読したコード情報を生成し、演算手段により、このコード情報に対して所定の演算処理を行う。そして、コード種別判定手段は、この演算結果から、コード情報が要素コードを解読したものである場合、画像情報に動的情報コードが含まれていることを判定し、コード情報が要素コードを解読したものでない場合、画像情報に動的情報コードが含まれていないことを判定する。これにより、コード種別判定手段は、画像情報に動的情報コードの要素コードが含まれているか否かを当該所定演算処理により容易に判定することができる。
【００１９】
請求項３の発明では、コード種別判定手段は、光強度情報生成手段により、画像情報に基づいて、当該画像情報に含まれる光の強度に関する情報を生成し、明暗判断手段により、光の強度に関する情報に基づいて情報コード表示装置の表示画面をその裏面から照らすバックライトによる明暗のばらつきを画像情報が含んでいるか否かを判断する。そして、コード種別判定手段は、この判断結果から、画像情報がバックライトによる明暗のばらつきを含んでいる場合、画像情報に動的情報コードが含まれていることを判定し、画像情報がバックライトによる明暗のばらつきを含んでいない場合、画像情報に動的情報コードが含まれていないことを判定する。
【００２０】
静的情報コードの場合には、紙等の表示媒体に印刷されているので、一般に明暗のばらつきが少ないのに対し、動的情報コードの場合には、情報コード表示装置の表示画面に表示される複数の要素コードからなるので、バックライトによる明暗のばらつきが静的情報コードの場合に比べて大きい。例えば、当該バックライトがＬＥＤとこのＬＥＤの光を平面状に分散可能な導光板とにより構成されている場合には、当該光の分散が不均一なことによる微小な明暗のばらつきが存在するので、コード種別判定手段は、このような明暗のばらつきに基づいて画像情報に動的情報コードの要素コードが含まれているか否かを判定することができる。
【００２１】
請求項４の発明では、コード種別判定手段は、画素仕切枠判断手段により、画像情報に基づいて情報コード表示装置の表示画面を構成する画素間の仕切枠を当該画像情報が含んでいるか否かを判断し、コード種別判定手段は、この判断結果から、画像情報が画素間の仕切枠を含んでいる場合、画像情報に動的情報コードが含まれていることを判定し、画像情報が画素間の仕切枠を含んでいない場合、画像情報に動的情報コードが含まれていないことを判定する。
【００２２】
静的情報コードの場合には、当該静的情報コードの背景は、当該静的情報コードが印刷されている紙等の表示媒体であるのに対し、動的情報コードの場合には、当該動的情報コードを構成する要素コードの背景は、当該要素コードが表示される情報コード表示装置の表示画面である。これにより、静的情報コードの場合には、その背景が紙等の表示媒体の色で明度がほぼ均一になるのに対し、動的情報コードの場合には、その背景が当該表示画面を構成する画素の色とその画素間の仕切枠の色（一般に黒色）との２色以上になるので、画素と画素間の仕切枠との間で明度差が生じる。このため、コード種別判定手段は、このような仕切枠による明度差に基づいて画像情報に動的情報コードの要素コードが含まれているか否かを判定することができる。
【００２３】
請求項５の発明では、コード種別判定手段は、コード画像比較手段によって、画像情報取得手段により任意時刻ｔ０の後の時刻ｔ１に取得された画像情報に含まれる静的情報コードまたは要素コードと、基準画像情報に含まれる静的情報コードまたは要素コードとを比較し、これら両コードの画像が異なる場合、任意時刻ｔ０から時刻ｔ１までの時間Δｔが、情報コード表示装置の表示画面に表示される要素コードが次の要素コードに切り替わる時間間隔とほぼ同等時間であるか否かを切替間隔判断手段により判断する。そして、コード種別判定手段は、この判断結果から、時間Δｔが要素コードの切り替わる時間間隔とほぼ同等時間である場合、後の時刻ｔ１に取得された画像情報に動的情報コードが含まれていることを判定し、時間Δｔが要素コードの切り替わる時間間隔とほぼ同等時間でない場合、後の時刻ｔ１に取得された画像情報に動的情報コードが含まれていないことを判定する。
【００２４】
静的情報コードの場合には、紙等の表示媒体に印刷され当該表示媒体に固定されているので、異なる他の静的情報コードが短期間に次々を読み込まれることは考え難い。これに対し、動的情報コードの場合には、情報コード表示装置の表示画面に動的情報コードを構成する要素コードが表示され、当該要素コードが順次個別に表示されるので、通常、異なる他の要素コードが短期間に次々を読み込まれる。このため、任意時刻ｔ０における静的情報コードまたは要素コードのコード画像と、その後の時刻ｔ１における静的情報コードまたは要素コードのコード画像とが異なり、任意時刻ｔ０から時刻ｔ１までの時間Δｔが、情報コード表示装置の表示画面に表示される要素コードが次の要素コードに切り替わる時間間隔とほぼ同等時間であるか否かを判断することで、コード種別判定手段は、画像情報に動的情報コードの要素コードが含まれているか否かを判定することができる。
【００２５】
請求項６の発明では、読取モード切替手段は、第２の読取モードにおいて、コード種別判定手段により、画像情報に動的情報コードが含まれていないと判定された場合には、当該第２の読取モードから第１の読取モードに切り替える。これにより、一旦、第２の読取モードに切り替わった後に静的情報コードを読み込む場合、読取モード切替手段によって、当該第２の読取モードから、静的情報コードを読取可能な第１の読取モードに自動的に切り替えられる。したがって、煩雑な設定作業を行うことなく、静的情報コードと動的情報コードの双方を読み取ることができる。
【００２６】
請求項７の発明では、読取モード切替手段は、第２の読取モードにおいて、要素コードの読み取りを、所定時間内または所定回数内に完了できなかった場合には、当該第２の読取モードから第１の読取モードに切り替えるが、所定時間内または所定回数内に完了できた場合には、当該第２の読取モードから第１の読取モードに切り替えられない。これにより、一旦、第２の読取モードに切り替わった後に、誤読み込み等よって要素コード以外のコードが読み込まれた場合には、直ちに第１の読取モードに切り替わることなく、所定時間内または所定回数待ち、この間も引き続いて要素コード以外のコードが読み込まれるときに、当該第２の読取モードから第１の読取モードに自動的に切り替えられる。したがって、このような読み込みエラーによる無駄なモード切替を防止することができる。
【００２７】
請求項８の発明では、第２の読取モードにおける要素コードの読取条件を保持可能な読取条件テーブルを備えており、第２の読取モードは、読取条件テーブルに保持された読取条件に基づいて要素コードを読み取る場合において、要素コードの読み取りを、所定時間内または所定回数内に完了できた場合には、当該所定時間に対応する時間設定値または当該所定回数に対応する回数設定値を、読取条件として読取条件テーブルに保持し、要素コードの読み取りを、所定時間内または所定回数内に完了できなかった場合には、当該所定時間に対応する時間設定値または当該所定回数に対応する回数設定値を緩やかな条件値に修正し、修正後の時間設定値または回数設定値を、読取条件として読取条件テーブルに保持する。これにより、読取条件テーブルには、要素コードの読み取りを所定時間内に完了できた場合の時間設定値や、要素コードの読み取りを所定回数内に完了できた場合の回数設定値が保持されるので、第２の読取モードでは、この保持されている時間設定値や回数設定値に基づいて要素コードを読み取ることができる。したがって、第２の読取モードは、要素コードを読取可能な時間設定値や回数設定値に基づいて、要素コードを読み取ることができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の光学情報読取装置をバーコードリーダに適用した実施形態について図を参照して説明する。まず、本実施形態に係るバーコードリーダ２０の構成概要を図１に基づいて説明する。
【００２９】
図１に示すように、バーコードリーダ２０は、主に、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等の光学系と、メモリ３５、制御回路４０、操作スイッチ４２、液晶表示器４６等のマイクロコンピュータ（以下「マイコン」という）系と、電源スイッチ４１、電池４９等の電源系と、から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されている。
【００３０】
光学系は、照明光源２１、受光センサ２３、フィルタ２５、結像レンズ２７等から構成されている。照明光源２１は、照明光Ｌｆを発光可能な照明光源として機能するもので、例えば、赤色のＬＥＤとこのＬＥＤの出射側に設けられる拡散レンズ、集光レンズ等とから構成されている。本実施形態では、受光センサ２３を挟んだ両側に照明光源２１が設けられており、図略のハウジングの読取口を介して読取対象物Ｒに向けて照明光Ｌｆを照射可能に構成されている。この読取対象物Ｒには、紙やラベル等に印刷された静的情報コードとしての通常のバーコードが貼付されていたり、携帯電話機（情報コード表示装置）の画面に動的情報コードとしてのアクティブコードの要素コードが表示されていたりする。
【００３１】
なお、図１に示す符号Ｑは、情報コードを示すもので、通常のバーコード（静的情報コード）やアクティブコード（動的情報コード）の要素コード、の双方を含む概念である。アクティブコードについては、［背景技術］の欄で図１３を参照し説明したものと同様である。
【００３２】
受光センサ２３は、読取対象物Ｒや情報コードＱに照射されて反射した反射光Ｌｒを受光可能に構成されるもので、例えば、Ｃ−ＭＯＳやＣＣＤ等の固体撮像素子である受光素子２２を２次元に配列したエリアセンサが、これに相当する。この受光センサ２３の受光面２３ａは、ハウジング外から読取口を介して外観可能に位置しており、受光センサ２３は、結像レンズ２７を介して入射する入射光をこの受光面２３ａで受光可能に図略のプリント配線板に実装されている。
【００３３】
フィルタ２５は、反射光Ｌｒの波長相当以下の光の通過を許容し、当該波長相当を超える光の通過を遮断し得る光学的なローパスフィルタで、ハウジングの読取口と結像レンズ２７との間に設けられている。これにより、反射光Ｌｒの波長相当を超える不要な光が受光センサ２３に入射することを抑制している。
【００３４】
結像レンズ２７は、外部から読取口を介して入射する入射光を集光して受光センサ２３の受光面２３ａに像を結像可能な結像光学系として機能するもので、例えば、鏡筒とこの鏡筒内に収容される複数の集光レンズとにより構成されている。本実施形態では、照明光源２１から照射された照明光Ｌｆが情報コードＱに反射して読取口に入射する反射光Ｌｒを集光することにより、受光センサ２３の受光面２３ａに情報コードＱの像を結像可能にしている。
【００３５】
次に、マイコン系の構成概要を説明する。マイコン系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示器４６、通信インタフェース４８等から構成されている。このマイコン系は、その名の通り、マイコン（情報処理装置）として機能し得る制御回路４０およびメモリ３５と中心に構成されるもので、前述した光学系によって撮像された情報コードＱの画像信号をハードウェア的およびソフトウェア的に信号処理し得るものである。また制御回路４０は、当該バーコードリーダ２０の全体システムに関する制御も行っている。
【００３６】
光学系の受光センサ２３から出力される画像信号（アナログ信号）は、増幅回路３１に入力されることで所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ（画像情報）は、メモリ３５に入力されると、画像データ蓄積領域に蓄積される。なお、同期信号発生回路３８は、受光センサ２３およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００３７】
メモリ３５は、半導体メモリ装置で、例えばＲＡＭ（ＤＲＡＭ、ＳＲＡＭ等）やＲＯＭ（ＥＰＲＯＭ、ＥＥＰＲＯＭ等）がこれに相当する。このメモリ３５のうちのＲＡＭには、前述した画像データ蓄積領域のほかに、制御回路４０が算術演算や論理演算等の各処理時に利用する作業領域や読取条件テーブルも確保可能に構成されている。またＲＯＭには、後述する読取処理等を実行可能な所定プログラムやその他、照明光源２１、受光センサ２３等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
【００３８】
制御回路４０は、バーコードリーダ２０全体を制御可能なマイコンで、ＣＰＵ、システムバス、入出力インタフェース等からなるもので、メモリ３５とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路４０には、内蔵された入出力インタフェースを介して種々の入出力装置（周辺装置）と接続可能に構成されており、本実施形態の場合、電源スイッチ４１、操作スイッチ４２、ＬＥＤ４３、ブザー４４、液晶表示器４６、通信インタフェース４８等を接続されている。
【００３９】
これにより、例えば、電源スイッチ４１や操作スイッチ４２の監視や管理、またインジケータとして機能するＬＥＤ４３の点灯・消灯、ビープ音やアラーム音を発生可能なブザー４４の鳴動のオンオフ、さらには読み取った情報コードＱによるコード内容を画面表示可能な液晶表示器４６の画面制御や外部装置とのシリアル通信を可能にする通信インタフェース４８の通信制御等を可能にしている。なお、通信インタフェース４８に接続される外部装置には、当該バーコードリーダ２０の上位システムに相当するホストコンピュータＨＳＴ等が含まれる。
【００４０】
電源系は、電源スイッチ４１、電池４９等により構成されており、制御回路４０により管理される電源スイッチ４１のオンオフによって、上述した各装置や各回路に、電池４９から供給される駆動電圧の導通や遮断が制御されている。なお、電池４９は、所定の直流電圧を発生可能な２次電池で、例えば、リチウムイオン電池等がこれに相当する。また、電池４９によることなく、例えば、通信インタフェース４８を介して接続されるホストコンピュータＨＳＴ等の外部装置から電力供給を受ける構成を採る場合もあり、この場合には当該電池４９は不要となる。
【００４１】
このようにバーコードリーダ２０を構成することによって、例えば、電源スイッチ４１がオンされて所定の自己診断処理等が正常終了し、情報コードＱの読み取りが可能な状態になると、照明光Ｌｆの発光を指示する操作スイッチ４２（例えばトリガースイッチ）の入力を受け付ける。これにより、作業者がトリガースイッチを押圧しオンにすることで、制御回路４０が同期信号を基準に照明光源２１に発光信号を出力するので、当該発光信号を受けた照明光源２１は、ＬＥＤを発光させて照明光Ｌｆを照射する。すると、情報コードＱに照射された照明光Ｌｆが反射しその反射光Ｌｒが読取口およびフィルタ２５を介して結像レンズ２７に入射するため、受光センサ２３の受光面２３ａには、結像レンズ２７により情報コードＱの像が結像される。これにより、受光素子２２が露光されるので、制御回路４０による読取処理の画像情報取得処理によって画像信号による画像データの取得が可能となる。
【００４２】
このような動作の概要が、バーコードリーダ２０による情報コードＱの基本的な読取動作となるが、［発明が解決しようとする課題］の欄で述べたように、通常のバーコード（静的情報コード）とアクティブコード（動的情報コード）の要素コードとは、外観上ほぼ同様に構成されていながらも、情報コードＱに付加されるチェックキャラクタ（チェックデジット）の算出方法が両コードで異なる。このため、通常のバーコードリーダではアクティブコードを読み取ることができないし、アクティブコード専用のバーコードリーダでは通常のバーコードを読み取ることができない。
【００４３】
そこで、本実施形態に係るバーコードリーダ２０では、以下、図２〜図１２を参照して説明する読取処理によって通常のバーコードおよびアクティブコードのいずれについても、読取可能にしている。
【００４４】
次に、バーコードリーダ２０による読取処理の概要を図２に基づいて説明する。なお、この図２に示すフローチャートは、本発明に係るバーコードリーダ２０による読取処理の例を概念的に表したもので、これを具現化したものが例えば図３に示す読取処理となる。
【００４５】
図２に示すように、バーコードリーダ２０による読取処理では、まずステップＳ１０による画像情報取得処理が行われる。この処理は、通常のバーコードまたはアクティブコードの要素コードが含まれる画像データ（画像情報）をメモリ３５の画像データ蓄積領域から取得するもので、特許請求の範囲に記載の「画像情報取得手段」に相当し得るものである。
【００４６】
続くステップＳ２０では、コード種別判定処理が行われる。この処理は、ステップＳ１０により取得された画像データに基づいて当該画像データにアクティブコードの要素コードが含まれているか否かを判定するもので、特許請求の範囲に記載の「コード種別判定手段」に相当し得るものである。なお、このコード種別判定処理は、後に図４〜図１０を参照して説明するように各種のバリエーションがある。
【００４７】
次のステップＳ３０では、読取モード切替処理が行われる。この処理は、ステップＳ２０により画像データに通常のバーコードが含まれていると判定された場合には、通常のバーコードを読取可能な通常ラベル読取モードに切り替え、ステップＳ２０により画像データに要素コードが含まれていると判定された場合には、アクティブコードを読取可能なアクティブコード読取モードに切り替えるものである。なお、このステップＳ３０は、特許請求の範囲に記載の「読取モード切替手段」に相当し得るものである。
【００４８】
続くステップＳ４０、Ｓ５０では、出力処理が行われる。即ち、ステップＳ３０により通常ラベル読取モードに切り替えられた場合には、読み取った画像データを、通常のバーコードのデータとして所定のフォーマットに適合させ、通信インタフェース４８を介して外部に出力する。
【００４９】
一方、ステップＳ３０によりアクティブコード読取モードに切り替えられた場合には、読み取った画像データを、アクティブコードの要素コードのデータとして所定のフォーマットに適合させ、通信インタフェース４８を介して外部に出力する。なお、本実施形態の場合、いずれの外部出力先も、これらのデータを情報処理可能なアプリケーションプログラムが実装されたホストコンピュータＨＳＴ等になる。
【００５０】
ステップＳ４０による出力処理が終了すると、つまり通常のバーコードラベルの場合には、ホストコンピュータＨＳＴへのデータ出力が完了すると、次に読み込まれる情報コードＱに備えて本読取処理を終了する。これに対し、ステップＳ５０による出力処理が終了した場合（アクティブコードの場合）には、ステップＳ６０に処理を移行する。
【００５１】
即ち、アクティブコードの場合、それを構成する要素コードを全て読み取り、それらをホストコンピュータＨＳＴに出力しなければ当該アクティブコードの読取処理が完了しないので、ステップＳ６０による出力完了判断処理では、アクティブコードを構成する全ての要素コードが出力されたか否かを判断する処理が行われる。
【００５２】
そして、全ての要素コードを出力していない場合には（Ｓ６０；Ｎｏ）、残りの要素コードの読み取りに備えて、再度、ステップＳ１０に処理を移行し、全ての要素コードを出力している場合には（Ｓ６０；Ｙｅｓ）、次に読み込まれる情報コードＱに備えて本読取処理を終了する。
【００５３】
このように本実施形態に係るバーコードリーダ２０による読取処理は、図２に示すフローチャートのような処理の流れをその概念として把握することができるが、ここからは、このような読取処理をバーコードリーダ２０に実装した例として、図３に示す読取処理を説明する。
【００５４】
図３に示すように、バーコードリーダ２０に実装される読取処理では、まずステップＳ１０１により画像情報取得処理が行われる。この処理は、前述した画像情報取得処理Ｓ１０（図２）に相当するもので、受光センサ２３により検出されてＡ／Ｄ変換回路３３によりディジタルデータに変換された画像データを、メモリ３５の画像データ蓄積領域から取得する。
【００５５】
次のステップＳ１０３では、コード種別判定処理が行われる。この処理は、前述したコード種別判定処理Ｓ２０（図２）に相当するもので、ここでは、図４に示すキャラクタチェック処理がこれにあたるので、ここからは図４を参照して説明する。
【００５６】
図４に示すように、キャラクタチェック処理（コード種別判定処理）では、まずステップＳ２０１によりデコード処理が行われる。この処理は、ステップＳ１０１により取得された画像データをコードデータ（コード情報）に解読するもので、特許請求の範囲に記載の「デコード手段」に相当し得るものである。例えば、図５(A) に示すコード１２８によるバーコードの場合、スタートキャラクタとストップキャラクタとの間に位置するデータキャラクタを解読する。なお、アクティブコードは、コード１２８のコードセットＣにほぼ準拠している。
【００５７】
続くステップＳ２０３では、「モジュラス１０３＋１」演算処理が行われる。即ち、コード１２８の場合、図５(A) および図５(B) に示すように、ストップキャラクタの直前に位置するデータキャラクタには、チェックキャラクタ（チェックデジット）が設定されているため、所定演算処理によりこれらのデータキャラクタにデータ誤りがあるか否かを検出することが可能になっている。
【００５８】
そして、アクティブコードを構成する要素コードの場合には、当該チェックキャラクタには、全てのデータキャラクタの総和を１０３で割った余りに１を足した値、つまりモジュラス１０３＋１により演算される値が設定されているため、このステップＳ２０３によりこのような演算処理を行うことで、得られた演算結果とチェックキャラクタに設定されている値とが一致するか否か、つまり当該演算処理をエラーしないか否かによって、当該コードデータがアクティブコードの要素コードであるか否かを判断することが可能となる。なお、この処理は、特許請求の範囲に記載の「演算手段」に相当し得るものである。
【００５９】
次のステップＳ２０５では、ステップＳ２０３による演算エラーがないか否かを判断する処理が行われる。この処理によりエラーなし（Ｓ２０５；Ｙｅｓ）と判断された場合には、ステップＳ２０１により解読されたコードデータは、アクティブコードの要素コードであると判定されるので、ステップＳ２１３に処理を移行してその旨を明示する要素コードフラグをセットする（ＡＤＣフラグ設定処理）。
【００６０】
一方、ステップＳ２０５により演算エラーあり（Ｓ２０５；Ｎｏ）と判断された場合には、ステップＳ２０１により解読されたコードデータは、アクティブコードの要素コードではないと判定されるので、続くステップＳ２０７に処理を移行して通常のコード１２８に用いられるチェックデジットの計算方法である「モジュラス１０３等」演算処理を行う。
【００６１】
ステップＳ２０７では、「モジュラス１０３等」演算処理が行われる。コード１２８のコードセットＣによるバーコードの場合、当該チェックキャラクタには、全てのデータキャラクタの総和を１０３で割った余りとして求められる値、つまりモジュラス１０３により演算される値が設定されている。また、それ以外のバーコード（コード３９、インターリーブド２オブ５、コーダバー、スタンダード２オブ５、ＲＳＳ等）の場合には、それぞれのコード仕様に規定された演算処理によって求められる値が設定されている。このため、このステップＳ２０７によりこのような各コード仕様による演算処理を行うことで、得られた演算結果とチェックキャラクタに設定されている値とが一致するか否か、つまり当該演算処理をエラーしないか否かによって、当該コードデータが通常のバーコードであるか否かを判断することが可能となる。
【００６２】
次のステップＳ２０９では、ステップＳ２０７による演算エラーがないか否かを判断する処理が行われる。この処理によりエラーなし（Ｓ２０９；Ｙｅｓ）と判断された場合には、ステップＳ２０１により解読されたコードデータは、通常のバーコードのデータであると判定されるので、ステップＳ２１５に処理を移行してその旨を明示するバーコードフラグをセットする（ＮＲＭフラグ設定処理）。
【００６３】
一方、ステップＳ２０９により演算エラーあり（Ｓ２０９；Ｎｏ）と判断された場合には、ステップＳ２０１により解読されたコードデータは、アクティブコードの要素コードでも通常のバーコードでもないと判定される。つまり、いずれかのデータキャラクタにデータ誤りがあると判断されるのでデータエラーの判定をして、続くステップＳ２１７で、その旨を明示するバーコードフラグをセットする（ＥＲＲフラグ設定処理）。
【００６４】
ステップＳ２１３、Ｓ２１５、Ｓ２１７のいずれかによってフラグ設定処理が完了すると、本キャラクタチェック処理が終了するので、図３に戻り読取処理のステップＳ１０５に処理を移行する。
【００６５】
再び図３を参照すると、ステップＳ１０５では、アクティブコードであるか否かを判定する処理が行われる。この処理は、前述した読取モード切替処理Ｓ３０（図２）に相当するもので、ステップＳ１０３によるキャラクタチェック処理（図４）によって設定されたフラグを参照することにより、当該モードの切り替えを行う。
【００６６】
例えば、ＡＤＣフラグが設定されている場合には（Ｓ１０５；Ｙｅｓ）、ステップＳ１０１により取得された画像情報には、アクティブコードの要素コードが含まれていることになるので、「アクティブコード読取モード」として、続くステップＳ１０７に処理を移行し、当該コードデータをアクティブコードの要素コードとして所定のフォーマットに従ってホストコンピュータＨＳＴに出力する（要素コードデータの出力処理）。なおこの要素コードデータの出力処理は、前述した出力処理Ｓ５０（図２）に相当するものである。
【００６７】
一方、このようなフラグを参照することにより、ＮＲＭフラグやＥＲＲフラグが設定され、ＡＤＣフラグが設定されていない場合には（Ｓ１０５；Ｎｏ）、「通常ラベル読取モード」として、ステップＳ１１０に処理を移行し、当該コードデータを通常のバーコードのデータまたは対応するエラーコードをホストコンピュータＨＳＴに出力する（バーコードデータ等の出力処理）。なお、このバーコードデータの出力処理は、前述した出力処理Ｓ４０（図２）に相当するものである。
【００６８】
なお、ホストコンピュータＨＳＴに出力する要素コードの出力フォーマットの例は、図５(B) に示すとおりで、順序データ部SQN 、総数データ部SUM 、種別データ部ID、送信データ部DAT 、桁数調整部PAD 、チェックキャラクタCHK から構成される。ここで、図５(B) を参照して要素コードの出力フォーマットを簡単に説明する。なお、図５(B) には、要素コードの総数が「５」の場合のアクティブコードが例示されている。
【００６９】
図５(B) に示すように、順序データ部SQN は、００〜９９の２桁の数値により当該要素コードが何番目に該当するかを示すもので、先頭の要素コードには「００」、次の要素コードには「０１」、その次の要素コードには「０２」、というように順番に設定される。要素コードの総数が１００である場合には、当該順序データ部SQN は「９９」になる。
【００７０】
総数データ部SUM は、アクティブコードを分割した要素コードの総数を示すもので、順序データ部SQN が「００」の要素コードに設定される。設定位置は、順序データ部SQN の次で、先頭の要素コードを除いた数が設定される。そのため、例えば、要素コードの総数が５である場合には、５−１＝４が設定される。
【００７１】
種別データ部IDは、アクティブコードの種別を６桁の数値で表すもので、順序データ部SQN が「００」の要素コードに設定される。設定位置は、総数データ部SUM の次で、出力データ部の総桁数が偶数である場合には、００００００〜４９９９９９の値が設定され、出力データ部の総桁数が奇数である場合には、５０００００〜９９９９９９の値が設定される。
【００７２】
送信データ部DAT は、上位のホストコンピュータＨＳＴに出力される実データで、全ての要素コードに設定される。設定位置は、順序データ部SQN が「００」の要素コードは、識別データ部IDの後に設定され、それ以外の要素コードは、順序データ部SQN の後に設定される。
【００７３】
桁数調整部PAD は、種別データ部IDの先頭桁が５〜９の場合、出力データ部の総桁数が奇数になるため、コード１２８では表示できない。このような場合にアクティブコード全体の総桁数を偶数にするため、最後の要素コードに「０」を付加する。このため、当該桁数調整部PAD は、末尾の要素コードに設定される。
【００７４】
チェックデジットCHK は、種別データ部ID＋送信データ部DAT ＋桁数調整部PAD の全ての桁から所定演算によりチェックデジットを算出し、アクティブコードの総合チェックデジットとして設定されるものである。このため、当該チェックデジットCHK は、末尾の要素コードに設定される。なお、それぞれの要素コードには、図５(B) に破線枠で囲まれたＳ（スタートコード）、Ｃ（チェックデジット）、Ｅ（ストップコード）といったホストコンピュータＨＳＴには出力されないデータが付加されている。
【００７５】
再度、図３に戻ると、ステップＳ１０７によってこのような出力フォーマットによりホストコンピュータＨＳＴに要素コードが出力された場合には、続くステップＳ１０９では、アクティブコード読取設定処理が行われる。この処理では、例えば、アクティブコード読取モードにおける要素コードの読取条件の設定が行われる。この読取条件は、メモリ３５に確保される読取条件テーブルに保持されており、例えば、アクティブコードの要素コードの読み取りを失敗した場合におけるリトライ回数（回数設定値）やタイムアウト時間（時間設定値）等が設定されている。また、このステップ１０９による処理では、例えば、ブザー４４を鳴動させて「アクティブコード読取モード」に移行したこと、つまり通常のバーコードの読取はできないことを作業者に告知する。
【００７６】
次のステップＳ１１１では、アクティブコードを構成する要素コードの全てをホストコンピュータＨＳＴに出力したか否かを判断する処理が行われる。この処理は、図５(B) を参照して説明したように、先頭の要素コード（順序データ部SQN が「００」の要素コード）には、総数データ部SUM が設定されているので、この値を参照して全ての要素コードをホストコンピュータＨＳＴに出力したか否かを判断する。
【００７７】
そして、全ての要素コードをホストコンピュータＨＳＴに出力したと判断した場合には（Ｓ１１１；Ｙｅｓ）、ステップＳ１２１に処理を移行して「アクティブコード読取モード」を解除して本読取処理を終了する。これに対し、全ての要素コードをホストコンピュータＨＳＴに出力していない判断した場合には（Ｓ１１１；Ｎｏ）、次のステップＳ１１３に処理を移行して画像情報を取得する。なお、このステップＳ１１３による画像情報取得処理は、前述したステップＳ１０１による画像情報取得処理と同様であるので、ここでは説明を省略する。なお、このステップＳ１１１による画像情報取得処理は、前述した画像情報取得処理Ｓ１０（図２）に相当するものである。
【００７８】
ステップＳ１１３により画像データを取得すると、続くステップＳ１１５によりコード種別判定処理が行われる。この処理も、前述したステップＳ１０３によるコード種別判定処理と同様であるので、説明を省略する。なお、このステップＳ１１５によるコード種別判定処理は、前述したコード種別判定処理Ｓ２０（図２）に相当するものである。
【００７９】
続くステップＳ１１７では、ステップＳ１１３により解読されたコードデータは既にホストコンピュータＨＳＴに出力済みのデータであるか否かを判断する処理が行われる。即ち、ステップＳ１１１による画像情報取得処理によって取得された画像データが、重複したものである場合には（Ｓ１１７；Ｙｅｓ）、そのようなデータはホストコンピュータＨＳＴに出力しても無駄になるので、ステップＳ１２３により当該要素データをクリアする処理が行われる。そして、ステップＳ１２３の後、ステップＳ１１３に処理を移行し、次の画像データを取得する。
【００８０】
一方、そのような重複したものでない場合には（Ｓ１１７；Ｎｏ）、続くステップＳ１１９により当該コードデータをアクティブコードの要素コードとして所定のフォーマットに従ってホストコンピュータＨＳＴに出力する（要素コードデータの出力処理）。なおこの要素コードデータの出力処理は、前述したステップＳ１０７による要素コードデータの出力処理と同様であるので、説明を省略する。なお、このステップＳ１１９による要素コードデータの出力処理は、前述した出力処理Ｓ５０（図２）に相当するものである。
【００８１】
ステップＳ１１９による要素コードデータの出力処理が完了すると、ステップＳ１１１に処理を移行して、再度、アクティブコードを構成する要素コードの全てをホストコンピュータＨＳＴに出力したか否かを判断する処理が行われる。そして、このようなループを繰り返し実行しているうちに、全ての要素コードをホストコンピュータＨＳＴに出力したと判断され（Ｓ１１１；Ｙｅｓ）、本読取処理を終了する。
【００８２】
このように本実施形態に係るバーコードリーダ２０によると、画像情報取得処理Ｓ１０（Ｓ１０１）により、通常のバーコードまたはアクティブコードの要素コードが含まれる画像データを取得し、コード種別判定処理Ｓ２０（Ｓ１０３）により、画像データに基づいて当該画像データにアクティブコードの要素コードが含まれているか否かを判定する。そして、コード種別判定処理Ｓ２０（Ｓ１０３）により画像データに要素コードが含まれていると判定された場合、読取モード切替処理Ｓ３０（Ｓ１０５）により、アクティブコードを読取可能なアクティブコード読取モードに切り替える。これにより、通常のバーコードを読取可能な通常ラベル読取モードにあっても、取得した画像データにアクティブコードの要素コードが含まれていれば、読取モード切替処理Ｓ３０（Ｓ１０５）によって、当該通常ラベル読取モードから、アクティブコードを読取可能なアクティブコード読取モードに自動的に切り替えられる。したがって、煩雑な設定作業を行うことなく、通常のバーコードとアクティブコードの双方を読み取ることができる。
【００８３】
また、本実施形態に係るバーコードリーダ２０では、コード種別判定処理Ｓ２０（Ｓ１０３）は、キャラクタチェック処理によるデコード処理Ｓ２０１により、画像データに基づいて通常のバーコードまたはアクティブコードの要素コードを解読したコードデータを生成し、このコードデータが要素コードを解読したものであるか否かを判断し得る演算結果を算出可能なコード１２８に従ったモジュラス１０３＋１の演算処理を「モジュラス１０３＋１」演算処理Ｓ２０３によりコードデータに実施する。そして、この演算結果から、コードデータが要素コードを解読したものである場合（Ｓ２０５；Ｙｅｓ）、画像データにアクティブコードが含まれていることを判定し、コードデータが要素コードを解読したものでない場合（Ｓ２０５；Ｎｏ）、画像データにアクティブコードが含まれていないことを判定する。これにより、コード種別判定処理Ｓ２０（Ｓ１０３）は、画像データにアクティブコードの要素コードが含まれているか否かを当該「モジュラス１０３＋１」演算処理により容易に判定することができる。
【００８４】
なお、図３に示す読取処理では、アクティブコードの要素データを個々にホストコンピュータＨＳＴに出力していたが（Ｓ１０７、Ｓ１１９）、例えば、これらの要素コードをメモリ３５に確保される出力バッファに蓄積し当該アクティブコードを構成する要素コードの全てが揃ってから、ホストコンピュータＨＳＴに出力するように処理しても良い。
【００８５】
具体的には、例えば、図６に示す改変例（その１）のように、ステップＳ１０７の要素コードデータ出力処理およびステップＳ１１９の要素コードデータ出力処理を、それぞれ要素コードデータ蓄積処理（Ｓ１０７’、Ｓ１１９’）に変更するとともに、新たにステップＳ１２０による要素コードデータ出力処理をステップＳ１２１の前に設ける。また、ステップＳ１１１による判断処理を要素コードを全て蓄積したか否かを判断し得るものに変更する（Ｓ１１１’）。
【００８６】
Ｓ１０７’およびＳ１１９’では、コード種別判定処理のキャラクタチェック処理（図４）によりデコードされて生成されたコードデータをアクティブコードの要素コードとして、メモリ３５に確保される出力バッファに蓄積する処理が行われる。この処理では、図５(B) を参照して説明した要素コードの順序データ部SQN に基づいて、蓄積される要素コードが何番目のものであるかを把握し、蓄積されている要素コードを例えばフラグにより管理する。なお、要素コードの総数は、順序データ部SQN が「００」の要素コードに設定されている総数データ部SUM を参照することにより知ることができる。
【００８７】
そして、ステップＳ１１１’により、当該フラグが要素コードの総数分セットされたか否か、つまり要素コードを全て蓄積したか否かを判断することで、当該アクティブコードを構成する要素コードの全てが揃ったか否かが分かる。ステップＳ１１１’により要素コードを全てが蓄積されたと判断した場合には（Ｓ１１１’；Ｙｅｓ）、ステップＳ１２０によって当該出力バッファに蓄積された要素コードをひとまとめにホストコンピュータＨＳＴに出力する。一方、ステップＳ１１１’により要素コードを全てが蓄積されたと判断されない場合には（Ｓ１１１’；Ｎｏ）、ステップＳ１１３に処理を移行して残りの要素コードを得るため、画像情報を取得する。
【００８８】
このようにアクティブコードの要素データを個々にホストコンピュータＨＳＴに出力するのではなく、全ての要素コードが揃ってから、ホストコンピュータＨＳＴに出力することで、当該バーコードリーダ２０とホストコンピュータＨＳＴとの間における通信回数が減少するので、ホストコンピュータＨＳＴの通信処理の負担を軽減することができる。また、通信回数が減少することで、各送信データに付加される冗長データによるデータ量も減らせるので、全体の通信トラヒックを削減させることもできる。
【００８９】
次に、コード種別判定処理のバリエーション例を図７〜図１０を参照して説明する。
図７に示すように、コード種別判定処理の一例である画素仕切枠判定処理は、まずステップＳ３０１により画像データ解析処理が行われる。この画像データ解析処理（Ｓ３０１）は、前述のＡ／Ｄ変換回路３３からディジタルデータに変換された画像データに基づいて行われるもので、特許請求の範囲に記載の「画素仕切枠判断手段」に相当し得るものである。
【００９０】
例えば、例えば、カラー液晶表示装置の画面に表示されたアクティブコードを読み取った場合における波形として、図８(A) の上段に示すようなもの得られる。この図８(A) に示す波形は、横軸がバーコードの走査方向で、縦軸が受光センサ２３に入射した光の強度に基づく電圧値で、破線Ｘの内側に存在する波形を拡大したものが同図の下段に示されている。これに対し、紙に印刷された通常のバーコードを読み取った場合における波形として、図８(B) の上段に示すようなものが得られ、破線Ｙの内側に存在する波形を拡大したものが同図の下段に示されている。
【００９１】
ここで、カラー液晶表示装置の画面に表示されたアクティブコードの場合には、間隔の狭い振幅による波形が楕円ｘ内に発生していることがわかる（図８(A) 下段）。これに対し、紙に印刷された通常のバーコードの場合には、楕円ｘに対応する箇所の楕円ｙ内の波形は比較的平坦であることがわかる（図８(B) 下段）。このような波形の差は、アクティブコードを読み取った波形の場合には（図８(A) ）、アクティブコードの背景が当該表示画面を構成する画素の色（赤色、緑色、青色）とその画素間の仕切枠の色（一般に黒色）との２色以上になるので、画素と画素間の仕切枠との間で明度差が生じるのに対し、紙に印刷されたバーコードの場合には（図８(B) ）、その背景が表示媒体である紙そのものの色（一般に白色）で明度がほぼ均一になることにより生じるものである。
【００９２】
したがって、ステップＳ３０１では、このような明度差を受光センサ２３により検出された画像信号による画像データについて解析することで、当該画像データに画素間の仕切枠を含んでいるか否かを判断可能にしている。つまり、画素間の仕切枠による細かい黒色範囲が点在する場合には、情報コードＱの背景に液晶画面が写っていることになるので、このような背景に表示される情報コードＱは、アクティブコードを構成する要素コードである可能性が高い。
【００９３】
このため、ステップＳ３０３により、画素間の仕切枠がある判断された場合には（Ｓ３０３；Ｙｅｓ）、解析された画像データには、アクティブコードの要素コードが含まれる可能性が高いと判定されるので、ステップＳ３１１に処理を移行してその旨を明示する要素コードフラグをセットする（ＡＤＣフラグ設定処理）。これに対し、このような画素間の仕切枠がない判断された場合には（Ｓ３０３；Ｎｏ）、解析された画像データには、通常のバーコードが含まれている可能性が高いと判定されるので、ステップＳ３１３に処理を移行してその旨を明示するバーコードフラグをセットする（ＮＭＲフラグ設定処理）。
【００９４】
そして、ステップＳ３２０により画像データのデコード処理を行う。なお、このデコード処理は、当該画像データをコードデータ（コード情報）に解読するもので、図４を参照して説明したキャラクタチェック処理によるステップＳ２０１を同様に行われる。
【００９５】
このように図７に示す画素仕切枠判定処理では、情報コードＱが表示されている背景の明度に基づいて、当該コードが通常のバーコードかアクティブコードの要素コードかを判断するので、情報コード表示装置２００の表示画面２０１がカラー液晶装置で構成されている場合に特に有効なものとなる。
【００９６】
このような情報コードＱが表示されている背景の明度に基づいて、情報コードＱが通常のバーコードかアクティブコードの要素コードかを判定するものとして、ほかに図９に示す明暗判定処理もコード種別判定処理の一例として挙げられる。この明暗判定処理は、例えば、情報コード表示装置２００の表示画面２０１が、その裏面から導光板を用いたバックライトで照らされるものである場合に特に有効なものとなる。
【００９７】
即ち、図９に示すように、明暗判定処理では、まずステップＳ４０１により光強度検出処理が行われる。この処理も、前述した画像データ解析処理（Ｓ３０１）と同様に、受光センサ２３からの画像信号に基づく画像データを解析することによって、光の強さを検出し数値データを生成するものである。なお、この光強度検出処理（Ｓ４０１）は、特許請求の範囲に記載の「光強度情報生成手段」に相当し得るものである。
【００９８】
次のステップＳ４０３では、ステップＳ４０１により検出された光の強さから、情報コードＱを含むその背景の明暗のばらつきを検出する処理が行われる。例えばこの処理では、ステップＳ４０１により数値化された光の強度に基づいて数値差の大小関係から、明暗のばらつきを分析して所定閾値以上のばらつきを検出する。なお、この明暗ばらつき検出処理（Ｓ４０３）は、特許請求の範囲に記載の「明暗判断手段」に相当し得るものである。
【００９９】
通常のバーコードの場合には、紙等の表示媒体に印刷されているので、一般に明暗のばらつきが少ないのに対し、アクティブコードを構成する要素コードの場合には、バックライトによる明暗のばらつきが存在する。例えば、当該バックライトがＬＥＤとこのＬＥＤの光を平面状に分散可能な導光板とにより構成されている場合には、当該光の分散が不均一なことによる微小な明暗のばらつきが生じる。したがって、所定閾値以上の明暗のばらつきがある場合には、当該画像データにアクティブコードの要素コードが含まれている可能性が高い。
【０１００】
このため、ステップＳ４０５により、明暗のばらつきがあると判断された場合には（Ｓ４０５；Ｙｅｓ）、当該画像データには、アクティブコードの要素コードが含まれる可能性が高いと判定されるので、ステップＳ４１１に処理を移行してその旨を明示する要素コードフラグをセットする（ＡＤＣフラグ設定処理）。これに対し、このような明暗のばらつきがない判断された場合には（Ｓ４０５；Ｎｏ）、当該画像データには、通常のバーコードが含まれている可能性が高いと判定されるので、ステップＳ４１３に処理を移行してその旨を明示するバーコードフラグをセットする（ＮＭＲフラグ設定処理）。
【０１０１】
この後、ステップＳ４２０により当該画像データのデコード処理を行う。なお、このデコード処理は、当該画像データをコードデータ（コード情報）に解読するもので、図４を参照して説明したキャラクタチェック処理によるステップＳ２０１を同様に行われる。
【０１０２】
このように図９に示す明暗判定処理では、情報コードＱが表示されている背景のバックライトによる光の強度（明度）に基づいて、当該コードが通常のバーコードかアクティブコードの要素コードかを判断するので、情報コード表示装置２００の表示画面２０１がその裏面からバックライトで照明されている場合、特にＬＥＤによる照明の場合、有効なものとなる。
【０１０３】
なお、当該バックライトがＥＬによる照明の場合でも、その点灯を制御するスイッチング周波数が受光センサ２３の露光タイミングよりも遅いかそれに近い場合には、情報コードＱの背景が暗くなることから、明暗のばらつきでは、その背景全体の明暗を検出することで、アクティブコードか否かを判断することが可能となる。
【０１０４】
次に、コード種別判定処理の一例として、画像切替時間判定処理の例を図１０を参照して説明する。図１０に示すように、画像切替時間判定処理は、まずステップＳ５０１により基準画像データがあるか否かを判断する処理が行われ、基準画像データがない場合には（Ｓ５０１；Ｎｏ）、続くステップＳ５０３により画像情報取得処理により画像データを取得し、さらにステップＳ５０５により当該画像データに含まれる情報コードＱの画像、つまりコード画像を基準画像データとしてメモリ３５の所定領域に登録する基準画像データ登録処理が行われる。なお、既に基準画像データが登録され存在する場合には（Ｓ５０１；Ｙｅｓ）、ステップＳ５０３、Ｓ５０５をスキップしてステップＳ５０７に処理を移る。なお、基準画像データ登録処理（Ｓ５０５）およびメモリ３５の所定領域は、特許請求の範囲に記載の「基準画像情報保持手段」に相当し得るものである。
【０１０５】
このステップＳ５０３による画像情報取得処理は、図２を参照して説明したステップＳ１０の画像情報取得処理とほぼ同様であるが、ステップＳ５０３による画像情報取得処理では、当該画像データが取得された時刻ｔ０を記録している。なお、この時刻ｔ０は、制御回路４０に内蔵されたクロック装置により計時された時間データに基づくものである。
【０１０６】
次にステップＳ５０７により画像情報取得処理が行われる。この処理は、前述した基準画像データとは異なる時刻ｔ１のコード画像を含む画像データを取得するもので、ステップＳ５０３と同様に、画像データが取得され、取得時の時刻ｔ１も合わせて取得される。
【０１０７】
続くステップＳ５０９では、ステップＳ５０７により取得された画像データによるコード画像を基準画像データによるコード画像と比較し、時刻ｔ０から時刻ｔ１までの間にコード画像が変化したか否かを判断する処理が行われる。そして、変化がある場合には（Ｓ５０９；Ｙｅｓ）、ステップＳ５１１による経過時間算出処理に移行して経過時間Δｔを算出（Δｔ＝ｔ０−ｔ１）する処理が行われ、変化がない場合には（Ｓ５０９；Ｎｏ）、ステップＳ５０７に移行して再度画像情報取得処理が行われる。つまり、ステップＳ５０７により取得された画像データのコード画像が基準画像データのコード画像と比較して変化するまで、繰り返しステップＳ５０７により画像データが取得される。なお、当該比較処理（Ｓ５０９）は、特許請求の範囲に記載の「コード画像比較手段」に相当し得るものである。
【０１０８】
ステップＳ５１１により算出された経過時間Δｔが、アクティブコードの要素コードを切り替える時間間隔にほぼ等しいか否かをステップＳ５１３により判断する処理が行われる。即ち、ステップＳ５１１による経過時間Δｔが要素コードの表示切替時間（例えば０．１秒）とほぼ等しい場合には、当該コード画像は、アクティブコードの要素コードに該当し得る一方で、このような要素コードの表示切替時間相当の短時間に通常のバーコードが作業者による読取作業によって次々を読み込まれることは考え難い。
【０１０９】
このような理由から、ステップＳ５１３により、経過時間Δｔが要素コードの表示切替時間とほぼ等しいと判断された場合には（Ｓ５１３；Ｙｅｓ）、当該画像データに含まれるコード画像は、アクティブコードの要素コードである可能性が高いと判定されるので、ステップＳ５１５に処理を移行してその旨を明示する要素コードフラグをセットする（ＡＤＣフラグ設定処理）。これに対し、経過時間Δｔが要素コードの表示切替時間とほぼ等しいと判断されない場合（Ｓ５１３；Ｎｏ）、当該画像データに含まれるコード画像は、通常のバーコードが含まれている可能性が高いと判定されるので、ステップＳ５１７に処理を移行しその旨を明示するバーコードフラグをセットする（ＮＭＲフラグ設定処理）。なお、この判断処理（Ｓ５１３）と経過時間算出処理（Ｓ５１１）とは、特許請求の範囲に記載の「切替間隔判断手段」に相当し得るものである。
【０１１０】
この後、ステップＳ５２０により画像データのデコード処理を行う。なお、このデコード処理は、当該画像データをコードデータ（コード情報）に解読するもので、図４を参照して説明したキャラクタチェック処理によるステップＳ２０１を同様に行われる。
【０１１１】
このように図１０に示す画像切替時間判定処理では、任意時刻ｔ０から時刻ｔ１までの時間Δｔが要素コードの切り替わる時間間隔とほぼ同等時間である場合（Ｓ５１３；Ｙｅｓ）、時刻ｔ１に取得された画像情報にアクティブコードの要素コードが含まれていることを判定し、このような時間Δｔが要素コードの切り替わる時間間隔とほぼ同等時間でない場合、時刻ｔ１に取得された画像データにアクティブコードの要素コードが含まれていないことを判定する。つまり、コード画像が変化するのに要する時間に基づいて、アクティブコードか通常のバーコードかを判定している。
【０１１２】
ここで、図３に示す読取処理の改変例（その２、その３）を図１１に基づいて説明する。なお、図１１では、それぞれの分図において、図３に示すフローチャートの一部を抜粋して処理の流れの相違を図示している。
【０１１３】
まず、図１１(A) に示す改変例（その２）について説明する。図１１(A) に示すように、この改変例（その２）では、ステップＳ１１５によるコード種別判定処理とステップＳ１１７による出力済みの要素コードか否かを判断する処理との間に、アクティブコードか否かを判断する処理をステップＳ１２０として介在させる。
【０１１４】
即ち、図３を参照して説明した読取処理では、アクティブコード読取モードにおいては、画像情報取得処理（Ｓ１１３）で取得された画像データには、アクティブコードを構成する要素コードが含まれることを前提に各処理を行っていた。しかし、当該画像データに要素コード以外のコード画像が含まれている場合もあるので、本改変例では、アクティブコード読取モードにおいても、画像情報取得処理（Ｓ１１３）で取得された画像データが要素コードであるか否かを判断することとした。
【０１１５】
そして、アクティブコードであるか否かを判断するステップＳ１３１により、アクティブコードでない、つまりアクティブコードを構成する要素コードのデータでないと判断された場合には（Ｓ１３１；Ｎｏ）、ステップＳ１３３によりアクティブコード読取モードを解除する処理を行い、本読取処理を終了するようにした。なお、アクティブコードを構成する要素コードのデータであると判断された場合には（Ｓ１３１；Ｙｅｓ）、続くステップＳ１１７に移行して図３と同様の判断処理を行う。
【０１１６】
これにより、一旦、アクティブコード読取モードに切り替わった後に通常のバーコードを読み込む場合、ステップＳ１３１による判断処理によって、当該アクティブコード読取モードから、通常のバーコードを読取可能な通常ラベルモードに自動的に切り替えられるので、煩雑な設定作業を行うことなく、通常のバーコードとアクティブコードの双方を読み取ることができる。
【０１１７】
次に、図１１(B) に示す改変例（その３）について説明する。図１１(B) に示すように、この改変例（その３）は、前述した改変例（その２）にリトライ機能を付加したものである。即ち、図１１(A) を参照して説明した改変例（その２）では、アクティブコード読取モードにおいても、画像情報取得処理（Ｓ１１３）で取得された画像データが要素コードであるか否かを判断することとしたが、一度でもアクティブコードでないと判断されると、アクティブコード読取モードを解除してしまう。そこで、本改変例（その３）では、アクティブコードでないと判断されても、所定時間を経過するまでは、画像情報取得処理（S１１３）およびコード種別判定処理（Ｓ１１５）をリトライするように構成した。
【０１１８】
具体的には、図１１(B) に示すように、ステップＳ１１５によるコード種別判定処理とステップＳ１１７による出力済みの要素コードか否かを判断する処理との間に、アクティブコードか否かを判断する処理をステップＳ１４１として介在させ、さらにアクティブコード読取モードを解除する処理（Ｓ１４７）の前に、タイマー値をカウントアップする処理（Ｓ１４３）とそのタイマー値を監視するタイムアップ判断処理（Ｓ１４５）とを介在させた。そして、まだタイムアップになっていない場合には（Ｓ１４５；Ｎｏ）、画像情報取得処理（Ｓ１１３）の直前に処理を移行するように設定した。
【０１１９】
これにより、アクティブコード読取モードにおいて、要素コードの読み取りを所定時間内に完了できなかった場合には（Ｓ１４５；Ｙｅｓ）、当該アクティブコード読取モードから通常ラベル読取モードに切り替えられるが、要素コードの読み取りを所定時間内に完了できた場合には（Ｓ１４５；Ｎｏ、Ｓ１４１；Ｙｅｓ）、当該アクティブコード読取モードから通常ラベル読取モードには切り替えられない。このため、一旦、アクティブコード読取モードに切り替わった後に、誤読み込み等よって要素コード以外のコードが読み込まれた場合には、直ちに、通常ラベル読取モードに切り替わることなく、所定時間待ち、この間も引き続いて要素コード以外のコードが読み込まれるときに、当該アクティブコード読取モードから通常ラベル読取モードに自動的に切り替えられる。したがって、このような読み込みエラーによる無駄なモード切替を防止することができる。
【０１２０】
なお、図１１(B) に示す改変例（その３）では、タイマー値をカウントアップする処理（Ｓ１４３）とタイムアップ判断処理（Ｓ１４５）とによって、所定時間を計時したが、例えば、リトライ回数をカウントする処理とそのカウント値を監視するカウントアップ判断処理とによって、所定回数内にリトライを許容し、当該所定回数を超えた場合には、リトライを阻止してステップＳ１４７によるアクティブコード読取モードの解除処理に移行するように処理を構成しても良い。
【０１２１】
続いて、アクティブコード読取モードの場合に実行される読取条件学習処理を図１２に基づいて説明する。図１２(A) には、当該処理の基本的なフローチャートが示され、また図１２(B) には、その改変例が示されている。なお、この読取条件学習処理は、アクティブコードの要素コードを読み取った後に逐次実行されるもので、「読取条件」とは、図３を参照して説明したＳ１０９によるアクティブコード読取設定処理によって設定される「要素コードの読取条件」のことである。
【０１２２】
図１２(A) に示すように、読取条件学習処理では、まずステップＳ６０１により要素コードの読み取りが成功したか否かを判断する処理が行われる。そして、成功した場合には（Ｓ６０１；Ｙｅｓ）、ステップＳ６０３により現在の読取条件を読取条件テーブルに記憶（保持）する処理が行われ、成功しなかった（失敗した）場合には（Ｓ６０１；Ｎｏ）、ステップＳ６０５により現在の読取条件をそれよりも緩やかに設定する処理が行われる。そしてこれらの処理が完了すると、本読取条件学習処理が終了する。
【０１２３】
ここで「現在の読取条件をそれよりも緩やかに設定する」とは、例えば、読み取った要素コードが複数回一致するように読取条件が設定されている場合には、その回数設定値を減少させることがこれに相当し、また読み取りに要する時間が読取条件に設定されている場合には、その時間設定値を増加させることがこれに相当する。さらに、読取条件として画像データによる２値データの閾値が設定されている場合には、当該閾値を増加または減少させることもこれに相当する。
【０１２４】
これにより、読取条件テーブルには、要素コードの読み取りを所定時間内に完了できた場合の時間設定値や、要素コードの読み取りを所定回数内に完了できた場合の回数設定値が記憶（保持）されるので、アクティブコード読取モードでは、この記憶（保持）されている時間設定値や回数設定値に基づいて要素コードを読み取ることができる。したがって、アクティブコード読取モードでは、要素コードを読取可能な時間設定値や回数設定値に基づいて、要素コードを読み取ることができる。
【０１２５】
続いて図１２(B) を参照して読取条件学習処理の改変例を説明する。図１２(B) に示すように、本改変例では、図１２(A) を参照して説明した処理のステップＳ６０３の後に、ステップＳ６０７として読取条件を厳しく設定する処理を追加している。即ち、アクティブコードの要素コードの読み取りが成功しても、そのときの読取条件を読取条件テーブルに記憶（Ｓ６０３）した後、現在の読取条件をそれよりも厳しく設定する処理を設けた（Ｓ６０７）。
【０１２６】
ここで「現在の読取条件をそれよりも厳しく設定する」とは、例えば、読み取った要素コードが複数回一致するように読取条件が設定されている場合には、その回数設定値を増加させることがこれに相当し、また読み取りに要する時間が読取条件に設定されている場合には、その時間設定値を減少させることがこれに相当する。さらに、読取条件として画像データによる２値データの閾値が設定されている場合には、当該閾値を増加または減少させることもこれに相当する。
【０１２７】
これにより、図１２(A) に示す読取条件学習処理では、一旦、読取条件が緩やかに設定されてしまうと、それ以上は厳しい読取条件が設定されることはなかったが、本改変例による処理では、ステップＳ６０７により読取条件を厳しい方向にも設定し直す。このため、ステップＳ６０５による読取条件の緩和処理とステップＳ６０７による読取条件の緊張処理とが相俟って当該読取条件の最適な設定が可能となる。したがって、アクティブコード読取モードでは、最適な読取条件で要素コードを読み取ることができる。
【０１２８】
なお、上述した実施形態では、アクティブコードを構成する要素コードを順番に読み取るように設定したが、当該要素コードには、図５(B) を参照して説明したように、要素コードの順序データ部SQN に基づいて、蓄積される要素コードが何番目のものであるかを把握し、蓄積されている要素コードを例えばフラグにより管理することで、各要素コードを順番通りではなく順番を飛び越して、例えば２番目→４番目→５番目→３番目→というように飛び飛びに読取可能に構成しても良い。なお、要素コードの総数は、順序データ部SQN が「００」の要素コードに設定されている総数データ部SUM を参照することにより知ることができる。これにより、要素コードがランダムに表示されるアクティブコードも読み取ることが可能となる。
【０１２９】
また、図示されていないが、アクティブコードを構成する要素コードの読み取りの進捗状況を、例えば棒の長さや数値（０％〜１００％）等で、液晶表示器４６に表示しても良い。これにより、作業者は、アクティブコード読取モードにおいて要素コードの読取状況を視覚的に把握することができるので、例えば、要素コードの読取途中であるにもかかわらず、バーコードリーダ２０の読取方向を変えてしまったり、読取動作を中止したりするといった読取エラーに繋がる動作の誘因を抑制することができる。
【図面の簡単な説明】
【０１３０】
【図１】本発明の実施形態に係るバーコードリーダの構成を示すブロック図である。
【図２】本発明の実施形態に係るバーコードリーダによる読取処理の流れを概念的に示すフローチャートである。
【図３】本発明の実施形態に係るバーコードリーダに実装される読取処理の具体例を示すフローチャートである。
【図４】図３に示すコード種別判定処理の一例としてキャラクタチェック処理を示すフローチャートである。
【図５】図５(A) は、コード１２８によるバーコードの構成例を示す説明図で、図５(B) は、アクティブコードの要素コードをホストコンピュータに出力する際の出力フォーマットの例である。
【図６】図３に示す読取処理の改変例（その１）を示すフローチャートである。
【図７】図３に示すコード種別判定処理の一例として画素仕切枠判定処理を示すフローチャートである。
【図８】図８(A) は、カラー液晶表示装置の画面に表示されたバーコードを読み取った場合における波形図で、図８(B) は、紙に印刷されたバーコードを読み取った場合における波形図である。
【図９】図３に示すコード種別判定処理の一例として明暗判定処理を示すフローチャートである。
【図１０】図３に示すコード種別判定処理の一例として画像切替時間判定処理を示すフローチャートである。
【図１１】図３に示す読取処理の改変例を示すフローチャートの抜粋で、図１１(A) は改変例（その２）を示し、図１１(B) は改変例（その３）を示す。
【図１２】図１２(A) は、本発明の実施形態に係るバーコードリーダによる読取処理において、アクティブコード読取モードの場合に実行される読取条件学習処理の流れを示すフローチャートで、図１２(B) は、図１２(A) に示す処理の改変例である。
【図１３】アクティブコードの例を示す説明図である。
【符号の説明】
【０１３１】
２０…バーコードリーダ（光学情報読取装置）
２１…照明光源
２２…受光素子
２３…受光センサ
２５…フィルタ
２７…結像レンズ
３５…メモリ
４６…液晶表示装置
４８…通信インタフェース
１００…通常のバーコード全体
１０１〜１０４…要素コード
２００…情報コード表示装置
２０１…表示画面
ＨＳＴ…ホストコンピュータ
Ｌｆ…照明光
Ｌｒ…反射光
Ｑ…情報コード
Ｒ…読取対象物
Ｓ１０…画像情報取得処理（画像情報取得手段）
Ｓ２０…コード種別判定処理（コード種別判定手段）
Ｓ３０…読取モード切替処理（読取モード切替手段）
Ｓ４０、Ｓ５０…出力処理
Ｓ６０…出力完了判断処理
Ｓ２０１…デコード処理（デコード手段）
Ｓ２０３…「モジュラス１０３＋１」演算処理（演算手段）
Ｓ３０１…画像データ解析処理（画素仕切枠判断処理）
Ｓ４０１…光強度検出処理（光強度情報生成手段）
Ｓ４０３…明暗ばらつき検出処理（明暗判断手段）
Ｓ５０３、Ｓ５０７…画像情報取得処理
Ｓ５０５…基準画像データ登録処理（基本画像情報保持手段）
Ｓ５０９…判断手段（コード画像比較手段）
Ｓ５１１…経過時間算出処理（切替間隔判断手段）
Ｓ５１３…判断処理（切替間隔判断手段）
ｔ０…時刻（任意時刻）
ｔ１…時刻（任意時刻の後の時刻）
Δｔ…経過時間（任意時刻ｔ０から時刻ｔ１までの時間）
【図１】
2007094976.tif 000003
【図２】
2007094976.tif 000004
【図３】
2007094976.tif 000005
【図４】
2007094976.tif 000006
【図５】
2007094976.tif 000007
【図６】
2007094976.tif 000008
【図７】
2007094976.tif 000009
【図８】
2007094976.tif 000010
【図９】
2007094976.tif 000011
【図１０】
2007094976.tif 000012
【図１１】
2007094976.tif 000013
【図１２】
2007094976.tif 000014
【図１３】
2007094976.tif 000015