図1は、POS(Point Of Sale)システム1の構成を示す図である。
POSシステム1は、ショッピングセンターや、百貨店、コンビニエンスストア、車内販売等の小売業や、レストランや、喫茶店、居酒屋等の飲食業等の業務に適用されるシステムである。POSシステム1は、顧客が購入した商品に応じて会計を行う機能や、会計に応じてレシートを印刷する機能等を有する。
図1示すように、POSシステム1は、プリンター2(印刷装置)と、POS端末装置3(制御装置)と、カスタマーディスプレイ4(外部デバイス)(表示装置)と、バーコードスキャナー5とを備える。
プリンター2は、POS端末装置3から受信する印刷データに基づいて、印刷媒体に文字や画像等を印刷する装置である。本実施形態のプリンター2は、本体に印刷媒体として感熱ロール紙(不図示)を収容し、多数の発熱素子262を備えたラインサーマルヘッド261により、感熱ロール紙の印刷面に熱を加えることで文字や画像等を印刷する。また、本実施形態のプリンター2は、POSシステム1において、POS端末装置3から受信する印刷データに基づいて感熱ロール紙に文字や画像等を印刷することで、POS端末装置3が実行した会計処理の結果を示すレシートを発行する。
POS端末装置3は、プリンター2と通信してプリンター2を制御する装置であり、例えばスマートフォンやタブレット端末等のユーザーが持ち運び可能な端末装置や店舗のレジ(会計)カウンターに設置されるコンピューターである。ここでいうユーザーとは、例えば、店舗に設けられるレジカウンターのレジ担当者である。本実施形態のPOS端末装置3は、POSシステム1において行われる会計に応じて、商品の販売に伴う会計処理を実行し、会計処理に基づいてプリンター2にレシートを発行させる。プリンター2に発行されたレシートは、例えばレジ担当者から顧客に引き渡される。
カスタマーディスプレイ4は、液晶ディスプレイ等の表示装置であり、プリンター2と外部接続する。カスタマーディスプレイ4は、プリンター2のプリンター制御部20(後述)の制御で、各種情報を表示する。本実施形態では、カスタマーディスプレイ4は、POSシステム1において、顧客が購入した商品について、商品名や、商品の単価、合計金額等の会計に係る情報(以下、「会計情報」と表現する)を表示する。カスタマーディスプレイ4に表示された会計情報は、会計を行う顧客が視認できる。
バーコードスキャナー5は、商品や、商品の包装等に付されたバーコードを読み取り、読取結果を示すデータをPOS端末装置3に出力する。
図2に示すように、プリンター2は、プリンター制御部20(制御部)と、プリンター記憶部21と、プリンターデバイス通信部22(第2通信部)と、プリンター入力部23と、プリンター表示部24と、プリンターBLT通信部25(第1通信部)と、印刷部26とを備える。なお、BLTは、本実施形態においてBluetooth(登録商標)を示す。
プリンター制御部20は、CPU(プロセッサー)や、ROM、RAM、ASIC、信号処理回路等を備え、プリンター2の各部を制御する。プリンター制御部20は、例えばCPUが、ROMや後述するプリンター記憶部21等に記憶されたファームウェアなどのプログラムをRAMに読み出して処理を実行し、プリンター2内の各部を制御する。また、例えばASICに実装された機能により処理を実行し、また、例えば信号処理回路で信号処理を行って処理を実行する等、ハードウェア及びソフトウェアの協業により処理を実行する。
プリンター記憶部21は、ハードディスクや、EEPROM等の不揮発性メモリーを備え、各種データを書き換え可能に記憶する。プリンター記憶部21は、設定値テーブル211を記憶する。設定値テーブル211については、後述する。
プリンターデバイス通信部22は、USBの規格に従ったポートや、USB以下のシリアル通信規格に従ったポート、その他通信規格に従ったポートを有するインターフェースボードを備える。プリンターデバイス通信部22は、プリンター制御部20の制御で、ポートに接続されたデバイスと通信する。本実施形態では、デバイスとしてカスタマーディスプレイ4が接続し、プリンターデバイス通信部22は、プリンター制御部20の制御で、カスタマーディスプレイ4と通信する。
プリンター入力部23は、プリンター2に設けられた操作パネルやタッチパネル等の入力手段を備え、ユーザーの入力手段に対する操作を検出し、プリンター制御部20に出力する。プリンター制御部20は、プリンター入力部23からの入力に基づいて、入力手段に対する操作に対応する処理を実行する。
プリンター表示部24は、複数のLEDや、表示パネル等を備え、プリンター制御部20の制御で、LEDを所定の態様で点灯/消灯や、表示パネルへの情報の表示等を実行する。
プリンターBLT通信部25は、プリンター制御部20の制御で、Bluetooth規格に従って、POS端末装置3と無線通信する。図1に示すように、プリンターBLT通信部25は、トランシーバー部251と、BLT制御部252と、BLT記憶部253とを備える。
トランシーバー部251は、無線信号を規定の通信周波数に合わせて受信し、ベースバンド信号に復調する処理、及び、ベースバンド信号を変調して規定の通信周波数にあわせて無線信号として通信する処理を実行する。
BLT制御部252は、CPU(プロセッサー)等を備え、BLT記憶部253からファームウェアなどのプログラムを読み出して実行し、プリンターBLT通信部25の各部を制御する。例えば、BLT制御部252は、POS端末装置3に送信する対象のデータからベースバンド信号を生成したりトランシーバー部251から取得したベースバンド信号からデータを取得したりするベースバンド処理や、プリンター制御部20とのインターフェース処理等を実行する。
BLT記憶部253は、ハードディスクや、EEPROM等の不揮発性メモリーを備え、各種データを書き換え可能に記憶する。例えば、BLT記憶部253は、BLT制御部252がリンク管理層の機能を実行するためのソフトウェアや、プリンター制御部20とのインターフェース処理を実行するためのソフトウェア等を記憶する。なお、リンク管理層とは、通信リンク上でパケットの送受信するプロトコルとして、ベースバンド層の上に定義されるプロトコルであり、ベースバンド層により提供される通信リンクの設定や切断等の通信リンクに関する種々の制御機能を提供するプロトコルである。
また、BLT記憶部253は、BLT設定ファイル253aを記憶する。
BLT設定ファイル253aは、Bluetooth規格に従った無線通信の設定に関する設定項目と、この設定項目に対応する設定値との組み合わせが記憶される。本実施形態では、Bluetooth規格に従った無線通信の設定に関する設定項目は、少なくとも、プリンターBLT通信部25の動作モードのうち省電力モードの種類の設定に係る設定項目と、省電力モードへの移行期間(所定期間)の設定に係る設定項目と、プリンターBLT通信部25が省電力モード中にPOS端末装置3に通信要求(後述)する通信要求間隔(所定間隔)の設定に係る設定項目とを含む。
以下の説明において、省電力モードの種類の設定に係る設定項目を、種類設定項目と表現し、省電力モードへの移行期間の設定に係る設定項目を、移行期間設定項目と表現し、通信要求間隔の設定に係る設定項目を、要求間隔設定項目と表現する。
なお、本実施形態では、BLT設定ファイル253aに設定すると表現する場合、BLT設定ファイル253aの所定の設定項目に設定値をセットすることを示す。
印刷部26は、ラインサーマルヘッド261と、ヘッド駆動部263と、搬送モーター264と、カッター駆動モーター265とを備える。
ラインサーマルヘッド261は、抵抗体から構成される発熱素子262を感熱ロール紙の搬送方向と交差(例えば直交)する交差方向に複数配列して有する。ラインサーマルヘッド261は、発熱素子262に通電することにより発熱させ、感熱ロール紙の印刷面に熱を与えることによって、文字や画像等を印刷する。
ヘッド駆動部263は、プリンター制御部20の制御で、ラインサーマルヘッド261の発熱素子262に対する通電を制御する。
搬送モーター264は、プリンター制御部20の制御で、搬送ローラー(不図示)を回転させ、感熱ロール紙を搬送する。
カッター駆動モーター265は、プリンター制御部20の制御で、可動刃(不図示)を固定刃(不図示)に向けてスライドするように駆動させ、感熱ロール紙をカットする。
次に、POS端末装置3について説明する。
POS端末装置3は、POS端末制御部30と、POS端末記憶部31と、POS端末BLT通信部32と、POS端末デバイス通信部33と、POS端末入力部34と、POS端末表示部35とを備える。
POS端末制御部30は、CPU(プロセッサー)や、ROM、RAM、ASIC、信号処理回路等を備え、POS端末装置3の各部を制御する。POS端末制御部30は、例えばCPUが、ROMや後述するPOS端末記憶部31等に記憶されたPOSアプリケーションなどのプログラムをRAMに読み出して処理を実行し、また、例えばASICに実装された機能により処理を実行し、また、例えば信号処理回路で信号処理を行って処理を実行する等、ハードウェア及びソフトウェアの協業により処理を実行する。
POS端末記憶部31は、ハードディスクや、EEPROM等の不揮発性メモリーを備え、各種データを書き換え可能に記憶する。また、POS端末記憶部31は、商品マスター311を記憶する。商品マスター311は、例えば店舗で販売される商品について、商品の商品コードと、商品名と、商品の単価と、その他の商品に関する情報(以下、「商品情報」と表現する)とを対応付けて記憶するデータベースである。
POS端末BLT通信部32は、プリンターBLT通信部25と同様の構成を有し、POS端末制御部30の制御で、Bluetooth規格に従って、プリンター2と無線通信する。
POS端末デバイス通信部33は、USBの規格に従ったポートや、USB以下のシリアル通信規格に従ったポート、その他通信規格に従ったポートを有するインターフェースボードを備える。POS端末デバイス通信部33は、POS端末制御部30の制御で、ポートに接続されたデバイスと通信する。本実施形態では、デバイスとしてバーコードスキャナー5が接続し、POS端末デバイス通信部33は、POS端末制御部30の制御で、バーコードスキャナー5と通信する。なお、POS端末デバイス通信部33は、無線通信規格に従った無線通信を実行する構成を有し、デバイスと無線通信してもよい。
POS端末入力部34は、POS端末装置3に設けられた操作パネルやタッチパネル等の入力手段を備え、ユーザーの入力手段に対する操作を検出し、POS端末制御部30に出力する。POS端末制御部30は、POS端末入力部34からの入力に基づいて、入力手段に対する操作に対応する処理を実行する。
POS端末表示部35は、複数のLEDや、表示パネル等を備え、POS端末制御部30の制御で、LEDを所定の態様で点灯/消灯や、表示パネルへの情報の表示等を実行する。
次に、例えば店舗のレジカウンターにおいて会計が行われる場合のPOS端末装置3、及び、プリンター2の基本的な動作について説明する。
例えば、店舗においてレジ担当者が、顧客が購入した商品に付されたバーコードをバーコードスキャナー5により読み取り、バーコードスキャナー5が、商品コードをPOS端末装置3に出力したとする。すると、POS端末装置3のPOS端末制御部30は、POS端末デバイス通信部33により商品コードを受信し、POS端末記憶部31が記憶する商品マスター311を参照して、受信した商品コードに対応する商品の商品情報を取得する。なお、商品情報には、バーコードスキャナー5が読み取ったバーコードが付される商品の、商品名を示す情報と、商品の単価を示す情報とが少なくとも含まれる。
POS端末制御部30は、取得した商品情報に基づいて、バーコードスキャナー5が読み取った商品の商品名や商品の単価等の文字に基づき、感熱ロール紙に印刷させる印刷データ(第1データ)を生成する。なお、この印刷データは、レシートの発行に係る印刷データである。また、POS端末制御部30は、バーコードスキャナー5が読み取った商品の商品情報と小計(現在の合計金額)を取得し、カスタマーディスプレイ4に表示させる表示データ(第2データ)を生成する。POS端末制御部30は、印刷データと表示データとを生成すると、POS端末BLT通信部32により生成した印刷データと表示データとをプリンター2に送信する。
プリンター2のプリンター制御部20は、プリンターBLT通信部25によりPOS端末装置3から印刷データを受信すると、印刷データに基づいて、感熱ロール紙に、バーコードスキャナー5が読み取った商品の商品名や商品の単価等の商品情報を印刷部26により印刷する。また、プリンター制御部20は、プリンターBLT通信部25によりPOS端末装置3から表示データを受信すると、プリンターデバイス通信部22により受信した表示データをカスタマーディスプレイ4に送信する。本実施形態のプリンター制御部20は、バーコードスキャナー5でバーコードの読み取りが実行されるたびに、印刷データに基づく印刷と、表示データの送信とを交互に実行する。
カスタマーディスプレイ4は、表示データを受信すると、バーコードスキャナー5が読み取った商品の商品名や商品の単価等の商品情報を表示する。なお、カスタマーディスプレイ4が表示する商品情報は、顧客が会計する商品の商品情報であるため、会計情報にも相当する。
このように、レジ担当者によりバーコードスキャナー5で商品に付されたバーコードが読み取られると、プリンター2は、バーコードスキャナー5の読み取り対象の商品の商品情報を印刷し、カスタマーディスプレイ4により当該商品情報を表示する。この動作は、バーコードスキャナー5で読み取られるたびに実行される。この表示によって、顧客は、レジ担当者がバーコードスキャナー5で読み取っているバーコードが付された商品について、カスタマーディスプレイ4により少なくとも商品名と商品の単価とを視認できる。
ここで、レジ担当者が顧客の購入する商品の処理が終了し、会計を確定する操作を実行したとする。POS端末制御部30は、POS端末入力部34が会計を確定する操作を検出すると、それまでにバーコードスキャナー5によって読み取られた1又は複数の商品コードに対応する商品情報に基づいて、合計金額の計算をして、顧客から金銭を受け取って入金とし、釣銭の計算等行い会計処理を実行する。
POS端末制御部30は、会計処理を実行すると、合計金額や、入金、釣銭等の文字に基づき感熱ロール紙に印刷させる印刷データ(第1データ)を生成し、また、合計金額や、入金、釣銭等をカスタマーディスプレイ4に表示させる表示データ(第2データ)を生成する。なお、この印刷データも、レシートの発行に係る印刷データである。POS端末制御部30は、この印刷データと表示データとを生成すると、POS端末BLT通信部32によりプリンター2に送信する。
プリンター2のプリンター制御部20は、プリンターBLT通信部25によりPOS端末装置3から会計処理後の印刷データを受信すると、当該印刷データに基づいて、感熱ロール紙に、合計金額や、入金、釣銭等の情報を印刷部26により印刷する。この際、プリンター制御部20は、印刷部26により感熱ロール紙を所定の位置でカットし、レシートを発行する。また、プリンター制御部20は、プリンターBLT通信部25によりPOS端末装置3から会計処理後の表示データを受信すると、プリンターデバイス通信部22により受信した当該表示データをカスタマーディスプレイ4に送信する。これにより、カスタマーディスプレイ4は、合計金額や、入金、釣銭等の情報を表示する。なお、この合計金額や、入金、釣銭等の情報も、会計情報に相当する。
なお、上述したプリンター2の動作では、印刷データを受信するたびに印刷を実行する構成を説明したが、印刷の態様は、この構成に限定されない。例えば、会計処理後の印刷データを受信するまでは、所定のバッファーに記憶しておき、会計処理後の印刷データまたはカットコマンドを受信したタイミングで、それまで受信していた印刷データを合わせて一括して印刷する構成でもよい。この場合でも、カスタマーディスプレイ4が、バーコードスキャナー5の読み取り対象の商品の商品情報を表示するため、顧客は、レジ担当者がバーコードスキャナー5で読み取っているバーコードが付された商品について、カスタマーディスプレイ4により商品名と商品の単価とを視認できる。
ところで、Bluetooth規格では、データ通信を実行しない場合にピコネット内の同期を維持するための最低限必要な処理を実行することで、消費電力を抑える省電力モードが規定されている。Bluetooth規格において規定される省電力モードには、Sniffモードと、Passiveモードとがある。
Sniffモードは、一定の間隔でアクティブ状態となってスレーブとマスターとの間でデータの送受信を実行し、その他の期間においては非アクティブ状態となって無線通信を停止して消費電力を抑えるモードである。Sniffモードでは、この一定の間隔でピコネット内の同期を維持するための情報を送受し、ピコネット内の同期を維持する。本実施形態では、プリンターBLT通信部25の動作モードがSniffモードである場合、プリンターBLT通信部25は、一定の間隔で、通信要求をPOS端末装置3に送信する。通信要求とは、POS端末装置3に対するデータの送信要求である。なお、ここでいう一定の間隔は、通信要求間隔に相当する。
Passiveモードは、Sniffモードと同様に消費電力を抑えるモードであるが、Sniffモードと異なり、一定の間隔でのスレーブとマスターとの間のデータの送受信を実行しないモードである。Passiveモードでは、一定期間、無線通信を停止して、一定期間の経過後、アクティブ状態となりピコネット内の同期を維持するための情報を送受し、ピコネット内の同期を維持する。このPassiveモードは、Holdモードともいわれる。
SniffモードもPassiveモードもピコネット内の同期が維持されているため、動作モードがSniffモード又はPassiveモードであっても、通常モードに、速やかに移行可能である。なお、通常モードとは、常に無線通信可能な動作モードである。
本実施形態のプリンターBLT通信部25は、BLT設定ファイル253aの種類設定項目に設定された設定値に基づいて、通常モードから移行する省電力モードの種類を異なるようにする。例えば、種類設定項目に「Sniffモード」を示す設定値が設定されている場合、プリンターBLT通信部25は、動作モードを通常モードからSniffモードに移行させる。同様に、種類設定項目に「Passiveモード」を示す設定値が設定されている場合、プリンターBLT通信部25は、動作モードを通常モードからPassiveモードに移行させる。
そして、本実施形態のプリンターBLT通信部25は、動作モードがSniffモードである場合、BLT設定ファイル253aの要求間隔設定項目に設定された設定値に基づく通信要求間隔で、POS端末装置3に通信要求を実行する。例えば、要求間隔設定項目に「250ms(m秒)」を示す設定値が設定されている場合、プリンターBLT通信部25は、Sniffモードにおいて、「250ms」の通信要求間隔でPOS端末装置3に通信要求を送信する。なお、POS端末装置3は、通信要求をプリンター2から受信した際、プリンター2に送信すべきデータがある場合、通信要求に対する応答を返す。そして、プリンターBLT通信部25は、応答を受信すると動作モードをSniffモードから通常モードに移行させ、POS端末装置3と無線通信を実行する。
ここで、プリンターBLT通信部25の動作モードがSniffモードである場合において、プリンター2とPOS端末装置3との間の通信状態が不安定であると、以下に示す課題が発生する。
図2は、プリンターBLT通信部25の動作モードがSniffモードである場合の課題を説明するための図である。
図2は、POS端末装置3とプリンター2との動作のタイミングを示している。図2において動作の開始時点では、プリンターBLT通信部25の動作モードがSniffモードであるとする。また、図2の説明では、BLT設定ファイル253aの要求間隔設定項目に、「250ms」を示す設定値が設定されているものとする。
タイミングt1において、「商品A」に対して、バーコードスキャナー5によるバーコードの読み取りが実行されたとする。すると、POS端末装置3のPOS端末制御部30は、タイミングt1において、バーコードスキャナー5から受信した商品コードと商品マスター311とに基づいて、バーコードスキャナー5がバーコードを読み取った「商品A」について、印刷データと表示データとを生成する。なお、タイミングt1では、プリンターBLT通信部25の動作モードがSniffモードであるため、生成された印刷データと表示データとは、POS端末装置3からプリンター2に送信されない。
図2に示すように、タイミングt2において、前回の通信要求の送信から要求通信間隔(250ms)が経過したとする。すると、プリンター2のプリンター制御部20は、プリンターBLT通信部25により通信要求をPOS端末装置3に送信する。ここで、タイミングt2において、所定の要因でPOS端末装置3とプリンター2との通信状態が不安定であるとする。この場合、図2に示すように、POS端末装置3は、タイミングt2においてプリンター2から送信された通信要求を受信できない。このため、POS端末装置3は、「商品A」の印刷データと表示データとをプリンター2に送信することができない。つまり、POS端末装置3は、「商品A」の印刷データと表示データとの送信に遅延が発生する。これは、カスタマーディスプレイ4において、「商品A」の商品情報の表示に遅延が発生することにつながる。
タイミングt2から要求通信間隔が経過しタイミングt3に至ったとする。すると、図2のタイミングt3に示すように、プリンター2のプリンター制御部20は、プリンターBLT通信部25により通信要求をPOS端末装置3に送信する。ここで、タイミングt2と同様、タイミングt3において、POS端末装置3とプリンター2との通信状態が不安定であるとする。この場合、図2に示すように、POS端末装置3は、タイミングt3においてプリンター2から送信された通信要求を受信できない。このため、タイミングt3においても、POS端末装置3は、「商品A」の印刷データと表示データとをプリンター2に送信することができず、さらに、「商品A」の印刷データと表示データとの送信に遅延が発生してしまう。
タイミングt3から要求通信間隔が経過しタイミングt4に至ったとする。すると、図2のタイミングt4に示すように、プリンター2のプリンター制御部20は、プリンターBLT通信部25により通信要求をPOS端末装置3に送信する。しかしながら、タイミングt4に示すように、POS端末装置3とプリンター2との通信状態が不安定であると、POS端末装置3は、タイミングt4においてプリンター2から送信された通信要求を受信できず、「商品A」の印刷データと表示データとをプリンター2に送信することができない。これにより、POS端末装置3には、タイミングt3から更に250msの要求通信間隔分、「商品A」の印刷データと表示データとの送信の遅延が発生してしまう。
タイミングt4から要求通信間隔が経過しタイミングt5に至ったとする。すると、図2のタイミングt5に示すように、プリンター2のプリンター制御部20は、プリンターBLT通信部25により通信要求をPOS端末装置3に送信する。しかしながら、タイミングt5に示すように、POS端末装置3とプリンター2との通信状態が不安定であると、POS端末装置3は、タイミングt5においてプリンター2から送信された通信要求を受信できず、「商品A」の印刷データと表示データとをプリンター2に送信することができない。これにより、POS端末装置3には、タイミングt4から更に「250ms」の要求通信間隔分、「商品A」の印刷データと表示データとの送信に遅延が発生してしまう。
タイミングt5以降、期間が経過しタイミングt6において、「商品B」に対して、バーコードスキャナー5によるバーコードの読み取りが実行されたとする。すると、POS端末装置3のPOS端末制御部30は、タイミングt6において、バーコードスキャナー5から受信した商品コードと商品マスター311とに基づいて、バーコードスキャナー5がバーコードを読み取った「商品B」について、印刷データと表示データとを生成する。なお、タイミングt6では、プリンターBLT通信部25の動作モードがSniffモードであるため、生成された印刷データと表示データとは、POS端末装置3からプリンター2に送信されない。
タイミングt5から要求通信間隔が経過しタイミングt7に至ったとする。すると、図2のタイミングt7に示すように、プリンター2のプリンター制御部20は、プリンターBLT通信部25により通信要求をPOS端末装置3に送信する。タイミングt7では、POS端末装置3とプリンター2との通信状態が安定であるとする。すると、POS端末装置3は、タイミングt7においてプリンター2から送信された通信要求を受信する。これにより、POS端末装置3とプリンター2とは、無線通信可能となる。しかしながら、タイミングt7以降、POS端末装置3がプリンター2に送信する印刷データと表示データとは、「商品A」の印刷データと表示データとである。これは、「商品B」より先に「商品A」の印刷データと表示データとが生成されたためである。そのため、バーコードスキャナー5でバーコードが読み取られた瞬間の商品が「商品B」であるにも関わらず、カスタマーディスプレイ4には、バーコードスキャナー5が「商品B」のバーコードを読み取る前の商品Aの商品情報が表示されることになる。これでは、バーコードスキャナー5で読み取られた商品と、カスタマーディスプレイ4が表示する商品情報が示す商品とに相違が発生し、表示を見た顧客及びレジ担当者に誤解を与える虞がある。なお、バーコードスキャナー5には、バーコードを読み取ったとき、ブザーなどで鳴動するものがある。顧客及びレジ担当者が、ブザーの鳴動のタイミングでカスタマーディスプレイ4を見たとき、バーコードスキャナー5で読み取られた商品と、カスタマーディスプレイ4が表示する商品が異なっていると認識してしまう。一方、印刷データの送信が遅れても、顧客及びレジ担当者がプリンター2で印刷したレシートを見るのは一連の会計の処理が終了した後であるので、このような問題はない。
このように、プリンターBLT通信部25の動作モードがSniffモードである場合、POS端末装置3とプリンター2との間の通信状態が不安定であると、バーコードスキャナー5で読み取った商品の印刷データと表示データとの送信に遅延が発生する場合がある。図2の場合は、少なくともタイミングt2からタイミングt7の期間(約1秒)遅延して「商品A」の印刷データと表示データとの送信に遅延が発生する。さらに、この遅延している間に他の商品のバーコードがバーコードスキャナー5により読み取られると、POS端末装置3とプリンター2との通信状態が安定になった際、バーコードスキャナー5が読み取る商品と、カスタマーディスプレイ4が表示する商品情報が示す商品とに相違が発生してしまう。
ここで、通信要求を送信する要求通信間隔を狭くし、POS端末装置3が通信要求を受信する確率を高めることで、POS端末装置3が生成した印刷データと表示データとの送信の遅延を抑制することが考えらえる。しかしながら、プリンター2にカスタマーディスプレイ4が接続しない構成である場合には、要求通信間隔を狭くすると不必要に電力が消費され、省電力が主眼のSniffモードにおいて省電力の面で効果が削減する。なお、要求通信間隔を狭くすることで消費電力が高まるのは、プリンターBLT通信部25がSniffモードにおいてアクティブ状態になる間隔が短くなるためである。
以上のように、プリンターBLT通信部25の動作モードがSniffモードである場合、省電力の制御とカスタマーディスプレイ4の制御とを適切に実行できない場合がある。
そこで、本実施形態のプリンター2は、以下に示す動作を実行する。
図3は、プリンター2の動作を示すフローチャートである。
図3に示すフローチャートの説明では、BLT設定ファイル253aの種類設定項目に設定された設定値が「Sniffモード」を示す設定値であり、移行期間設定項目に設定された設定値が「255s(秒)」を示す設定値であるとする。そして、図3に示すフローチャートの説明では、これら設定値が変更されないものとする。
図3に示すように、プリンター制御部20は、プリンターデバイス通信部22にカスタマーディスプレイ4が接続されているか否かを判別する(ステップSA1)。例えば、プリンター制御部20は、プリンターデバイス通信部22によりカスタマーディスプレイ4から制御線から接続していることを示す信号が入力されている場合、プリンターデバイス通信部22にカスタマーディスプレイ4が接続されていると判別する(ステップSA1:YES)。
プリンター制御部20は、プリンターデバイス通信部22にカスタマーディスプレイ4が接続しないと判別した場合(ステップSA1:NO)、BLT設定ファイル253aの要求間隔設定項目に対応する設定値を読み出す(ステップSA2)。次いで、プリンター制御部20は、ステップSA2で読み出した設定値と、プリンター記憶部21が記憶する設定値テーブル211とに基づいて、ステップSA2で読み出した設定値と、カスタマーディスプレイ4が接続されない場合に要求間隔設定項目に設定する設定値とが同じであるか否かを判別する(ステップSA3)。
図4は、設定値テーブル211の一例を示す図である。
図4に示すように、設定値テーブル211の一件のレコードには、接続フィールドF1と、未接続フィールドF2とが対応付けられている。
接続フィールドF1は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されている場合にBLT設定ファイル253aに設定する設定値を格納する。未接続フィールドF2は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されていない場合にBLT設定ファイル253aに設定する設定値を格納する。
図4に示すように、設定値テーブル211は、複数のレコードを格納する。レコードR1は、BLT設定ファイル253aにおけるプリンター2が通信要求を送信する間隔に関する要求間隔設定項目に設定する設定値を格納するレコードであり、接続フィールドF1に「15ms」を示す設定値を格納し、また、未接続フィールドF2に「250ms」を示す設定値を格納する。
レコードR2は、BLT設定ファイル253aにおけるプリンター2が省電力モードに移行する期間に関する移行期間設定項目に設定する設定値を格納するレコードであり、接続フィールドF1に「255s」を示す設定値を格納し、また、未接続フィールドF2に「1s」を示す設定値を格納する。
レコードR3は、BLT設定ファイル253aにおけるプリンター2のBluetooth規格における省電力モードの種類に関する種類期間設定項目に設定する設定値を格納するレコードであり、接続フィールドF1、及び、未接続フィールドF2に「Sniffモード」を示す設定値と「Passiveモード」を示す設定値とを格納する。なお、カスタマーディスプレイ4の接続の有無に係らず、プリンターBLT通信部25が、Sniffモード、及び、Passiveモードのいずれかに移行可能であるため、レコードR3は、接続フィールドF1、及び、未接続フィールドF2の両方にいずれかのモードの設定値を格納する。
なお、設定値テーブル211が格納する通信要求間隔の設定値は、事前のテストやシミュレーション等によって算出される。特に、設定値テーブル211が格納する通信要求間隔の設定値のうち、通信要求間隔が短い設定値は、事前のテストやシミュレーション等によって、複数の商品がバーコードスキャナー5によって読み取られる場合でも、バーコードスキャナー5で読み取られた商品と、カスタマーディスプレイ4が表示する商品情報が示す商品とに相違が発生することを抑制可能な設定値が算出される。また、設定値テーブル211が格納する移行期間の設定値も、事前のテストやシミュレーション等によって算出される。
例えば、BLT設定ファイル253aの要求間隔設定項目に「15ms」を示す設定値が設定されていたとする。この場合、プリンター制御部20は、ステップSA2において、「15ms」を示す設定値を読み出す。そして、プリンター制御部20は、設定値テーブル211から、要求間隔設定項目に設定する設定値を格納するレコードR1を特定する。そして、プリンター制御部20は、ステップSA3において、読み出した「15ms」を示す設定値と、特定したレコードR1の未接続フィールドF2に格納する設定値とを比較して同じか否かを判別する。この場合、図4に示すように、レコードR1の未接続フィールドF2には「250ms」を示す設定値が格納されているため、プリンター制御部20は、ステップSA2で読み出した設定値と、カスタマーディスプレイ4が接続されない場合に要求間隔設定項目に設定する設定値とが同じでないと判別する(ステップSA3:NO)。
また、例えば、BLT設定ファイル253aの要求間隔設定項目に「250ms」を示す設定値が設定されていたとする。カスタマーディスプレイ4が接続しないと判別した場合(ステップSA1:NO)、プリンター制御部20は、ステップSA2において、「250ms」を示す設定値を読み出す。そして、プリンター制御部20は、設定値テーブル211から、要求間隔設定項目に設定する設定値を格納するレコードR1を特定する。図4に示すように、レコードR1の未接続フィールドF2には「250ms」を示す設定値が格納されているため、プリンター制御部20は、ステップSA2で読み出した設定値と、カスタマーディスプレイ4が接続されない場合に要求間隔設定項目に設定する設定値とが同じであると判別する(ステップSA3:YES)。
図3に示すフローチャートの説明に戻り、プリンター制御部20は、ステップSA2で読み出した設定値と、カスタマーディスプレイ4が接続されない場合の要求間隔設定項目に設定する設定値とが同じであると判別した場合(ステップSA3:YES)、処理をステップSA5に移行させる。一方で、プリンター制御部20は、ステップSA2で読み出した設定値と、カスタマーディスプレイ4が接続されない場合に要求間隔設定項目に設定する設定値とが同じでないと判別した場合(ステップSA3:NO)、BLT制御部252を制御して、BLT設定ファイル253aの要求間隔設定項目に、設定値テーブル211が格納する設定値を設定する(ステップSA4)。すなわち、設定値テーブル211が図4に示す設定値テーブル211である場合、プリンター制御部20は、BLT設定ファイル253aの要求設定項目に「250ms」を示す設定値を設定する。
次いで、プリンター制御部20は、POS端末装置3から印刷データを受信していない期間が、BLT設定ファイル253aの移行期間設定項目に設定された設定値が示す移行期間を経過したか否かを判別する(ステップSA5)。図3の説明では、移行期間設定項目に設定されている設定値を「255s」としている。したがって、プリンター制御部20は、POS端末装置3から印刷データを受信していない期間が「255s」を経過したか否かを判別する。
プリンター制御部20は、POS端末装置3から印刷データを受信していない期間が、移行期間設定項目に設定された設定値が示す移行期間(ここでは255s)を経過してないと判別した場合(ステップSA5:NO)、対応する処理を実行する(ステップSA6)。ここで、対応する処理とは、受信した印刷データに基づく印刷である。
一方で、プリンター制御部20は、POS端末装置から印刷データを受信していない期間が、移行期間設定項目に設定された設定値が示す移行期間(ここでは255s)を経過したと判別した場合(ステップSA5:YES)、プリンターBLT通信部25の動作モードを、BLT設定ファイル253aの種類設定項目に設定された設定値が示す省電力モードに移行させる。図3の説明では、種類設定項目に設定されている設定値を「Sniffモード」を示す設定値としている。そのため、プリンター制御部20は、OS端末装置から印刷データを受信していない期間が、移行期間設定項目に設定された設定値が示す移行期間(ここでは255s)を経過したと判別した場合(ステップSA5:YES)、プリンターBLT通信部25の動作モードをSniffモードに移行させる(ステップSA7)。
プリンター制御部20は、プリンターBLT通信部25の動作モードをSniffモードに移行させると、BLT制御部252を制御して、POS端末装置3との無線通信を一時的に停止し、BLT設定ファイル253aの要求間隔設定項目に設定される設定値が示す通信要求間隔で通信要求をPOS端末装置3に送信する(ステップSA8)。プリンターBLT通信部25の動作モードを通常モードに移行させるか否かを判別しながら(ステップSA16)、この動作を繰り返す。ステップSA8では、プリンター2にはカスタマーディスプレイ4が接続されていない。そのため、後述にて明らかになるように、プリンター制御部20は、カスタマーディスプレイ4が接続される場合の通信要求間隔より長い通信要求間隔でPOS端末装置3に通信要求を送信する。
図3に示すフローチャートのステップSA1の説明に戻り、プリンター制御部20は、プリンターデバイス通信部22にカスタマーディスプレイ4が接続されていると判別した場合(ステップSA1:YES)、BLT設定ファイル253aの要求間隔設定項目に対応する設定値を読み出す(ステップSA9)。次いで、プリンター制御部20は、ステップSA9で読み出した設定値と、プリンター記憶部21が記憶する設定値テーブル211とに基づいて、ステップSA9で読み出した設定値と、カスタマーディスプレイ4が接続される場合に要求間隔設定項目に設定する設定値とが同じであるか否かを判別する(ステップSA10)。プリンター制御部20は、ステップSA2〜ステップS3で説明したように、ステップSA10において処理を実行する。
プリンター制御部20は、ステップSA9で読み出した設定値と、カスタマーディスプレイ4が接続される場合の要求間隔設定項目に設定する設定値とが同じであると判別した場合(ステップSA10:YES)、処理をステップSA12に移行させる。一方で、プリンター制御部20は、ステップSA9で読み出した設定値と、カスタマーディスプレイ4が接続される場合に要求間隔設定項目に設定する設定値とが同じでないと判別した場合(ステップSA10:NO)、BLT制御部252を制御して、BLT設定ファイル253aの要求間隔設定項目に、設定値テーブル211が格納する設定値を設定する(ステップSA11)。すなわち、設定値テーブル211が図4に示す設定値テーブル211である場合、プリンター制御部20は、BLT設定ファイル253aの要求設定項目に「15ms」を示す設定値を設定する。
次いで、プリンター制御部20は、POS端末装置3から印刷データ、又は、表示データを受信していない期間が、BLT設定ファイル253aの移行期間設定項目に設定された設定値が示す移行期間を経過したか否かを判別する(ステップSA12)。図3の説明では、移行期間設定項目に設定されている設定値を「255s」としている。したがって、プリンター制御部20は、POS端末装置3から印刷データを受信していない期間が「255s」を経過したか否かを判別する。
プリンター制御部20は、POS端末装置3から印刷データ、又は、表示データを受信していない期間が、移行期間設定項目に設定された設定値が示す移行期間(ここでは255s)を経過してないと判別した場合(ステップSA12:NO)、対応する処理を実行する(ステップSA13)。ここでの対応する処理とは、受信した印刷データに基づく印刷、又は、カスタマーディスプレイ4による受信した表示データに基づく表示である。
一方で、プリンター制御部20は、POS端末装置から印刷データを受信していない期間が、移行期間設定項目に設定された設定値が示す移行期間(ここでは255s)を経過したと判別した場合(ステップSA12:YES)、プリンターBLT通信部25の動作モードを、Sniffモードに移行させる(ステップSA14)。
プリンター制御部20は、プリンターBLT通信部25の動作モードをSniffモードに移行させると、BLT制御部252を制御して、POS端末装置3との無線通信を一時的に停止し、BLT設定ファイル253aの要求間隔設定項目に設定される設定値が示す通信要求間隔で通信要求をPOS端末装置3に送信する(ステップSA15)。プリンターBLT通信部25の動作モードを通常モードに移行させるか否かを判別しながら(ステップSA16)、この動作を繰り返す。ステップSA15では、プリンター2にはカスタマーディスプレイ4が接続される。そのため、プリンター制御部20は、カスタマーディスプレイ4が接続されない場合の通信要求間隔(ここでは250ms)より短い通信要求間隔(ここでは15ms)でPOS端末装置3に通信要求を送信する。
次いで、プリンター制御部20は、プリンターBLT通信部25の動作モードを通常モードに移行させるか否かを判別する(ステップSA16)。例えば、プリンター制御部20は、プリンターBLT通信部25によりPOS端末装置3から通信要求に対する応答を受信した場合、プリンターBLT通信部25の動作モードを通常モードに移行させると判別する(ステップSA16:YES)。
プリンター制御部20は、プリンターBLT通信部25の動作モードを通常モードに移行させないと判別した場合(ステップSA16:NO)、処理をステップSA16に戻し、プリンターBLT通信部25の動作モードを通常モードに移行させるか否かを再度判別する。
一方で、プリンター制御部20は、プリンターBLT通信部25の動作モードを通常モードに移行させると判別した場合(ステップSA16:YES)、プリンターBLT通信部25の動作モードを通常モードに移行させる(ステップSA17)。そして、プリンター制御部20は、処理をステップSA1に戻す。
このように、プリンター制御部20は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されているか否かに応じて、通信要求間隔を異なるようにする。より詳細には、プリンター制御部20は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されている場合の通信要求間隔を、カスタマーディスプレイ4が接続されていない場合の通信要求間隔より短くする。これにより、プリンター制御部20は、以下に示す効果を奏する。
図5は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されているか否かに応じて、通信要求間隔を異なるようにすることの効果を説明するための図である。
図5は、POS端末装置3とプリンター2との動作のタイミングを示している。図2と同様、図5において動作の開始時点では、プリンターBLT通信部25の動作モードがSniffモードであるとする。
図5において、実線の矢印は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されない場合の通信要求間隔(250ms)での通信要求の送信を示している。また、図5において実線の矢印は、図2に示す実線の矢印と同じタイミングで送信されている。また、一点破線の矢印は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続される場合の通信要求間隔(15ms)での通信要求の送信を示している。
図5に示すように、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されている場合の通信要求間隔を、カスタマーディスプレイ4が接続されていない場合の通信要求間隔より短くすると、タイミングt2より速いタイミングtaにおいて、プリンター制御部20は、プリンターBLT通信部25により通信要求を送信できる蓋然性が高い。そのため、タイミングt2からタイミングt5までの期間がPOS端末装置3とプリンター2との通信状態が不安定な期間でも、プリンター制御部20は、タイミングt2より速いタイミングtaにおいて通信要求を送信できるため、「商品B」に対するバーコードスキャナー5の読み取りが実行される前に、「商品A」の印刷データと表示データとをPOS端末装置3から受信できる。したがって、プリンター制御部20は、カスタマーディスプレイ4が接続されている場合、速やかにカスタマーディスプレイに商品情報を表示させることができ、適切にカスタマーディスプレイを制御できる。
また、図5に示すように、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されている場合の通信要求間隔を、カスタマーディスプレイ4が接続されていない場合の通信要求間隔より短くすると、通信要求をタイミングt2より速いタイミングで送信できなくても、プリンター制御部20は、プリンターBLT通信部25により、タイミングt6より速いタイミングtbで通信要求を送信できる蓋然性が高い。したがって、プリンター制御部20は、タイミングt6より速いタイミングtbにおいて通信要求を送信できるため、「商品B」に対するバーコードスキャナー5の読み取りが実行される前に、「商品A」の印刷データと表示データとをPOS端末装置3から受信できる。これにより、プリンター制御部20は、カスタマーディスプレイ4が接続されている場合、速やかにカスタマーディスプレイに商品情報を表示させることができ、適切にカスタマーディスプレイを制御できる。
以上、図5に示すように、プリンター制御部20は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されている場合の通信要求間隔を、カスタマーディスプレイ4が接続されていない場合の通信要求間隔より短くすることで、速やかにカスタマーディスプレイ4に商品情報を表示させることができる。これにより、プリンター制御部20は、バーコードスキャナー5が読み取りの対象とする商品と、カスタマーディスプレイ4が表示する商品情報が示す商品とに相違が発生することを抑制でき、顧客やレジ担当者等が誤解をすることを防止できる。
また、プリンター2が印刷データを受信するたびに印刷を実行する構成である場合、すなわち、プリンター制御部20が印刷データによる印刷と、カスタマーディスプレイ4への表示データの送信とを交互に実行する構成である場合、以下に示す効果を奏する。すなわち、プリンター制御部20は、速いタイミングでPOS端末装置3から印刷データと表示データとを受信できるため、印刷データに基づく印刷と、カスタマーディスプレイ4の商品情報の表示とに遅延が発生することを抑制できる。したがって、プリンター制御部20は、バーコードスキャナー5が読み取り対象としている商品と、印刷されてる商品情報が示す商品とに相違が発生することを抑制できる。これにより、プリンター制御部20は、レジ担当者等のレシートを発行する者が誤解をすることを防止できる。
また、図5に示すように、プリンター制御部20は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されていない場合の通信要求間隔を、カスタマーディスプレイ4が接続されている場合の通信要求間隔より長くする。ここで、プリンター2が印刷データを受信するたびに印刷を実行する構成ではなく、一括して所定のタイミングで受信した印刷データに基づく印刷を実行する構成であるとする。この構成である場合であって、且つ、カスタマーディスプレイ4が接続されておらず顧客に商品情報を提供しない場合、プリンター制御部20は、通信要求間隔を短くする必要性が低い。これは、バーコードスキャナー5が読み取る対象の商品の商品情報を、バーコードスキャナー5が読み取りを実行するタイミングに合わせて、印刷や表示等で出力しないためである。ここで、上記のように、プリンター制御部20は、通信要求間隔を短くしてしまうと、プリンターBLT通信部25が不必要に通信要求を送信してしまい、不必要に電力が消費されてしまう。そこで、プリンター制御部20は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されていない場合の通信要求間隔を、カスタマーディスプレイ4が接続されている場合の通信要求間隔より長くすることで、不必要に電力が消費されることを抑え、省電力を適切に制御できる。
上述した動作では、カスタマーディスプレイ4が接続されている場合と接続されていない場合とで通信要求間隔を異なるようにする構成を説明した。しかしながら、通信要求間隔に合わせて、移行期間も異ならせてよい。この構成の動作について、以下に説明する。
図6は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されているか否かに応じて移行期間を異なるようにする場合のプリンター2の動作を示すフローチャートである。
図6のフローチャートにおいて、図3のフローチャートと同一のステップについては、同一のステップ番号を付し、その詳細な処理の説明を省略する。
図6に示すフローチャートの説明では、BLT設定ファイル253aの種類設定項目に設定された設定値が「Sniffモード」を示す設定値であるとする。そして、図6に示すフローチャートの説明では、この設定値が変更されないものとする。
プリンター制御部20は、プリンターデバイス通信部22にカスタマーディスプレイ4が接続されていないと判別した場合(ステップSA1:NO)、BLT設定ファイル253aの移行期間設定項目に対応する設定値を読み出す(ステップSB1)。次いで、プリンター制御部20は、ステップSB1で読み出した設定値と、プリンター記憶部21が記憶する設定値テーブル211とに基づいて、ステップSB1で読み出した設定値と、カスタマーディスプレイ4が接続されない場合に移行期間設定項目に設定する設定値とが同じであるか否かを判別する(ステップSB2)。
例えば、BLT設定ファイル253aの移行期間設定項目に「255s」を示す設定値が設定されていたとする。この場合、プリンター制御部20は、ステップSB1において、「255s」を示す設定値を読み出す。そして、プリンター制御部20は、設定値テーブル211から、移行期間設定項目に設定する設定値を格納するレコードR2を特定する。そして、プリンター制御部20は、ステップSB2において、読み出した「255s」を示す設定値と、特定したレコードR2の未接続フィールドF2に格納する設定値とを比較して同じか否かを判別する。この場合、図4に示すように、レコードR2の未接続フィールドF2には「1s」を示す設定値が格納されているため、プリンター制御部20は、ステップSB1で読み出した設定値と、カスタマーディスプレイ4が接続されない場合に移行期間設定項目に設定する設定値とが同じでないと判別する(ステップSB2:NO)。
また、例えば、BLT設定ファイル253aの移行期間設定項目に「1s」を示す設定値が設定されていたとする。この場合、プリンター制御部20は、ステップSB1において、「1s」を示す設定値を読み出す。そして、プリンター制御部20は、設定値テーブル211から、移行期間設定項目に設定する設定値を格納するレコードR2を特定する。図4に示すように、レコードR2の未接続フィールドF2には「1s」を示す設定値が格納されているため、プリンター制御部20は、ステップSB1で読み出した設定値と、カスタマーディスプレイ4が接続されない場合に移行期間設定項目に設定する設定値とが同じであると判別する(ステップSB2:YES)。
プリンター制御部20は、ステップSB1で読み出した設定値と、カスタマーディスプレイ4が接続されない場合の移行期間設定項目に設定する設定値とが同じであると判別した場合(ステップSB2:YES)、処理をステップSA2に移行させる。一方で、プリンター制御部20は、ステップSB1で読み出した設定値と、カスタマーディスプレイ4が接続されない場合に移行期間設定項目に設定する設定値とが同じでないと判別した場合(ステップSB2:NO)、BLT制御部252を制御して、BLT設定ファイル253aの移行期間設定項目に、設定値テーブル211が格納する設定値を設定する(ステップSB3)。すなわち、設定値テーブル211が図4に示す設定値テーブル211である場合、プリンター制御部20は、BLT設定ファイル253aの移行期間設定項目に「1s」を示す設定値を設定する。
次いで、プリンター制御部20は、ステップSA2〜ステップSA4の処理を実行して、ステップSA5の処理を実行する。すなわち、プリンター制御部20は、POS端末装置3から印刷データを受信していない期間が、BLT設定ファイル253aの移行期間設定項目に設定された設定値が示す移行期間を経過したか否かを判別する(ステップSA5)。図6のステップSA5の説明では、移行期間設定項目に設定されている設定値が「1s」としている。したがって、プリンター制御部20は、POS端末装置3から印刷データを受信していない期間が「1s」を経過したか否かを判別する。
図6のフローチャートのステップSA1の説明に戻り、プリンター制御部20は、プリンターデバイス通信部22にカスタマーディスプレイ4が接続されると判別した場合(ステップSA1:NO)、BLT設定ファイル253aの移行期間設定項目に対応する設定値を読み出す(ステップSB4)。次いで、プリンター制御部20は、ステップSB4で読み出した設定値と、プリンター記憶部21が記憶する設定値テーブル211とに基づいて、ステップSB4で読み出した設定値と、カスタマーディスプレイ4が接続される場合に移行期間設定項目に設定する設定値とが同じであるか否かを判別する(ステップSB5)。
例えば、BLT設定ファイル253aの移行期間設定項目に「1s」を示す設定値が設定されていたとする。この場合、プリンター制御部20は、ステップSB4において、「1s」を示す設定値を読み出す。そして、プリンター制御部20は、設定値テーブル211から、移行期間設定項目に設定する設定値を格納するレコードR2を特定する。そして、プリンター制御部20は、ステップSB4において、読み出した「1s」を示す設定値と、特定したレコードR2の接続フィールドF1に格納する設定値とを比較して同じか否かを判別する。この場合、図4に示すように、レコードR2の接続フィールドF1には「255s」を示す設定値が格納されているため、プリンター制御部20は、ステップSB4で読み出した設定値と、カスタマーディスプレイ4が接続される場合に移行期間設定項目に設定する設定値とが同じでないと判別する(ステップSB5:NO)。
また、例えば、BLT設定ファイル253aの移行期間設定項目に「255s」を示す設定値が設定されていたとする。この場合、プリンター制御部20は、ステップSB4において、「255s」を示す設定値を読み出す。そして、プリンター制御部20は、設定値テーブル211から、移行期間設定項目に設定する設定値を格納するレコードR2を特定する。図4に示すように、レコードR2の接続フィールドF1には「255s」を示す設定値が格納されているため、プリンター制御部20は、ステップSB4で読み出した設定値と、カスタマーディスプレイ4が接続される場合に移行期間設定項目に設定する設定値とが同じであると判別する(ステップSB5:YES)。
プリンター制御部20は、ステップSB4で読み出した設定値と、カスタマーディスプレイ4が接続される場合の移行期間設定項目に設定する設定値とが同じであると判別した場合(ステップSB5:YES)、処理をステップSA9に移行させる。一方で、プリンター制御部20は、ステップSB4で読み出した設定値と、カスタマーディスプレイ4が接続される場合に移行期間設定項目に設定する設定値と同じでないと判別した場合(ステップSB5:NO)、BLT制御部252を制御して、BLT設定ファイル253aの移行期間設定項目に、設定値テーブル211が格納する設定値を設定する(ステップSB6)。すなわち、設定値テーブル211が図4に示す設定値テーブル211である場合、プリンター制御部20は、BLT設定ファイル253aの移行期間設定項目に「1s」を示す設定値を設定する。
次いで、プリンター制御部20は、ステップSA9〜ステップSA11の処理を実行して、ステップSA12の処理を実行する。すなわち、プリンター制御部20は、POS端末装置3から印刷データを受信していない期間が、BLT設定ファイル253aの移行期間設定項目に設定された設定値が示す移行期間を経過したか否かを判別する(ステップSA12)。図6のステップSA12の説明では、移行期間設定項目に設定されている設定値が「255s」としている。したがって、プリンター制御部20は、POS端末装置3から印刷データを受信していない期間が「255s」を経過したか否かを判別する。
このように、プリンター制御部20は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されているか否かに応じて、移行期間を異なるようにする。より詳細には、プリンター制御部20は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されている場合の移行期間を、カスタマーディスプレイ4が接続されていない場合の移行期間より長くする。
カスタマーディスプレイ4が接続されておらず顧客に商品情報を提供しない場合、プリンター制御部20は、バーコードスキャナー5の読み取りのタイミングに合わせて、商品情報を表示しないため、速やかに通信要求をPOS端末装置3に送信する必要性が低い。したがって、カスタマーディスプレイ4が接続されていない場合、プリンター制御部20は、カスタマーディスプレイ4が接続されている場合の移行期間より短い移行期間を設定することで、速やかにプリンターBLT通信部25の動作モードを省電力モードに移行することができる。これにより、プリンター制御部20は、消費電力の抑制を重視した省電力の制御を実行できる。一方で、カスタマーディスプレイ4が接続されている場合、プリンター制御部20は、バーコードスキャナー5の読み取りのタイミングに合わせてカスタマーディスプレイ4が商品情報を表示することが望まれるため、速やかに通信要求をPOS端末装置3に送信する必要性が高い。したがって、カスタマーディスプレイ4が接続される場合、プリンター制御部20は、カスタマーディスプレイ4が接続されている場合の移行期間より長い移行期間を設定することで、長い期間を設けて動作モードを省電力モードに移行するため、この移行期間に表示データを受信した場合でも、速やかにカスタマーディスプレイ4に表示データを送信できる。
以上のように、図3の動作では、カスタマーディスプレイ4が接続されているか否かに応じて通信要求間隔を異なるようにする旨を説明し、図6の動作では、通信要求間隔に加え移行期間を異なるようにする旨を説明した。この図3の動作と図6の動作とは、ユーザーの操作等により切り替え可能に構成される。これにより、POSシステム1が利用される種々の態様に応じて、ユーザーの望む動作を実行できる。
なお、図3、及び、図6では、図7の動作に示すように、設定値の設定に際し、プリンター2のリセットを伴ってもよいし、初期処理(後述)に含まれてもよい。
上述した動作は、プリンター2が、カスタマーディスプレイ4が接続されているか否かを判別し、通信要求間隔、又は、通信要求間隔及び移行期間を異なるようにする構成を説明した。しかしながら、ユーザーが通信要求間隔、又は、通信要求間隔及び移行期間を異なるようにする構成であってもよい。以下、ユーザーが通信要求間隔を異なるようにする場合の動作を例示し、この構成の動作について説明する。
図7は、ユーザーが通信要求間隔を異なるようにする場合におけるプリンター2の動作を示すフローチャートである。
図7の説明では、プリンターデバイス通信部22にカスタマーディスプレイ4が接続されているものとする。
プリンター2のプリンター制御部20は、通信要求間隔を設定するトリガーが発生したか否かを判別する(ステップSC1)。例えば、プリンター制御部20は、ユーザーが通信要求間隔を設定する指示をプリンター入力部23が検出した場合、このプリンター入力部23の検出をトリガーとして、通信要求間隔を設定するトリガーが発生したと判別する(ステップSC1:YES)。
プリンター制御部20は、通信要求間隔を設定するトリガーが発生したと判別した場合(ステップSC1:YES)、動作モードを設定モードに移行させる(ステップSC2)。そして、プリンター制御部20は、動作モードを設定モードに移行させると、プリンター表示部24により、通信要求間隔を設定する所定のユーザーインターフェースを表示する(ステップSC2)。このユーザーインターフェースは、例えば、通信要求間隔が複数表示されており、その中から1の通信要求間隔を選択可能な画面である。また、このユーザーインターフェースは、例えば、設定値テーブル211が格納する設定値の数分、通信要求間隔を選択可能に表示する。つまり、設定値テーブル211が図4に示す設定値テーブル211である場合、このユーザーインターフェースは、「15ms」と「250ms」との二つの通信要求間隔を選択可能に表示する。
次いで、プリンター制御部20は、設定モードを終了するか否かを判別する(ステップSC4)。例えば、ステップSC3で表示するユーザーインターフェースが、選択した通信要求間隔を確定するボタンを含んでおり、ユーザーが当該ボタンを操作した場合、プリンター制御部20は、設定モードを終了すると判別する(ステップSC4:YES)。
プリンター制御部20は、設定モードを終了すると判別すると(ステップSC4:YES)、設定モードを終了し、プリンター2のソフトウェア的なリセットを実行する(ステップSC5)。なお、プリンター2のソフトウェア的なリセットとは、例えば、プリンター2の再起動である。
プリンター制御部20は、プリンター2のソフトウェア的なリセットを実行すると、初期処理を開始すると判定する(ステップSC6)。なお、本実施形態に初期処理とは、BLT設定ファイル253aの要求間隔設定項目に、ユーザーが選択した通信要求間隔を示す設定値を設定する処理を含む。なお、初期処理は、設定値を設定する処理に加えて、他の処理も含んでいてもよい。
プリンター制御部20は、初期処理を開始すると判定すると、BLT設定ファイル253aの要求間隔設定項目に設定されている設定値を読み出す(ステップSC7)。次いで、プリンター制御部20は、ステップSC7で読み出した設定値と、プリンター記憶部21が記憶する設定値テーブル211とに基づいて、ステップSC7で読み出した設定値と、ユーザーが選択した通信要求間隔を示す設定値とが同じであるか否かを判別する(ステップSC8)。
プリンター制御部20は、ステップSC7で読み出した設定値と、ユーザーが選択した通信要求間隔を示す設定値とが同じであると判別した場合(ステップSC8:YES)、処理をステップSC9に移行させ、初期処理を終了すると判定する(ステップSC10)。一方で、プリンター制御部20は、ステップSC7で読み出した設定値と、ユーザーが選択した通信要求間隔を示す設定値とが同じでないと判別した場合(ステップSC8:NO)、BLT制御部252を制御してBLT設定ファイル253aの要求間隔設定項目に、ユーザーが選択した通信要求間隔を示す設定値を設定する(ステップSC9)。例えば、ユーザーが選択した通信要求間隔が「15ms」である場合、プリンター制御部20は、BLT設定ファイル253aの要求間隔設定項目に「15ms」を示す設定値を設定する。
プリンター制御部20は、BLT設定ファイル253aの要求間隔設定項目に、ユーザーが選択した通信要求間隔を示す設定値を設定すると、初期処理を終了すると判定する(ステップSC10)。
このように、プリンター制御部20は、ユーザーが選択した通信要求間隔を示す設定値を、BLT設定ファイル253aに設定する。これにより、プリンター制御部20は、プリンターBLT通信部25の動作モードがSniffモードである場合、ユーザーが望む通信要求間隔で通信要求を送信できる。そのため、プリンター制御部20は、バーコードスキャナー5が読み取る対象の商品と、カスタマーディスプレイ4が表示する商品情報の商品とに相違が発生し、ユーザーに誤解を与えることを抑制できる。
なお、図7では、プリンター2のリセットの後に実行する初期処理において設定値を設定する動作を説明した。しかしながら、設定値の設定は、プリンター2のリセットを伴なくてもよく、また、初期処理において実行される構成でなくてもよい。
以上、説明したように、プリンター2(印刷装置)は、印刷部26と、POS端末装置3(制御装置)と無線通信可能なプリンターBLT通信部25(第1通信部)と、カスタマーディスプレイ4(外部デバイス)と通信可能なプリンターデバイス通信部22(第2通信部)と、プリンターBLT通信部25がPOS端末装置3から印刷データ(第1データ)を受信した場合、印刷部26により印刷データに基づく印刷を実行し、プリンターデバイス通信部22がカスタマーディスプレイ4と接続されており、プリンターBLT通信部25がPOS端末装置3から表示データ(第2データ)を受信した場合、プリンターデバイス通信部22により表示データをカスタマーディスプレイ4に送信するプリンター制御部20(制御部)と、を備える。プリンター制御部20は、プリンターBLT通信部25が印刷データ、又は、表示データを受信していない期間が、移行期間(所定期間)を経過した場合、プリンターBLT通信部25の動作モードをSniffモード(省電力モード)に移行させて無線通信を一時的に停止し、POS端末装置3へ通信要求を通信要求間隔(所定間隔)で送信する。また、プリンター制御部20は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されているか否かに応じて通信要求間隔を異なるようにする。
この構成によれば、プリンター制御部20は、カスタマーディスプレイ4がプリンターデバイス通信部22に接続されているか否かに応じて、通信要求間隔を異なるようにするため、カスタマーディスプレイ4の接続に応じて、省電力の制御とカスタマーディスプレイ4の制御とを適切に実行できる。
また、プリンター制御部20は、カスタマーディスプレイ4がプリンターデバイス通信部22と接続されている場合の通信要求間隔を、カスタマーディスプレイ4が接続されていない場合の通信要求間隔より短くする。
この構成によれば、カスタマーディスプレイ4がプリンターデバイス通信部22と接続されている場合の通信要求間隔を、カスタマーディスプレイ4が接続されていない場合の通信要求間隔より短くするため、カスタマーディスプレイ4が接続する場合には、速やかにカスタマーディスプレイ4を制御でき、カスタマーディスプレイ4が接続しない場合には、消費電力の抑制を重視した省電力の制御を実行できる。
また、プリンター制御部20は、Sniffモードに移行させる移行期間を、カスタマーディスプレイ4がプリンターデバイス通信部22と接続されているか否かに応じて異なるようにする。
この構成によれば、Sniffモードに移行させる移行期間を、カスタマーディスプレイ4がプリンターデバイス通信部22と接続されているか否かに応じて異なるようにするため、カスタマーディスプレイ4の接続に応じて、省電力の制御とカスタマーディスプレイ4の制御とを適切に実行できる。
また、プリンター制御部20は、カスタマーディスプレイ4がプリンターデバイス通信部22と接続されている場合の移行期間を、カスタマーディスプレイ4がプリンターデバイス通信部22と接続されていない場合の移行期間より長くする。
この構成によれば、カスタマーディスプレイ4がプリンターデバイス通信部22と接続されている場合のSniffモードに移行させる移行期間を、カスタマーディスプレイ4が接続されていない場合の移行期間より長くするため、カスタマーディスプレイ4が接続する場合には、速やかなカスタマーディスプレイ4の制御を実行でき、また、カスタマーディスプレイ4が接続しない場合には、速やかに省電力モードに移行できる。
また、プリンター制御部20は、カスタマーディスプレイ4がプリンターデバイス通信部22と接続されている場合、印刷部26による印刷データに基づく印刷と、プリンターデバイス通信部22による表示データの送信とを交互に実行する。
この構成によれば、印刷データに基づく印刷と表示データの送信とを交互に実行し、バーコードスキャナー5が読み取るたびに商品について印刷と表示とを実行する場合でも、印刷と表示とに遅延が発生することを抑制できる。そのため、プリンター制御部20は、バーコードスキャナー5が読み取る対象の商品と、印刷及び表示される商品情報が示す商品とに相違が発生することを抑制できる。
また、POS端末装置3は、会計処理を実行する。カスタマーディスプレイ4は、会計情報(会計に係る情報)を表示する表示装置である。印刷データは、レシート発行に係る印刷データである。表示データは、カスタマーディスプレイ4が表示する会計情報(商品情報にも相当)を含む表示データである。プリンター制御部20は、プリンターBLT通信部25がPOS端末装置3から印刷データを受信した場合、印刷部26によりレシートを発行する。また、プリンター制御部20は、プリンターデバイス通信部22がカスタマーディスプレイ4と接続されており、プリンターBLT通信部25がPOS端末装置3から表示データを受信した場合、カスタマーディスプレイ4に会計情報(商品情報にも相当)をプリンターデバイス通信部22から送信して表示させる。
この構成によれば、プリンター制御部20は、カスタマーディスプレイ4が接続される場合、バーコードスキャナー5が読み取りの対象とする商品と、カスタマーディスプレイ4が表示する商品情報が示す商品とに相違が発生することを抑制できる。また、プリンター制御部20は、カスタマーディスプレイ4が接続されていない場合に不必要に電力が消費されることを抑えることができる。したがって、プリンター制御部20は、カスタマーディスプレイ4の接続に応じて、省電力の制御とカスタマーディスプレイ4の会計情報(商品情報にも相当)の表示とを適切に実行できる。
なお、上述した各実施形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形及び応用が可能である。
上述した実施形態では、設定値テーブル211が格納する通信要求間隔を示す設定値を「250ms」と「15ms」として例示した。しかしながら、設定値テーブル211が格納する通信要求間隔を示す設定値は、この通信要求間隔を示す設定値に限定されず、例えば「100ms」と「10ms」でもよい。但し、設定値テーブル211が格納する通信要求間隔を示す設定値は、通信要求間隔を異なるようにする観点から異なる値である必要がある。また、設定値テーブル211が格納する通信要求間隔を示す設定値の数も、2つに限定されず複数であればよい。設定値テーブル211が格納する移行期間を示す設定値についても同様である。
また、上述した実施形態では、POS端末装置3が商品マスター311を記憶する構成を例示した。しかしながら、商品マスター311は、外部のサーバーに記憶されていてもよい。この場合、POS端末装置3のPOS端末制御部30は、バーコードスキャナー5から受信した商品コードをサーバーに送信し、サーバーから商品情報を取得する。
また、例えば、上述したプリンター2の制御方法(印刷制御装置の制御方法)が、プリンター2が備えるコンピューターを用いて実現される場合、本発明を、上記制御方法を実現するためにコンピューターが実行するプログラム、このプログラムを前記コンピューターで読み取り可能に記録した記録媒体、或いは、このプログラムを伝送する伝送媒体の態様で構成することも可能である。上記記録媒体としては、磁気的、光学的記録媒体又は半導体メモリーデバイスを用いることができる。具体的には、フレキシブルディスク、HDD(Hard Disk Drive)、CD−ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、Blu−ray(登録商標) Disc、光磁気ディスク、フラッシュメモリー、カード型記録媒体等の可搬型の、或いは固定式の記録媒体が挙げられる。また、上記記録媒体は、プリンター2が備える内部記憶装置であるRAM(Random Access Memory)、ROM(Read Only Memory)、HDD等の不揮発性記憶装置であってもよい。
また、例えば、図3、図6、及び、図7の処理単位は、プリンター2の処理を理解容易にするために、主な処理内容に応じて分割したものであり、処理単位の分割の仕方や名称によって、本発明が限定されることはない。プリンター2の処理は、処理内容に応じて、されに多くの処理単位に分割してもよい。また、1つの処理単位がさらに多くの処理を含むように分割してもよい。
また、図1に示した各機能部は機能的構成を示すものであって、具体的な実装形態は特に限定されない。つまり、必ずしも各機能部に個別に対応するハードウェアが実装される必要はなく、一つのプロセッサーがプログラムを実行することで複数の機能部の機能を実現する構成とすることも勿論可能である。また、上述した実施形態においてソフトウェアで実現される機能の一部をハードウェアとしてもよく、或いは、ハードウェアで実現される機能の一部をソフトウェアで実現してもよい。その他、プリンター2、及び、POS端末装置3の他の各部の具体的な細部構成についても、本発明の趣旨を逸脱しない範囲で任意に変更可能である。
また、例えば、プリンター2は、バッテリーを備え、ユーザーが持ち運び可能な携帯型のモバイルプリンターでもよい。この場合、省電力を適切に制御できるため、プリンター2が備えるバッテリーに発生する充電切れの頻度を低減できる。
また、例えば、上述した実施形態において、プリンター2は、ラインサーマルヘッド261を備えるサーマルプリンターとして例示した。しかしながら、プリンター2は、印刷形式がサーマル式に限定されず、インクジェット式等でも本発明を適応できる。