Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5593682B2 - プリンター、プリンターの制御方法、及び、プログラム - Google Patents
[go: Go Back, main page]

JP5593682B2 - プリンター、プリンターの制御方法、及び、プログラム - Google Patents

プリンター、プリンターの制御方法、及び、プログラム Download PDF

Info

Publication number
JP5593682B2
JP5593682B2 JP2009262005A JP2009262005A JP5593682B2 JP 5593682 B2 JP5593682 B2 JP 5593682B2 JP 2009262005 A JP2009262005 A JP 2009262005A JP 2009262005 A JP2009262005 A JP 2009262005A JP 5593682 B2 JP5593682 B2 JP 5593682B2
Authority
JP
Japan
Prior art keywords
command
buffer
host computer
reception buffer
reception
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009262005A
Other languages
English (en)
Other versions
JP2011104861A (ja
JP2011104861A5 (ja
Inventor
昌代 宮坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2009262005A priority Critical patent/JP5593682B2/ja
Priority to BRPI1004605-4A priority patent/BRPI1004605A2/pt
Priority to CN201010548824.4A priority patent/CN102145597B/zh
Priority to US12/946,786 priority patent/US8595395B2/en
Priority to KR1020100113770A priority patent/KR101838747B1/ko
Priority to EP10191486.9A priority patent/EP2323073B1/en
Publication of JP2011104861A publication Critical patent/JP2011104861A/ja
Publication of JP2011104861A5 publication Critical patent/JP2011104861A5/ja
Application granted granted Critical
Publication of JP5593682B2 publication Critical patent/JP5593682B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G5/00Receipt-giving machines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1803Receiving particular commands
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1822Analysing the received data before processing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0002Serial port, e.g. RS232C
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Record Information Processing For Printing (AREA)

Description

本発明は、ホストコンピューターから送信されるコマンドに従って動作するプリンタープリンターの制御方法、及び、プログラムに関する。
従来、上位装置としてのホストコンピューターから送信されるコマンドに従って動作する記録装置が知られている(例えば、特許文献1参照)。このような記録装置がホストコンピューターから受信するコマンドには、通常のコマンドとは別に、記録装置のステータス返送指示やリセット指示のコマンドなど即座に処理することが求められる即時処理コマンド(リアルタイム制御コマンド)がある。例えば特許文献1記載の装置は、ホストコンピューターからデータを受信した時に、受信データ中のコマンド及び即時処理コマンドを検出し、通常のコマンドや通常のコマンドに係るデータは受信バッファーのキューに格納して受信順に実行し、即時処理コマンドは受信順に関わらず即座に実行する。
特開2001−260435号公報
ところが、上記従来の方法では、ホストコンピューターから受信した受信データの全てについてコマンドの検出が行ってからでないと処理が行えないため、例えば多量のデータがまとめて送信された場合等には、コマンドの検出処理がボトルネックとなってスループットの低下を招くおそれがあった。
また、一般的な記録装置においては、用紙等の記録媒体がなくなった場合、記録装置のカバーが開けられた場合、エラーが発生した場合など、記録動作の続行が不適当な場合には、記録動作を停止するとともに、ホストコンピューターとのインターフェイスをオフライン(論理的な切断状態)とすることにより、記録装置およびホストコンピューターから受信したデータの保全及び使用者の安全を確保しようとしている。このような記録装置はオフライン状態では受信データにおけるコマンドの検出を行わないが、この場合、受信データに即時処理コマンドが含まれていても、これを検出できないので、即時処理コマンドへの対応が遅れるという懸念もあった。
本発明は、上述した事情に鑑みてなされたものであり、ホストコンピューターから送信されるコマンドに従って動作し、ホストコンピューターから送信されるコマンドを速やかに検出するとともに、即時処理コマンドを速やかに検出して実行できるプリンタープリンターの制御方法、及びプログラムを提供することを目的とする。
上記目的を達成するために、本発明は、ホストコンピューターに接続可能であり、前記ホストコンピューターから即時処理コマンドを含むコマンドを含む受信データを受信するプリンターであって、前記ホストコンピューターから受信した前記受信データを格納する受信バッファーと、前記受信バッファーに格納された前記受信データを、第1の読出ポインターを走査させながら読み取って前記コマンドを検出するコマンド検出部と、前記受信バッファーに格納された前記受信データを、前記第1の読出ポインターとは別に設けられた第2の読出ポインターを走査させながら読み取って前記即時処理コマンドを検出する即時処理コマンド検出部と、前記コマンド検出部により検出された前記コマンドを、前記受信バッファーへの前記コマンドの格納順に処理し、前記即時処理コマンド検出部により検出された前記即時処理コマンドを、前記受信バッファーへの格納順に関わらず他のコマンドに優先して処理するコマンド実行部と、前記受信バッファーのバッファーフル状態を前記ホストコンピューターに通知する制御部と、前記ホストコンピューターにバッファーフル状態を通知した後に受信した前記受信データを格納する即時処理コマンド用バッファーと、を備え、前記即時処理コマンド検出部は前記第2の読出ポインターを前記受信バッファーで走査させた後に前記即時処理コマンド用バッファーで走査させ、前記即時処理コマンドを検出し、前記コマンド検出部は前記即時処理コマンド用バッファーで前記第1の読出ポインターを走査させないこと、を特徴とする。
この構成によれば、ホストコンピューターから受信したコマンドや印刷データを含む受信データが受信バッファーに格納され、この受信バッファーにおいて、コマンド用の第1の読出ポインターと即時処理コマンド用の第2の読出ポインターとをそれぞれ個別に走査させて、通常のコマンドと即時処理コマンドとを別々に検出する。このため、ホストコンピューターからの受信データを受信バッファーに格納してからコマンドの検出を行うので、ホストコンピューターから短時間に大量のデータを受信した場合であっても、全てのデータを確実に受信し、漏れなく解析を行ってコマンドを検出できる。そして、即時処理コマンドを、通常のコマンドとは別の読出ポインターを走査して検出するので、通常のコマンドの実行状態に影響されることなく即時処理コマンドのみを速やかに検出できる。このため、受信データが大量であっても即時処理コマンドに速やかに処理できる。
この場合、第1の読出ポインターは、即時処理コマンド以外のコマンドを検出して処理してもよい。即時処理コマンドは重複して処理されない。第2の読出ポインターで検出した、所定のタイミングでのみ即時処理コマンドを処理することができる。また、第2の読出ポインターで一旦検出して処理された即時実行コマンドを、再度第1の読出ポインターでも検出して処理してもよい。記録装置のステータス返送指示などは重複して処理されてもよいので、第1の読出ポインターと第2の読出ポインターのいずれにおいても、検出して処理することができる。
ここで、通常のコマンドの実行を停止するオフライン状態においても、即時処理コマンドを検出し、処理するようにしてもよい。この場合は、オフライン状態であっても即時処理コマンドに速やかに処理できるという利点がある。
また、コマンド実行部は、通常動作状態においてコマンド検出部が検出したコマンドを実行し、即時処理コマンド検出部が検出した即時処理コマンドは、通常動作状態及びオフライン状態のいずれにおいても処理する構成としてもよい。
また、前記制御部は、前記受信バッファーのバッファーフル状態を前記ホストコンピューターに通知してオフラインに移行し、前記即時処理コマンド用バッファーに、制御部がオフラインに移行した後に受信した前記受信データを格納する構成としてもよい。
上記構成において、前記受信バッファーがほぼバッファーフルとなった後に受信した受信データを格納する即時処理コマンド用バッファーを備え、前記前記即時処理コマンド用バッファーでは前記第2の読出ポインターが走査され、前記即時処理コマンド検出部によって即時処理コマンドが検出される構成としてもよい。
この場合、ホストコンピューターからの受信データの容量が多く受信バッファーがバッファーフルまたはバッファーフルに近い状態になった場合であっても、即時処理コマンドを検出して処理できるので、受信データが大量であっても即時処理コマンドに速やかに応答できる。また、バッファーフルの場合は通常、コマンドの検出や実行を行わないオフライン状態となるが、本発明の構成では、通常のコマンドとは別に即時処理コマンドを検出し、実行できるので、即時処理コマンドに速やかに処理できる。記録装置がオフライン状態を通知しても、ホストコンピューターは即時処理コマンドを送信して処理させたいことがある。即時処理コマンドを優先し受信するため、数バイト等、オフライン通知後でも受信できるように、サブ受信バッファーを備えていることが好ましい。
さらに、前記第2の読出ポインターは前記第1の読出ポインターよりも先行して前記受信バッファーを走査するものとしてもよい。
この場合、即時処理コマンドを検出するための読出ポインターが通常のコマンドを検出するための読出ポインターより先行して受信バッファーを走査されるので、通常のコマンドの検出及び実行状態に影響されることなく、即時処理コマンドを速やかに検出できる。また、前記第2の読出ポインターは、前記第1の読出ポインターを追い越すことがないようにしている。
また、上記構成において、受信データを受信バッファーに書き込む書込ポインターの書込位置を加算し、前記第1の読出ポインターの読出位置を減算してカウントするカウンターを備え、このカウンターは前記受信バッファーの受信データ量を示す構成としてもよい。受信バッファーの容量と比較し、バッファーフルを判定することができる。
前記第2の読出ポインターにより検出した前記即時処理コマンドは、前記第1の読出ポインターで検出しても処理を行わないようにしてもよい。重複して処理することがない。
さらに、上記構成において、前記ホストコンピューターから受信した受信データを、前記コマンド検出部及び前記即時処理コマンド検出部によりそれぞれコマンドを検出する前に直接前記受信バッファーに格納させる受信制御部を備えるものとしてもよい。
この場合、受信データが、通常のコマンド及び即時処理コマンドを検出する処理の前に受信バッファーに格納され、この格納された受信バッファー内の受信データに対してそれぞれコマンドの検出が行われるので、ホストコンピューターから短時間に大量のデータを受信した場合であっても、全てのデータを確実に受信し、漏れなく解析を行ってコマンドを検出できる。
また、上記構成において、前記受信制御部は、前記ホストコンピューターのインターフェイスから受信した受信データを直接前記受信バッファーに転送する転送部を備えるものとしてもよい。
この場合、例えばホストコンピューターのUSBインターフェイスからの受信データをDMA(ダイレクトメモリーアクセス)などにより直接受信バッファーに転送して格納するので、ホストコンピューターとの間でより高速にデータを送受信することができ、かつ、受信データを漏れなく確実に受信バッファーに格納して解析できる。これにより、ホストコンピューターとの間の通信を高速化してスループットの向上を図ることができる。
また、本発明は、ホストコンピューターに接続可能であり、前記ホストコンピューターから即時処理コマンドを含むコマンドを含む受信データを受信するプリンターの制御方法であって、前記ホストコンピューターから受信した前記受信データを受信バッファーに格納し、前記受信バッファーに格納された前記受信データを、第1の読出ポインターを走査させながら読み取って前記コマンドを検出し、前記受信バッファーに格納された前記受信データを、前記第1の読出ポインターとは別に設けられた第2の読出ポインターを走査させながら読み取って前記即時処理コマンドを検出し、検出た前記コマンドを、前記受信バッファーへの格納順に処理し、検出した前記即時処理コマンドを、前記受信バッファーへの格納順に関わらず他のコマンドに優先して処理前記受信バッファーのバッファーフル状態を前記ホストコンピューターに通知した場合に、通知後に受信した前記受信データを即時処理コマンド用バッファーに格納し、前記第2の読出ポインターを前記受信バッファーで走査させた後に前記即時処理コマンド用バッファーで走査させ、前記即時処理コマンドを検出し、前記コマンド検出部は前記即時処理コマンド用バッファーで前記第1の読出ポインターを走査させないこと、を特徴とする。
この方法によれば、ホストコンピューターから受信した受信データが受信バッファーに格納され、この受信バッファーにおいて、通常のコマンド用の第1の読出ポインターと即時処理コマンド用の第2の読出ポインターとをそれぞれ個別に走査させて、通常のコマンドと即時処理コマンドとを別々に検出するので、ホストコンピューターからの受信データを受信バッファーに格納してからコマンドの検出を行う。これにより、ホストコンピューターから短時間に大量のデータを受信した場合であっても、全てのデータを確実に受信し、漏れなく解析を行ってコマンドを検出でき、通常のコマンドの実行状態に影響されることなく即時処理コマンドを速やかに検出できる。このため、受信データが大量であっても即時処理コマンドに速やかに処理できる。
また、本発明は、ホストコンピューターに接続可能であり、前記ホストコンピューターから即時処理コマンドを含むコマンドを含む受信データを受信するプリンターの各部を制御する制御部が実行するプログラムであって、前記制御部は、前記ホストコンピューターから受信して受信バッファーに格納された前記受信データを、第1の読出ポインターを走査させながら読み取って前記コマンドを検出し、前記受信バッファーに格納された前記受信データを、前記第1の読出ポインターとは別に設けられた第2の読出ポインターを走査させながら読み取って前記即時処理コマンドを検出し、検出た前記コマンドを、前記受信バッファーへの格納順に処理し、検出した前記即時処理コマンドを、前記受信バッファーへの格納順に関わらず他のコマンドに優先して処理し、前記受信バッファーのバッファーフル状態を前記ホストコンピューターに通知した場合に、通知後に受信した前記受信データを即時処理コマンド用バッファーに格納し、前記第2の読出ポインターを前記受信バッファーで走査させた後に前記即時処理コマンド用バッファーで走査させ、前記即時処理コマンドを検出し、前記コマンド検出部は前記即時処理コマンド用バッファーで前記第1の読出ポインターを走査させないこと、を特徴とする。
このプログラムを制御部によって実行することにより、ホストコンピューターから受信した受信データが受信バッファーに格納され、この受信バッファーにおいて、通常のコマンド用の第1の読出ポインターと即時処理コマンド用の第2の読出ポインターとをそれぞれ個別に走査させて、通常のコマンドと即時処理コマンドとを別々に検出するので、ホストコンピューターからの受信データを受信バッファーに格納してからコマンドの検出を行う。これにより、ホストコンピューターから短時間に大量のデータを受信した場合であっても、全てのデータを確実に受信し、漏れなく解析を行ってコマンドを検出でき、通常のコマンドの実行状態に影響されることなく即時処理コマンドを速やかに検出できる。このため、受信データが大量であっても即時処理コマンドに速やかに処理できる。
本発明によれば、ホストコンピューターから短時間に大量のデータを受信した場合であっても、全てのデータを確実に受信し、漏れなく解析を行ってコマンドを検出できるとともに、即時処理コマンドを速やかに検出して速やかに処理できる。
実施形態に係るPOS端末の概略構成を示す図である。 プリンターの構成を示すブロック図である。 プリンターの制御部の機能ブロック図である。 受信バッファー及びサブ受信バッファーの構成を模式的に示す図である。 プリンターの動作を示すフローチャートである。 プリンターの動作の詳細を示すフローチャートである。 プリンターの動作の詳細を示すフローチャートである。 ホストコンピューターとプリンターの接続形態の例を示す説明図である。
以下、図面を参照して本発明の実施形態について説明する。
図1は、本発明を適用した実施形態に係るPOS端末1の概略構成を示す図である。
POS端末1は、例えば小売店等の店頭に設置され、売上げ精算を行うレジスターであり、販売時点管理システム(POSシステム)を構成する。POS端末1は、売上登録処理及び精算処理を行うホストコンピューター4に、レシート101を発行するプリンター2を接続して構成される。ここで、ホストコンピューター4は、プリンター2に対して、外部接続された装置に相当する。また、ホストコンピューター4は、売上登録した情報を収集するPOSサーバー5に、通信回線を介して接続されている。ホストコンピューター4は、売上登録処理及び精算処理の処理内容を表示するディスプレイ41、売上登録処理時に商品に付されたバーコードを読み取るバーコードスキャナー42、売上登録キー等の各種キーを備えたキー入力部43、精算用の現金を収容するキャッシュドロワー44等を備えている。キャッシュドロワー44は、後述するようにプリンター2に接続され、プリンター2から入力されるドロワーオープン信号を受信したときに開く構成となっている。
記録装置(記録制御装置)としてのプリンター2は、本体11に記録媒体としての感熱ロール紙を収容し、印刷部ヘッドによりロール紙に画像を印刷(記録)して、レシート101を出力する。プリンター2は、ロール紙を搬送するローラー形状のプラテン(図示略)と、このプラテンに対向配置された印刷ヘッドとを備え、排紙口14の近傍には、ロール紙を切断するカッターユニット(図示略)が配置されている。本実施形態のプリンター2が備える印刷ヘッドは、例えば、発熱体(図示略)をロール紙の幅方向に、一列または複数列で並べて構成されるラインサーマルヘッドである。各々の発熱体には後述するプリントエンジン20により個別に通電され、ロール紙の印刷面(記録面)に密着する発熱体によってロール紙に熱エネルギーを与えることによって、ロール紙を発色させる。
印刷ヘッドによって印刷されたロール紙は、本体11の上面に形成された排紙口14から外に向けて搬送され、カッターユニットにより切断され、レシート101として出力される。レシート101には、店名や売り上げた商品名、商品数量、金額、合計金額等の文字、ロゴの画像等が印刷される。
また、図1に示すように、プリンター2の本体11には開閉可能なカバー12が設けられる。本体11には、カバー12を開くためのレバー13が設けられ、カバー12を開くと、ロール紙を収容する空間が露出し、ロール紙の補充や交換が可能になる。また、本体11には、プリンター2の電源をオン/オフさせる電源スイッチ16、ロール紙の紙送り動作を指示し、また制御時の所定の条件下で動作モードの切り替え等を指示する操作を行うための紙送りスイッチ17、及び、プリンター2の動作状態等を表示するためのLED表示部18が設けられている。
プリンター2は、プラテンローラーを回転させてロール紙を搬送する搬送モーター、カッターユニットを駆動してロール紙を切断するカッター駆動モーター、印刷ヘッドを駆動させて、ロール紙に対して文字や画像を記録する。
図2は、プリンター2の回路構成を示すブロック図である。
プリンター2は、実際の印刷を行うプリントエンジン20と、プリンター2の全体を制御する制御部21と、制御部21が実行する基本制御プログラムを記憶したROM22と、制御部21が実行する制御プログラム24A及びコマンド24B等を記憶したEEPROM24と、ホストコンピューター4から送信されるコマンドの受信制御を行う受信制御部25と、キャッシュドロワー44に接続されたインターフェイス部26と、紙送りスイッチ17(図1)における操作を検出する入力部27と、LED表示部18を制御して各種表示を行わせる表示部28と、プリンター2の各部の動作状態を監視するステータス監視部30と、受信制御部25により受信された受信データを一時的に格納するRAM等で構成された受信バッファー31及びサブ受信バッファー32(即時処理コマンド用バッファー)と、を備えている。
受信制御部25は、USBやRS232Cインターフェイス等の各種インターフェイスを有し、ホストコンピューター4が備える上記インターフェイスと、有線または無線接続される。
プリントエンジン20は、制御部21の制御に従って、ホストコンピューター4から送信された印刷データに基づき、記録媒体としてのロール紙に印刷する文字や画像を作成し、用紙端センサーや用紙残量センサー等の各種センサーの検出値を監視しながら、プリンター2が備える印刷ヘッド、カッター駆動モーター及び搬送モーターを動作させ、ロール紙への印刷を実行する。
このように、プリンター2は、紙や合成樹脂製の記録媒体(ロール紙、カット紙、複写紙等)の印刷面にインクやトナーを付着させ、或いは記録媒体の印刷面に熱を与える印刷ヘッド、記録媒体に対して印刷ヘッドを移動させる印刷ヘッド駆動機構、記録媒体を搬送する搬送機構等を備え、これら印刷ヘッド及び各種機構がプリントエンジン20によって制御される。
また、プリントエンジン20は、制御部21の制御に従って、入力部27によって紙送りスイッチ17の操作を検出した場合は搬送モーターを動作させてロール紙を所定量搬送し、プリンター2の動作状態等に合わせて表示部28を介してLED表示部18の各LEDの点灯状態を変化させる。
制御部21は、CPUや、実行するプログラムやデータ等を一時的に記憶するワークエリアとしてのメモリーを内蔵し、マイクロコンピューターとして機能し、ROM22に記憶された基本制御プログラムや、EEPROM24に記憶された制御プログラム24Aを実行する。
ROM22は、制御部21によってプリンター2の各部を初期化するとともに、これらの各部を制御するための基本制御プログラム、及び、この基本制御プログラムに係るデータ等を不揮発的に記憶する。
EEPROM24は、書き換え可能な不揮発性の記憶装置であり、制御プログラム24A、及びコマンド24Bを含む各種のプログラムやデータを記憶する。
受信制御部25は、ホストコンピューター4との間で所定の通信プロトコルを実行し、ホストコンピューター4から送信される信号を受信し、受信した信号を復調(デコード)して受信データを生成し、受信バッファー31及びサブ受信バッファー32に順次記憶する。受信制御部25は、例えば、通信ケーブルが接続されるコネクターと通信回路、或いは、無線通信回路とアンテナ等を備えている。
受信バッファー31は、受信制御部25が出力した受信データを順次記憶する一時記憶装置である。受信バッファー31には、受信制御部25がホストコンピューター4から受信したコマンド、及び、このコマンドに続く印刷データなどのデータが、区別なく、例えば64ビット毎に格納される。すなわち、受信制御部25は、ホストコンピューター4から受信した受信データを、コマンドを含むか否かの解析等を行うことなく受信バッファー31に格納する。
プリンター2が備えるステータス監視部30には、外部からプリンター2に供給される電源電圧を検出、カバー12の開閉状態、ロール紙の有無等を検出する各検出部が接続され、これらの検出部における検出状態に基づき、たとえば、プリンター2における電源電圧の異常、用紙補充やインクカートリッジの交換時に開閉されるプリンター2のカバー(図示略)が開いたこと、プリンター2の用紙切れ、紙送りスイッチ17の操作等のプリンター2における事象(イベント)の発生を示す検出信号を、制御部21に割り込み信号として出力する。
プリンター2の動作状態には、ホストコンピューター4との通信および印刷等を実行可能なオンライン状態と、必要最小限の動作しか行わないオフライン状態とがある。オフライン状態は、印字動作の続行が不適当な場合には、印字ヘッドを含む印字メカニズムを停止し、且つホストコンピューターとのインターフェイスを論理的な切断状態にして、印字装置および通信データの保全及び使用者の安全を確保しようとする状態であり、受信バッファー31がいっぱいになったり、カバーが開いていたり、用紙が無くなった等のオフライン要因の発生に伴って、制御部21はオフライン状態に移行する。通常動作を行っている間はオンライン状態である。オフライン状態で、ステータス監視部30がオフライン要因が解消したことを検出した場合に、オンライン状態に移行する。
オフライン状態に移行した場合、制御部21は、ホストコンピューター4に対してオフラインであることを通知し、ホストコンピューター4は、再びオンラインとなったことが通知されるまで、データの送信を停止する。この際、ホストコンピューター4はオフラインの通知を受けても、緊急的にリアルタイム制御コマンドを送信し処理させたいことがある。これに備えて、サブ受信バッファー32を用意し、オフラインを通知した後でもリアルタイム制御コマンドを優先して受信できるようにしている。
図3は、プリンター2の制御部21の機能的構成を示すブロック図である。
この図3に示すように、制御部21は、コマンド検出部21A、リアルタイム制御コマンド検出部(即時処理コマンド検出部)21B、及びコマンド実行部21Cとして機能し、これらの機能は、EEPROM24に記憶された制御プログラム24Aを、制御部21が実行することで実現される。
上述のように、受信制御部25は、ホストコンピューター4から受信した受信データを受信バッファー31に格納させる。受信バッファー31には受信制御部25により制御される書込ポインター31Aが設けられ、受信制御部25は書込ポインター31Aを移動させながら受信データを書き込む。
コマンド検出部21Aは、受信バッファー31に設けられた読出ポインター31C(第1の読出ポインター)を制御し、受信バッファー31で読出ポインター31Cを走査しながら受信データを読み出し、これらの受信データに含まれるコマンドを検出する。カウンター31Bは、受信データを受信バッファー31に書き込む書込ポインター31Aの書込位置を加算し、読出ポインター31Cの読出位置を減算してカウントする。このカウンター31Bは、受信バッファー31の受信データ量を示す。受信制御部25は、カウンター31Bの値と受信バッファー31の容量とを比較し、バッファーフルを判定しホストコンピューター4にバッファーフルを通知することができる。
図4は、受信バッファー31及びサブ受信バッファー32の構成例を模式的に示す図であり、図4Aは受信バッファー31の構成例を示し、図4Bはサブ受信バッファー32の構成例を示す。
図4Aに示すように、受信バッファー31が例えば4KB(キロバイト)の容量を持ち、ホストコンピューター4からの受信データDが64ビット単位で書き込まれる場合、書込ポインター31Aは先頭アドレス(0000)から64ビットずつ移動され、受信制御部25による書込が行われる。この書込ポインター31Aの後を追って、先頭アドレス(0000)から順に読出ポインター31Cが走査され、既に書き込まれた受信データDがコマンド検出部21A(図3)によって読み出され、コマンドの検出が行われる。
コマンド検出部21Aが検出したコマンドは、通常動作状態において、すなわち後述するオンライン状態において、コマンド実行部21Cによって検出された順に実行される。コマンド検出部21Aは、検出したコマンドをコマンド実行部21Cに引き渡して実行させるとともに、読み出した受信データを受信バッファー31から消去する。ここで、コマンド検出部21Aは、コマンドを消去せずに次回上書きしてもよい。コマンド実行部21Cは、コマンド検出部21Aにより検出されたコマンドを、受信バッファー31における格納順、すなわちコマンド検出部21Aが検出した検出順に実行する。このコマンドは、例えば、印刷実行、ロール紙搬送等のコマンドである。
また、受信バッファー31にはリアルタイム制御コマンド読出ポインター31D(第2の読出ポインター)が設けられる。リアルタイム制御コマンド読出ポインター31Dは、リアルタイム制御コマンド検出部21Bがリアルタイム制御コマンドを検出するための読出ポインターであって、先頭アドレス(0000)から順に受信バッファー31内で走査される。リアルタイム制御コマンド検出部21Bは、受信バッファー31に設けられたリアルタイム制御コマンド読出ポインター31Dを走査しながら受信データD(図4A)を読み出し、これらの受信データDに含まれるリアルタイム制御コマンドを検出する。
リアルタイム制御コマンド検出部21Bが検出したリアルタイム制御コマンドは、コマンド実行部21Cによって、オフライン状態であるかオンライン状態であるかに関わらず、リアルタイム制御コマンド検出部21Bが検出した順に即座に実行される。リアルタイム制御コマンド(即時処理コマンド)としては、ステータス通知の送信を指示するステータス要求コマンド、受信バッファー31及びサブ受信バッファー32の全消去を指示するバッファークリアコマンド、キャッシュドロワー44の開動作を指示するドロワーオープンコマンド等がある。
図4Aに示すように、リアルタイム制御コマンド読出ポインター31Dは、読出ポインター31Cよりも先行するように走査される。これは、リアルタイム制御コマンドが、通常のコマンドの処理対象データの中に含まれることがあるためである。すなわち、リアルタイム制御コマンドを含む受信データDが通常コマンドを伴う場合には、通常コマンドがコマンド検出部21Aにより検出された際にコマンド実行部21Cによって実行され、その後に消去されてしまう。このとき、リアルタイム制御コマンドを実行しないまま消去することを防ぐため、リアルタイム制御コマンド読出ポインター31Dは読出ポインター31Cよりも先行する。これにより、リアルタイム制御コマンドが通常のコマンドの処理対象データに含まれていても、この通常のコマンドより先に検出されて実行されるので、漏れなくリアルタイム制御コマンドに応答できるという利点がある。また、リアルタイム制御コマンド読出ポインター31Dは読出ポインター31Cを追い越さないようにしている。
さらに、図3に示すように、受信制御部25には、受信バッファー31とともにサブ受信バッファー32が接続されている。サブ受信バッファー32は、受信バッファー31がバッファーフルとなった後に受信データが格納される領域である。サブ受信バッファー32には、受信制御部25により制御される書込ポインター32Aと、リアルタイム制御コマンド検出部21Bにより制御されるリアルタイム制御コマンド読出ポインター32Bとが設けられており、受信制御部25は書込ポインター32Aを先頭アドレス(0000)から64ビットずつ移動させ書込を行うが、コマンド検出部21Aが通常のコマンドを検出するための読出ポインターは設けられていない。
受信バッファー31がバッファーフルとなって、ホストコンピューター4に対してバッファーフルが通知された場合には、ホストコンピューター4からのデータ送信は停止されるはずであるが、オフラインを通知した時点で既にホストコンピューター4から送信されていたデータがある場合、ホストコンピューター4が緊急的にリアルタイム制御コマンドを送信し処理をしたい場合には、バッファーフルとなった後に受信制御部25により受信される。この受信データは受信バッファー31に格納できないため、プリンター2は、このような受信データを格納するための領域としてサブ受信バッファー32を備えている。サブ受信バッファー32に格納される受信データに通常のコマンドが含まれていても、制御部21は、このコマンドを実行の対象としない。サブ受信バッファー32内の受信データはバッファーフルとなった後に受信されたデータであり、バッファーフルが解消してから再び受信すればよいからである。一方、サブ受信バッファー32の受信データにリアルタイム制御コマンドが含まれている場合、このリアルタイム制御コマンドは即座に実行する必要がある。このため、サブ受信バッファー32には読出ポインターとしてリアルタイム制御コマンド読出ポインター32Bのみが設けられ、リアルタイム制御コマンド検出部21Bがリアルタイム制御コマンドを検出する。そして、サブ受信バッファー32において検出されたリアルタイム制御コマンドは、受信バッファー31で検出されたリアルタイム制御コマンドと同様に、コマンド実行部21Cにより即座に実行される。
図5は、プリンター2の動作を示すフローチャートであり、ホストコンピューター4からデータを受信する場合のプリンター2の動作を示す。
プリンター2は、受信制御部25の機能によってホストコンピューター4から受信制御部25によってデータを受信すると(ステップS1)、受信制御部25の機能により受信バッファー31に書込を行う(ステップS2)。ここで、制御部21は受信バッファー31がいっぱいになっている(バッファーフル)か否かを判別し(ステップS3)、バッファーフルであった場合(ステップS3;Yes)、ホストコンピューター4に対して受信制御部25を介してバッファーフル(オフライン)を通知し(ステップS4)、受信バッファー31に書き込めなかった受信データとバッファーフルの通知後に受信した受信データとをサブ受信バッファー32に書き込む(ステップS5)。カウンター31Bの値に基づき、バッファーフルに相当するか、バッファーフルに相当しないか、として判別してもよい。
ここで、制御部21は、リアルタイム制御コマンド検出部21Bの機能によるリアルタイム制御コマンド検出処理を開始し(ステップS6)、かつ、コマンド検出部21Aの機能によるコマンド検出処理を開始し(ステップS7)、本処理を終了する。
また、受信バッファー31がバッファーフルでない場合には(ステップS3;No)、ステップS3からステップS6に移行して、リアルタイム制御コマンド検出処理及びコマンド検出処理を実行し、本処理を終了する。
図6は、図5のステップS6で開始されるリアルタイム制御コマンド検出処理の詳細を示すフローチャートである。
この図6に示すように、リアルタイム制御コマンド検出処理において、制御部21は、まず、受信バッファー31におけるリアルタイム制御コマンド読出ポインター31Dの位置(アドレス)(RTRP)が書込ポインター31Aの位置(アドレス)(WP)に達しているか否かを判別する(ステップS11)。リアルタイム制御コマンド読出ポインター31Dが書込ポインター31Aの位置に達していなければ(ステップS11;Yes)、制御部21は、リアルタイム制御コマンド検出部21Bの機能により受信バッファー31内の受信データDを読み出し、リアルタイム制御コマンドを検出する(ステップS12)。ここで、制御部21は、読み出した受信データDにリアルタイム制御コマンドがあるか否かを判別し(ステップS13)、リアルタイム制御コマンドがない場合はステップS11に戻り、リアルタイム制御コマンドを検出した場合は、検出したリアルタイム制御コマンドをコマンド実行部21Cにより実行する(ステップS14)。ここで、リアルタイム制御コマンドの実行は制御部21の割込処理として実行されるので、制御部21がコマンド実行部21Cの機能により実行している動作があっても、その動作を中断してリアルタイム制御コマンドが実行され、ステータス通知、キャッシュドロワー44の開動作、受信バッファー31及びサブ受信バッファー32のクリア等が実行される。その後、制御部21は、コマンド実行部21Cが実行したリアルタイム制御コマンドを消去して(ステップS15)、ステップS11に戻る。
また、受信バッファー31においてリアルタイム制御コマンド読出ポインター31Dの位置が書込ポインター31Aの位置に達している場合(ステップS11;No)、制御部21は、サブ受信バッファー32における検出動作に移行する(ステップS16)。
制御部21は、サブ受信バッファー32のリアルタイム制御コマンド読出ポインター32Bの位置(RTRP)が、書込ポインター32Aの位置(WP)に達しているか否かを判別し(ステップS17)、リアルタイム制御コマンド読出ポインター32Bが書込ポインター32Aの位置に達していなければ(ステップS17;Yes)、リアルタイム制御コマンド検出部21Bの機能によりサブ受信バッファー32内の受信データDを読み出し、リアルタイム制御コマンドを検出する(ステップS18)。
制御部21は、読み出した受信データDにリアルタイム制御コマンドがあるか否かを判別し(ステップS19)、リアルタイム制御コマンドがない場合はステップS17に戻り、リアルタイム制御コマンドを検出した場合は、検出したリアルタイム制御コマンドをコマンド実行部21Cにより実行する(ステップS20)。ここで、リアルタイム制御コマンドの実行は割込処理として実行されるので、制御部21がコマンド実行部21Cの機能により実行している動作があっても、その動作を中断してリアルタイム制御コマンドが実行され、ステータス通知、キャッシュドロワー44の開動作、受信バッファー31及びサブ受信バッファー32のクリア等が実行される。その後、制御部21は、コマンド実行部21Cが実行したリアルタイム制御コマンドを消去して(ステップS21)、ステップS17に戻る。
そして、サブ受信バッファー32においてリアルタイム制御コマンド読出ポインター31Dの位置が書込ポインター31Aの位置に達している場合(ステップS17;No)、本処理を終了する。
図7は、図5のステップS7で開始されるコマンド検出処理の詳細を示すフローチャートである。
この図7に示すように、コマンド検出処理において、制御部21は、まず、受信バッファー31における読出ポインター31Cの位置(アドレス)(RP)が書込ポインター31Aの位置(アドレス)(WP)に達しているか否かを判別し(ステップS31)、読出ポインター31Cが書込ポインター31Aの位置に達していなければ(ステップS31;Yes)、コマンド検出部21Aの機能により受信バッファー31内の受信データDを読み出し、コマンドを検出する(ステップS32)。制御部21は、カウンター31Bの値に基づき、判別してもよい。
ここで、制御部21は、読み出した受信データDにコマンドがあるか否かを判別し(ステップS33)、コマンドがない場合はステップS31に戻り、コマンドを検出した場合は、検出したコマンドをコマンド実行部21Cにより実行する(ステップS34)。ここで、検出されたコマンドは、受信バッファー31に格納された順に、コマンド実行部21Cにより実行される。その後、制御部21は、コマンド実行部21Cが実行したコマンドを消去する(ステップS35)。ここで、制御部21は、コマンドを消去せず、次回上書きしてもよい。
ここで、制御部21は、ステータス監視部30によって、プリンター2にオフライン要因が発生しているか否かを判別する(ステップS36)。オフライン要因が発生していない場合(ステップS36;No)、制御部21はステップS31に戻り、オフライン要因が発生している場合は(ステップS36;Yes)、ホストコンピューター4に対してオフライン通知を送信し(ステップS37)、コマンド実行部21Cによるコマンドの実行を停止するとともに読出ポインター31Cからの読み出しを停止し(ステップS38)、オフライン要因が解消するまで待機する(ステップS39)。制御部21は、オフライン要因が解消した場合はステップS11に戻り、オフライン要因が所定時間以内に解消しない場合は(ステップS39;No)、本処理を終了する。
また、受信バッファー31において読出ポインター31Cが書込ポインター31Aの位置に達している場合は(ステップS31;No)、本処理を終了する。
以上のように、本発明を適用した実施形態に係るPOS端末1によれば、ホストコンピューター4から受信した受信データが受信バッファー31に格納され、この受信バッファー31において、通常のコマンド用の読出ポインター31Cとリアルタイム制御コマンド用のリアルタイム制御コマンド読出ポインター31Dとをそれぞれ個別に走査させて、通常のコマンドとリアルタイム制御コマンドとを別々に検出する。このため、ホストコンピューター4からの受信データを受信バッファー31に格納してからコマンドの検出を行うので、ホストコンピューター4から短時間に大量のデータを受信した場合であっても、全てのデータを確実に受信し、漏れなく解析を行ってコマンドを検出できる。そして、リアルタイム制御コマンドを、通常のコマンドとは別の読出ポインターを走査して検出するので、通常のコマンドの実行状態に影響されることなくリアルタイム制御コマンドを速やかに検出できる。このため、受信データが大量であってもリアルタイム制御コマンドに速やかに応答できる。
ここで、通常のコマンドの実行を停止するオフライン状態においても、リアルタイム制御コマンドを実行するようにしてもよい。この場合は、オフライン状態であってもリアルタイム制御コマンドに速やかに応答できるという利点がある。
また、プリンター2は、受信バッファー31がバッファーフルとなった後に受信した受信データを格納するサブ受信バッファー32を備え、サブ受信バッファー32ではリアルタイム制御コマンド読出ポインター32Bが走査され、リアルタイム制御コマンド検出部21Bによってリアルタイム制御コマンドが検出されるので、受信データの容量が多く受信バッファー31がバッファーフルになった場合であっても、バッファーフルになった後に受信した受信データからリアルタイム制御コマンドを検出して実行できるので、大量の受信データを受信した場合であってもリアルタイム制御コマンドに速やかに応答できる。また、バッファーフルの場合は通常、コマンドの検出や実行を行わないオフライン状態となるが、本発明の構成では、通常のコマンドとは別にリアルタイム制御コマンドを検出して実行できるので、通常のコマンドの実行状態に影響されることなく、リアルタイム制御コマンドに速やかに応答できる。
さらに、受信制御部25は、受信データを、コマンド検出部21A及びリアルタイム制御コマンド検出部21Bによりコマンドを検出する前に直接受信バッファー31に格納させるので、ホストコンピューター4から短時間に大量のデータを受信した場合であっても、全てのデータを確実に受信し、漏れなく解析を行ってコマンドを検出できる。
さらにまた、受信バッファー31では、リアルタイム制御コマンド読出ポインター31Dが読出ポインター31Cよりも先行して走査されるので、通常のコマンドの検出及び実行状態に影響されることなくリアルタイム制御コマンドを速やかに検出できる。
また、読出ポインター31Cの読出位置をカウントするカウンター31Bを備え、このカウンター31Bはリアルタイム制御コマンド読出ポインター31Dの走査でカウントアップされないので、通常のコマンドの検出及び実行状態に影響されることなく、かつ、通常のコマンドの検出動作に影響を与えないように、リアルタイム制御コマンドを速やかに検出できる。
ここで、図8を参照して、具体的なホストコンピューター4とプリンター2との接続形態を例に挙げて説明する。図8(A)は、ホストコンピューター4とプリンター2とをUSB通信インターフェイスにより接続される態様を示し、図8(B)は、ホストコンピューター4とプリンター2とをRS232Cシリアル通信インターフェイスにより接続される態様を示す。
図8(A)に示す例では、ホストコンピューター4がUSBコントローラー4Aを備え、受信制御部25はUSBコントローラー25Aを備えており、USBコントローラー4AとUSBコントローラー25Aとの間で、USBコネクションが確立され、データが電送される。USBコントローラー4Aはマスターデバイスとして機能し、USBコントローラー25Aはスレーブデバイスとして機能する。
USBコントローラー4AとUSBコントローラー25Aとの間では、予め設定されたサイズのパケットとしてデータが送受信される。USBコントローラー4A、25Aは、USBコントローラー4Aから送信した1または数パケットをUSBコントローラー25Aが受信する毎に、USBコントローラー25Aから受信確認の応答を送信する制御を行うことが可能である他、USBコントローラー25Aの応答なしにUSBコントローラー4Aからまとまった数のデータパケットを送信する強制送信動作を行うこともできる。
また、USBコントローラー25A(転送部)は、USBコントローラー4Aから受信した受信データを、制御部21の制御を介さずに受信バッファー31やサブ受信バッファー32に格納するDMA転送機能を備える。このDMA転送機能によって、USBコントローラー25Aと受信バッファー31やサブ受信バッファー32との間では高速にデータを送受信でき、スループットの向上を図ることができる。さらに、受信データを漏れなく受信バッファー31に格納して解析できる。この構成において、上述したように、受信バッファー31に読出ポインター31Cとは別にリアルタイム制御コマンド読出ポインター31Dを設け、このリアルタイム制御コマンド読出ポインター31Dを走査してリアルタイム制御コマンドを検出し、検出したリアルタイム制御コマンドを読出ポインター31Cにより割込実行するので、リアルタイム制御コマンドに対して迅速かつ確実に応答できる。
さらに、受信バッファー31がバッファーフルとなった場合であっても、サブ受信バッファー32に受信データを格納するので、強制送信機能により多量のデータがまとめて送信された場合であっても、漏れなく、リアルタイム制御コマンドを受信して実行できる。
また、図8(B)に示す例では、ホストコンピューター4がシリアル通信コントローラー4Bを備え、受信制御部25はシリアル通信コントローラー25Bを備えており、シリアル通信コントローラー4B、25B間でシリアル通信ケーブルを介してデータが送信される。シリアル通信コントローラー4B、25B間では様々な通信プロトコルを実行可能であり、例えば、シリアル通信コントローラー4Bからデータを送信した後、シリアル通信コントローラー25Bがデータ受信確認を送信したことを確認してから、次のデータがシリアル通信コントローラー4Bから送信される手順を実行してもよいし、フロー制御を行わない無手順通信とすることもできる。また、シリアル通信コントローラー25Bの応答を確認せずまとまった量のデータをシリアル通信コントローラー4Bから送信する強制送信動作を行うこともできる。
また、シリアル通信コントローラー25Bは、シリアル通信コントローラー4Bから受信した受信データを、制御部21の制御を介さずに受信バッファー31に格納する。この機能によって、シリアル通信コントローラー4B、25A間で強制送信が行われた場合に、応答の送受信によるオーバーヘッドを減らして高速にデータを送受信でき、スループットの向上を図ることができ、さらに、受信データを漏れなく受信バッファー31に格納して解析できる。この構成において、上述したように、受信バッファー31に読出ポインター31Cとは別にリアルタイム制御コマンド読出ポインター31Dを設け、このリアルタイム制御コマンド読出ポインター31Dを走査してリアルタイム制御コマンドを検出し、検出したリアルタイム制御コマンドを読出ポインター31Cにより割込実行するので、リアルタイム制御コマンドに対して迅速かつ確実に応答できる。さらに、受信バッファー31がバッファーフルとなった場合にサブ受信バッファー32に受信データを格納するので、強制送信機能により多量のデータがまとめて送信された場合であっても、漏れなく、リアルタイム制御コマンドを受信して実行できる。
また、図8(A)に示したようにUSBインターフェイスを介してデータを送受信する場合、USBコントローラー25AはUSBコントローラー4Aから受信した受信データの一部を保持する機能を持っているため、強制送信機能により多量のデータがまとめて送信された場合に一部のデータを保持しておき、受信バッファー31の容量が回復してから、USBコントローラー25Aが保持していた受信データを受信バッファー31に書き込めるが、シリアル通信コントローラー25Bは、このような機能を持たない。本実施形態の構成では、受信バッファー31に加えてサブ受信バッファー32を有するので、受信制御部25自身が受信データを保持する機能を持っていても、持たなくても、漏れなく受信データを格納してリアルタイム制御コマンドを検出及び実行できる。
なお、上記実施形態は本発明を適用した一具体例を示すものであり、本発明はこれに限定されるものではない。例えば、上記実施形態においては、受信バッファー31とサブ受信バッファー32とが別体としてプリンター2に設けられた構成を例に挙げて説明したが、本発明はこれに限定されるものではなく、受信バッファー31とサブ受信バッファー32とが1つの記憶デバイス上に仮想的に分離して設けられた記憶領域であってもよい。また、図2及び図3に示す各機能部はハードウェアとソフトウェアの協働により任意に実現可能であり、特定のハードウェア構成を示唆するものではない。さらに、上記実施形態では、POS端末1において、レシート101を印刷するプリンター2に本発明を適用する場合について説明したが、本発明はこれに限定されるものではなく、独立して機能するプリンターに、各種の通信手段を介してホストコンピューター4を接続した構成が挙げられ、例えば、LANを介してプリンター2が複数のホストコンピューター4に接続されていてもよい。また、例えば、ホストコンピューター4と受信制御部25とが実行する通信プロトコルや通信規格は特に制限されず、任意のものを適用可能である。さらに、上記実施形態では、プリンター2自身が制御部21、受信制御部25、受信バッファー31及びサブ受信バッファー32を備えた構成を例に挙げて説明したが、例えば、制御部21、受信制御部25、受信バッファー31及びサブ受信バッファー32を備えた制御装置を、プリンター2に外部接続される別の装置としてもよい。
また、本発明を適用可能な記録装置は、コマンドに従って動作可能なプリンターであれば特に制限されず、インクジェット式プリンター、ドットインパクト式プリンター、レーザープリンター、熱昇華型プリンターのいずれであってもよく、他の方式で文字や画像を形成するプリンターであってもよいし、他の装置に組み込まれるプリンターであってもよい。また、電子媒体に記録するものでもよい。
また、本発明を適用可能なプログラムは、ホストコンピューター4に搭載されるプリンタードライバーに含むものであってもよい。
1…POS端末、2…プリンター(記録装置、記録制御装置)、4…ホストコンピューター、20…プリントエンジン、21…制御部、21A…コマンド検出部、21B…リアルタイム制御コマンド検出部(即時処理コマンド検出部)、21C…コマンド実行部、24…EEPROM、24A…制御プログラム(プログラム)、25…受信制御部、25A…USBコントローラー(転送部)、31…受信バッファー、31C…読出ポインター(第1の読出ポインター)、31D…リアルタイム制御コマンド読出ポインター(第2の読出ポインター)、32…サブ受信バッファー(即時処理コマンド用バッファー)。

Claims (8)

  1. ホストコンピューターに接続可能であり、前記ホストコンピューターから即時処理コマンドを含むコマンドを含む受信データを受信するプリンターであって、
    前記ホストコンピューターから受信した前記受信データを格納する受信バッファーと、
    前記受信バッファーに格納された前記受信データを、第1の読出ポインターを走査させながら読み取って前記コマンドを検出するコマンド検出部と、
    前記受信バッファーに格納された前記受信データを、前記第1の読出ポインターとは別に設けられた第2の読出ポインターを走査させながら読み取って前記即時処理コマンドを検出する即時処理コマンド検出部と、
    前記コマンド検出部により検出された前記コマンドを、前記受信バッファーへの前記コマンドの格納順に処理し、前記即時処理コマンド検出部により検出された前記即時処理コマンドを、前記受信バッファーへの格納順に関わらず他のコマンドに優先して処理するコマンド実行部と、
    前記受信バッファーのバッファーフル状態を前記ホストコンピューターに通知する制御部と、
    前記ホストコンピューターにバッファーフル状態を通知した後に受信した前記受信データを格納する即時処理コマンド用バッファーと、を備え、
    前記即時処理コマンド検出部は前記第2の読出ポインターを前記受信バッファーで走査させた後に前記即時処理コマンド用バッファーで走査させ、前記即時処理コマンドを検出し、前記コマンド検出部は前記即時処理コマンド用バッファーで前記第1の読出ポインターを走査させないこと、
    を特徴とするプリンター。
  2. 前記制御部は、前記受信バッファーのバッファーフル状態を前記ホストコンピューターに通知してオフラインに移行し、
    前記即時処理コマンド用バッファーに、制御部がオフラインに移行した後に受信した前記受信データを格納すること、
    を特徴とする請求項1記載のプリンター。
  3. 前記第2の読出ポインターは前記第1の読出ポインターよりも先行して前記受信バッファーを走査すること、を特徴とする請求項1または2記載のプリンター。
  4. 前記第2の読出ポインターにより検出した前記即時処理コマンドは、前記第1の読出ポインターで検出しても処理を行わないこと、を特徴とする請求項1から3のいずれかに記載のプリンター。
  5. 前記ホストコンピューターから受信した前記受信データを、前記コマンド検出部及び前記即時処理コマンド検出部によりそれぞれ前記コマンドを検出する前に直接前記受信バッファーに格納させる受信制御部を備えること、を特徴とする請求項1から4のいずれかに記載のプリンター。
  6. 前記受信制御部は、前記ホストコンピューターのインターフェイスから受信した前記受信データを直接前記受信バッファーに転送する転送部を備えること、を特徴とする請求項5記載のプリンター。
  7. ホストコンピューターに接続可能であり、前記ホストコンピューターから即時処理コマンドを含むコマンドを含む受信データを受信するプリンターの制御方法であって、
    前記ホストコンピューターから受信した前記受信データを受信バッファーに格納し、
    前記受信バッファーに格納された前記受信データを、第1の読出ポインターを走査させながら読み取って前記コマンドを検出し、
    前記受信バッファーに格納された前記受信データを、前記第1の読出ポインターとは別に設けられた第2の読出ポインターを走査させながら読み取って前記即時処理コマンドを検出し、
    検出た前記コマンドを、前記受信バッファーへの格納順に処理し、検出した前記即時処理コマンドを、前記受信バッファーへの格納順に関わらず他のコマンドに優先して処理
    前記受信バッファーのバッファーフル状態を前記ホストコンピューターに通知した場合に、通知後に受信した前記受信データを即時処理コマンド用バッファーに格納し、
    前記第2の読出ポインターを前記受信バッファーで走査させた後に前記即時処理コマンド用バッファーで走査させ、前記即時処理コマンドを検出し、前記コマンド検出部は前記即時処理コマンド用バッファーで前記第1の読出ポインターを走査させないこと、
    を特徴とするプリンターの制御方法。
  8. ホストコンピューターに接続可能であり、前記ホストコンピューターから即時処理コマンドを含むコマンドを含む受信データを受信するプリンターの各部を制御する制御部が実行するプログラムであって、
    前記制御部は、前記ホストコンピューターから受信して受信バッファーに格納された前記受信データを、第1の読出ポインターを走査させながら読み取って前記コマンドを検出し、
    前記受信バッファーに格納された前記受信データを、前記第1の読出ポインターとは別に設けられた第2の読出ポインターを走査させながら読み取って前記即時処理コマンドを検出し、
    検出た前記コマンドを、前記受信バッファーへの格納順に処理し、検出した前記即時処理コマンドを、前記受信バッファーへの格納順に関わらず他のコマンドに優先して処理し、
    前記受信バッファーのバッファーフル状態を前記ホストコンピューターに通知した場合に、通知後に受信した前記受信データを即時処理コマンド用バッファーに格納し、
    前記第2の読出ポインターを前記受信バッファーで走査させた後に前記即時処理コマンド用バッファーで走査させ、前記即時処理コマンドを検出し、前記コマンド検出部は前記即時処理コマンド用バッファーで前記第1の読出ポインターを走査させないこと、
    を特徴とするプログラム。
JP2009262005A 2009-11-17 2009-11-17 プリンター、プリンターの制御方法、及び、プログラム Expired - Fee Related JP5593682B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2009262005A JP5593682B2 (ja) 2009-11-17 2009-11-17 プリンター、プリンターの制御方法、及び、プログラム
BRPI1004605-4A BRPI1004605A2 (pt) 2009-11-17 2010-11-11 dispositivo de controle de registro, método de controle de aparelho de registro, programa e meio de registro
CN201010548824.4A CN102145597B (zh) 2009-11-17 2010-11-12 记录装置、记录装置的控制方法以及记录介质
US12/946,786 US8595395B2 (en) 2009-11-17 2010-11-15 Recording device, method of controlling recording device, program, and recording medium
KR1020100113770A KR101838747B1 (ko) 2009-11-17 2010-11-16 기록 장치, 기록 장치의 제어 방법, 및 기록 매체
EP10191486.9A EP2323073B1 (en) 2009-11-17 2010-11-17 Recording device, method of controlling recording device, program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009262005A JP5593682B2 (ja) 2009-11-17 2009-11-17 プリンター、プリンターの制御方法、及び、プログラム

Publications (3)

Publication Number Publication Date
JP2011104861A JP2011104861A (ja) 2011-06-02
JP2011104861A5 JP2011104861A5 (ja) 2012-12-20
JP5593682B2 true JP5593682B2 (ja) 2014-09-24

Family

ID=43639998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009262005A Expired - Fee Related JP5593682B2 (ja) 2009-11-17 2009-11-17 プリンター、プリンターの制御方法、及び、プログラム

Country Status (6)

Country Link
US (1) US8595395B2 (ja)
EP (1) EP2323073B1 (ja)
JP (1) JP5593682B2 (ja)
KR (1) KR101838747B1 (ja)
CN (1) CN102145597B (ja)
BR (1) BRPI1004605A2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5817193B2 (ja) 2011-04-15 2015-11-18 セイコーエプソン株式会社 記録装置、記録装置の制御方法、及び、プログラム
CN102765263B (zh) * 2012-07-11 2015-09-02 杭州大正恒科技有限责任公司 一种打印机装置
KR102029806B1 (ko) * 2012-11-27 2019-10-08 삼성전자주식회사 선입선출 버퍼를 포함하는 시스템 온 칩, 응용 프로세서 및 그것을 포함하는 모바일 장치
CN103253003A (zh) * 2013-05-27 2013-08-21 江苏天使电子科技有限公司 支票打印机
JP6241383B2 (ja) * 2014-07-14 2017-12-06 京セラドキュメントソリューションズ株式会社 画像形成装置及び画像形成システム
CN106652265B (zh) * 2016-11-11 2023-02-28 深圳怡化电脑股份有限公司 一种自助终端的出票装置及自助终端
JP7172244B2 (ja) * 2018-07-26 2022-11-16 セイコーエプソン株式会社 印刷装置、及び印刷装置の制御方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448702A (en) * 1993-03-02 1995-09-05 International Business Machines Corporation Adapters with descriptor queue management capability
JPH06262809A (ja) * 1993-03-12 1994-09-20 Canon Inc プリンタ制御方式
US5754764A (en) * 1994-02-22 1998-05-19 National Semiconductor Corp. Combination of input output circuitry and local area network systems
JP3518833B2 (ja) * 1996-09-27 2004-04-12 株式会社リコー 情報処理装置及び画像形成装置
JP4086345B2 (ja) * 1997-09-09 2008-05-14 キヤノン株式会社 通信制御方法及び装置及び通信システム
JP3582696B2 (ja) * 1998-09-29 2004-10-27 富士ゼロックス株式会社 プリンタ、サーバ装置、クライアント装置、印刷制御装置、印刷システム、記録媒体、及び印刷方法
JP2001260435A (ja) * 2000-03-17 2001-09-25 Ricoh Co Ltd 画像形成装置
JP4865140B2 (ja) * 2000-03-17 2012-02-01 セイコーエプソン株式会社 プリンタ、受信データの処理方法及びプログラム
JP3520500B2 (ja) 2000-07-26 2004-04-19 セイコーエプソン株式会社 プリンタ、プリンタの制御方法、そのためのプログラム、及び、そのプログラムを記録した記録媒体
JP2002120094A (ja) 2000-10-16 2002-04-23 Babcock Hitachi Kk 開先合せ用架台
JP3826066B2 (ja) * 2002-04-15 2006-09-27 キヤノン株式会社 記録装置及び記録装置の制御方法
CN100350373C (zh) * 2003-01-31 2007-11-21 佳能株式会社 图像提供装置、记录设备、记录系统及其控制方法
US7659904B2 (en) * 2003-04-07 2010-02-09 Ati Technologies Ulc System and method for processing high priority data elements
JP4536361B2 (ja) * 2003-11-28 2010-09-01 株式会社日立製作所 データ転送装置、記憶デバイス制御装置、記憶デバイス制御装置の制御方法
TWI268669B (en) * 2005-05-27 2006-12-11 Bluepacket Communications Co Ltd System and method for wireless signal transmission establishing an inter-transmission and exchange of files between a computer peripheral and a host system through a wireless signal transmission module
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
JP4066383B2 (ja) * 2006-07-06 2008-03-26 シチズンホールディングス株式会社 通信装置および通信制御方法、並びに当該通信装置を備えたプリンタ
JP5135929B2 (ja) * 2007-07-17 2013-02-06 セイコーエプソン株式会社 複合処理装置、複合処理システム及び複合処理システムの制御方法
US20090027714A1 (en) * 2007-07-25 2009-01-29 Kuhn William C Job startup control for job queuing

Also Published As

Publication number Publication date
JP2011104861A (ja) 2011-06-02
BRPI1004605A2 (pt) 2012-07-03
EP2323073A2 (en) 2011-05-18
CN102145597A (zh) 2011-08-10
US20110119415A1 (en) 2011-05-19
US8595395B2 (en) 2013-11-26
KR101838747B1 (ko) 2018-04-26
EP2323073A3 (en) 2017-05-31
EP2323073B1 (en) 2018-09-05
CN102145597B (zh) 2015-03-25
KR20110055420A (ko) 2011-05-25

Similar Documents

Publication Publication Date Title
JP5593682B2 (ja) プリンター、プリンターの制御方法、及び、プログラム
US7869063B2 (en) Printing apparatus, printer control method, printer control program, and printing system
JP7381676B2 (ja) 印刷装置及びその制御方法
CN108068478B (zh) 印刷装置以及印刷装置的控制方法
JP5817193B2 (ja) 記録装置、記録装置の制御方法、及び、プログラム
US9058133B2 (en) Control device, control method for a control device, and recording medium
US20090207444A1 (en) Printer and control method for a printer
JP5655453B2 (ja) 電子機器、電子機器の制御方法、及び、プログラム
JP2004082348A (ja) 記録装置
JP2011068022A (ja) 記録装置、記録装置の制御方法、及び、プログラム
JP2011098440A (ja) 記録装置、記録装置の制御方法、及び、プログラム
JP2011088373A (ja) 記録装置、記録装置の制御方法、及び、プログラム
JP4251029B2 (ja) 印刷装置及びその制御方法
EP3862866B1 (en) State monitoring in printer system
JP2004090443A (ja) プリンタ、プリンタにおけるステータス情報の出力方法、その方法を実行するためのプログラム、そのプログラムを記録したコンピュータ読取り可能な記録媒体、および、プリンタシステム
JP2011084027A (ja) 記録装置、記録装置の制御方法、及び、プログラム
JP5318652B2 (ja) 非接触icリードライトシステム、非接触icリーダライタ装置およびプリンタ装置
JP2007031015A (ja) プリンター装置
JP2006192910A (ja) 印刷装置、その制御方法及び記録媒体
JP2000132357A (ja) 端末装置
JP2012101391A (ja) 記録装置、記録装置の制御方法、及び、プログラム
JP2007112577A (ja) プリンター装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121107

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130917

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140708

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140721

R150 Certificate of patent or registration of utility model

Ref document number: 5593682

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees