以下、本実施形態について図面を参照して説明する。まず、本実施形態に係るバーコードリーダを含むPOSシステムの一例について図1を用いて説明する。POSシステム1は、POS端末装置(上位機器)10およびバーコードリーダ(読取装置)20を有する。POS端末装置10は、図示しないサーバと接続されている。POS端末装置10は、商品に添付されたバーコードに基づき、商品登録および精算処理を行う装置である。なお、以下では、店員操作によるPOS端末装置10を例にするが、POS端末装置10はセルフPOS端末装置であってもよい。
バーコードリーダ20は、POS端末装置10に接続され、商品に添付されるバーコード(例えば、バーコードBC0)を読み取り、読み取ったバーコードに基づくスキャンデータをPOS端末装置10に出力する装置である。バーコードリーダ20は、POS端末装置10とUSB(Universal Serial Bus)あるいはLAN(Local Area Network)等で接続される。LANは、有線・無線いずれでも良い。
図2は、POS端末装置10のハードウェアブロックの一例を示す図である。POS端末装置10は、端末制御部100、RAM(Random Access Memory)102、ROM(Read Only Memory)104、グラフィック処理部106、入出力IF(Interface)108、通信IF(Interface)110、表示部112、入力部114、レシートプリンタ116および入出金部118等を有する。また、POS端末装置10は、図2に示していない他のハードウェア構成を備えていてもよい。
端末制御部100は、POS端末装置10全体を統括的に制御するもので、プログラムを読み込んで制御処理を実行するCPU(Central Processing Unit)等のプロセッサを有する。端末制御部100は、プログラムを読み込み、プログラムを実行して、商品に添付されたバーコードに基づき、商品の登録や精算処理を行う。
RAM102には、端末制御部100に実行させるためのOS(Operating System)、アプリケーションプログラムの一部や画像データが一時的に格納される。ROM104は、例えばフラッシュメモリであり、端末制御部100により実行されるアプリケーションプログラムやテーブルデータを不揮発的に記憶する。
グラフィック処理部106は、端末制御部100からの命令に従って、操作画面や商品登録や精算を行うPOS処理画面を作成して、画像信号に変換して表示部112に出力する。表示部112は、例えばLCD(Liquid Crystal Display)で構成される。
入出力IF108は、接続される入力部114等の周辺機器を制御する。通信IF110は、外部とデータの送受信を行うものであり、例えばLANやUSB等の接続形式である。端末制御部100には、バス130を介して、RAM102、ROM104、グラフィック処理部106、入出力IF108、通信IF110等が接続される。
入出力IF108には、入力部114、レシートプリンタ116、入出金部118等が接続される。入力部114は、店員が操作内容や指示を入力する操作部で、例えばタッチパネルである。レシートプリンタ116は、客に渡すレシートを発行する。入出金部118は、客から入金された紙幣や硬貨を収納管理し、客に渡す釣銭の出金を管理する。
また、入出力IF108には、バーコードリーダ20も接続される。バーコードリーダ20は、POS端末装置10からの読み取り指示に応じて、商品に添付されたバーコードの読み取りを行う。バーコードリーダ20は、読み取り結果をPOS端末装置10に通知する。
図3は、バーコードリーダ20のハードウェアブロックの一例を示す図である。バーコードリーダ20は、リーダ制御部200、RAM202、ROM204、入出力IF206、バーコード読取HW(Hardware)208等を有する。また、バーコードリーダ20は、図3に示していない他のハードウェア構成を備えていてもよい。
リーダ制御部200は、バーコードリーダ20全体を統括的に制御するもので、プログラムを読み込んで制御処理を実行するCPU等のプロセッサを有する。リーダ制御部200は、プログラムを読み込み、プログラムを実行して、特殊バーコードの読み取りを行うと、バーコードリーダ20に関する情報をROM204から取得し、POS端末装置10へ通知する処理を行う。特殊バーコードについては後述する。
RAM202には、リーダ制御部200に実行させるためのアプリケーションプログラム、スキャンデータ、バーコードリーダ情報が一時的に格納される。スキャンデータ、バーコードリーダ情報については後述する。
ROM204は、例えばフラッシュメモリであり、リーダ制御部200により実行されるアプリケーションプログラム、シリアル番号の情報、特殊バーコードの情報、読み取りバーコード種別の情報、動作情報を不揮発的に記憶する。シリアル番号の情報、特殊バーコードの情報、読み取りバーコード種別の情報、動作情報については後述する。ROM204は、記憶部として機能する。
バーコード読取HW208は、光源、受光素子等を備え、光源からバーコードに照射された反射光を受光素子で受光し、受光した反射光をその強弱に応じた振幅値を有する電気信号に光電変換して、リーダ制御部200に出力する。リーダ制御部200には、バス210を介して、RAM202、ROM204、入出力IF206、バーコード読取HW208等が接続される。
入出力IF206には、POS端末装置10が接続される。バーコードリーダ20は、POS端末装置10からの読み取り指示に応じて、商品に添付されたバーコードの読み取りを行う。バーコードリーダ20は、読み取り結果をPOS端末装置10に通知する。
図4は、POS端末装置10およびバーコードリーダ20の機能構成の一例を示す図である。機能ブロックとしてのバーコードリーダ20は、スキャンデータ取得部21、読取情報取得部22、コード情報生成部23および通信部24を有する。バーコードリーダ20は、図4に示していない機能構成を備えていてもよい。スキャンデータ取得部21、読取情報取得部22、コード情報生成部23および通信部24は、ROM204から制御プログラムを読み出したリーダ制御部200によるソフトウェア処理で実現される。
RAM202は、スキャンデータ格納部31、バーコードリーダ情報格納部32を有する。ROM204は、シリアル番号格納部41、特殊バーコード格納部42、読取コード種別格納部43、動作情報格納部44を有する。また、図4には示していないが、ROM204は、上記の制御プログラムを格納する格納部を有する。
シリアル番号格納部41には、バーコードリーダ20を一意に識別できる特定の番号を示す文字列が格納されている。例えば、シリアル番号格納部41には、バーコードリーダ20を一意に識別できる文字列として"2018000123"が格納されている。
特殊バーコード格納部42には、バーコードリーダ情報作成処理を行うトリガーとなる特殊バーコードのバーコード文字列の情報が格納されている。特殊バーコードのバーコード文字列のデータ形式は、情報取得バーコード領域と種別情報領域とを含む。
情報取得バーコード領域には、バーコードリーダ情報の取得を示す文字列が格納されている。例えば、情報取得バーコード領域には、バーコードリーダ情報の取得を示す文字列として"SYSTEM9999999900000000-"が格納されている。
種別情報領域には、バーコードリーダ情報の種別を示す文字列が格納されている。例えば、種別情報領域に格納する4つの英数字を使ってバーコードリーダ情報の種別を指定することができる。
種別情報領域には、バーコードリーダ20に関する取得情報の種別を示す文字列が格納されている。例えば、種別情報領域には、読取バーコード種別取得を示す文字列として第1の種別情報"0001"が格納されている。また、種別情報領域には、動作情報取得の種別情報を示す文字列として第2の種別情報"0010"が格納されている。また、種別情報領域には、読取バーコード種別と動作情報取得の種別情報を示す文字列として第3の種別情報"0011"が格納されている。
図5は、特殊バーコードBCの一例を示す図である。本実施形態においては、特殊バーコードBCは、第1特殊バーコードBC1、第2特殊バーコードBC2、第3特殊バーコードBC3の三種類有する。特殊バーコードBCは、少なくとも一種類以上あればよい。
第1特殊バーコードBC1の種別情報領域には、読取バーコード種別取得を示す文字列として第1の種別情報"0001"が格納されている。第2特殊バーコードBC2の種別情報領域には、動作情報取得の種別情報を示す文字列として第2の種別情報"0010"が格納されている。第3特殊バーコードBC3の種別情報領域には、読取バーコード種別と動作情報取得の種別情報を示す文字列として第3の種別情報"0011"が格納されている。従って、種別情報領域の種別情報を識別することにより、第1特殊バーコードBC1〜第3特殊バーコードBC3を区別することができる。第1特殊バーコードBC1、第2特殊バーコードBC2、第3特殊バーコードBC3は、例えば、紙等に予め印刷され、POS端末装置10の側に置かれている。保守員は、セッティング作業や保守作業時に、第1特殊バーコードBC1、第2特殊バーコードBC2、第3特殊バーコードBC3のいずれかをバーコードリーダ20で読み込むことで、後述のバーコードリーダ情報作成処理が実行される。
読取コード種別格納部43には、バーコード種別単位毎にバーコードリーダ20が読取対象となっているか否かを示す情報(以下、「読取対象状態の情報」と称する)が格納されている。図6は、読取コード種別格納部43に格納されている情報の一例を示す図である。
図6に示すように、読取対象状態の情報のデータ形式は、バーコード種別領域と読取対象状態領域とを含む。
バーコード種別領域には、バーコードの種類を示すバーコード種別の文字列が格納されている。バーコード種別は、バーコードの種類を識別するための文字列である。例えば、図6(1)に示すように、バーコード種別領域には、バーコードの種類「Code39」、「ITF」、「Code128」、「Codabar」、「UPCA」、「UPCE」、「JAN8」、「JAN13」、「TF」、「EAN128」、「QRCODE」のそれぞれに対応するバーコード種別の文字列"M"、"P"、"Q"、"N"、"A"、"E"、"FF"、"F"、"O"、"W"、"H"が格納される。
読取対象状態領域には、バーコード種別に対応するバーコードの種類の読み取りを有効にするか否かを示す対象状態の値が格納されている。例えば、読取対象状態領域には、図6(1)に示すように、バーコードの種類の読み取りの有効に対応する読取対象状態の値"1"、バーコードの種類の読み取りの無効に対応する読取対象状態の値"0"のいずれかが格納される。
本実施形態においては、読取対象状態の情報は、図6(2)に示すように、バーコード種別領域に格納されているバーコード種別の文字列と、読取対象状態領域に格納されている読取対象状態の値とがROM204上の連続した領域においてそれぞれ組となって格納されている。
動作情報格納部44には、バーコードリーダ20の動作情報が格納されている。動作情報は、バーコードリーダ20の保守に利用する情報である。動作情報のデータ形式は、読取回数領域と、動作異常発生回数領域とを含む。
読取回数領域には、バーコードリーダ20によりバーコードを読み取った回数を示す値(以下、「読取回数情報」と称する)が格納されている。例えば、バーコードリーダ20が「5000」回の読み取り(スキャン)を行った場合には、読取回数領域に読取回数情報として"5000"の値が格納される。
動作異常発生回数領域には、バーコードリーダ20が動作した際に異常が発生した回数を示す値(以下、「異常発生回数情報」と称する)が格納されている。例えば、バーコードリーダ20が異常の発生を「100」回検出した場合には、動作異常発生回数領域に異常発生回数情報として"100"の値が格納される。
本実施形態において、バーコードリーダ20で発生する異常には、例えば、バーコードを読み取った数値からバーコードリーダ情報が生成できなかったこと、ROM204への書き込みに失敗したこと、POS端末装置10との通信中に異常が発生したこと等が含まれる。
バーコードリーダ20は、上位機器であるPOS端末装置10と接続され、バーコードリーダ情報をPOS端末装置10へ送信する。バーコードリーダ情報はPOS端末装置10が認識可能な情報である。
スキャンデータ取得部21は、図1のバーコード等を読み取り、読み取りデータをデコードしてスキャンデータを取得する。スキャンデータは、バーコード読取HW208が取り込んだ数値をバーコード種別に対応した照合を行い生成された文字列である。例えば、バーコードの種類「CODE128」のバーコードを読み取った場合、スキャンデータ取得部21は、文字列"SYSTEM9999999900000000-0001"をスキャンデータとして取得する。スキャンデータ取得部21は、取得したスキャンデータをスキャンデータ格納部31に格納する。
読取情報取得部22は、スキャンデータ取得部21により取得したスキャンデータに特殊バーコードが含まれている場合には、ROM204からバーコードリーダ20に関する情報を取得する。そして、コード情報生成部23は、読取情報取得部22が取得したバーコードリーダ20に関する情報に基づきバーコードリーダ情報を生成する。コード情報生成部23は、生成したバーコードリーダ情報をバーコードリーダ情報格納部32に格納する。
バーコードリーダ20に関する情報には、バーコードリーダ20に設定されているコード種別の読取対象状態の情報、バーコードリーダ20の動作情報等が含まれる。
特殊バーコードは、例えば、スキャンデータの先頭に"SYSTEM9999999900000000-"のデータが含まれるコードである(図5参照)。従って、読取情報取得部22は、スキャンデータ取得部21により取得したスキャンデータの先頭のデータが"SYSTEM9999999900000000-"であるか否かを判定することにより、特殊バーコードであるか否かを判定することができる。
例えば、特殊バーコード格納部42の種別情報領域には、読取バーコード種別取得指定を示す文字列として第1の種別情報"0001"が格納されている。また、種別情報領域には、動作情報取得指定を示す文字列として第2の種別情報"0010"が格納されている。また、種別情報領域には、読取バーコード種別と動作情報取得指定を示す文字列として第3の種別情報"0011"が格納されている。
読取情報取得部22は、スキャンデータ取得部21により取得したスキャンデータに特殊バーコードが含まれているか否か、すなわち、スキャンデータの先頭に"SYSTEM9999999900000000-"のデータが含まれているか否かを判定する。
スキャンデータに特殊バーコードが含まれている場合には、コード情報生成部23は、バーコードリーダ情報格納部32に、バーコードリーダ情報におけるシリアル番号の開始を意味する符号である第1の符号と、シリアル番号格納部41に格納されているシリアル番号と、を含めたデータをバーコードリーダ情報として格納する。
例えば、特殊バーコードが含まれている場合、読取情報取得部22は、バーコードリーダ情報格納部32に、第1の符号"SN:"と、シリアル番号格納部41に格納されているシリアル番号"2018000123"と、を含めたデータ"SN:2018000123"をバーコードリーダ情報として格納する。
読取情報取得部22は、スキャンデータの種別情報領域に含まれる種別情報を取得する。読取情報取得部22は、スキャンデータ取得部21により取得したスキャンデータに第1の種別情報が含まれている場合、すなわち、バーコードリーダ20で読み取ったバーコードが第1特殊バーコードBC1である場合には、読取コード種別格納部43からバーコードリーダ20に設定されているコード種別の読取対象状態の情報をバーコードリーダ20に関する情報として取得する。具体的には、読取情報取得部22は、スキャンデータに第1の種別情報"0001"が含まれている場合には、読取コード種別格納部43から図6(2)に示す読取対象状態の情報を取得する。
コード情報生成部23は、バーコードリーダ情報格納部32に格納されているバーコードリーダ情報に、バーコードリーダ情報における読取対象状態の情報の開始を意味する符号である第2の符号と、取得した読取対象状態の情報と、を追加する。例えば、バーコードリーダ情報格納部32に、データ"SN:2018000123"がバーコードリーダ情報として格納されている場合、コード情報生成部23は、格納されているバーコードリーダ情報に、第2の符号"/CFG:"と、取得した読取対象状態の情報をバーコード種別単位毎に",(カンマ)"で区切って追加する。
例えば、図6(1)に示すように、バーコード種別領域に、バーコード種別の文字列"M"、"P"、"Q"、"N"、"A"、"E"、"FF"、"F"、"O"、"W"、"H"およびバーコード種別に対応するバーコードの種類の読み取りを有効にするか否かを示す対象状態の値"0"または"1"が格納されている場合について説明する。この場合、コード情報生成部23は、バーコードリーダ情報格納部32に、第2の符号"/CFG:"と、取得した読取対象状態の情報と、を追加したデータ"SN:2018000123/CFG:M0,P0,Q1,N1,A1,E1,FF1,F1,O0,W1,H0"をバーコードリーダ情報として格納する。
また、読取情報取得部22は、スキャンデータ取得部21により取得したスキャンデータに第3の種別情報が含まれている場合、すなわち、バーコードリーダ20で読み取ったバーコードが第3特殊バーコードBC3である場合には、動作情報格納部44からバーコードリーダ20の動作情報をバーコードリーダ20に関する情報として取得する。具体的には、読取情報取得部22は、スキャンデータに第3の種別情報"0011"が含まれている場合には、動作情報格納部44の読取回数領域から、読取回数情報を動作情報として取得し、動作異常発生回数領域から異常発生回数情報を動作情報として取得する。
コード情報生成部23は、バーコードリーダ情報格納部32に格納されているバーコードリーダ情報に、バーコードリーダ情報における読取回数情報の開始を意味する符号である第3の符号と、取得した動作情報のうち読取回数情報と、を追加する。例えば、バーコードリーダ情報格納部32に、データ"SN:2018000123/CFG:M0,P0,Q1,N1,A1,E1,FF1,F1,O0,W1,H0"がバーコードリーダ情報として格納されている場合、コード情報生成部23は、格納されているバーコードリーダ情報に、第3の符号"/MT:SCN:"と、取得した動作情報のうち読取回数情報を追加する。
例えば、読取回数領域に読取回数情報として"5000"の値が格納されている場合について説明する。この場合、コード情報生成部23は、バーコードリーダ情報格納部32に、第3の符号"/MT:SCN:"と、取得した動作情報のうち読取回数情報を変換した文字列と、を追加したデータ"SN:2018000123/CFG:M0,P0,Q1,N1,A1,E1,FF1,F1,O0,W1,H0/MT:SCN:5000"をバーコードリーダ情報として格納する。
同様に、コード情報生成部23は、バーコードリーダ情報格納部32に格納されているバーコードリーダ情報に、バーコードリーダ情報における異常発生回数情報の開始を意味する符号である第4の符号と、取得した動作情報のうち異常発生回数情報と、を追加する。例えば、バーコードリーダ情報格納部32に、データ"SN:2018000123/CFG:M0,P0,Q1,N1,A1,E1,FF1,F1,O0,W1,H0/MT:SCN:5000"がバーコードリーダ情報として格納されている場合、コード情報生成部23は、格納されているバーコードリーダ情報に、第4の符号",ERR:"と、取得した動作情報のうち異常発生回数情報を追加する。例えば、動作異常発生回数領域に異常発生回数情報として"100"の値が格納されている場合について説明する。この場合、コード情報生成部23は、バーコードリーダ情報格納部32に、第4の符号",ERR:"と、取得した動作情報のうち異常発生回数情報を変換した文字列と、を追加したデータ"SN:2018000123/CFG:M0,P0,Q1,N1,A1,E1,FF1,F1,O0,W1,H0/MT:SCN:5000,ERR:100"をバーコードリーダ情報として格納する。
また、コード情報生成部23は、スキャンデータ格納部31に格納したスキャンデータをバーコードリーダ情報格納部32に格納したバーコードリーダ情報に置き換えて格納する。例えば、スキャンデータ取得部21により取得され、スキャンデータ格納部31に格納されたスキャンデータ"SYSTEM9999999900000000-0001"をコード情報生成部23がバーコードリーダ情報格納部32に格納したバーコードリーダ情報"SN:2018000123/CFG:M0,P0,Q1,N1,A1,E1,FF1,F1,O0,W1,H0/MT:SCN:5000,ERR:100"に置き換えて格納する。
なお、読取情報取得部22は、スキャンデータ取得部21により取得したスキャンデータに第2の種別情報が含まれている場合、すなわち、バーコードリーダ20で読み取ったバーコードが第2特殊バーコードBC2である場合には、バーコードリーダ20に設定されているコード種別の読取対象状態の情報を取得せずに、動作情報格納部44からバーコードリーダ20の動作情報をバーコードリーダ20に関する情報として取得する。
具体的には、読取情報取得部22は、スキャンデータに第2の種別情報"0010"が含まれている場合には、動作情報格納部44の読取回数領域から、読取回数情報を動作情報として取得する処理、動作異常発生回数領域から、異常発生回数情報を動作情報として取得する処理のみを行う。そして、コード情報生成部23は、バーコードリーダ情報格納部32に格納されているバーコードリーダ情報に、第3の符号と、取得した動作情報のうち読取回数情報と、を追加する処理、および第4の符号と、取得した動作情報のうち異常発生回数情報と、を追加する処理のみを行う。その他の処理については、スキャンデータに第3の種別情報"0011"が含まれている場合と同様であるため説明を省略する。
通信部24は、コード情報生成部23によりスキャンデータ格納部31に格納されたバーコードリーダ情報をPOS端末装置10へ送信する。例えば、通信部24は、バーコードリーダ情報"SN:2018000123/CFG:M0,P0,Q1,N1,A1,E1,FF1,F1,O0,W1,H0/MT:SCN:5000,ERR:100"をPOS端末装置10へ送信する。
機能ブロックとしてのPOS端末装置10は、通信部51、バーコードリーダ制御部52およびアプリケーション処理部53を有する。POS端末装置10は、図4に示していない機能構成を備えていてもよい。通信部51、バーコードリーダ制御部52およびアプリケーション処理部53は、ROM104から制御プログラムを読み出した端末制御部100によるソフトウェア処理で実現される。
通信部51は、バーコードリーダ20から送信されたバーコードリーダ情報を受信する。通信部51は、受信したバーコードリーダ情報をバーコードリーダ制御部52へ通知する。
バーコードリーダ制御部52は、ミドルウェアにより構成され、通信部51を介してバーコードリーダ20に対する制御を行うとともに、通信部51が受信したバーコードリーダ情報をアプリケーション処理部53へ通知する。
アプリケーション処理部53は、バーコードリーダ20から送信されたバーコードリーダ情報に基づきPOS端末装置10に関する情報を表示部112で表示する表示処理を行う。アプリケーション処理部53は、表示処理以外の処理を行ってもよい。
バーコードリーダ20から送信されたバーコードリーダ情報が"SN:2018000123/CFG:M0,P0,Q1,N1,A1,E1,FF1,F1,O0,W1,H0/MT:SCN:5000,ERR:100"である場合に、アプリケーション処理部53が行う表示処理により表示部112に表示される情報の例について説明する。図7は、POS端末装置10の表示部112に表示される表示画面の例を示す図である。
アプリケーション処理部53は、例えば、第2の符号"/CFG:"以下であり、かつ第3の符号よりも前の情報"M0,P0,Q1,N1,A1,E1,FF1,F1,O0,W1,H0"に基づき、読取対象状態の情報を表示部112に表示する。具体的には、アプリケーション処理部53は、バーコードリーダ情報に含まれるバーコード種別の文字列"M"、"P"、"Q"、"N"、"A"、"E"、"FF"、"F"、"O"、"W"、"H"に合致するバーコードの種類「Code39」、「ITF」、「Code128」、「Codabar」、「UPCA」、「UPCE」、「JAN8」、「JAN13」、「TF」、「EAN128」、「QRCODE」と、各バーコード種別に対応する読取対象状態の値に合致する読取対象状態の情報を表示する。
例えば、図7(1)に示すように、アプリケーション処理部53は、各バーコードの種類に対し、読取対象状態の値が"1"である場合には「有効」を表示し、読取対象状態の値が"0"である場合には「無効」を表示する。
このため、バーコードリーダ20の保守員は、セッティング作業や保守作業時に、表示部112に表示される各バーコードの種類に対応する読取対象状態を確認することにより、各バーコードの種類に対応するバーコードの読み取りを行わずに、バーコードリーダ20に設定されている読取対象状態を確認することができる。これにより、バーコードリーダ20に関する情報を容易に確認することができ、確認作業の短縮を図ることができる。
また、図7(2)に示すように、アプリケーション処理部53は、例えば、第3の符号"/MT:SCN:"以下であり、かつ第4の符号よりも前の情報"5000"に基づき、バーコードリーダ20の動作情報のうち読取回数情報に対応する「読取回数」を表示部112に表示する。同様に、アプリケーション処理部53は、第4の符号",ERR:"以下の情報"100"に基づき、バーコードリーダ20の動作情報のうち異常発生回数情報に対応する「異常回数」を表示部112に表示する。
このため、バーコードリーダ20を保守員は、セッティング作業や保守作業時に、表示部112に表示される読取回数や異常回数等のバーコードリーダ20の動作情報を確認することにより、読取回数や異常回数が過度に多くないか確認することができ、保守作業の参考にすることができる。これにより、バーコードリーダ20に関する情報を容易に確認することができ、確認作業の短縮を図ることができる。
なお、アプリケーション処理部53は、バーコードリーダ20から送信されたバーコードリーダ情報"SN:2018000123/CFG:M0,P0,Q1,N1,A1,E1,FF1,F1,O0,W1,H0/MT:SCN:5000,ERR:100"をそのまま表示部112に表示してもよい。第1〜第4の符号の意味を理解している保守員であれば、バーコードリーダ情報の文字列を確認することにより、バーコードリーダ20に関する情報を理解できる。
次に、バーコードリーダ20が行うバーコードリーダ情報作成処理の流れについて説明する。図8は、バーコードリーダ情報作成処理の一例を示すフローチャートである。
はじめに、スキャンデータ取得部21は、スキャンデータ取得処理を行う(ステップS11)。この処理では、スキャンデータ取得部21は、バーコードの読み取りが行われるまで待機し、バーコードの読み取りに成功すると、読み取ったバーコードに基づき、スキャンデータを生成し取得する。スキャンデータ取得部21は、取得したスキャンデータをスキャンデータ格納部31に格納する。
読取情報取得部22は、スキャンデータ取得部21が取得したスキャンデータは特殊バーコードのデータであるか否かを判定する(ステップS12)。この処理では、読取情報取得部22は、スキャンデータの先頭に"SYSTEM9999999900000000-"のデータが含まれているか否かに基づき、特殊バーコードのデータであるか否かを判定する。
スキャンデータ取得部21が取得したスキャンデータは特殊バーコードのデータでない場合、すなわち、スキャンデータの先頭に"SYSTEM9999999900000000-"のデータが含まれていない場合(ステップS12のNO)には、リーダ制御部200は、通常処理を行う(ステップS13)。この処理では、リーダ制御部200は、通信部24を介して、読み取ったスキャンデータをPOS端末装置10へ送信する。この処理が終了すると、処理はステップS11に戻る。
スキャンデータ取得部21が取得したスキャンデータは特殊バーコードのデータである場合、すなわち、スキャンデータの先頭に"SYSTEM9999999900000000-"のデータが含まれている場合(ステップS12のYES)には、コード情報生成部23は、バーコードリーダ情報格納部32に格納されているバーコードリーダ情報を初期化(0クリア)する(ステップS14)。
コード情報生成部23は、バーコードリーダ情報格納部32に、第1の符号"SN:"と、シリアル番号格納部41に格納されているシリアル番号"2018000123"と、を含めたデータ"SN:2018000123"をバーコードリーダ情報として格納する(ステップS15)。読取情報取得部22は、スキャンデータの種別情報領域から種別情報を取得する(ステップS16)。
読取情報取得部22は、スキャンデータに読取バーコード種別取得指定があるか否かを判定する(ステップS17)。この処理では、読取情報取得部22は、スキャンデータの種別情報領域に第1の種別情報"0001"または第3の種別情報"0011"が格納されているか否か、すなわち、バーコードリーダ20で読み取ったバーコードが第1特殊バーコードBC1または第3特殊バーコードBC3であるか否かを判定する。
スキャンデータに読取バーコード種別取得指定がない場合、すなわち、スキャンデータの種別情報領域に第1の種別情報"0001"または第3の種別情報"0011"が格納されていない場合(ステップS17のNO)には、ステップS18の処理は省略され、処理はステップS19に進む。
スキャンデータに読取バーコード種別取得指定がある場合、すなわち、スキャンデータの種別情報領域に第1の種別情報"0001"または第3の種別情報"0011"が格納されている場合(ステップS17のYES)には、コード情報生成部23は、バーコードリーダ情報に、第2の符号と読取対象状態の情報を追加する(ステップS18)。この処理では、コード情報生成部23は、読取対象状態の情報として、読取コード種別格納部43に格納されている読取対象状態の情報(図6参照)を取得する。
コード情報生成部23は、バーコードリーダ情報格納部32に格納されているバーコードリーダ情報に、例えば、第2の符号"/CFG:"と、取得した読取対象状態の情報をバーコード種別単位毎に",(カンマ)"で区切って追加する。コード情報生成部23は、バーコードリーダ情報格納部32に、第2の符号"/CFG:"と、取得した読取対象状態の情報と、を追加したデータ"SN:2018000123/CFG:M0,P0,Q1,N1,A1,E1,FF1,F1,O0,W1,H0"をバーコードリーダ情報として格納する。
読取情報取得部22は、スキャンデータに動作情報取得指定があるか否かを判定する(ステップS19)。この処理では、読取情報取得部22は、スキャンデータの種別情報領域に第2の種別情報"0010"または第3の種別情報"0011"が格納されているか否か、すなわち、バーコードリーダ20で読み取ったバーコードが第2特殊バーコードBC2または第3特殊バーコードBC3であるか否かを判定する。
スキャンデータに動作情報取得指定がない場合、すなわち、スキャンデータの種別情報領域に第2の種別情報"0010"または第3の種別情報"0011"が格納されていない場合(ステップS19のNO)には、ステップS20〜S25の処理は省略され、処理はステップS26に進む。
スキャンデータに動作情報取得指定がある場合、すなわち、スキャンデータの種別情報領域に第2の種別情報"0010"または第3の種別情報"0011"が格納されている場合(ステップS19のYES)には、コード情報生成部23は、バーコードリーダ情報格納部32に格納されているバーコードリーダ情報に、第3の符号"/MT:SCN:"を追加する(ステップS20)。
読取情報取得部22は、動作情報格納部44の読取回数領域から、読取回数情報を取得して、文字列に変換する(ステップS21)。コード情報生成部23は、バーコードリーダ情報格納部32に格納されているバーコードリーダ情報に、文字列に変換した読取回数情報を追加する(ステップS22)。コード情報生成部23は、バーコードリーダ情報格納部32に格納されているバーコードリーダ情報に、第4の符号",ERR:"を追加する(ステップS23)。
読取情報取得部22は、動作情報格納部44の動作異常発生回数領域から、異常発生回数情報を取得して、文字列に変換する(ステップS24)。コード情報生成部23は、バーコードリーダ情報格納部32に格納されているバーコードリーダ情報に、文字列に変換した異常発生回数情報を追加する(ステップS25)。
コード情報生成部23は、スキャンデータ格納部31に格納したスキャンデータをバーコードリーダ情報格納部32に格納したバーコードリーダ情報に置き換えて格納する(ステップS26)。
通信部24は、バーコードリーダ情報送信処理を行う(ステップS27)。この処理では、通信部24は、スキャンデータ格納部31に格納されたバーコードリーダ情報をPOS端末装置10へ送信する。この処理が終了すると、処理はステップS11に戻る。
なお、本発明は上述した実施形態そのままに限定されるものではなく、実施段階でのその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素を適宜組み合わせても良い。更に、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。このような、発明の趣旨を逸脱しない範囲内において種々の変形や応用が可能である。