JP5655453B2 - 電子機器、電子機器の制御方法、及び、プログラム - Google Patents

電子機器、電子機器の制御方法、及び、プログラム Download PDF

Info

Publication number
JP5655453B2
JP5655453B2 JP2010207545A JP2010207545A JP5655453B2 JP 5655453 B2 JP5655453 B2 JP 5655453B2 JP 2010207545 A JP2010207545 A JP 2010207545A JP 2010207545 A JP2010207545 A JP 2010207545A JP 5655453 B2 JP5655453 B2 JP 5655453B2
Authority
JP
Japan
Prior art keywords
command
immediate execution
area
written
buffer
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
JP2010207545A
Other languages
English (en)
Other versions
JP2012061713A (ja
JP2012061713A5 (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 JP2010207545A priority Critical patent/JP5655453B2/ja
Priority to US13/234,396 priority patent/US8769170B2/en
Publication of JP2012061713A publication Critical patent/JP2012061713A/ja
Publication of JP2012061713A5 publication Critical patent/JP2012061713A5/ja
Application granted granted Critical
Publication of JP5655453B2 publication Critical patent/JP5655453B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/40Details not directly involved in printing, e.g. machine management, management of the arrangement as a whole or of its constitutive parts
    • G06K15/4005Sharing resources or data with other data processing systems; Preparing such data
    • G06K15/402Sharing data concerning the arrangement's configuration or current state
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G5/00Receipt-giving machines

Landscapes

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

Description

本発明は、ホストコンピューターからコマンドを受信する電子機器、当該電子機器の制御方法、及び、当該電子機器を制御するためのプログラムに関する。
従来、上位装置としてのホストコンピューターから送信されるコマンドに従って動作する電子機器が知られている(例えば、特許文献1参照)。このような電子機器がホストコンピューターから受信するコマンドには、通常のコマンドとは別に、電子機器のステータス返送指示やリセット指示のコマンドなど即座に実行することを要求する即時実行コマンドがある。
特開2001−260435号公報
上述したような電子機器では、即時実行コマンドが入力された場合、ジョブの待ち状態にかかわらず、当該即時実行コマンドに係る処理について即座に実行することが求められる。このため、例えば、コマンドを一時的に格納するバッファーが、バッファーフルの状態であっても、即時実行コマンドについては即座に実行できるように、各コマンドを適切に管理する必要がある。しかしながら、即時実行コマンドを実行可能な状態を維持するという要求を満たした上で、未実行の各コマンドを管理する必要があるため、コマンドの管理に係る処理が複雑化する傾向にある。
本発明は、上述した事情に鑑みてなされたものであり、即時実行コマンドを実行可能な状態を維持した上で、未実行のコマンドの管理に係る処理を簡易化することを目的とする。
上記目的を達成するために、本発明は、電子機器であって、ホストコンピューターから受信した即時実行コマンドを含むコマンドを、受信した順に、受信バッファーに循環的に書き込む書込制御部と、前記受信バッファーに書き込まれたコマンドであって前記即時実行コマンドを除くコマンドを書き込まれた順に読み出して実行するコマンド実行部と、前記受信バッファーに書き込まれたコマンドの中から、書き込まれた順に即時実行コマンドを検出し、検出した即時実行コマンドを順に読み出して他のコマンドに優先して実行する即時実行コマンド実行部と、を備え、前記書込制御部によりコマンドが書き込まれた位置から、前記コマンド実行部によりコマンドの読み出しが行われた位置に至る一連の領域を除く領域である空き領域の容量が、第1基準値以下となった場合から、当該空き領域の容量が前記第1基準値以上の値の第2基準値以上となるまでの間、通常モードからバッファーフルモードへ移行し、前記バッファーフルモードへ移行している間、前記書込制御部は、前記受信バッファー内に形成された補助領域に、前記バッファーフルモードへ移行後受信した前記即時実行コマンドを含むコマンドを循環的に書き込み、前記即時実行コマンド実行部は、前記バッファーフルモードへ移行する前に前記受信バッファーに書き込まれた前記即時実行コマンドを実行した後、前記補助領域に書き込まれたコマンドの中から、書き込まれた順に前記即時実行コマンドを検出し、検出した前記即時実行コマンドを読み出して実行し、前記コマンド実行部は、前記バッファーフルモードに移行する前に前記受信バッファーに書き込まれた前記即時実行を除くコマンドを順に読み出して実行して、前記空き領域を拡張することを特徴とする。
この構成によれば、受信バッファーの状態が、空き領域が第1基準値以下のバッファーフルとなった場合であっても、同一の受信バッファーの領域内に形成された補助領域という限定された領域に即時実行コマンドを、アドレスをリング状にして使用するように循環的に書き込み、実行することにより、即時実行コマンドに係る処理が継続的に実行される状態を維持しつつ、受信バッファーにおける上記バッファーフルの解消を図ることができる。特に、補助領域は、受信バッファー内に形成された領域であるため、アドレス管理が容易で処理時間が短縮でき、バッファーフルモードへ移行後の補助領域におけるコマンドの管理を、バッファーフルモードへ移行する前のコマンドの管理と連続一体的に行うことができ、コマンドの管理に係る処理が簡易化する。なお、通常モードは、コマンド実行部が受信したコマンドの実行を行うことができるモードであり、バッファーフルモードは、コマンド実行部が受信したコマンドの実行を行うことができないモードである。いずれのモードでも、即時実行コマンド実行部は、他に優先して即時実行コマンドを実行する。
また、上記発明の電子機器であって、本発明は、前記バッファーフルモードから通常モードへ戻った場合、前記書込制御部は、前記補助領域へのコマンドの循環的な書き込みを終了し、前記空き領域への前記受信したコマンドの書き込みを開始することを特徴とする。
この構成によれば、空き領域の容量が第2基準値以上となり余裕ができたとき、バッファーフルモードから通常モードへ戻り、速やかに、受信バッファーを利用した通常の書き込みを開始できる。特に、補助領域は、受信バッファー内に形成された領域であるため、バッファーフルモード終了後における受信バッファーを利用した通常のコマンドの管理を、バッファーフルモードへ移行中のコマンドの管理と連続一体的に行うことができ、アドレス管理が容易でありコマンドの管理に係る処理が簡易化する。
また、上記発明の電子機器であって、本発明は、前記バッファーフルモードへ移行している間、前記書込制御部は、前記補助領域内で、書込ポインターを移動させつつ、前記書込ポインターが示す領域に前記受信したコマンドを書き込み、前記即時実行コマンド実行部は、前記補助領域内で、即時実行コマンド読出ポインターを移動させつつ、前記即時実行コマンドが書き込まれた領域を検出し、検出した前記即時実行コマンドを読み出して実行し、前記書込ポインターと、前記即時実行コマンド読出ポインターとが示す領域が一致した場合、前記書込制御部は、前記補助領域の先頭に前記書込ポインターを移動すると共に、前記即時実行コマンド実行部は、前記補助領域の先頭に前記即時実行コマンド読出ポインターを移動することを特徴とする。
この構成によれば、補助領域内で、書込ポインターと、即時実行コマンド読出ポインターと、が常に完全に独立して移動するのではなく、これらポインターのそれぞれが示す領域が一致したタイミングで、補助領域の先頭から再びこれらポインターの移動を管理することとなり、これらポインターのそれぞれが示す領域が一致した場合におけるこれらポインターの移動の開始位置を常に補助領域の先頭とすることができ、これらポインターの管理に係る処理が簡易化する。
また、上記発明の電子機器であって、本発明は、前記補助領域は、前記コマンドの実行に伴い、前記受信バッファー内を循環的に移動するものであり、前記バッファーフルモードへ移行したときに前記受信バッファーに形成されている空き領域に対応する容量の領域であり、前記第1基準値に対応する容量の領域であることを特徴とする。
この構成によれば、空き領域を利用して、受信バッファー内に補助領域に対応する領域を確保できる。
また、上記発明の電子機器であって、本発明は、インターフェイス部を備え、前記バッファーフルモードへ移行した場合、前記インターフェイス部はその旨ホストコンピューターに通知し、前記コマンド実行部は前記受信したコマンドを読み出して実行することを停止することを特徴とする。
この構成によれば、ホストコンピューターは、バッファーフルモードへ移行したことを検知でき、当該検知に基づいて、バッファーフルモードに対応した処理、例えば、コマンドの出力の制限等、を実行できる。この場合、電子機器は即時実行コマンド以外のコマンドの実行を停止する。
また、上記目的を達成するために、本発明は、ホストコンピューターから受信したコマンドを、受信した順に、受信バッファーに循環的に書き込む書込制御部と、前記受信バッファーに書き込まれたコマンドであって前記即時実行コマンドを除くコマンドを書き込まれた順に読み出して実行するコマンド実行部と、前記受信バッファーに書き込まれたコマンドから、書き込まれた順に即時実行コマンドを検出し、検出した即時実行コマンドを順に読み出して実行する即時実行コマンド実行部と、を備える電子機器の制御方法であって、前記書込制御部によりコマンドが書き込まれた位置から、前記コマンド実行部によりコマンドの読み出しが行われた位置に至る一連の領域を除く領域である空き領域の容量が、第1基準値以下となった場合から、当該空き領域の容量が前記第1基準値以上の値の第2基準値以上となるまでの間、通常モードからバッファーフルモードへ移行し、前記バッファーフルモードへ移行している間、前記書込制御部は、前記受信バッファー内に形成された補助領域に、前記バッファーフルモードへ移行後受信した前記即時実行コマンドを含むコマンドを循環的に書き込み、前記即時実行コマンド実行部は、前記バッファーフルモードへ移行する前に前記受信バッファーに書き込まれた前記即時実行コマンドを実行した後、前記補助領域に書き込まれたコマンドの中から、書き込まれた順に前記即時実行コマンドを検出し、検出した前記即時実行コマンドを読み出して実行し、前記コマンド実行部は、前記バッファーフルモードに移行する前に前記受信バッファーに書き込まれた前記即時実行を除くコマンドを順に読み出して実行して、前記空き領域を拡張することを特徴とする。
この制御方法によれば、受信バッファーの状態が、空き領域が第1基準値以下のバッファーフルとなった場合であっても、同一の受信バッファーの領域内に形成された補助領域という限定された領域に即時実行コマンドを、アドレスをリング状にして使用するように循環的に書き込み実行することにより、即時実行コマンドに係る処理が継続的に実行される状態を維持しつつ、受信バッファーにおける上記バッファーフルの解消を図ることができる。特に、補助領域は、受信バッファー内に形成された領域であるため、アドレス管理が容易で処理時間が短縮でき、バッファーフルモードへ移行後の補助領域におけるコマンドの管理を、バッファーフルモードへ移行する前のコマンドの管理と連続一体的に行うことができ、コマンドの管理に係る処理が簡易化する。
また、上記目的を達成するために、本発明は、ホストコンピューターからコマンドを受信する電子機器を制御する制御部により実行されるプログラムであって、前記制御部を、前記ホストコンピューターから受信した即時実行コマンドを含むコマンドを、受信した順に、受信バッファーに循環的に書き込む書込制御部と、前記受信バッファーに書き込まれたコマンドであって前記即時実行コマンドを除くコマンドを書き込まれた順に読み出して実行するコマンド実行部と、前記受信バッファーに書き込まれたコマンドの中から、書き込まれた順に即時実行コマンドを検出し、検出した即時実行コマンドを順に読み出して他のコマンドに優先して実行する即時実行コマンド実行部と、として機能させ、前記書込制御部によりコマンドが書き込まれた位置から、前記コマンド実行部によりコマンドの読み出しが行われた位置に至る一連の領域を除く領域である空き領域の容量が、第1基準値以下となった場合から、当該空き領域の容量が前記第1基準値以上の値の第2基準値以上となるまでの間、通常モードからバッファーフルモードへ移行し、前記バッファーフルモードへ移行している間、前記書込制御部に、前記受信バッファー内に形成された補助領域に、前記バッファーフルモードへ移行後受信した前記即時実行コマンドを含むコマンドを循環的に書き込ませ、前記即時実行コマンド実行部に、前記バッファーフルモードへ移行する前に前記受信バッファーに書き込まれた前記即時実行コマンドを実行させた後、前記補助領域に書き込まれたコマンドの中から、書き込まれた順に前記即時実行コマンドを検出させ、検出させた前記即時実行コマンドを読み出して実行させ、前記コマンド実行部に、前記バッファーフルモードに移行する前に前記受信バッファーに書き込まれた前記即時実行を除くコマンドを順に読み出して実行させて、前記空き領域を拡張させることを特徴とする。
このプログラムを実行すれば、受信バッファーの状態が、空き領域が第1基準値以下のバッファーフルとなった場合であっても、同一の受信バッファーの領域内に形成された補助領域という限定された領域に即時実行コマンドを、アドレスをリング状にして使用するように循環的に書き込み、実行することにより、即時実行コマンドに係る処理が継続的に実行される状態を維持しつつ、受信バッファーにおける上記バッファーフルの解消を図ることができる。特に、補助領域は、受信バッファー内に形成された領域であるため、アドレス管理が容易で処理時間が短縮でき、バッファーフルモードへ移行後の補助領域におけるコマンドの管理を、バッファーフルモードへ移行する前のコマンドの管理と連続一体的に行うことができ、コマンドの管理に係る処理が簡易化する。
本発明によれば、即時実行コマンドの実行可能な状態を維持した上で、コマンドの管理に係る処理を簡易化できる。
実施形態に係るPOS端末の概略構成を示す図である。 プリンターの構成を示すブロック図である。 プリンターと制御部と、受信バッファーとの関係を模式的に示す図。 受信バッファーの構成を模式的に示す図である。 プリンターの動作を示すフローチャートである。 受信バッファーの状態を模式的に示す図である。 補助領域の状態を模式的に示す図である。 受信バッファーの状態を模式的に示す図である。
以下、図面を参照して本発明の実施形態について説明する。
図1は、本発明を適用した実施形態に係るPOS端末1の概略構成を示す図である。
POS端末1は、例えば小売店等の店頭に設置され、売上げ精算を行うレジスターであり、販売時点管理システム(POSシステム)を構成する。POS端末1は、売上登録処理及び精算処理を行うホストコンピューター4に、レシート101を発行するプリンター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と、制御部21の制御の下、ホストコンピューター4や、キャッシュドロワー44との間で各種データの送受信を行うインターフェイス部25と、紙送りスイッチ17(図1)における操作を検出する入力部27と、LED表示部18を制御して各種表示を行わせる表示部28と、プリンター2の各部の動作状態を監視するステータス監視部30と、ホストコンピューター4から受信した受信データを一時的に循環的に格納するリングバッファーであるRAMからなる受信バッファー31と、を備えている。リングバッファーとは、アドレスの先端から順次データを記憶し、後端に至ると再び先端にアドレスを戻して記憶していくものであり、メモリーを効率的に使用できる。
プリントエンジン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は、USBやRS232Cインターフェイス等の各種インターフェイスを備え、制御部21の制御の下、ホストコンピューター4との間で所定の規格に準拠した、有線または無線通信を行う。制御部21は、インターフェイス部25を介してホストコンピューター4から受信した受信データを、受信バッファー31に順次記憶する。
受信バッファー31は、制御部21の制御の下、ホストコンピューター4から受信した受信データを順次記憶するリングバッファーである。受信バッファー31には、ホストコンピューター4から受信したコマンド、及び、このコマンドに続く印刷データなどのデータが、区別なく、64ビット毎に格納される。
プリンター2が備えるステータス監視部30には、外部からプリンター2に供給される電源電圧を検出、カバー12の開閉状態、ロール紙の有無等を検出する各検出部が接続され、これらの検出部における検出状態に基づき、たとえば、プリンター2における電源電圧の異常、用紙補充やインクカートリッジの交換時に開閉されるプリンター2のカバー12が開いたこと、プリンター2の用紙切れ、紙送りスイッチ17の操作等のプリンター2における事象(イベント)の発生を示す検出信号を、制御部21に割り込み信号として出力する。
プリンター2の動作モードには、ホストコンピューター4との通信および印刷等を実行可能なオンラインモード(通常モード)と、必要最小限の動作しか行わないオフラインモード(バッファーフルモード)とがある。オフラインモードは、印字動作の続行が不適当な場合には、印字ヘッドを含む印字メカニズムを停止し、且つホストコンピューター4との間でのコマンドのやり取りを制限し、印字装置および通信データの保全及び使用者の安全を確保する。オフラインモードへの移行は、カバー12が開いたり、用紙が無くなったりする等の所定のオフライン要因が発生したことのほか、後述するように受信バッファー31がバッファーフル状態となったことをトリガーとして実行される。なお、オフラインモードへ移行した後、例えば、ステータス監視部30がオフライン要因が解消したことを検出した場合に、制御部21は、動作モードをオンラインモードに移行する。
オフラインモードに移行した場合、制御部21は、ホストコンピューター4に対してオフラインモードに移行していることを通知する。ホストコンピューター4は、プリンター2がオフラインモードへ移行している間、プリンター2に対し、通常コマンドの出力を一時的に停止し、必要に応じて、通常コマンドよりも緊急性の高い、所定の処理について即時に実行することを求める即時実行コマンドを出力する。
本実施形態に係るプリンター2は、受信バッファー31がバッファーフル状態となったことに起因して、動作モードがオフラインモード(本実施形態では、この場合のオフラインモードを、バッファーフルモードという)へ移行した場合であっても、即時実行コマンドが入力された場合は、即時実行コマンドに係る処理を実行できる状態が維持されるように、コマンドを管理し、さらに、当該管理に係る処理を簡易化している。
以下、本実施形態に係るプリンター2によるコマンドの管理に係る処理について詳述する。
図3は、プリンター2の制御部21の機能的構成を示すブロック図である。
図4は、受信バッファー31の構造を模式的に示す図である。なお、図4では、受信バッファー31の構造を、発明の説明の便宜を考慮して、発明の説明に適した構造としている。
図4に示すように、本実施形態に係る受信バッファー31の容量は、4224バイトである。そして、受信バッファー31の記憶領域は、64ビットを1ワードとして、ワードに対応する領域毎に領域が区分されると共に、区分された領域ごとにアドレスが割り当てられている。以下、ワード毎に区分された領域のことを「ワード領域」称するものとする。
この受信バッファー31は、リングバッファーであり、データの書き込みは、ワード領域単位で、循環的に行われる。
図3に示すように、制御部21は、書込制御部21A、コマンド実行部21B、及び、即時実行コマンド実行部21Cを備えている。これら各部の機能は、CPUがEEPROM24に記憶された制御プログラム24Aを実行する等、ハードウェアとソフトウェアとが協働して実現される。
書込制御部21Aは、書込ポインター管理部21aを備え、書込ポインター管理部21aが管理する書込ポインター50に応じて、ワード領域にホストコンピューター4から受信した受信データを書き込む。
詳述すると、書込ポインター50とは、受信バッファー31に形成されたワード領域のうち、受信データを書き込むべきワード領域のアドレスを示すポインターである。書込ポインター管理部21aは、書込ポインター50が示すアドレスに対応する1のワード領域に対して受信データの書き込みが行われた場合、当該書込ポインター50が示すアドレスを、当該1のワード領域の次のワード領域のアドレスに更新する動作を継続して実行し、書込ポインター50が示すアドレスが、常に、受信データを書き込むべきワード領域のアドレスとなるよう、書込ポインター50を管理する。なお、図4において、受信バッファー31の先頭アドレスを「0000番地」とし、末尾アドレスを「020F番地」とすると、受信バッファー31がリングバッファーであるため、書込ポインター50が示すアドレスは、「020F番地」の次は、「0000番地」となる。
書込制御部21Aは、ホストコンピューター4から受信した受信データを、書込ポインター50が示すアドレスに対応するワード領域に書き込む。例えば、図4を参照し、書込ポインター50が「0022番地」を示している場合、書込制御部21Aは、「0022番地」に対応するワード領域に、受信データを書き込む。
なお、以下の説明では、説明の簡易化のため、受信バッファー31のワード領域に記憶される受信データのそれぞれは、コマンドを含むデータであるものとする。すなわち、ワード領域のそれぞれには、64ビットからなるコマンド、及び、当該コマンドに付随するデータが、書き込まれる。
コマンド実行部21Bは、読出ポインター管理部21bを備え、読出ポインター管理部21bが管理する読出ポインター51に応じて、ワード領域からデータを読み出して、当該データに含まれるコマンドに応じた処理を実行する。
詳述すると、読出ポインター51とは、受信バッファー31に形成されたワード領域のうち、データを読み出すべきワード領域のアドレスを示すポインターである。読出ポインター管理部21bは、読出ポインター51が示すアドレスに対応する1のワード領域から受信データの読み出しが行われた場合、当該読出ポインター51が示すアドレスを、当該1のワード領域の次のワード領域のアドレスに更新する動作を継続して実行し、これにより、読出ポインター51が示すアドレスが、常に、受信データを読み出すべきワード領域のアドレスとなるよう、読出ポインター51を管理する。
コマンド実行部21Bは、読出ポインター51が示すアドレスに対応するワード領域から受信データを読み出して、受信データに係る処理を実行する。例えば、図4を参照し、読出ポインター51が示すアドレスが「0002番地」である場合、コマンド実行部21Bは、「0002番地」に対応するワード領域に書き込まれた受信データを読み出すと共に、当該受信データに含まれるコマンドに対応する処理を実行する。
コマンド実行部21Bは、処理の実行後、ワード領域に書き込まれた受信データを消去する。なお、ワード領域に書き込まれた受信データが既に読み出しが終了したことをワード領域毎にフラグで管理するようにしてもよい。このようにして、次の受信データを記憶する空き領域が形成される。空き領域は、コマンドの実行に伴い、受信バッファー31内を循環的に移動する。受信バッファー31内で、空き領域およびそれと共に移動する後述の補助領域は、循環的に移動し、いわばリングバッファーのように移動する。
本実施形態では、受信バッファー31内において、書込ポインター50に追従するように読出ポインター51が移動し、これにより、ホストコンピューター4から受信した受信データであって、対応する処理が実行されていない受信データについて、受信した順に、読出され、対応する処理が実行されることとなる。
即時実行コマンド実行部21Cは、即時実行コマンド読出ポインター管理部21cを備え、即時実行コマンド読出ポインター管理部21cが管理する即時実行コマンド読出ポインター52に応じて、ワード領域から即時実行コマンドを含む受信データを読み出して、即時実行コマンドに応じた処理を実行する。
詳述すると、即時実行コマンド読出ポインター52とは、受信バッファー31に形成されたワード領域のうち、即時実行コマンドが含まれる受信データを読み出すべきワード領域のアドレスを示すポインターである。即時実行コマンド読出ポインター管理部21cは、1のワード領域に書き込まれた即時実行コマンドを含む受信データが読み出されて実行された後、当該1のワード領域から、書込ポインター50が示すアドレスに対応するワード領域へ向かって、順番に、各ワード領域に書き込まれた受信データの内容を分析していき、即時実行コマンドが含まれた受信データが書き込まれたワード領域を検出すると、即時実行コマンド読出ポインター52が示すアドレスを、当該ワード領域のアドレスに更新する。
即時実行コマンド実行部21Cは、即時実行コマンド読出ポインター管理部21cにより、即時実行コマンドが含まれた受信データが書き込まれたワード領域が検出された場合、即時実行コマンド読出ポインター52が示すアドレスに対応するワード領域に書き込まれた受信データを読み出し、当該受信データに含まれる即時実行コマンドに対応する処理を、割り込み処理として、強制的に、即座に実行する。
コマンド実行部21Bは、処理の実行後、ワード領域に書き込まれた受信データを消去する。
なお、即時実行コマンドとしては、ステータス通知の送信を指示するステータス要求コマンドや、受信バッファー31の全消去を指示するバッファークリアコマンド、キャッシュドロワー44の開動作を指示するドロワーオープンコマンド等がある。プリンター2は、他のコマンドや処理に優先して、即時実行コマンドを実行し、ステータスの送信等を行う。
図5は、本実施形態に係るプリンター2の動作を示すフローチャートである。
図5のフローチャートの開始時点では、受信バッファー31に対して、通常の受信データの書き込み、及び、読み出しが実行されているものとする。
まず、プリンター2の制御部21は、受信バッファー31の状態がビジー状態に至ったか否かを監視する(ステップSA1)。
図6(A)は、ステップSA1の動作を説明するための図である。
ビジー状態とは、受信バッファー31の空き領域の容量が、ビジー状態容量として規定された256バイト以下となっている状態のことである。
受信バッファー31の空き領域とは、受信バッファー31の書き込み領域のうち、未実行の受信データが書き込まれた領域を除く領域のことであり、具体的には、読出ポインター51と、書込ポインター50とで囲まれた領域(=未実行の受信データが書き込まれた領域。図6(A)において、斜線で示す領域。)を除く領域のことである。ビジー状態とは、受信バッファー31の全体の容量との関係で、空き領域の容量が少なくなった状態である。
受信バッファー31の状態がビジー状態に至った場合(ステップSA1:YES)、制御部21は、受信バッファー31の状態がビジー状態である旨、ホストコンピューター4に対して通知する(ステップSA2)。この通知により、ホストコンピューター4は、受信バッファー31の状態がビジー状態であることを検出すると共に、受信バッファー31がビジー状態のときにすべき動作として予め定められた動作、例えば、プリンター2へのデータの出力のピッチを落としたり、予め定められた所定のコマンドに係るデータのみをプリンター2へ出力するようにしたり、また、受信バッファー31の状態がビジー状態である旨の情報をディスプレー41に表示したりする等の動作を実行する。なお、図示は省略したが、受信バッファー31の空き領域の容量が、後述するバッファーフル容量(128バイト)以下となることなく、ビジー状態容量を上回った場合、制御部21は、その旨、ホストコンピューター4に出力する。
次いで、制御部21は、受信バッファー31の空き領域の容量が、バッファーフル容量として規定された128バイト以下となったか否かを監視する(ステップSA3)。このバッファーフル容量が、第1基準値に対応する。
受信バッファー31の空き領域の容量が、バッファーフル容量以下となった場合(ステップSA3:YES)、制御部21は、動作モードを、通常モードからバッファーフルモードへ移行し(ステップSA4)、動作モードがバッファーフルモードへ移行したことを、ホストコンピューター4に通知する(ステップSA5)。このバッファーフルモードは、オフラインモードの一種であり、受信データの保全、及び、バッファーフル状態(後述)の解消を図るべく、コマンドの実行の停止や、印刷メカニズムの一時的な停止や、プリンター2とホストコンピューター4との間でやり取りするコマンドの制限等が行われる。
ステップSA5の通知により、動作モードがバッファーフルモードに移行したことを検出すると、ホストコンピューター4は、オフラインモードに準じた動作を実行する。すなわち、ホストコンピューター4からプリンター2に対して出力されるコマンドが、即時実行コマンドに制限され、ホストコンピューター4は、基本的に、即時実行コマンドのみをプリンター2に対して出力する。ここで、プリンター2がバッファーフルモードへ移行した後に、ホストコンピューター4からプリンター2へ出力された即時実行コマンド以外のコマンドについては、そのコマンドに対応する動作が実行されることについて、保証されないものと事前に定められている。
次いで、制御部21は、補助領域を規定する(ステップSA6)。
図6(B)は、補助領域を説明するための図である。
本実施形態では、受信バッファー31の4224バイトの記憶領域のうち、4096バイトの領域が、通常時に受信データが書き込まれる領域である通常書込領域とされ、この通常書込領域がバッファーフルとなったときに、残りの126バイトの領域を補助領域として予備的に使用する構成となっている。すなわち、通常書込領域のほかに、補助領域が常に確保される構成となっている。
なお、本実施形態では、通常時に使用される通常書込領域がバッファーフルとなっている場合に、受信バッファー31の状態がバッファーフル状態となっているとされる。これは、補助領域は、予備的に使用するために確保された領域であるため、通常書込領域がバッファーフルとなった状態は、補助領域が形成されていないバッファーがバッファーフルとなった状態に該当するからである。
補助領域について、詳述すると、図6(B)を参照し、受信バッファー31の空き領域の容量が126バイトとなったということは、4224バイトの記憶領域のうち、通常書込領域に対応する4096バイトの領域がバッファーフルとなったということである。そして、通常書込領域がバッファーフルとなったときに記憶領域に形成される126バイトの空き領域が、補助領域として機能する。
ステップSA6では、制御部21は、補助領域、すなわち、空き領域の容量が126バイトとなった時点での空き領域の先頭アドレス(以下、「補助領域先頭アドレス」という)、及び、末尾アドレス(以下、「補助領域末尾アドレス」という)を取得する。
次いで、制御部21は、バッファーフル時処理を実行する(ステップSA7)。
図7は、バッファーフル時処理を説明するための図である。
バッファーフル時処理とは、ホストコンピューター4から入力された受信データに応じて、受信データの書き込み、読み出し、実行を行う処理であり、特に、バッファーフル時処理では、受信データの書き込みは補助領域に対してのみ行われ、かつ、補助領域に書き込まれた受信データのうち、即時実行コマンドに係る受信データのみが読み出され、当該即時実行コマンドに対応する処理が実行される。
なお、補助領域は、1つのリングバッファーとして機能し、補助領域に対して受信データは、循環的に書き込まれる。
詳述すると、書込ポインター管理部21aは、受信データの入力、及び、入力された受信データの書き込みに応じて、補助領域に含まれるワード領域のうち、先頭のワード領域から、順次、書込ポインター50が示すアドレスを更新する。
ここで、バッファーフルモードに移行後、補助領域の先頭のワード領域からデータの書き込みを行っていくためには、バッファーフルモードへ移行した際、書込ポインター50が、補助領域の先頭のワード領域のアドレスを示している必要がある。本実施形態では、通常書込領域と、補助領域とが、1つの受信バッファー31において連続一体的に形成されている。このため、バッファーフルモードへ移行するとき、すなわち、通常書込領域の末尾のワード領域への受信データの書き込みが終わったときに、通常の処理と同様にして、書込ポインター50が示すアドレスを、通常書込領域の末尾のワード領域のアドレスから、次のワード領域のアドレス(=補助領域の先頭のワード領域のアドレス)へと更新すれば、バファーフルモードに移行した時点で、書込ポインター50が示すアドレスが、補助領域の先頭のワード領域のアドレスとなる。
このように、バッファーフルモードへ移行した際、通常と異なる処理により、書込ポインター50が示すアドレスを更新する必要がないため、書込ポインター50の管理に係る処理が簡易である。例えば、バッファーを2つ設け、1のバッファーがバッファーフルとなった場合に、予備的に他のバッファーを利用する構成とした場合、1のバッファーがバッファーフルとなったときに、他のバッファーにおける書込ポインターを、1のバッファーにおける書込ポインターとは別に管理する必要があるが、このような場合と比較して、本実施形態における書込ポインター50の管理の簡易性は顕著である。
さらに、バッファーフル時処理において、即時実行コマンド読出ポインター管理部21cは、即時実行コマンドを含むデータの読み出しに応じて、補助領域に含まれるワード領域のうち、先頭のワード領域から、順次、即時実行コマンド読出ポインター52が示すアドレスを更新する。即時実行コマンド実行部21Cは、即時実行コマンド読出ポインター52の移動に応じて、順次、即時実行コマンドに対応する処理を実行していく。
バッファーフルモードに移行中、補助領域内において、即時実行コマンド読出ポインター52は、書込ポインター50を追従するように動いていき、これにより、バッファーフルモードに移行中、例えばオフラインであるにもかかわらず、緊急を要するためホストコンピューター4から送信され、受信した即時実行コマンドについて、当該コマンドに対応する処理が、順次、他の処理に優先して実行される。
ここで、本実施形態では、書込ポインター50、及び、即時実行コマンド読出ポインター52は、補助領域内を以下のように移動するよう管理される。なお、以下の説明では、各種ポインターが示すアドレスを更新することを、適宜、ポインターが移動すると表現することがあるものとする。
すなわち、図7(A)を参照し、基本的には、制御部21の各部は、即時実行コマンド読出ポインター52が書込ポインター50を追従するようにこれらポインターを移動させ、受信した順番に、即時実行コマンドに対応する処理が実行されるようにする。
ここで、図7(B)に示すように、書込ポインター50と、即時実行コマンド読出ポインター52との位置が一致した場合、すなわち、書込ポインター50が示すアドレスと、即時実行コマンド読出ポインター52が示すアドレスとが一致した場合、制御部21の各部は、図7(C)に示すように、書込ポインター50、及び、即時実行コマンド読出ポインター52の双方を、補助領域の先頭のワード領域に対応する位置に移動し、再び、補助領域の先頭からこれらポインターの移動を開始する。
なお、補助領域の先頭に書込ポインター50が戻った場合、受信データは、再び、補助領域の先頭のワード領域から、順次、書き込まれることとなるが、その際、実施していない通常コマンドを含むデータが既に書き込まれているワード領域については、データが上書きされる。
このように、書込ポインター50、及び、即時実行コマンド読出ポインター52を移動させることにより、書込ポインター50の位置と、即時実行コマンド読出ポインター52の位置とが一致した場合は、常に、これらポインターの移動を、補助領域の先頭から開始させることとなり、互いのポインターが完全に独立して移動する場合と比較して、これらポインターの管理が簡易化する。さらに、各ポインターについて、補助領域の末尾のワード領域から、先頭のワード領域への移動をある程度防止でき、さらなるポインターの管理の簡易化を図ることができる。
なお、バッファーフル時処理では、通常コマンドを含むデータは、読み出されることなく、随時、上書きされ、消滅することとなるが、上述したように、バッファーフルモード移行時は、通常コマンドに係る処理については、その処理が実行されることについて保証されないこととされており、ホストコンピューター4は、そのことを前提としてプリンター2に対して通常コマンドを出力しているため、通常コマンドに係る処理が実行されないことについては、問題はない。
以上説明したバッファーフル時処理により、以下の効果を得ることができる。
すなわち、プリンター2とホストコンピューター4との間で通常コマンドに対応する処理については動作保証をしないという定めがあり、必ずしも通常コマンドを実行しなくてもよい、というバッファーフルモードの特徴を踏まえ、補助領域という限られた容量の領域を利用して、即時実行コマンドに係る処理を確実に実行しつつ、バッファーフルモードから通常のモードへ移行するのに必要な空き領域が十分に確保されるまでの時間を確保できる、という効果を得ることができる。
特に、本実施形態では、バッファーフル時処理の実行に際し、補助領域を、1つの受信バッファー31において通常書込領域と連続一体的に形成しているため、上述したように、各ポインターの管理、すなわち、コマンドの管理の簡易化する。
さて、バッファーフル時処理の実行中、制御部21は、バッファーフルモードを解除するための閾値として規定された第2基準値を、空き領域の容量が上回ったか否かを監視する(ステップSA8)。この第2基準値は、バッファーフルモードの解除をするか否かを判断する基準となる値であるため、少なくとも、上述したバッファーフル容量(第1基準値)よりも大きな値とされる。
空き容量が、第2基準値を上回った場合(ステップSA8:YES)、制御部21は、バッファーフルモードを解除し(ステップSA9)、その旨、ホストコンピューター4に通知する(ステップSA10)。これをトリガーとして、ホストコンピューター4は、通常通り、通常コマンドのプリンター2への出力を開始する。
次いで、制御部21は、空き領域への受信データの書き込みを開始する(ステップSA11)。
図8は、ステップSA11の処理を説明するための図である。
図8に示すように、空き領域が第2基準値を上回ることによりバッファーフルモードが解除された場合、空き領域は、補助領域として機能していた領域と連続した領域となる。従って、バッファーフルモードが解除された場合、書込ポインター50、及び、即時実行コマンド読出ポインター52のそれぞれのポインターは、バッファーフルモードが解除された時点での位置から、上述した通常の管理の下、移動を開始すればよいこととなる。これにより、これらポインターの移動に従って、空き領域に対して、受信した順番に、受信データを順次書き込むことができ、また、即時実行コマンドに係る処理を順次実行可能となる。
このように、本実施形態では、受信バッファー31に補助領域が形成されており、バッファーフルモードの解除時には、この補助領域に対応する領域と連続して空き領域が形成されるため、バッファーフルモードの解除時に、書込ポインター50や、即時実行コマンド読出ポインター52を、特別な処理によって、移動、管理する必要がなく、これらポインターの管理に係る処理、すなわち、コマンドの管理に係る処理が簡易化する。
以上説明したように、本実施形態では、電子機器たるプリンター2は、書込制御部21A、コマンド実行部21B、及び、即時実行コマンド実行部21Cを備えており、受信バッファー31の空き領域の容量が、バッファーフル容量以下となった場合、当該空き領域の容量がバッファーフル容量以上の値の第2基準値以上となるまでの間、バッファーフルモードへ移行し、バッファーフルモードへ移行している間、書込制御部21Aは、受信バッファー31内に形成された補助領域に、受信コマンドを循環的に書き込むと共に、即時実行コマンド実行部21Cは、補助領域に書き込まれた受信コマンドのうち、即時実行コマンドを読み出して実行する。
これによれば、受信バッファー31の状態が、空き領域がバッファーフル容量以下となった場合であっても、同一の受信バッファー31に形成された補助領域という限定された領域に即時実行コマンドを循環的に書き込み実行することにより、即時実行コマンドに係る処理が継続的に実行される状態を維持しつつ、受信バッファー31におけるバッファーフルの解消を図ることができる。特に、補助領域は、受信バッファー31内に形成された領域であるため、バッファーフルモードへ移行後の補助領域における受信コマンドの管理を、バッファーフルモードへ移行する前の受信コマンドの管理と連続一体的に行うことができ、受信コマンドの管理に係る処理が簡易化する。
また、本実施形態では、バッファーフルモードへの移行が終了した場合、書込制御部21Aは、補助領域への受信コマンドの循環的な書き込みを終了し、空き領域へのコマンドの書き込みを開始すること。
この構成によれば、空き領域の容量が第2基準値以上となり、バッファーフルモードへの移行が終了した場合、速やかに、受信バッファー31を利用した通常の書き込みを開始できる。特に、補助領域は、受信バッファー31内に形成された領域であるため、バッファーフルモード終了後における受信バッファー31を利用した通常の受信コマンドの管理を、バッファーフルモードへ移行中の受信コマンドの管理と連続一体的に行うことができ、受信コマンドの管理に係る処理が簡易化する。
すなわち、空き領域が第2基準値を上回ることによりバッファーフルモードが解除された場合、空き領域は、補助領域として機能していた領域と連続した領域となる。従って、バッファーフルモードが解除された場合、書込ポインター50、及び、即時実行コマンド読出ポインター52のそれぞれのポインターは、バッファーフルモードが解除された時点での位置から、上述した通常の管理の下、移動を開始すればよいこととなる。これにより、これらポインターの移動に従って、空き領域に対して、受信した順番に、受信データを順次書き込むことができ、また、即時実行コマンドに係る処理を順次実行可能となる。
また、本実施形態では、バッファーフル時処理の実行中、補助領域において、書込ポインター50、及び、即時実行コマンド読出ポインター52を移動させることにより、書込ポインター50の位置と、即時実行コマンド読出ポインター52の位置とが一致した場合は、常に、これらポインターの移動を、補助領域の先頭から開始させる。これにより、互いのポインターが完全に独立して移動する場合と比較して、これらポインターの管理が簡易化する。さらに、各ポインターについて、補助領域の末尾のワード領域から、先頭のワード領域への移動をある程度防止でき、さらなるポインターの管理の簡易化を図ることができる。
また、本実施形態では、補助領域は、バッファーフルモードへ移行したときに受信バッファー31に形成されている空き領域に対応した、バッファーフル容量に対応する容量の領域である。
これによれば、空き領域を利用して、受信バッファー31内に補助領域に対応する領域を確保できる。
また、本実施形態では、バッファーフルモードへ移行した場合、その旨、ホストコンピューター4に通知することを特徴とする。
この構成によれば、ホストコンピューター4は、バッファーフルモードへ移行したことを検知でき、当該検知に基づいて、バッファーフルモードに対応した処理、例えば、コマンドの出力の制限等、を実行できる。
なお、上記実施形態は本発明を適用した一具体例を示すものであり、本発明はこれに限定されるものではない。また、図2及び図3に示す各機能部はハードウェアとソフトウェアの協働により任意に実現可能であり、特定のハードウェア構成を示唆するものではない。さらに、上記実施形態では、POS端末1において、レシート101を印刷するプリンター2に本発明を適用する場合について説明したが、本発明はこれに限定されるものではなく、独立して機能するプリンターに、各種の通信手段を介してホストコンピューター4を接続した構成が挙げられ、例えば、LANを介してプリンター2が複数のホストコンピューター4に接続されていてもよい。また、上記実施形態では、プリンター2自身が制御部21や、受信バッファー31等を備えた構成を例に挙げて説明したが、例えば、制御部21や、受信バッファー31等を備えた制御装置を、プリンター2に外部接続される別の装置としてもよい。
また、本発明を適用可能な記録装置は、コマンドに従って動作可能なプリンターであれば特に制限されず、インクジェット式プリンター、ドットインパクト式プリンター、レーザープリンター、熱昇華型プリンターのいずれであってもよく、他の方式で文字や画像を形成するプリンターであってもよいし、他の装置に組み込まれるプリンターであってもよい。また、電子媒体に記録するものでもよい。
また、本発明を適用可能なプログラムは、ホストコンピューター4に搭載されるプリンタードライバーに含むものであってもよい。
また、図5に記載のフローチャートの各ステップを実行するプログラムを、プリンター2の内部の記憶媒体に記憶させたもの、またはプリンター2の外部の記憶媒体に記憶させたものを読み出して、制御部21により実行させることもできる。
2…プリンター(電子機器)、4…ホストコンピューター、21…制御部、21A…書込制御部、21B…コマンド実行部、21C…即時実行コマンド実行部、31…受信バッファー、50…書込ポインター、52…即時実行コマンド読出ポインター。

Claims (7)

  1. ホストコンピューターから受信した即時実行コマンドを含むコマンドを、受信した順に、受信バッファーに循環的に書き込む書込制御部と、
    前記受信バッファーに書き込まれたコマンドであって前記即時実行コマンドを除くコマンドを書き込まれた順に読み出して実行するコマンド実行部と、
    前記受信バッファーに書き込まれたコマンドの中から、書き込まれた順に即時実行コマンドを検出し、検出した即時実行コマンドを順に読み出して他のコマンドに優先して実行する即時実行コマンド実行部と、を備え
    前記書込制御部によりコマンドが書き込まれた位置から、前記コマンド実行部によりコマンドの読み出しが行われた位置に至る一連の領域を除く領域である空き領域の容量が、第1基準値以下となった場合から、当該空き領域の容量が前記第1基準値以上の値の第2基準値以上となるまでの間、通常モードからバッファーフルモードへ移行し、
    前記バッファーフルモードへ移行している間、
    前記書込制御部は、
    前記受信バッファー内に形成された補助領域に、前記バッファーフルモードへ移行後受信した前記即時実行コマンドを含むコマンドを循環的に書き込み、
    前記即時実行コマンド実行部は、
    前記バッファーフルモードへ移行する前に前記受信バッファーに書き込まれた前記即時実行コマンドを実行した後、前記補助領域に書き込まれたコマンドの中から、書き込まれた順に前記即時実行コマンドを検出し、検出した前記即時実行コマンドを読み出して実行し、
    前記コマンド実行部は、
    前記バッファーフルモードに移行する前に前記受信バッファーに書き込まれた前記即時実行を除くコマンドを順に読み出して実行して、前記空き領域を拡張する
    ことを特徴とする電子機器。
  2. 前記バッファーフルモードから前記通常モードへ戻った場合、前記書込制御部は、前記補助領域へのコマンドの循環的な書き込みを終了し、前記空き領域への前記受信したコマンドの書き込みを開始することを特徴とする請求項1に記載の電子機器。
  3. 前記バッファーフルモードへ移行している間、
    前記書込制御部は、前記補助領域内で、書込ポインターを移動させつつ、前記書込ポインターが示す領域に前記受信したコマンドを書き込み、
    前記即時実行コマンド実行部は、前記補助領域内で、即時実行コマンド読出ポインターを移動させつつ、前記即時実行コマンドが書き込まれた領域を検出し、検出した前記即時実行コマンドを読み出して実行し、
    前記書込ポインターと、前記即時実行コマンド読出ポインターとが示す領域が一致した場合、前記書込制御部は、前記補助領域の先頭に前記書込ポインターを移動すると共に、前記即時実行コマンド実行部は、前記補助領域の先頭に前記即時実行コマンド読出ポインターを移動することを特徴とする請求項2に記載の電子機器。
  4. 前記補助領域は、前記コマンドの実行に伴い、前記受信バッファー内を循環的に移動するものであり、
    前記バッファーフルモードへ移行したときに前記受信バッファーに形成されている空き領域に対応する容量の領域であり、前記第1基準値に対応する容量の領域であることを特徴とする請求項1ないし3のいずれかに記載の電子機器。
  5. インターフェイス部を備え、前記バッファーフルモードへ移行した場合、前記インターフェイス部はその旨ホストコンピューターに通知し、前記コマンド実行部は前記受信したコマンドを読み出して実行することを停止することを特徴とする請求項1ないし4のいずれかに記載の電子機器。
  6. ホストコンピューターから受信したコマンドを、受信した順に、受信バッファーに循環的に書き込む書込制御部と、前記受信バッファーに書き込まれたコマンドであって前記即時実行コマンドを除くコマンドを書き込まれた順に読み出して実行するコマンド実行部と、前記受信バッファーに書き込まれたコマンドから、書き込まれた順に即時実行コマンドを検出し、検出した即時実行コマンドを順に読み出して実行する即時実行コマンド実行部と、を備える電子機器の制御方法であって、
    前記書込制御部によりコマンドが書き込まれた位置から、前記コマンド実行部によりコマンドの読み出しが行われた位置に至る一連の領域を除く領域である空き領域の容量が、第1基準値以下となった場合から、当該空き領域の容量が前記第1基準値以上の値の第2基準値以上となるまでの間、通常モードからバッファーフルモードへ移行し、
    前記バッファーフルモードへ移行している間、
    前記書込制御部は、
    前記受信バッファー内に形成された補助領域に、前記バッファーフルモードへ移行後受信した前記即時実行コマンドを含むコマンドを循環的に書き込み、
    前記即時実行コマンド実行部は、
    前記バッファーフルモードへ移行する前に前記受信バッファーに書き込まれた前記即時実行コマンドを実行した後、前記補助領域に書き込まれたコマンドの中から、書き込まれた順に前記即時実行コマンドを検出し、検出した前記即時実行コマンドを読み出して実行し、
    前記コマンド実行部は、
    前記バッファーフルモードに移行する前に前記受信バッファーに書き込まれた前記即時実行を除くコマンドを順に読み出して実行して、前記空き領域を拡張することを特徴とする電子機器の制御方法。
  7. ホストコンピューターからコマンドを受信する電子機器を制御する制御部により実行されるプログラムであって、
    前記制御部を、
    前記ホストコンピューターから受信した即時実行コマンドを含むコマンドを、受信した順に、受信バッファーに循環的に書き込む書込制御部と、
    前記受信バッファーに書き込まれたコマンドであって前記即時実行コマンドを除くコマンドを書き込まれた順に読み出して実行するコマンド実行部と、
    前記受信バッファーに書き込まれたコマンドの中から、書き込まれた順に即時実行コマンドを検出し、検出した即時実行コマンドを順に読み出して他のコマンドに優先して実行する即時実行コマンド実行部と、として機能させ、
    前記書込制御部によりコマンドが書き込まれた位置から、前記コマンド実行部によりコマンドの読み出しが行われた位置に至る一連の領域を除く領域である空き領域の容量が、第1基準値以下となった場合から、当該空き領域の容量が前記第1基準値以上の値の第2基準値以上となるまでの間、通常モードからバッファーフルモードへ移行し、
    前記バッファーフルモードへ移行している間、
    前記書込制御部に、
    前記受信バッファー内に形成された補助領域に、前記バッファーフルモードへ移行後受信した前記即時実行コマンドを含むコマンドを循環的に書き込ませ、
    前記即時実行コマンド実行部に、
    前記バッファーフルモードへ移行する前に前記受信バッファーに書き込まれた前記即時実行コマンドを実行させた後、前記補助領域に書き込まれたコマンドの中から、書き込まれた順に前記即時実行コマンドを検出させ、検出させた前記即時実行コマンドを読み出して実行させ、
    前記コマンド実行部に、
    前記バッファーフルモードに移行する前に前記受信バッファーに書き込まれた前記即時実行を除くコマンドを順に読み出して実行させて、前記空き領域を拡張させる
    ことを特徴とするプログラム。
JP2010207545A 2010-09-16 2010-09-16 電子機器、電子機器の制御方法、及び、プログラム Expired - Fee Related JP5655453B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010207545A JP5655453B2 (ja) 2010-09-16 2010-09-16 電子機器、電子機器の制御方法、及び、プログラム
US13/234,396 US8769170B2 (en) 2010-09-16 2011-09-16 Electronic device, control method for an electronic device, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010207545A JP5655453B2 (ja) 2010-09-16 2010-09-16 電子機器、電子機器の制御方法、及び、プログラム

Publications (3)

Publication Number Publication Date
JP2012061713A JP2012061713A (ja) 2012-03-29
JP2012061713A5 JP2012061713A5 (ja) 2013-09-19
JP5655453B2 true JP5655453B2 (ja) 2015-01-21

Family

ID=45972799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010207545A Expired - Fee Related JP5655453B2 (ja) 2010-09-16 2010-09-16 電子機器、電子機器の制御方法、及び、プログラム

Country Status (2)

Country Link
US (1) US8769170B2 (ja)
JP (1) JP5655453B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5573709B2 (ja) * 2011-01-31 2014-08-20 ブラザー工業株式会社 通信装置
JP5817193B2 (ja) 2011-04-15 2015-11-18 セイコーエプソン株式会社 記録装置、記録装置の制御方法、及び、プログラム
JP7003614B2 (ja) 2017-12-11 2022-01-20 富士フイルムビジネスイノベーション株式会社 情報処理装置、画像形成装置及びプログラム
JP7516884B2 (ja) 2020-06-05 2024-07-17 ブラザー工業株式会社 プログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06262809A (ja) 1993-03-12 1994-09-20 Canon Inc プリンタ制御方式
US6362896B1 (en) 1993-11-08 2002-03-26 Seiko Epson Corporation Printing apparatus with a cash drawer control function, and a control method therefor
DE69429849T2 (de) 1993-11-08 2002-08-22 Seiko Epson Corp., Tokio/Tokyo Feststellung des Betriebszustands eines Druckers
US6975423B2 (en) 1993-11-08 2005-12-13 Seiko Epson Corporation Printing apparatus and a control method therefor
JP3552066B2 (ja) 1993-11-08 2004-08-11 セイコーエプソン株式会社 印刷装置及びその制御方法並びに該印刷装置を用いた情報処理装置
JP3100276B2 (ja) * 1993-12-27 2000-10-16 大崎電気工業株式会社 電子式電力量計および同管理システム
JPH0966634A (ja) * 1995-09-01 1997-03-11 Canon Inc 印刷装置,印刷システム及びその印刷方法
JPH11168506A (ja) 1997-12-05 1999-06-22 Canon Inc データ受信装置及びデータ受信方法並びに画像形成装置
JPH11327816A (ja) * 1998-05-19 1999-11-30 Canon Inc 記録装置およびその制御方法
JP2001096866A (ja) * 1999-09-30 2001-04-10 Seiko Epson Corp 印刷装置、印刷システム、ホスト装置、これらの制御方法、および、情報記録媒体
JP2001260435A (ja) 2000-03-17 2001-09-25 Ricoh Co Ltd 画像形成装置
JP3520500B2 (ja) * 2000-07-26 2004-04-19 セイコーエプソン株式会社 プリンタ、プリンタの制御方法、そのためのプログラム、及び、そのプログラムを記録した記録媒体
JP2002225354A (ja) * 2001-02-05 2002-08-14 Seiko Epson Corp プリンタ及びその制御方法、並びにプログラム及びコンピュータ読み取り可能な記録媒体
US7596627B2 (en) * 2001-12-18 2009-09-29 Cisco Technology, Inc. Methods and apparatus for network congestion control
JP4196271B2 (ja) * 2003-06-26 2008-12-17 コニカミノルタビジネステクノロジーズ株式会社 印刷データ処理装置およびデータ処理装置
JP4066383B2 (ja) * 2006-07-06 2008-03-26 シチズンホールディングス株式会社 通信装置および通信制御方法、並びに当該通信装置を備えたプリンタ

Also Published As

Publication number Publication date
US8769170B2 (en) 2014-07-01
US20120099145A1 (en) 2012-04-26
JP2012061713A (ja) 2012-03-29

Similar Documents

Publication Publication Date Title
JP5817193B2 (ja) 記録装置、記録装置の制御方法、及び、プログラム
JP5655453B2 (ja) 電子機器、電子機器の制御方法、及び、プログラム
JP2012232431A (ja) 記録装置、記録装置の制御方法、及び、プログラム
JP2012232458A (ja) 記録装置、記録装置の制御方法、及び、プログラム
JP5593682B2 (ja) プリンター、プリンターの制御方法、及び、プログラム
KR101429850B1 (ko) 기록 장치, 및 기록 장치의 제어 방법
US20090207444A1 (en) Printer and control method for a printer
US9058133B2 (en) Control device, control method for a control device, and recording medium
JP5842335B2 (ja) 画像記録装置、画像記録装置の制御方法、及び、プログラム
WO2010050075A1 (ja) ラベルプリンタ
JP5760705B2 (ja) 記録装置、記録装置の制御方法、及び、プログラム
US8724148B2 (en) Recording device that can connect to a control device, control method for a recording device that can connect to a control device, and storage medium that stores a program for controlling parts of a recording device that can connect to a control device
JP2012123704A (ja) 制御装置、制御装置の制御方法、及び、プログラム
JP5754307B2 (ja) 制御装置、制御装置の制御方法、及び、プログラム
JP6003265B2 (ja) 制御装置、制御装置の制御方法、及び、プログラム
JP2005111818A (ja) 印刷装置及び印刷装置用コントローラ
JP5828398B2 (ja) 記録装置、記録装置の制御方法、及び、プログラム
US20220253233A1 (en) Memory control device and method
JP7400584B2 (ja) テープ印刷装置、テープ印刷システム、およびテープ印刷装置の制御方法
JP2011192107A (ja) 制御装置、記録システム、制御装置の制御方法、及び、プログラム
JP2011088373A (ja) 記録装置、記録装置の制御方法、及び、プログラム
JP5987415B2 (ja) 記録装置、記録装置の制御方法、及び、プログラム
JP5857656B2 (ja) 制御装置、制御装置の制御方法、及び、プログラム
JP2008149652A (ja) ラベルプリンタ
JP2012101391A (ja) 記録装置、記録装置の制御方法、及び、プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130809

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140627

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: 20141028

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141110

R150 Certificate of patent or registration of utility model

Ref document number: 5655453

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