以下、本発明の一実施形態を、図面を参照して説明する。
図1は、本発明の実施形態によるデータ管理システム1の構成を示す図である。図1において、データ管理システム1は、ハンディーターミナル(HT:Handheld Terminal)20と、コントローラ(CNT:Controller、制御装置)30と、複数のプリンタ(PR1:Printer1、出力装置)40−1、(PR2:Printer2、出力装置)40−2とからなる。データ管理システム1は、注文管理システムである。ハンディーターミナル(HT)20は、携帯しているユーザ(例えば、店員)によって注文を入力し、入力した注文データをコントローラ(CNT)30に送信する。コントローラ(CNT)30は、注文データを受信すると、伝票データをプリンタ(PR1)40−1、(PR2)40−2に送信する。
プリンタ(PR1)40−1、(PR2)40−2は、伝票データを受信すると、プリンタ出力設定情報で設定された伝票の種類に従って、伝票(調理伝票、ゲスト伝票)を印字する。本実施形態では、プリンタ(PR1)40−1は、調理伝票70を印字するよう設定され、プリンタ(PR2)40−2はゲスト伝票80を印字するよう設定されている。なお、調理伝票とは、注文されたメニューを厨房での作業員に渡すための伝票であり、ゲスト伝票とは、注文されたメニューを顧客に渡すための伝票である。プリンタ(PR1)40−1、(PR2)40−2には、キーボード41−1、41−2が接続可能となっており、キー入力を受け付けることが可能である。特に、本実施形態では、プリンタ(PR1)40−1、(PR2)40−2において、接続されたキーボード41−1、41−2から、障害復旧時にコントローラ(CNT)30に対して、伝票再発行を指示するためのキー入力が行われる。また、図示の例では、ハンディーターミナル(HT)20が1台、プリンタ(PR1)40−1、(PR2)40−2が2台である場合を示しているが、それよりも多くてもよい。なお、以下の説明では、プリンタ(PR1)40−1、(PR2)40−2をプリンタ40と総称することがある。また、プリンタ(PR1)40−1、(PR2)40−2の構成が同様である場合を例にする。
コントローラ(CNT)30は、プリンタ(PR1)40−1、(PR2)40−2毎に、通信障害状況を保存し、通信障害が発生したプリンタへの通信試行時間を、通信障害が発生していない場合に比べ短い時間に設定する。
プリンタ(PR1)40−1、(PR2)40−2は、所定の時間間隔(例えば1分ごと)で、数秒程度の短い時間でコントローラ(CNT)30と接続確認を行い、通信障害が発生したプリンタからの通信が成功した場合、コントローラ(CNT)30は、通信障害状況を成功に書き換え、次の伝票出力において通信試行時間を長く設定する。
プリンタ(PR1)40−1、(PR2)40−2は、障害からの復旧時に、コントローラ(CNT)30との接続を確認するために、接続状態照会信号を送信する。コントローラ(CNT)30は、接続状態照会信号を受信することで、送信元のプリンタ(PR1)40−1、(PR2)40−2が障害から復旧したことを判定する。また、コントローラ(CNT)30は、プリンタ(PR1)40−1、(PR2)40−2から随時送信されるデータを受信すると、送信元のプリンタ(PR1)40−1、(PR2)40−2の通信が成功したと判定し、送信元のプリンタの通信障害状況を成功に書き換える。
図2は、本実施形態によるハンディーターミナル(HT)20の構成を示すブロック図である。図において、ハンディーターミナル(HT)20は、無線部202、表示部203、入力部204、及びハンディーターミナル制御部205を備えている。無線部202は、コントローラ(CNT)30との間で無線通信を行う。表示部203は、液晶表示器や有機EL表示器などからなり、入力した注文データ、数量、金額などを表示する。入力部204は、キーボードやタッチキーなどからなり注文を入力する。ハンディーターミナル制御部205は、上記各部の動作を制御する。
図3は、本実施形態によるコントローラ(CNT)30の構成を示すブロック図である。図において、コントローラ(CNT)30は、システム制御部301、通信制御部302、HT(ハンディーターミナル)注文データ処理部303、PR(Printer、プリンタ)伝票データ処理部304、PR接続確認処理部305、PRキーデータ処理部306、及びデータ保存部307を備えている。
システム制御部301は、コントローラ(CNT)30の各部の動作を制御する。通信制御部302は、ハンディーターミナル(HT)20との間、またはプリンタ(PR1)40−1、(PR2)40−2の間での通信を行う。HT注文データ処理部303は、ハンディーターミナル(HT)20からの注文データに対して注文データ処理を実行する。PR伝票データ処理部304は、注文データに従って伝票データ(例えば、調理伝票データ、ゲスト伝票データ)を生成する。
PR接続確認処理部(接続判定部)305は、プリンタ(PR1)40−1、(PR2)40−2との間の通信接続確認処理を実行する。PRキーデータ処理部306は、プリンタ40からのキーデータ(伝票の再発行を指示するキー操作データ)に対してキーデータ処理(キーデータの判定など)を実行する。データ保存部307は、プリンタ通信設定情報50と、プリンタステータス情報60と、調理伝票フォーマット70と、ゲスト伝票フォーマット80と、メニューごとの伝票生成設定情報90と、伝票出力設定情報100とを保存している。
通信制御部302は、プリンタ通信設定情報50を参照し、プリンタ(PR1)40−1、またはプリンタ(PR2)40−2に対する通信試行時間(リトライ時間)を取得し、該通信試行時間に応じて通信の試行(リトライ)を繰り返す。なお、通信試行時間は、プリンタ(PR1)40−1とプリンタ(PR2)40−2の接続状況に応じて変更されるようになっている。プリンタ通信設定情報50の詳細については後述する。
また、通信制御部302は、プリンタステータス情報60を参照し、プリンタ(PR1)40−1、またはプリンタ(PR2)40−2に障害が発生したか否かを判定する。この障害の発生の有無に基づいて、上記通信試行時間が設定されるようになっている。プリンタステータス情報60の詳細についても後述する。また、PR伝票データ処理部304は、ハンディーターミナル(HT)20からの注文されたメニューについて、メニューごとの伝票生成設定情報90を参照して、調理伝票フォーマット70とゲスト伝票フォーマット80に従って、調理伝票データとゲスト伝票データを生成する。調理伝票フォーマット70、ゲスト伝票フォーマット80、及びメニューごとの伝票生成設定情報90の詳細については後述する。また、PR伝票データ処理部304は、伝票出力設定情報100を参照して、調理伝票データの出力先、及びゲスト伝票データの出力先を決定する。伝票出力設定情報100の詳細については後述する。
図4は、本実施形態によるプリンタ40の構成を示すブロック図である。図において、プリンタ40は、プリンタ制御部401、通信制御部402、伝票データ処理部403、印字機構制御部404、印字メカ機構405、CNT(コントローラ)接続確認処理部406、及びキーデータ処理部407を備えている。
プリンタ制御部401は、当該プリンタの各部の動作を制御する。具体的には、プリンタ制御部401は、通信制御部402で受信した伝票データを伝票データ処理部403で処理して伝票印字する。また、プリンタ制御部401は、印字メカ機構405または印字機構制御部404で障害が発生すると、伝票データ処理部403から通信制御部402を経由して、コントローラ(CNT)30に通知する。
通信制御部402は、伝票データを受信する。なお、本実施形態では、通信制御部402は、無線による通信を制御する場合を例にしているが、無線以外に有線による通信を制御してもよい。伝票データ処理部403は、受信した伝票データを処理して印字機構制御部404に供給する。印字機構制御部404は、伝票データ処理部403からの伝票データに従って印字メカ機構405の動作を制御する。印字メカ機構405は、印字機構制御部404による制御に従って、用紙送り機構や印字機構などを駆動して伝票を印字出力する。CNT接続確認処理部406は、コントローラ(CNT)30との接続を所定時間毎に確認する。キーデータ処理部407は、障害復旧時に、接続されたキーボード41−1、41−2からのキー入力に従って、コントローラ(CNT)30に対して伝票再発行を指示するためのキーデータの生成を行う。
図5は、本実施形態によるプリンタ通信設定情報50の一例を示す概念図である。
プリンタ通信設定情報50は、プリンタ(PR1)40−1とプリンタ(PR2)40−2の通信試行時間#0(正常時)、通信試行時間#1(異常時)、通信試行時間#2(異常時)を示す情報である。図示の例では、プリンタ(PR1)40−1、プリンタ(PR2)40−2の双方に対して、通信試行時間#0(正常時)が90(秒)、通信試行時間#1(異常時)が15(秒)、通信試行時間#2(異常時)が6(秒)に設定されている。
通信試行時間の90秒は、通信障害の一因である電子レンジが食品の加熱のために放射する電波の放射時間が1〜2分であり、加熱が終了することにより通信障害が解消される可能性が高いことに鑑みて定めたものである。通信試行時間は、その他の一時的な原因、例えば、携帯電話機その他の無線通信機による通信時間に基づいて定められた時間であってもよい。
なお、通信試行時間は90秒、15秒の2段階に限らず、3段階以上であってもよい。また、接続可能の検知、通信成功の判定が繰り返される毎に、通信制御部402は、通信試行時間を1段階ずつ長くし、接続不可能の検知、通信失敗が一度でも判定されたら最短(下限)の通信試行時間にしてもよい。また、通信試行時間には、上限(例えば、90秒)、下限(0秒より大きい、例えば、5秒)が設けられている。
図6は、本実施形態によるプリンタステータス情報60の一例を示す概念図である。プリンタステータス情報60は、プリンタ(PR1)40−1とプリンタ(PR2)40−2の現在の状態(障害が生じているか否か)を示す情報である。図示の例では、プリンタ(PR1)40−1、プリンタ(PR2)40−2の双方ともプリンタ障害フラグが「0」、すなわち障害が生じていないことを示している。障害が生じている場合には、プリンタ障害フラグは「1」に設定される。
なお、プリンタ(PR1)40−1やプリンタ(PR2)40−2の障害が継続する場合、通信制御部402は、障害フラグを「2」とするようにしてもよく、その場合、試行時間を段階的に異なるようにしてもよい。つまり、通信制御部402は、障害が所定時間(例えば、10分)継続する毎に通信試行時間を1段階ずつ長くしてもよい。
図7は、本実施形態による調理伝票70の一例を示す模式図である。図において、調理伝票70は、タイトル「調理指示伝票」、伝票番号「001」、バーコードとその番号「C001−1」、日時「2012/11/10 10:20」、テーブル番号「A−12」、担当「店長」、注文されたメニューとして、品名「ステーキ」、「サラダ」、「アイスクリーム」、数量「2」、「2」、「1」が記されている。これら調理伝票70に記される項目、印字位置、印字フォントなどは、調理伝票フォーマットとして、コントローラ(CNT)30のデータ保存部307に保存されている。なお、本実施形態では、調理伝票、調理伝票フォーマットともに符号70で表記する。
図8は、本実施形態によるゲスト伝票80の一例を示す模式図である。図において、ゲスト伝票80は、タイトル「お客様控え伝票」、伝票番号「001」、バーコードとその番号「G001−1」、日時「2012/11/10 10:20」、テーブル番号「A−12」、担当「店長」、番号「1」、「2」、「3」、「4」、注文されたメニューとして、品名「ステーキ」、「サラダ」、「ドリンクバー」、「アイスクリーム」、数量「2」、「2」、「2」、「1」、金額「2000」、「600」、「500」、「300」、合計「3400円」が記されている。これらゲスト伝票80に記される項目、印字位置、印字フォントなどは、ゲスト伝票フォーマットとして、コントローラ(CNT)30のデータ保存部307に保存されている。なお、本実施形態では、ゲスト伝票、ゲスト伝票フォーマットともに符号80で表記する。
図9は、本実施形態による伝票生成設定情報90の一例を示す概念図である。図において、伝票生成設定情報90は、メニュー名称毎に、その単価、調理伝票対象フラグ、ゲスト伝票対象フラグからなる。調理伝票対象フラグ、ゲスト伝票対象フラグは、「1」又は「0」の値をとる。「1」の値、「0」の値は、それぞれ、対象メニュー、対象外のメニューを示す。コントローラ(CNT)30のPR伝票データ処理部304は、注文されたメニューについて、メニューごとの伝票生成設定情報90を参照し、伝票データを生成する。
図10は、伝票出力設定情報100の一例を示す概念図である。図において、伝票出力設定情報100は、伝票フォーマット毎の出力先プリンタ名称と迂回先プリンタ名称とを示す情報である。伝票フォーマットとしては、調理伝票フォーマットとゲスト伝票フォーマットがある。図示の例では、調理伝票フォーマットに対しては、出力先プリンタ名称としてプリンタ(PR1)40−1、迂回先プリンタ名称としてプリンタ(PR2)40−2が設定されている。また、ゲスト伝票フォーマットに対しては、出力先プリンタ名称としてプリンタ(PR2)40−2、迂回先プリンタ名称としてプリンタ(PR1)40−1が設定されている。
なお、迂回先のプリンタは、各伝票フォーマットについて複数台設定可能であってもよい。複数台設定される場合には、図10に示す伝票出力設定情報100に設定されている列の順(左から右)に迂回の優先度が高くてもよい。また、優先度が高いものほど、長い通信試行時間が設定されてもよい。これにより、優先度が高いプリンタほど利用される頻度が高くなり、優先度が低いプリンタに迂回されにくくなる。また、異なる伝票フォーマット間で、出力先のプリンタ、迂回先のプリンタは、同一であってもよい。
図11は、本実施形態において、ハンディーターミナル(HT)20での注文入力から伝票印刷までの処理(通常動作)を説明するためのシーケンス図である。図において、ハンディーターミナル(HT)20は、入力部204から注文が入力されると(ステップS1101)、無線部202からコントローラ(CNT)30に注文データ#1を送信する(ステップS1102)。
コントローラ(CNT)30は、注文データ#1を通信制御部302で受信し、HT注文データ処理部303によって注文処理#1を実行する(ステップS1103)。その後、コントローラ(CNT)30は、PR伝票データ処理部304によって、伝票処理#1を実行する(ステップS1104)。伝票処理#1の詳細については後述する。
コントローラ(CNT)30は、伝票処理#1で生成した調理伝票データ#1をプリンタ(PR1)40−1に送信する(ステップS1105)。プリンタ(PR1)40−1は、調理伝票#1を印字出力する(ステップS1106)。同様に、コントローラ(CNT)30は、伝票処理#1で生成したゲスト伝票データ#1をプリンタ(PR2)40−2に送信する(ステップS1107)。プリンタ(PR2)40−2は、ゲスト伝票#1を印字出力する(ステップS1108)。
図12、図13は、本実施形態による伝票処理#1の動作を説明するためのフローチャートである。なお、以下の説明では、注文データ#1の注文メニューがステーキ(2つ)、サラダ(2つ)、ドリンクバー(2つ)、アイスクリーム(1つ)である場合を例にする。
伝票データ作成において、コントローラ(CNT)30のPR伝票データ処理部304は、注文されたメニューについて、システム制御部301を介して、データ保存部307にあるメニューごとの伝票生成設定情報90(図9)を参照し、必要とされる伝票を特定し、調理伝票フォーマット70(図7)、ゲスト伝票フォーマット80(図8)をそれぞれ読み出し、調理伝票データ、ゲスト伝票データを生成する(ステップS1201)。
例えば、HT注文データ処理部303で処理された注文データ#1に含まれるメニューがステーキの場合、メニューごとの伝票生成設定情報90(図9)を参照すると、メニュー名称901の「ステーキ」に対する、調理伝票対象フラグ902が「1」であるので、図7に示すように、調理伝票フォーマット70に対して、品名711として「ステーキ」、数量712として「2」を追加する。また、メニュー名称901の「ステーキ」に対する、ゲスト伝票対象フラグ903が「1」であるので、図8に示すように、ゲスト伝票フォーマット80に対して、品名811として「ステーキ」、数量812として「2」、金額813として「2000円」を追加する。同様に、注文データ#1に含まれる全てのメニューに対して上記処理を実行する。
このようにして、PR伝票データ処理部304は、図7に示すように、調理伝票フォーマット70に対して、品名「ステーキ」、数量「2」、品名「サラダ」、数量「2」、品名「アイスクリーム」、数量「1」を加えた調理伝票データ#1を作成する。また、PR伝票データ処理部304は、図8に示すように、ゲスト伝票フォーマット80に対して、品名「ステーキ」、数量「2」、金額「2000」、品名「サラダ」、数量「2」、金額「600」、品名「ドリンクバー」、数量「2」、金額「500」、品名「アイスクリーム」、数量「1」、金額「300」、合計金額814として、「3400円」を加えたゲスト伝票データ#1を作成する。
次に、伝票出力先決定において、コントローラ(CNT)30のPR伝票データ処理部304は、システム制御部301を介して、データ保存部307にある伝票出力設定情報100(図10)を参照し、調理伝票データ#1の出力先をプリンタ(PR1)40−1とし、ゲスト伝票データ#1の出力先をプリンタ(PR2)40−2と定める(S1202)。
具体的には、伝票フォーマット1051の「調理伝票フォーマット」に対する出力先プリンタ名称1061が「PR1」であるので、調理伝票の出力先をプリンタ(PR1)40−1とし、伝票フォーマット1051の「ゲスト伝票フォーマット」に対する出力先プリンタ名称1061が「PR2」であるので、ゲスト伝票の出力先をプリンタ(PR2)40−2とする。
次に、調理伝票データ送信において、コントローラ(CNT)30のPR伝票データ処理部304は、調理伝票出力先のプリンタ(PR1)40−1のプリンタステータス情報60(図6)と、プリンタ通信設定情報50(図5)とを参照し、通信条件を決定し、通信制御部302を介して、調理伝票データ#1をプリンタ(PR1)40−1に送信する(ステップS1203)。調理伝票データ送信処理の詳細については後述する。
次に、コントローラ(CNT)30のPR接続確認処理部305は、調理伝票データ#1の送信が成功したか否かを判定する(ステップS1204)。送信成功/失敗は、例えば、出力先からの成功応答(ACK)を所定時間内(例えば、6秒)に受信できたか否かで判断する。そして、調理伝票データ#1の送信が成功した場合には(ステップS1204のYES)、PR1ステータス情報更新において、コントローラ(CNT)30のシステム制御部301は、プリンタステータス情報60(図6)におけるプリンタ名称601の「PR1」に対するプリンタ障害フラグ611を「0(正常)」に設定する(ステップS1205)。
一方、調理伝票データ#1の送信が失敗した場合には(ステップS1204のNO)、PR1ステータス情報更新において、コントローラ(CNT)30のシステム制御部301は、プリンタステータス情報60(図6)におけるプリンタ名称601の「PR1」に対するプリンタ障害フラグ611を「1(異常)」に設定する(ステップS1206)。
その後、伝票出力迂回先決定において、コントローラ(CNT)30のPR伝票データ処理部304は、システム制御部301を介してデータ保存部307にある伝票出力設定情報100(図10)を参照し、伝票フォーマット1051の「調理伝票フォーマット」に対する迂回先プリンタ名称1071が「PR2」であるので、調理伝票の出力先をプリンタ(PR2)40−2とする(ステップS1207)。
次に、調理伝票データを迂回先に送信において、コントローラ(CNT)30の通信制御部302は、迂回先のプリンタ(PR2)40−2のプリンタステータス情報60(図6)と、プリンタ通信設定情報50(図5)とを参照し、通信条件を決めて調理伝票データ#1をプリンタ(PR2)40−2に送信する(ステップS1208)。
次に、コントローラ(CNT)30のPR接続確認処理部305は、調理伝票データ#1の送信が成功したか否かを判定する(ステップS1209)。送信成功/失敗は、例えば、出力先からの成功応答(ACK)を所定時間内(例えば、6秒)に受信できたか否かで判断する。そして、調理伝票データ#1の送信が成功した場合には(ステップS1209のYES)、PR2ステータス情報更新において、コントローラ(CNT)30のシステム制御部301は、プリンタステータス情報60(図6)におけるプリンタ名称601の「PR2」に対するプリンタ障害フラグ611を「0(正常)」に設定する(ステップS1210)。
一方、調理伝票データ#1の送信が失敗した場合には(ステップS1209のNO)、PR2ステータス情報更新において、コントローラ(CNT)30のシステム制御部301は、プリンタステータス情報60(図6)におけるプリンタ名称601の「PR2」に対するプリンタ障害フラグ611を「1(異常)」に設定する(ステップS1211)。次に、コントローラ(CNT)30のシステム制御部301は、調理伝票出力エラー処理を実行する(ステップS1212)。調理伝票出力エラーは、一例として、注文入力を受け付けたハンディーターミナル(HT)20に対して、その旨の情報を含む信号を出力し、表示部203(表示パネル)に「全プリンタ異常」とテキストで表示したり、筐体の表面に配置されたランプやLEDなどを点灯させたりする。
次に、上述したステップS1205でのプリンタ(PR1)40−1への調理伝票データ#1の送信後、あるいは、上記ステップS1212での迂回先のプリンタ(PR2)40−2への調理伝票データ#1の送信後、ゲスト伝票データ送信において、コントローラ(CNT)30の通信制御部302は、ゲスト伝票出力先のプリンタ(PR2)40−2のプリンタステータス情報60(図6)と、プリンタ通信設定情報50(図5)とを参照し、通信条件を決めてゲスト伝票データ#1をプリンタ(PR2)40−2に送信する(ステップS1213)。ゲスト伝票データ送信処理の詳細については後述する。
次に、コントローラ(CNT)30のPR接続確認処理部305は、ゲスト伝票データ#1の送信が成功したか否かを判定する(ステップS1214)。送信成功/失敗は、例えば、出力先からの成功応答(ACK)を所定時間内(例えば、6秒)に受信できたか否かで判断する。そして、ゲスト伝票データ#1の送信が成功した場合には(ステップS1214のYES)、PR2ステータス情報更新において、コントローラ(CNT)30のシステム制御部301は、プリンタステータス情報60(図6)におけるプリンタ名称601の「PR2」に対するプリンタ障害フラグ611を「0(正常)」に設定する(ステップS1215)。その後、当該伝票処理#1を終了する。
一方、ゲスト伝票データ#1の送信が失敗した場合には(ステップS1214のNO)、PR2ステータス情報更新において、コントローラ(CNT)30のシステム制御部301は、プリンタステータス情報60(図6)におけるプリンタ名称601の「PR2」に対するプリンタ障害フラグ611を「1(異常)」に設定する(ステップS1216)。
その後、伝票出力迂回先決定において、コントローラ(CNT)30のPR伝票データ処理部304は、システム制御部301を介してデータ保存部307にある伝票出力設定情報100(図10)を参照し、伝票フォーマット1051の「ゲスト伝票フォーマット」に対する迂回先プリンタ名称1071が「PR1」であるので、ゲスト伝票の出力先をプリンタ(PR1)40−1とする(ステップS1217)。
次に、ゲスト伝票データを迂回先に送信において、コントローラ(CNT)30の通信制御部302は、迂回先のプリンタ(PR1)40−1のプリンタステータス情報60(図6)と、プリンタ通信設定情報50(図5)とを参照し、通信条件を決めてゲスト伝票データ#1をプリンタ(PR1)40−1に送信する(ステップS1218)。
次に、コントローラ(CNT)30のPR接続確認処理部305は、ゲスト伝票データ#1の送信が成功したか否かを判定する(ステップS1219)。送信成功/失敗は、例えば、出力先からの成功応答(ACK)を所定時間内(例えば、6秒)に受信できたか否かで判断する。そして、ゲスト伝票データ#1の送信が成功した場合には(ステップS1219のYES)、PR1ステータス情報更新において、コントローラ(CNT)30のシステム制御部301は、プリンタステータス情報60(図6)におけるプリンタ名称601の「PR1」に対するプリンタ障害フラグ611を「0(正常)」に設定する(ステップS1220)。その後、当該伝票処理#1を終了する。
一方、ゲスト伝票データ#1の送信が失敗した場合には(ステップS1219のNO)、PR1ステータス情報更新において、コントローラ(CNT)30のシステム制御部301は、プリンタステータス情報60(図6)におけるプリンタ名称601の「PR1」に対するプリンタ障害フラグ611を「1(異常)」に設定する(ステップS1221)。次に、コントローラ(CNT)30のシステム制御部301は、調理伝票出力エラー処理を実行する(ステップS1222)。ゲスト伝票出力エラーは、一例として、注文入力を受け付けたハンディーターミナル(HT)20に対して、その旨の情報を含む信号を出力し、表示部203(表示パネル)に「全プリンタ異常」とテキストで表示したり、筐体の表面に配置されたランプやLEDなどを点灯させたりする。その後、当該伝票処理#1を終了する。
図14は、本実施形態による(調理)伝票データ送信処理(S1203)を説明するためのフローチャートである。以下の説明では、調理伝票データをプリンタ(PR1)40−1に送信する場合を例にするが、出力先のプリンタが異なる場合や、ゲスト伝票データについても同様な処理が行われてもよい。上述した伝票処理#1の伝票出力先決定(ステップS1202)では、調理伝票データ#1の出力先がプリンタ(PR1)40−1に決定されている。その後、当該伝票データ送信処理が実行される。
調理伝票出力先PR1のステータス取得において、コントローラ(CNT)30の通信制御部302は、プリンタステータス情報60(図6)のプリンタ名称601の「PR1」に対するプリンタ障害フラグ611が「0(正常)」であるときは、プリンタ通信設定情報50(図5)のプリンタ名称501の「PR1」に対する通信試行時間(#0)511にある「90秒」を通信試行時間(リトライ時間)として設定する(ステップS1401)。
なお、プリンタステータス情報60のプリンタ名称601の「PR1」に対するプリンタ障害フラグ611が「1(異常)」であるときは、通信制御部302は、プリンタ通信設定情報50(図5)のプリンタ名称501の「PR1」に対する通信試行時間521にある「15秒」を通信試行時間として設定する。
次に、コントローラ(CNT)30のPR伝票データ処理部304は、送信処理開始から通信試行時間「90秒」が経過したか否かを判定する(ステップS1402)。そして、送信処理開始から通信試行時間「90秒」が経過していない場合には(ステップS1402のNO)、通信制御部302は、プリンタ(PR1)40−1への接続を試みる(ステップS1403)。次に、PR接続確認処理部305は、プリンタ(PR1)40−1との接続が成功したか否かを判定する(ステップS1404)。そして、プリンタ(PR1)40−1への接続が成功しなかった場合には(ステップS1404のNO)、ステップS1402に戻る。以降、通信試行時間「90秒」が経過するか、あるいはプリンタ(PR1)40−1への接続が成功するまで、ステップS1402〜S1404を繰り返し実行する。なお、ステップS1402〜S1404は、一例として6秒間隔(試行(リトライ)間隔に相当)で繰り返す。
そして、プリンタ(PR1)40−1への接続が成功することなく、通信試行時間「90秒」が経過した場合には(ステップS1402のYES)、送信が異常に終わったとして(送信異常終了)、当該伝票データ送信処理を終了する。
一方、通信試行時間「90秒」が経過する前に、プリンタ(PR1)40−1への接続が成功した場合には(ステップS1404のYES)、コントローラ(CNT)30の通信制御部302は、調理伝票データ#1をプリンタ(PR1)40−1に送信する(ステップS1405)。次に、コントローラ(CNT)30のPR接続確認処理部305は、調理伝票データ#1のプリンタ(PR1)40−1への送信が成功したか否かを判定する(ステップS1406)。そして、送信が成功しなかった場合には(ステップS1406のNO)、通信制御部302は、プリンタ(PR1)40−1との接続を切断し(ステップS1410)、ステップS1402に戻り、上述した処理、すなわちプリンタ(PR1)40−1との接続の試行(90秒)を繰り返す。
一方、送信が成功した場合には(ステップS1406のYES)、通信制御部302は、プリンタ(PR1)40−1からの応答を受信し(S1407)、PR接続確認処理部305は、応答がOKであるか(調理伝票データ#1を正常に受信したか)否かを判定する(ステップS1408)。そして、応答がOKでない場合、すなわち調理伝票データ#1を正常に受信できなかった場合には(ステップS1408のNO)、通信制御部302は、プリンタ(PR1)40−1との接続を切断し(ステップS1410)、ステップS1402に戻り、上述した処理、すなわちプリンタ(PR1)40−1との接続の試行(90秒)を繰り返す。
一方、応答がOKである場合、すなわち調理伝票データ#1を正常に受信できた場合には(ステップS1408のYES)、通信制御部302は、プリンタ(PR1)40−1との接続を切断し(ステップS1409)、送信が正常に行われたとして(送信正常終了)、当該伝票データ送信処理を終了する。
図15は、本実施形態によるプリンタステータス情報更新の一例を示すシーケンス図である。図において、プリンタ(PR1)40−1は、キーボード41−1からのキー入力#1があると(ステップS1501)、キーデータ処理部407によって、通信制御部402を介して、キーデータ#1をコントローラ(CNT)30に送信する(ステップS1502)。コントローラ(CNT)30は、キーデータ#1を受信すると、PRキーデータ処理部306でキー処理#1を実行する(ステップS1503)。次に、コントローラ(CNT)30は、プリンタステータス情報60の更新として、通信が成功したプリンタ(PR1)40−1のプリンタ障害フラグを「0(正常)」に設定する(ステップS1504)。その後、コントローラ(CNT)30は、PR伝票データ処理部304で伝票処理#1を実行し(ステップS1505)、通信制御部302を介して、キー要求伝票データ#1をプリンタ(PR1)40−1に送信する(ステップS1506)。
プリンタ(PR1)40−1は、通信制御部402によりキー要求伝票データ#1を受信すると、伝票データ処理部403によって、印字機構制御部404、印字メカ機構405を介して、キー要求伝票#1を印字出力する(ステップS1507)。
また、コントローラ(CNT)30のシステム制御部301は、伝票処理#1の終了後、プリンタステータス情報60の更新として、通信が成功したプリンタ(PR1)40−1のプリンタ障害フラグを「0(正常)」に設定する(ステップS1508)。
次に、プリンタ(PR1)40−1のCNT接続確認処理部406は、コントローラ(CNT)30に対して通信確認を行う(ステップS1509)。通信確認は、後述するように所定のプロトコルを用いて接続状態か否かをもって判定する。このとき、CNT接続確認処理部406、コントローラ(CNT)30のPR接続確認処理部305ともに、相互間の接続状態を検出することができる。通信確認に成功すると、システム制御部301は、プリンタステータス情報60の更新として、通信が成功したプリンタ(PR1)40−1のプリンタ障害フラグを「0(正常)」に設定する(ステップS1510)。
上記ステップS1504、S1508、S1510におけるプリンタステータス情報60の更新は、通信が成功した時点で、プリンタ(PR1)40−1に対するプリンタステータス情報60の障害フラグを「0(正常)」に戻すことを示している。
同様に、プリンタ(PR2)40−2のCNT接続確認処理部406は、コントローラ(CNT)30に対して通信確認を行う(ステップS1511)。通信確認に成功すると(ステップS1511)、システム制御部301は、プリンタステータス情報60の更新として、通信が成功したプリンタ(PR2)40−2のプリンタ障害フラグを「0(正常)」に設定する(ステップS1512)。
次に、プリンタ(PR2)40−2は、キーボード41−2からのキー入力#2があると(ステップS1513)、キーデータ処理部407は、通信制御部402を介して、キーデータ#2をコントローラ(CNT)30に送信する(ステップS1514)。コントローラ(CNT)30は、通信制御部302を介してキーデータ#2を受信すると、PRキーデータ処理部306でキー処理#2を実行する(ステップS1515)。次に、コントローラ(CNT)30は、プリンタステータス情報60の更新として、通信が成功したプリンタ(PR2)40−2のプリンタ障害フラグを「0(正常)」に設定する(ステップS1516)。その後、コントローラ(CNT)30は、PR伝票データ処理部304で伝票処理#2を実行し(ステップS1517)、通信制御部302を介して、キー要求伝票データ#2をプリンタ(PR2)40−2に送信する(ステップS1518)。
プリンタ(PR2)40−2は、通信制御部402を介してキー要求伝票データ#2を受信すると、伝票データ処理部403によって、印字機構制御部404、印字メカ機構405を介して、キー要求伝票#2を印字出力する(ステップS1519)。
また、コントローラ(CNT)30のシステム制御部301は、伝票処理#2の終了後、プリンタステータス情報60の更新として、通信が成功したプリンタ(PR2)40−2のプリンタ障害フラグを「0(正常)」に設定する(ステップS1520)。
このように、プリンタ(PR2)40−2においても同様に、上記ステップS1512、S1516、S1520におけるプリンタステータス情報60の更新は、通信が成功した時点で、プリンタ(PR2)40−2に対するプリンタステータス情報60の障害フラグを「0(正常)」に戻すことを示している。
プリンタ(PR1)40−1、またはプリンタ(PR2)40−2との通信が成功した時点で、プリンタステータス情報60の障害フラグを「0(正常)」に設定することで、通信可能な機器に対しては、通信試行時間をできるだけ長く確保する仕組みが設けられている。この結果、他のプリンタへ迂回出力することを可能な限り避けることが可能になる。
図16は、本実施形態において、障害発生時の通信試行時間の変化例を説明するためのシーケンス図である。まず、コントローラ(CNT)30において、プリンタステータス情報60aのように、プリンタ(PR1)40−1及びプリンタ(PR2)40−2に対する障害フラグが「0(正常)」に設定される。
ハンディーターミナル(HT)20は、入力部204から注文入力#2があると(ステップS1601)、無線部202を介して、注文データ#2をコントローラ(CNT)30に送信する(ステップS1602)。
コントローラ(CNT)30は、通信制御部302を介して、注文データ#2を受信し、HT注文データ処理部303で注文処理#2を実行する(ステップS1603)。その後、コントローラ(CNT)30は、PR伝票データ処理部304で伝票処理#2を実行し(ステップS1604)、通信制御部302を介して、プリンタ(PR1)40−1に調理伝票データ#2の送信を試行する(ステップS1605)。このとき、プリンタ(PR1)40−1では障害が発生しているため、通信制御部302は、90秒の通信試行時間内で試行を繰り返す(リトライ)。
そして、90秒以内に通信が成功しなかったので、コントローラ(CNT)30のシステム制御部301は、プリンタステータス情報60bのように、プリンタ(PR1)40−1に対する障害フラグを「1(異常)」に設定する。次に、コントローラ(CNT)30は、通信制御部302を介して、伝票処理#2で生成した調理伝票データ#2を迂回先のプリンタ(PR2)40−2に送信する(ステップS1606)。プリンタ(PR2)40−2の通信制御部402は、調理伝票データ#2を受信し、伝票データ処理部403は、印字機構制御部404、印字メカ機構405を介して、調理伝票#2を印字出力する(ステップS1607)。
次に、コントローラ(CNT)30は、通信制御部302を介して、伝票処理#2で生成したゲスト伝票データ#2をプリンタ(PR2)40−2に送信する(ステップS1608)。プリンタ(PR2)40−2の通信制御部402は、ゲスト伝票データ#2を受信し、伝票データ処理部403は、印字機構制御部404、印字メカ機構405を介して、ゲスト伝票#2を印字出力する(ステップS1609)。
同様にして、ハンディーターミナル(HT)20は、入力部204から注文入力#3が入力されると(ステップS1611)、無線部202を介して、注文データ#3をコントローラ(CNT)30に送信する(ステップS1612)。
コントローラ(CNT)30は、通信制御部302を介して注文データ#3を受信し、HT注文データ処理部303で注文処理#3を実行する(ステップS1613)。その後、コントローラ(CNT)30は、PR伝票データ処理部304で伝票処理#3を実行し(ステップS1614)、通信制御部302を介して、プリンタ(PR1)40−1に調理伝票データ#3の送信を試行する(ステップS1615)。このとき、プリンタ(PR1)40−1では障害が発生しているため(プリンタステータス情報60cの障害フラグが「1(異常)」)、コントローラ(CNT)30の通信制御部302は、プリンタ通信設定情報50(図5)の通信試行時間#1(異常時)にあるように、15秒の通信試行時間内で試行を繰り返す(リトライ)。
この場合も、プリンタ(PR1)40−1の障害は復旧していないので、15秒以内に通信が成功しない。コントローラ(CNT)30は、システム制御部301により、プリンタステータス情報60cに示すように、プリンタ(PR1)40−1に対する障害フラグを「1(異常)」に設定する。次に、コントローラ(CNT)30は、通信制御部302を介して、伝票処理#3で生成した調理伝票データ#3を迂回先のプリンタ(PR2)40−2に送信する(ステップS1616)。プリンタ(PR2)40−2の通信制御部402は、調理伝票データ#3を受信し、伝票データ処理部403は、印字機構制御部404、印字メカ機構405を介して、調理伝票#3を印字出力する(ステップS1617)。
次に、コントローラ(CNT)30は、通信制御部302を介して、伝票処理#3で生成したゲスト伝票データ#3をプリンタ(PR2)40−2に送信する(ステップS1618)。プリンタ(PR2)40−2の通信制御部402は、ゲスト伝票データ#3を受信し、伝票データ処理部403は、印字機構制御部404、印字メカ機構405を介して、ゲスト伝票#3を印字出力する(ステップS1619)。
上述したように、本実施形態によれば、通信試行時間内に通信が成功しなかったことで障害の発生を検知し、プリンタステータス情報60を書き換えることで、通信試行時間を90秒から15秒に短縮し、障害が検知されたプリンタへ短縮された通信試行時間内で通信を試行する。この結果、通信の試行による待ち時間を短縮することが可能になる。
図17は、本実施形態において、障害復旧時の通信試行時間の変化例を説明するためのシーケンス図である。まず、プリンタ(PR1)40−1において障害が発生し、コントローラ(CNT)30のシステム制御部301により、プリンタステータス情報60dのプリンタ(PR1)40−1に対する障害フラグが「1(異常)」に設定される。その後、プリンタ(PR1)40−1の障害が復旧する。
ハンディーターミナル(HT)20は、入力部204から注文入力#4があると(ステップS1701)、無線部202を介して、注文データ#4をコントローラ(CNT)30に送信する(ステップS1702)。
コントローラ(CNT)30は、通信制御部302を介して注文データ#4を受信し、HT注文データ処理部303で注文処理#4を実行する(ステップS1703)。その後、コントローラ(CNT)30は、PR伝票データ処理部304で伝票処理#4を実行し(ステップS1704)、通信制御部302を介して、プリンタ(PR1)40−1に調理伝票データ#2の送信を試行する(ステップS1705)。このとき、プリンタ(PR1)40−1に対する障害フラグが「1(異常)」であるため、通信制御部302は、15秒の通信試行時間内で送信を繰り返えす(リトライ)。この場合、コントローラ(CNT)30のプリンタ(PR1)40−1の障害は復旧しているので、15秒以内に通信が成功することになる。通信が成功した後は、試行が停止される。
コントローラ(CNT)30のシステム制御部301は、通信が成功したので、プリンタステータス情報60eのように、プリンタ(PR1)40−1に対する障害フラグを「0(正常)」に設定する。一方、プリンタ(PR1)40−1の通信制御部402は、調理伝票データ#4を受信し、伝票データ処理部403は、印字機構制御部404、印字メカ機構405を介して、調理伝票#4を印字出力する(ステップS1706)。
次に、コントローラ(CNT)30は、通信制御部302を介して、伝票処理#4で生成したゲスト伝票データ#4をプリンタ(PR2)40−2に送信する(ステップS1707)。プリンタ(PR2)40−2の通信制御部402は、ゲスト伝票データ#4を受信し、伝票データ処理部403は、印字機構制御部404、印字メカ機構405を介して、ゲスト伝票#4を印字出力する(ステップS1708)。
同様にして、ハンディーターミナル(HT)20は、入力部204から注文入力#5があると(ステップS1711)、無線部202を介して、注文データ#5をコントローラ(CNT)30に送信する(ステップS1712)。
コントローラ(CNT)30は、通信制御部302を介して注文データ#5を受信し、HT注文データ処理部303で注文処理#5を実行する(ステップS1713)。その後、コントローラ(CNT)30は、PR伝票データ処理部304で伝票処理#5を実行し(ステップS1714)、通信制御部302を介して、プリンタ(PR1)40−1に調理伝票データ#5を送信する(ステップS1715)。このとき、プリンタ(PR1)40−1で、60秒間の電波障害が発生したとする。コントローラ(CNT)30の通信制御部302は、プリンタ(PR1)40−1の障害フラグが「0(正常)」であるので、90秒の通信試行時間内で送信を試行する(リトライ)。プリンタ(PR1)40−1での電波障害は、60秒で復旧するので、90秒の通信試行時間内で通信が成功する。通信が成功した後は、試行が停止される。プリンタ(PR1)40−1の通信制御部402は、調理伝票データ#5を受信し、伝票データ処理部403は、印字機構制御部404、印字メカ機構405を介して、調理伝票#5を印字出力する(ステップS1716)。
次に、コントローラ(CNT)30は、通信制御部302を介して、伝票処理#5で生成したゲスト伝票データ#5をプリンタ(PR2)40−2に送信する(ステップS1717)。プリンタ(PR2)40−2は、通信制御部402を介してゲスト伝票データ#5を受信し、伝票データ処理部403は、印字機構制御部404、印字メカ機構405を介して、ゲスト伝票#5を印字出力する(ステップS1718)。
上述したように、本実施形態によれば、通信試行時間内に通信が成功したことで障害からの復旧が検知され、プリンタステータス情報60が書き換えられることで、通信試行時間が15秒から元の90秒に延長する。この結果、障害が検知されたプリンタへ延長された通信試行時間内で試行することで、延長された通信試行時間内に一時的な障害が発生してもその障害原因が解消されることで通信が成功する。これにより、迂回出力を極力避けることが可能となる。
図18は、本実施形態において、キーデータ送信時の通信試行時間の変化例を説明するためのシーケンス図である。まず、プリンタ(PR1)40−1において障害が発生し、コントローラ(CNT)30の通信制御部302により、プリンタステータス情報60fのプリンタ(PR1)40−1に対する障害フラグが「1(異常)」に設定される。その後、プリンタ(PR1)40−1の障害が復旧する。
プリンタ(PR1)40−1の障害復旧後、プリンタ(PR1)40−1は、キーボード41−1から伝票再発行キー入力#6があると(ステップS1801)、キーデータ処理部407によるキーデータ#6を、通信制御部402を介してコントローラ(CNT)30に送信する(ステップS1802)。
コントローラ(CNT)30は、通信制御部402を介してプリンタ(PR1)40−1からキーデータ#6を受信すると、PRキーデータ処理部306でキー処理#6を実行する(ステップS1803)。このとき、コントローラ(CNT)30のPR接続確認処理部305は、プリンタ(PR1)40−1からキーデータ#6を受信したことで、通信が成功したと判定し、システム制御部301は、プリンタステータス情報60gに示すように、プリンタ(PR1)40−1に対する障害フラグを「0(正常)」に設定する。
次に、コントローラ(CNT)30は、PR伝票データ処理部304で伝票処理#6を実行し(ステップS1804)、通信制御部302を介して、プリンタ(PR1)40−1に調理伝票データ#6を送信する(ステップS1805)。このとき、プリンタ(PR1)40−1に対する障害フラグは「0(正常)」であるため、コントローラ(CNT)30の通信制御部302は、90秒の通信試行時間内で送信を試行する(リトライ)。この場合、プリンタ(PR1)40−1の障害は復旧しているので、90秒以内に通信が成功することになる。通信が成功した後は、試行が停止される。プリンタ(PR1)40−1の通信制御部402は、調理伝票データ#6を受信し、伝票データ処理部403は、印字機構制御部404、印字メカ機構405を介して、再発行伝票#6を印字出力する(ステップS1806)。
同様にして、ハンディーターミナル(HT)20は、入力部204から注文入力#7が入力されると(ステップS1811)、無線部202を介して、注文データ#7をコントローラ(CNT)30に送信する(ステップS1812)。
コントローラ(CNT)30は、通信制御部302を介して注文データ#7を受信し、HT注文データ処理部303で注文処理#7を実行する(ステップS1813)。その後、コントローラ(CNT)30は、PR伝票データ処理部304で伝票処理#7を実行し(ステップS1814)、通信制御部302を介して、プリンタ(PR1)40−1に調理伝票データ#7を送信する(ステップS1815)。このとき、プリンタ(PR1)40−1で、60秒間の電波障害が発生したとする。コントローラ(CNT)30の通信制御部302は、プリンタ(PR1)40−1の障害フラグが「0(正常)」であるので、90秒の通信試行時間内で送信を試行する(リトライ)。プリンタ(PR1)40−1での電波障害は、60秒で復旧するので、90秒の通信試行時間内で通信が成功する。通信が成功した後は、試行が停止される。プリンタ(PR1)40−1の通信制御部402は、調理伝票データ#7を受信し、伝票データ処理部403は、印字機構制御部404、印字メカ機構405を介して、調理伝票#7を印字出力する(ステップS1816)。
次に、コントローラ(CNT)30の通信制御部302は、伝票処理#7で生成したゲスト伝票データ#7をプリンタ(PR2)40−2に送信する(ステップS1817)。プリンタ(PR2)40−2の通信制御部402は、ゲスト伝票データ#7を受信し、伝票データ処理部403は、印字機構制御部404、印字メカ機構405を介して、ゲスト伝票#7を印字出力する(ステップS1818)。
上述したように、本実施形態によれば、キーデータの送信または受信に成功したことで障害からの復旧が検知され、プリンタステータス情報が書き換えることで、通信試行時間が15秒から元の90秒に延長される。この結果、障害が検知されたプリンタへ延長された通信試行時間内で通信を試行することで、延長された通信試行時間内に一時的な障害が発生してもその障害原因が解消されることで通信が成功する。これにより、迂回出力を極力避けることが可能となる。
図19は、本実施形態において、プリンタ40からの接続確認による通信試行時間の変化例を説明するためのシーケンス図である。次に説明する例では、プリンタ(PR1)40−1において障害が発生し、コントローラ(CNT)30のシステム制御部301により、プリンタステータス情報60hのプリンタ(PR1)40−1に対する障害フラグが「1(異常)」に設定される。その後、プリンタ(PR1)40−1が障害から復旧し、通信が可能になる。
プリンタ(PR1)40−1のCNT接続確認処理部406は、コントローラ(CNT)30に対して通信確認を行う(ステップS1901)。通信確認は、所定のプロトコル(例えば、TCPプロトコル)を用いて接続状態か否かをもって判定する。具体的には、プリンタ(PR1)40−1のCNT接続確認処理部406は、通信制御部402を介して、接続状態照会信号をコントローラ(CNT)30に送信する。コントローラ(CNT)30の通信制御部302は、当該接続状態照会信号に応じて、プリンタ(PR1)40−1に対して成功応答(ACK)を送信し、CNT接続確認処理部406は、接続状態照会信号の送信時から所定時間内に成功応答(ACK)を受信したか否かで接続状態か否かを判定する。また、コントローラ(CNT)30のPR接続確認処理部305は、通信制御部302を介してプリンタ(PR1)40−1からの接続状態照会信号を受信することで障害からの復旧により接続状態であることを確認する。
PR接続確認処理部305は、プリンタ(PR1)40−1からの接続状態照会信号を受信して接続状態であることを確認すると、プリンタステータス情報60iに示すように、プリンタ(PR1)40−1に対する障害フラグを「0(正常)」に設定する。
その後、ハンディーターミナル(HT)20は、入力部204から注文入力#8があると(ステップS1902)、無線部202を介して、注文データ#8をコントローラ(CNT)30に送信する(ステップS1903)。
コントローラ(CNT)30は、通信制御部302を介して注文データ#8を受信し、HT注文データ処理部303で注文処理#8を実行する(ステップS1904)。その後、コントローラ(CNT)30のPR伝票データ処理部304は伝票処理#8を実行し(ステップS1905)、通信制御部302は、プリンタ(PR1)40−1に調理伝票データ#8を送信する(ステップS1906)。このとき、プリンタ(PR1)40−1で、60秒間の電波障害が発生したとする。コントローラ(CNT)30の通信制御部302は、プリンタ(PR1)40−1の障害フラグが「0(正常)」であるので、90秒の通信試行時間内で送信を試行する。プリンタ(PR1)40−1での電波障害は、60秒で復旧するので、90秒の通信試行時間内で通信が成功する。通信が成功した後は、試行が停止される。プリンタ(PR1)40−1の通信制御部402は、調理伝票データ#8を受信し、伝票データ処理部403は、印字機構制御部404、印字メカ機構405を介して、調理伝票#8を印字出力する(ステップS1907)。
次に、コントローラ(CNT)30の通信制御部302は、伝票処理#8で生成したゲスト伝票データ#8をプリンタ(PR2)40−2に送信する(ステップS1908)。プリンタ(PR2)40−2の通信制御部402は、ゲスト伝票データ#8を受信し、伝票データ処理部403は、印字機構制御部404、印字メカ機構405を介して、ゲスト伝票#8を印字出力する(ステップS1909)。
上述したように、本実施形態によれば、障害からの復旧時、あるいは所定の時間間隔(例えば、1分間隔)で、コントローラ(CNT)30とプリンタ(PR1)40−1、(PR2)40−2との間で通信確認処理を実行することで障害からの復旧を確認し、プリンタステータス情報を書き換えることで、通信試行時間を15秒から元の90秒に延長する。この結果、障害が検知されたプリンタに対して、延長された通信試行時間内で試行することで、延長された通信試行時間内に一時的な障害が発生してもその障害原因が解消されることで通信が成功する。これにより、迂回出力を極力避けることが可能となる。
図20は、本実施形態による迂回伝票200の一例を示す模式図である。迂回伝票200は、プリンタ(PR1)40−1からプリンタ(PR2)40−2への迂回が発生したときに印字出力される伝票である。図示の例では、迂回伝票200は、プリンタ(PR1)40−1からの迂回伝票であることを示す第1構成部200aと調理伝票を構成する第2構成部200bとからなる。なお、調理伝票を構成する第2構成部200bは、通常の調理伝票70と同様の形式である。
なお、ゲスト伝票の迂回伝票も同様な形式にしてもよい。また、迂回伝票200は、迂回元のプリンタを示す第1構成部200aを省き、通常の調理伝票70、ゲスト伝票80と同様な形式であってもよい。
上述した実施形態によれば、複数のプリンタ40との接続状態を判定し、当該接続状態に基づいて、それぞれのプリンタ40との通信の試行を繰り返す試行時間を設定し、当該設定した試行時間内で繰り返す通信の試行で、あるプリンタ40との通信が成功しない場合、他のプリンタ40との通信を試行するようにした。そのため、あるプリンタ40へのデータを送信する機会を確保しながら、接続状態に応じて、他のプリンタ40へのデータ送信の迂回のしやすさを制御することができる。例えば、試行時間に従って通信が成功するまで試行するので、電子レンジのように一定時間で停止する妨害波に対して、通信障害を回避することができる。
また、上述した実施形態によれば、一方のプリンタ40との接続状態が接続可能と判定された場合、接続不可と判定された場合よりも長い試行時間を設定するようにした。そのため、一時的な通信障害が生じても、一方のプリンタ40にデータを送信することで、他のプリンタ40へのデータの送信の迂回を抑制できるとともに、接続不可の場合には短い試行時間で通信を行うことで他のプリンタ40へのデータの送信の迂回を迅速に行い、出力装置からのデータ出力の遅延を抑制することができる。
また、上述した実施形態によれば、複数のプリンタ40の各々から送信された接続状態照会信号に対する成功応答の受信の有無によって、制御装置は複数のプリンタ40の各々との接続状態を判定するようにした。そのため、当該制御装置自体で接続状態、例えば、接続不可(通信障害)か、接続可能(通信障害から復帰)かをデータ送信(例えば、伝票データ出力)間に確認することができるので、確認した接続状態に応じてより最適な接続状態にあるプリンタ40へのデータ送信を制御することができる。
また、上述した実施形態によれば、複数のプリンタ40からのデータの受信を契機に、データの送信元のプリンタ40との接続状態を接続可能と判定するようにした。そのため、データを受信した時点で、最新の接続状態、すなわち送信元のプリンタ40と接続可能であることを確認することができ、そのプリンタ40へのデータ送信の試行を優先することで他のプリンタへのデータ送信を抑制することができる。例えば、障害復旧時に、プリンタ40からの伝票再発行キー入力に応じて、プリンタステータス情報60のプリンタ障害フラグを「0(成功)」に書き換えるので、安易に他のプリンタ40に迂回することを抑制することができる。
また、上述した実施形態によれば、試行時間内でのプリンタ40とのデータの送信の成否に基づいて、プリンタ40との接続状態を判定するようにした。そのため、データの送信を試行した時点で、最新の接続状態を確認することができ、そのプリンタ40へのデータ送信の試行時間を設定することができ、他のプリンタ40へのデータ送信の迂回のしやすさを抑制することができる。
なお、上述した実施形態の変形例として、飲食店におけるメニューの注文以外にも、その他の店舗、施設での商材その他の物品、サービスの注文、手配、業務連絡、等にも適用可能である。