(57)【特許請求の範囲】
【請求項１】
ホストコンピューターから受信した即時実行コマンドを含むコマンドを、受信した順に、受信バッファーに循環的に書き込む書込制御部と、
前記受信バッファーに書き込まれたコマンドであって前記即時実行コマンドを除くコマンドを書き込まれた順に読み出して実行するコマンド実行部と、
前記受信バッファーに書き込まれたコマンドの中から、書き込まれた順に即時実行コマンドを検出し、検出した即時実行コマンドを順に読み出して他のコマンドに優先して実行する即時実行コマンド実行部と、を備え、
前記書込制御部によりコマンドが書き込まれた位置から、前記コマンド実行部によりコマンドの読み出しが行われた位置に至る一連の領域を除く領域である空き領域の容量が、第１基準値以下となった場合から、当該空き領域の容量が前記第１基準値以上の値の第２基準値以上となるまでの間、通常モードからバッファーフルモードへ移行し、
前記バッファーフルモードへ移行している間、
前記書込制御部は、
前記受信バッファー内に形成された補助領域に、前記バッファーフルモードへ移行後受信した前記即時実行コマンドを含むコマンドを循環的に書き込み、
前記即時実行コマンド実行部は、
前記バッファーフルモードへ移行する前に前記受信バッファーに書き込まれた前記即時実行コマンドを実行した後、前記補助領域に書き込まれたコマンドの中から、書き込まれた順に前記即時実行コマンドを検出し、検出した前記即時実行コマンドを読み出して実行し、
前記コマンド実行部は、
前記バッファーフルモードに移行する前に前記受信バッファーに書き込まれた前記即時実行を除くコマンドを順に読み出して実行して、前記空き領域を拡張する
ことを特徴とする電子機器。
【請求項２】
前記バッファーフルモードから前記通常モードへ戻った場合、前記書込制御部は、前記補助領域へのコマンドの循環的な書き込みを終了し、前記空き領域への前記受信したコマンドの書き込みを開始することを特徴とする請求項１に記載の電子機器。
【請求項３】
前記バッファーフルモードへ移行している間、
前記書込制御部は、前記補助領域内で、書込ポインターを移動させつつ、前記書込ポインターが示す領域に前記受信したコマンドを書き込み、
前記即時実行コマンド実行部は、前記補助領域内で、即時実行コマンド読出ポインターを移動させつつ、前記即時実行コマンドが書き込まれた領域を検出し、検出した前記即時実行コマンドを読み出して実行し、
前記書込ポインターと、前記即時実行コマンド読出ポインターとが示す領域が一致した場合、前記書込制御部は、前記補助領域の先頭に前記書込ポインターを移動すると共に、前記即時実行コマンド実行部は、前記補助領域の先頭に前記即時実行コマンド読出ポインターを移動することを特徴とする請求項２に記載の電子機器。
【請求項４】
前記補助領域は、前記コマンドの実行に伴い、前記受信バッファー内を循環的に移動するものであり、
前記バッファーフルモードへ移行したときに前記受信バッファーに形成されている空き領域に対応する容量の領域であり、前記第１基準値に対応する容量の領域であることを特徴とする請求項１ないし３のいずれかに記載の電子機器。
【請求項５】
インターフェイス部を備え、前記バッファーフルモードへ移行した場合、前記インターフェイス部はその旨ホストコンピューターに通知し、前記コマンド実行部は前記受信したコマンドを読み出して実行することを停止することを特徴とする請求項１ないし４のいずれかに記載の電子機器。
【請求項６】
ホストコンピューターから受信したコマンドを、受信した順に、受信バッファーに循環的に書き込む書込制御部と、前記受信バッファーに書き込まれたコマンドであって前記即時実行コマンドを除くコマンドを書き込まれた順に読み出して実行するコマンド実行部と、前記受信バッファーに書き込まれたコマンドから、書き込まれた順に即時実行コマンドを検出し、検出した即時実行コマンドを順に読み出して実行する即時実行コマンド実行部と、を備える電子機器の制御方法であって、
前記書込制御部によりコマンドが書き込まれた位置から、前記コマンド実行部によりコマンドの読み出しが行われた位置に至る一連の領域を除く領域である空き領域の容量が、第１基準値以下となった場合から、当該空き領域の容量が前記第１基準値以上の値の第２基準値以上となるまでの間、通常モードからバッファーフルモードへ移行し、
前記バッファーフルモードへ移行している間、
前記書込制御部は、
前記受信バッファー内に形成された補助領域に、前記バッファーフルモードへ移行後受信した前記即時実行コマンドを含むコマンドを循環的に書き込み、
前記即時実行コマンド実行部は、
前記バッファーフルモードへ移行する前に前記受信バッファーに書き込まれた前記即時実行コマンドを実行した後、前記補助領域に書き込まれたコマンドの中から、書き込まれた順に前記即時実行コマンドを検出し、検出した前記即時実行コマンドを読み出して実行し、
前記コマンド実行部は、
前記バッファーフルモードに移行する前に前記受信バッファーに書き込まれた前記即時実行を除くコマンドを順に読み出して実行して、前記空き領域を拡張することを特徴とする電子機器の制御方法。
【請求項７】
ホストコンピューターからコマンドを受信する電子機器を制御する制御部により実行されるプログラムであって、
前記制御部を、
前記ホストコンピューターから受信した即時実行コマンドを含むコマンドを、受信した順に、受信バッファーに循環的に書き込む書込制御部と、
前記受信バッファーに書き込まれたコマンドであって前記即時実行コマンドを除くコマンドを書き込まれた順に読み出して実行するコマンド実行部と、
前記受信バッファーに書き込まれたコマンドの中から、書き込まれた順に即時実行コマンドを検出し、検出した即時実行コマンドを順に読み出して他のコマンドに優先して実行する即時実行コマンド実行部と、として機能させ、
前記書込制御部によりコマンドが書き込まれた位置から、前記コマンド実行部によりコマンドの読み出しが行われた位置に至る一連の領域を除く領域である空き領域の容量が、第１基準値以下となった場合から、当該空き領域の容量が前記第１基準値以上の値の第２基準値以上となるまでの間、通常モードからバッファーフルモードへ移行し、
前記バッファーフルモードへ移行している間、
前記書込制御部に、
前記受信バッファー内に形成された補助領域に、前記バッファーフルモードへ移行後受信した前記即時実行コマンドを含むコマンドを循環的に書き込ませ、
前記即時実行コマンド実行部に、
前記バッファーフルモードへ移行する前に前記受信バッファーに書き込まれた前記即時実行コマンドを実行させた後、前記補助領域に書き込まれたコマンドの中から、書き込まれた順に前記即時実行コマンドを検出させ、検出させた前記即時実行コマンドを読み出して実行させ、
前記コマンド実行部に、
前記バッファーフルモードに移行する前に前記受信バッファーに書き込まれた前記即時実行を除くコマンドを順に読み出して実行させて、前記空き領域を拡張させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピューターからコマンドを受信する電子機器、当該電子機器の制御方法、及び、当該電子機器を制御するためのプログラムに関する。
【背景技術】
【０００２】
従来、上位装置としてのホストコンピューターから送信されるコマンドに従って動作する電子機器が知られている（例えば、特許文献１参照）。このような電子機器がホストコンピューターから受信するコマンドには、通常のコマンドとは別に、電子機器のステータス返送指示やリセット指示のコマンドなど即座に実行することを要求する即時実行コマンドがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２６０４３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したような電子機器では、即時実行コマンドが入力された場合、ジョブの待ち状態にかかわらず、当該即時実行コマンドに係る処理について即座に実行することが求められる。このため、例えば、コマンドを一時的に格納するバッファーが、バッファーフルの状態であっても、即時実行コマンドについては即座に実行できるように、各コマンドを適切に管理する必要がある。しかしながら、即時実行コマンドを実行可能な状態を維持するという要求を満たした上で、未実行の各コマンドを管理する必要があるため、コマンドの管理に係る処理が複雑化する傾向にある。
本発明は、上述した事情に鑑みてなされたものであり、即時実行コマンドを実行可能な状態を維持した上で、未実行のコマンドの管理に係る処理を簡易化することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、電子機器であって、ホストコンピューターから受信した即時実行コマンドを含むコマンドを、受信した順に、受信バッファーに循環的に書き込む書込制御部と、前記受信バッファーに書き込まれたコマンドであって前記即時実行コマンドを除くコマンドを書き込まれた順に読み出して実行するコマンド実行部と、前記受信バッファーに書き込まれたコマンドの中から、書き込まれた順に即時実行コマンドを検出し、検出した即時実行コマンドを順に読み出して他のコマンドに優先して実行する即時実行コマンド実行部と、を備え、前記書込制御部によりコマンドが書き込まれた位置から、前記コマンド実行部によりコマンドの読み出しが行われた位置に至る一連の領域を除く領域である空き領域の容量が、第１基準値以下となった場合から、当該空き領域の容量が前記第１基準値以上の値の第２基準値以上となるまでの間、通常モードからバッファーフルモードへ移行し、前記バッファーフルモードへ移行している間、前記書込制御部は、前記受信バッファー内に形成された補助領域に、前記バッファーフルモードへ移行後受信した前記即時実行コマンドを含むコマンドを循環的に書き込み、前記即時実行コマンド実行部は、前記バッファーフルモードへ移行する前に前記受信バッファーに書き込まれた前記即時実行コマンドを実行した後、前記補助領域に書き込まれたコマンドの中から、書き込まれた順に前記即時実行コマンドを検出し、検出した前記即時実行コマンドを読み出して実行し、前記コマンド実行部は、前記バッファーフルモードに移行する前に前記受信バッファーに書き込まれた前記即時実行を除くコマンドを順に読み出して実行して、前記空き領域を拡張することを特徴とする。
この構成によれば、受信バッファーの状態が、空き領域が第１基準値以下のバッファーフルとなった場合であっても、同一の受信バッファーの領域内に形成された補助領域という限定された領域に即時実行コマンドを、アドレスをリング状にして使用するように循環的に書き込み、実行することにより、即時実行コマンドに係る処理が継続的に実行される状態を維持しつつ、受信バッファーにおける上記バッファーフルの解消を図ることができる。特に、補助領域は、受信バッファー内に形成された領域であるため、アドレス管理が容易で処理時間が短縮でき、バッファーフルモードへ移行後の補助領域におけるコマンドの管理を、バッファーフルモードへ移行する前のコマンドの管理と連続一体的に行うことができ、コマンドの管理に係る処理が簡易化する。なお、通常モードは、コマンド実行部が受信したコマンドの実行を行うことができるモードであり、バッファーフルモードは、コマンド実行部が受信したコマンドの実行を行うことができないモードである。いずれのモードでも、即時実行コマンド実行部は、他に優先して即時実行コマンドを実行する。
【０００６】
また、上記発明の電子機器であって、本発明は、前記バッファーフルモードから通常モードへ戻った場合、前記書込制御部は、前記補助領域へのコマンドの循環的な書き込みを終了し、前記空き領域への前記受信したコマンドの書き込みを開始することを特徴とする。
この構成によれば、空き領域の容量が第２基準値以上となり余裕ができたとき、バッファーフルモードから通常モードへ戻り、速やかに、受信バッファーを利用した通常の書き込みを開始できる。特に、補助領域は、受信バッファー内に形成された領域であるため、バッファーフルモード終了後における受信バッファーを利用した通常のコマンドの管理を、バッファーフルモードへ移行中のコマンドの管理と連続一体的に行うことができ、アドレス管理が容易でありコマンドの管理に係る処理が簡易化する。
【０００７】
また、上記発明の電子機器であって、本発明は、前記バッファーフルモードへ移行している間、前記書込制御部は、前記補助領域内で、書込ポインターを移動させつつ、前記書込ポインターが示す領域に前記受信したコマンドを書き込み、前記即時実行コマンド実行部は、前記補助領域内で、即時実行コマンド読出ポインターを移動させつつ、前記即時実行コマンドが書き込まれた領域を検出し、検出した前記即時実行コマンドを読み出して実行し、前記書込ポインターと、前記即時実行コマンド読出ポインターとが示す領域が一致した場合、前記書込制御部は、前記補助領域の先頭に前記書込ポインターを移動すると共に、前記即時実行コマンド実行部は、前記補助領域の先頭に前記即時実行コマンド読出ポインターを移動することを特徴とする。
この構成によれば、補助領域内で、書込ポインターと、即時実行コマンド読出ポインターと、が常に完全に独立して移動するのではなく、これらポインターのそれぞれが示す領域が一致したタイミングで、補助領域の先頭から再びこれらポインターの移動を管理することとなり、これらポインターのそれぞれが示す領域が一致した場合におけるこれらポインターの移動の開始位置を常に補助領域の先頭とすることができ、これらポインターの管理に係る処理が簡易化する。
【０００８】
また、上記発明の電子機器であって、本発明は、前記補助領域は、前記コマンドの実行に伴い、前記受信バッファー内を循環的に移動するものであり、前記バッファーフルモードへ移行したときに前記受信バッファーに形成されている空き領域に対応する容量の領域であり、前記第１基準値に対応する容量の領域であることを特徴とする。
この構成によれば、空き領域を利用して、受信バッファー内に補助領域に対応する領域を確保できる。
【０００９】
また、上記発明の電子機器であって、本発明は、インターフェイス部を備え、前記バッファーフルモードへ移行した場合、前記インターフェイス部はその旨ホストコンピューターに通知し、前記コマンド実行部は前記受信したコマンドを読み出して実行することを停止することを特徴とする。
この構成によれば、ホストコンピューターは、バッファーフルモードへ移行したことを検知でき、当該検知に基づいて、バッファーフルモードに対応した処理、例えば、コマンドの出力の制限等、を実行できる。この場合、電子機器は即時実行コマンド以外のコマンドの実行を停止する。
【００１０】
また、上記目的を達成するために、本発明は、ホストコンピューターから受信したコマンドを、受信した順に、受信バッファーに循環的に書き込む書込制御部と、前記受信バッファーに書き込まれたコマンドであって前記即時実行コマンドを除くコマンドを書き込まれた順に読み出して実行するコマンド実行部と、前記受信バッファーに書き込まれたコマンドから、書き込まれた順に即時実行コマンドを検出し、検出した即時実行コマンドを順に読み出して実行する即時実行コマンド実行部と、を備える電子機器の制御方法であって、前記書込制御部によりコマンドが書き込まれた位置から、前記コマンド実行部によりコマンドの読み出しが行われた位置に至る一連の領域を除く領域である空き領域の容量が、第１基準値以下となった場合から、当該空き領域の容量が前記第１基準値以上の値の第２基準値以上となるまでの間、通常モードからバッファーフルモードへ移行し、前記バッファーフルモードへ移行している間、前記書込制御部は、前記受信バッファー内に形成された補助領域に、前記バッファーフルモードへ移行後受信した前記即時実行コマンドを含むコマンドを循環的に書き込み、前記即時実行コマンド実行部は、前記バッファーフルモードへ移行する前に前記受信バッファーに書き込まれた前記即時実行コマンドを実行した後、前記補助領域に書き込まれたコマンドの中から、書き込まれた順に前記即時実行コマンドを検出し、検出した前記即時実行コマンドを読み出して実行し、前記コマンド実行部は、前記バッファーフルモードに移行する前に前記受信バッファーに書き込まれた前記即時実行を除くコマンドを順に読み出して実行して、前記空き領域を拡張することを特徴とする。
この制御方法によれば、受信バッファーの状態が、空き領域が第１基準値以下のバッファーフルとなった場合であっても、同一の受信バッファーの領域内に形成された補助領域という限定された領域に即時実行コマンドを、アドレスをリング状にして使用するように循環的に書き込み実行することにより、即時実行コマンドに係る処理が継続的に実行される状態を維持しつつ、受信バッファーにおける上記バッファーフルの解消を図ることができる。特に、補助領域は、受信バッファー内に形成された領域であるため、アドレス管理が容易で処理時間が短縮でき、バッファーフルモードへ移行後の補助領域におけるコマンドの管理を、バッファーフルモードへ移行する前のコマンドの管理と連続一体的に行うことができ、コマンドの管理に係る処理が簡易化する。
【００１１】
また、上記目的を達成するために、本発明は、ホストコンピューターからコマンドを受信する電子機器を制御する制御部により実行されるプログラムであって、前記制御部を、前記ホストコンピューターから受信した即時実行コマンドを含むコマンドを、受信した順に、受信バッファーに循環的に書き込む書込制御部と、前記受信バッファーに書き込まれたコマンドであって前記即時実行コマンドを除くコマンドを書き込まれた順に読み出して実行するコマンド実行部と、前記受信バッファーに書き込まれたコマンドの中から、書き込まれた順に即時実行コマンドを検出し、検出した即時実行コマンドを順に読み出して他のコマンドに優先して実行する即時実行コマンド実行部と、として機能させ、前記書込制御部によりコマンドが書き込まれた位置から、前記コマンド実行部によりコマンドの読み出しが行われた位置に至る一連の領域を除く領域である空き領域の容量が、第１基準値以下となった場合から、当該空き領域の容量が前記第１基準値以上の値の第２基準値以上となるまでの間、通常モードからバッファーフルモードへ移行し、前記バッファーフルモードへ移行している間、前記書込制御部に、前記受信バッファー内に形成された補助領域に、前記バッファーフルモードへ移行後受信した前記即時実行コマンドを含むコマンドを循環的に書き込ませ、前記即時実行コマンド実行部に、前記バッファーフルモードへ移行する前に前記受信バッファーに書き込まれた前記即時実行コマンドを実行させた後、前記補助領域に書き込まれたコマンドの中から、書き込まれた順に前記即時実行コマンドを検出させ、検出させた前記即時実行コマンドを読み出して実行させ、前記コマンド実行部に、前記バッファーフルモードに移行する前に前記受信バッファーに書き込まれた前記即時実行を除くコマンドを順に読み出して実行させて、前記空き領域を拡張させることを特徴とする。
このプログラムを実行すれば、受信バッファーの状態が、空き領域が第１基準値以下のバッファーフルとなった場合であっても、同一の受信バッファーの領域内に形成された補助領域という限定された領域に即時実行コマンドを、アドレスをリング状にして使用するように循環的に書き込み、実行することにより、即時実行コマンドに係る処理が継続的に実行される状態を維持しつつ、受信バッファーにおける上記バッファーフルの解消を図ることができる。特に、補助領域は、受信バッファー内に形成された領域であるため、アドレス管理が容易で処理時間が短縮でき、バッファーフルモードへ移行後の補助領域におけるコマンドの管理を、バッファーフルモードへ移行する前のコマンドの管理と連続一体的に行うことができ、コマンドの管理に係る処理が簡易化する。
【発明の効果】
【００１２】
本発明によれば、即時実行コマンドの実行可能な状態を維持した上で、コマンドの管理に係る処理を簡易化できる。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係るＰＯＳ端末の概略構成を示す図である。
【図２】プリンターの構成を示すブロック図である。
【図３】プリンターと制御部と、受信バッファーとの関係を模式的に示す図。
【図４】受信バッファーの構成を模式的に示す図である。
【図５】プリンターの動作を示すフローチャートである。
【図６】受信バッファーの状態を模式的に示す図である。
【図７】補助領域の状態を模式的に示す図である。
【図８】受信バッファーの状態を模式的に示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本発明を適用した実施形態に係るＰＯＳ端末１の概略構成を示す図である。
ＰＯＳ端末１は、例えば小売店等の店頭に設置され、売上げ精算を行うレジスターであり、販売時点管理システム（ＰＯＳシステム）を構成する。ＰＯＳ端末１は、売上登録処理及び精算処理を行うホストコンピューター４に、レシート１０１を発行するプリンター２を接続して構成される。ホストコンピューター４は、売上登録した情報を収集するＰＯＳサーバー５に、通信回線を介して接続されている。ホストコンピューター４は、売上登録処理及び精算処理の処理内容を表示するディスプレー４１、売上登録処理時に商品に付されたバーコードを読み取るバーコードスキャナー４２、売上登録キー等の各種キーを備えたキー入力部４３、精算用の現金を収容するキャッシュドロワー４４等を備えている。キャッシュドロワー４４は、後述するようにプリンター２に接続され、プリンター２から入力されるドロワーオープン信号を受信したときに開く構成となっている。
【００１５】
電子機器としてのプリンター２は、本体１１に記録媒体としての感熱ロール紙を収容し、印刷部ヘッドによりロール紙に画像を印刷（記録）して、レシート１０１を出力する。プリンター２は、ロール紙を搬送するローラー形状のプラテン（図示略）と、このプラテンに対向配置された印刷ヘッドとを備え、排紙口１４の近傍には、ロール紙を切断するカッターユニット（図示略）が配置されている。本実施形態のプリンター２が備える印刷ヘッドは、例えば、発熱体（図示略）をロール紙の幅方向に、一列または複数列で並べて構成されるラインサーマルヘッドである。各々の発熱体には後述するプリントエンジン２０により個別に通電され、ロール紙の印刷面（記録面）に密着する発熱体によってロール紙に熱エネルギーを与えることによって、ロール紙を発色させる。
印刷ヘッドによって印刷されたロール紙は、本体１１の上面に形成された排紙口１４から外に向けて搬送され、カッターユニットにより切断され、レシート１０１として出力される。レシート１０１には、店名や売り上げた商品名、商品数量、金額、合計金額等の文字、ロゴの画像等が印刷される。
【００１６】
また、図１に示すように、プリンター２の本体１１には開閉可能なカバー１２が設けられる。本体１１には、カバー１２を開くためのレバー１３が設けられ、カバー１２を開くと、ロール紙を収容する空間が露出し、ロール紙の補充や交換が可能になる。また、本体１１には、プリンター２の電源をオン／オフさせる電源スイッチ１６、ロール紙の紙送り動作を指示し、また制御時の所定の条件下で動作モードの切り替え等を指示する操作を行うための紙送りスイッチ１７、及び、プリンター２の動作状態等を表示するためのＬＥＤ表示部１８が設けられている。
プリンター２は、プラテンローラーを回転させてロール紙を搬送する搬送モーター、カッターユニットを駆動してロール紙を切断するカッター駆動モーター、印刷ヘッドを駆動させて、ロール紙に対して文字や画像を記録する。
【００１７】
図２は、プリンター２の回路構成を示すブロック図である。
プリンター２は、実際の印刷を行うプリントエンジン２０と、プリンター２の全体を制御する制御部２１と、制御部２１が実行する基本制御プログラムを記憶したＲＯＭ２２と、制御部２１が実行する制御プログラム２４Ａ及びコマンド２４Ｂ等を記憶した不揮発性のメモリーであるＥＥＰＲＯＭ２４と、制御部２１の制御の下、ホストコンピューター４や、キャッシュドロワー４４との間で各種データの送受信を行うインターフェイス部２５と、紙送りスイッチ１７（図１）における操作を検出する入力部２７と、ＬＥＤ表示部１８を制御して各種表示を行わせる表示部２８と、プリンター２の各部の動作状態を監視するステータス監視部３０と、ホストコンピューター４から受信した受信データを一時的に循環的に格納するリングバッファーであるＲＡＭからなる受信バッファー３１と、を備えている。リングバッファーとは、アドレスの先端から順次データを記憶し、後端に至ると再び先端にアドレスを戻して記憶していくものであり、メモリーを効率的に使用できる。
【００１８】
プリントエンジン２０は、制御部２１の制御に従って、ホストコンピューター４から送信された印刷データに基づき、記録媒体としてのロール紙に印刷する文字や画像を作成し、用紙端センサーや用紙残量センサー等の各種センサーの検出値を監視しながら、プリンター２が備える印刷ヘッド、カッター駆動モーター及び搬送モーターを動作させ、ロール紙への印刷を実行する。
このように、プリンター２は、紙や合成樹脂製の記録媒体（ロール紙、カット紙、複写紙等）の印刷面にインクやトナーを付着させ、或いは記録媒体の印刷面に熱を与える印刷ヘッド、記録媒体に対して印刷ヘッドを移動させる印刷ヘッド駆動機構、記録媒体を搬送する搬送機構等を備え、これら印刷ヘッド及び各種機構がプリントエンジン２０によって制御される。
また、プリントエンジン２０は、制御部２１の制御に従って、入力部２７によって紙送りスイッチ１７の操作を検出した場合は搬送モーターを動作させてロール紙を所定量搬送し、プリンター２の動作状態等に合わせて表示部２８を介してＬＥＤ表示部１８の各ＬＥＤの点灯状態を変化させる。
【００１９】
制御部２１は、ＣＰＵや、実行するプログラムやデータ等を一時的に記憶するワークエリアとしてのメモリーを内蔵し、マイクロコンピューターとして機能し、ＲＯＭ２２に記憶された基本制御プログラムや、ＥＥＰＲＯＭ２４に記憶された制御プログラム２４Ａを実行する。
ＲＯＭ２２は、制御部２１によってプリンター２の各部を初期化するとともに、これらの各部を制御するための基本制御プログラム、及び、この基本制御プログラムに係るデータ等を不揮発的に記憶する。
ＥＥＰＲＯＭ２４は、書き換え可能な不揮発性の記憶装置であり、制御プログラム２４Ａ、及びコマンド２４Ｂを含む各種のプログラムやデータを記憶する。
インターフェイス部２５は、ＵＳＢやＲＳ２３２Ｃインターフェイス等の各種インターフェイスを備え、制御部２１の制御の下、ホストコンピューター４との間で所定の規格に準拠した、有線または無線通信を行う。制御部２１は、インターフェイス部２５を介してホストコンピューター４から受信した受信データを、受信バッファー３１に順次記憶する。
受信バッファー３１は、制御部２１の制御の下、ホストコンピューター４から受信した受信データを順次記憶するリングバッファーである。受信バッファー３１には、ホストコンピューター４から受信したコマンド、及び、このコマンドに続く印刷データなどのデータが、区別なく、６４ビット毎に格納される。
【００２０】
プリンター２が備えるステータス監視部３０には、外部からプリンター２に供給される電源電圧を検出、カバー１２の開閉状態、ロール紙の有無等を検出する各検出部が接続され、これらの検出部における検出状態に基づき、たとえば、プリンター２における電源電圧の異常、用紙補充やインクカートリッジの交換時に開閉されるプリンター２のカバー１２が開いたこと、プリンター２の用紙切れ、紙送りスイッチ１７の操作等のプリンター２における事象（イベント）の発生を示す検出信号を、制御部２１に割り込み信号として出力する。
【００２１】
プリンター２の動作モードには、ホストコンピューター４との通信および印刷等を実行可能なオンラインモード（通常モード）と、必要最小限の動作しか行わないオフラインモード（バッファーフルモード）とがある。オフラインモードは、印字動作の続行が不適当な場合には、印字ヘッドを含む印字メカニズムを停止し、且つホストコンピューター４との間でのコマンドのやり取りを制限し、印字装置および通信データの保全及び使用者の安全を確保する。オフラインモードへの移行は、カバー１２が開いたり、用紙が無くなったりする等の所定のオフライン要因が発生したことのほか、後述するように受信バッファー３１がバッファーフル状態となったことをトリガーとして実行される。なお、オフラインモードへ移行した後、例えば、ステータス監視部３０がオフライン要因が解消したことを検出した場合に、制御部２１は、動作モードをオンラインモードに移行する。
オフラインモードに移行した場合、制御部２１は、ホストコンピューター４に対してオフラインモードに移行していることを通知する。ホストコンピューター４は、プリンター２がオフラインモードへ移行している間、プリンター２に対し、通常コマンドの出力を一時的に停止し、必要に応じて、通常コマンドよりも緊急性の高い、所定の処理について即時に実行することを求める即時実行コマンドを出力する。
本実施形態に係るプリンター２は、受信バッファー３１がバッファーフル状態となったことに起因して、動作モードがオフラインモード（本実施形態では、この場合のオフラインモードを、バッファーフルモードという）へ移行した場合であっても、即時実行コマンドが入力された場合は、即時実行コマンドに係る処理を実行できる状態が維持されるように、コマンドを管理し、さらに、当該管理に係る処理を簡易化している。
以下、本実施形態に係るプリンター２によるコマンドの管理に係る処理について詳述する。
【００２２】
図３は、プリンター２の制御部２１の機能的構成を示すブロック図である。
図４は、受信バッファー３１の構造を模式的に示す図である。なお、図４では、受信バッファー３１の構造を、発明の説明の便宜を考慮して、発明の説明に適した構造としている。
図４に示すように、本実施形態に係る受信バッファー３１の容量は、４２２４バイトである。そして、受信バッファー３１の記憶領域は、６４ビットを１ワードとして、ワードに対応する領域毎に領域が区分されると共に、区分された領域ごとにアドレスが割り当てられている。以下、ワード毎に区分された領域のことを「ワード領域」称するものとする。
この受信バッファー３１は、リングバッファーであり、データの書き込みは、ワード領域単位で、循環的に行われる。
【００２３】
図３に示すように、制御部２１は、書込制御部２１Ａ、コマンド実行部２１Ｂ、及び、即時実行コマンド実行部２１Ｃを備えている。これら各部の機能は、ＣＰＵがＥＥＰＲＯＭ２４に記憶された制御プログラム２４Ａを実行する等、ハードウェアとソフトウェアとが協働して実現される。
書込制御部２１Ａは、書込ポインター管理部２１ａを備え、書込ポインター管理部２１ａが管理する書込ポインター５０に応じて、ワード領域にホストコンピューター４から受信した受信データを書き込む。
詳述すると、書込ポインター５０とは、受信バッファー３１に形成されたワード領域のうち、受信データを書き込むべきワード領域のアドレスを示すポインターである。書込ポインター管理部２１ａは、書込ポインター５０が示すアドレスに対応する１のワード領域に対して受信データの書き込みが行われた場合、当該書込ポインター５０が示すアドレスを、当該１のワード領域の次のワード領域のアドレスに更新する動作を継続して実行し、書込ポインター５０が示すアドレスが、常に、受信データを書き込むべきワード領域のアドレスとなるよう、書込ポインター５０を管理する。なお、図４において、受信バッファー３１の先頭アドレスを「００００番地」とし、末尾アドレスを「０２０Ｆ番地」とすると、受信バッファー３１がリングバッファーであるため、書込ポインター５０が示すアドレスは、「０２０Ｆ番地」の次は、「００００番地」となる。
書込制御部２１Ａは、ホストコンピューター４から受信した受信データを、書込ポインター５０が示すアドレスに対応するワード領域に書き込む。例えば、図４を参照し、書込ポインター５０が「００２２番地」を示している場合、書込制御部２１Ａは、「００２２番地」に対応するワード領域に、受信データを書き込む。
【００２４】
なお、以下の説明では、説明の簡易化のため、受信バッファー３１のワード領域に記憶される受信データのそれぞれは、コマンドを含むデータであるものとする。すなわち、ワード領域のそれぞれには、６４ビットからなるコマンド、及び、当該コマンドに付随するデータが、書き込まれる。
【００２５】
コマンド実行部２１Ｂは、読出ポインター管理部２１ｂを備え、読出ポインター管理部２１ｂが管理する読出ポインター５１に応じて、ワード領域からデータを読み出して、当該データに含まれるコマンドに応じた処理を実行する。
詳述すると、読出ポインター５１とは、受信バッファー３１に形成されたワード領域のうち、データを読み出すべきワード領域のアドレスを示すポインターである。読出ポインター管理部２１ｂは、読出ポインター５１が示すアドレスに対応する１のワード領域から受信データの読み出しが行われた場合、当該読出ポインター５１が示すアドレスを、当該１のワード領域の次のワード領域のアドレスに更新する動作を継続して実行し、これにより、読出ポインター５１が示すアドレスが、常に、受信データを読み出すべきワード領域のアドレスとなるよう、読出ポインター５１を管理する。
コマンド実行部２１Ｂは、読出ポインター５１が示すアドレスに対応するワード領域から受信データを読み出して、受信データに係る処理を実行する。例えば、図４を参照し、読出ポインター５１が示すアドレスが「０００２番地」である場合、コマンド実行部２１Ｂは、「０００２番地」に対応するワード領域に書き込まれた受信データを読み出すと共に、当該受信データに含まれるコマンドに対応する処理を実行する。
コマンド実行部２１Ｂは、処理の実行後、ワード領域に書き込まれた受信データを消去する。なお、ワード領域に書き込まれた受信データが既に読み出しが終了したことをワード領域毎にフラグで管理するようにしてもよい。このようにして、次の受信データを記憶する空き領域が形成される。空き領域は、コマンドの実行に伴い、受信バッファー３１内を循環的に移動する。受信バッファー３１内で、空き領域およびそれと共に移動する後述の補助領域は、循環的に移動し、いわばリングバッファーのように移動する。
本実施形態では、受信バッファー３１内において、書込ポインター５０に追従するように読出ポインター５１が移動し、これにより、ホストコンピューター４から受信した受信データであって、対応する処理が実行されていない受信データについて、受信した順に、読出され、対応する処理が実行されることとなる。
【００２６】
即時実行コマンド実行部２１Ｃは、即時実行コマンド読出ポインター管理部２１ｃを備え、即時実行コマンド読出ポインター管理部２１ｃが管理する即時実行コマンド読出ポインター５２に応じて、ワード領域から即時実行コマンドを含む受信データを読み出して、即時実行コマンドに応じた処理を実行する。
詳述すると、即時実行コマンド読出ポインター５２とは、受信バッファー３１に形成されたワード領域のうち、即時実行コマンドが含まれる受信データを読み出すべきワード領域のアドレスを示すポインターである。即時実行コマンド読出ポインター管理部２１ｃは、１のワード領域に書き込まれた即時実行コマンドを含む受信データが読み出されて実行された後、当該１のワード領域から、書込ポインター５０が示すアドレスに対応するワード領域へ向かって、順番に、各ワード領域に書き込まれた受信データの内容を分析していき、即時実行コマンドが含まれた受信データが書き込まれたワード領域を検出すると、即時実行コマンド読出ポインター５２が示すアドレスを、当該ワード領域のアドレスに更新する。
即時実行コマンド実行部２１Ｃは、即時実行コマンド読出ポインター管理部２１ｃにより、即時実行コマンドが含まれた受信データが書き込まれたワード領域が検出された場合、即時実行コマンド読出ポインター５２が示すアドレスに対応するワード領域に書き込まれた受信データを読み出し、当該受信データに含まれる即時実行コマンドに対応する処理を、割り込み処理として、強制的に、即座に実行する。
コマンド実行部２１Ｂは、処理の実行後、ワード領域に書き込まれた受信データを消去する。
なお、即時実行コマンドとしては、ステータス通知の送信を指示するステータス要求コマンドや、受信バッファー３１の全消去を指示するバッファークリアコマンド、キャッシュドロワー４４の開動作を指示するドロワーオープンコマンド等がある。プリンター２は、他のコマンドや処理に優先して、即時実行コマンドを実行し、ステータスの送信等を行う。
【００２７】
図５は、本実施形態に係るプリンター２の動作を示すフローチャートである。
図５のフローチャートの開始時点では、受信バッファー３１に対して、通常の受信データの書き込み、及び、読み出しが実行されているものとする。
まず、プリンター２の制御部２１は、受信バッファー３１の状態がビジー状態に至ったか否かを監視する（ステップＳＡ１）。
【００２８】
図６（Ａ）は、ステップＳＡ１の動作を説明するための図である。
ビジー状態とは、受信バッファー３１の空き領域の容量が、ビジー状態容量として規定された２５６バイト以下となっている状態のことである。
受信バッファー３１の空き領域とは、受信バッファー３１の書き込み領域のうち、未実行の受信データが書き込まれた領域を除く領域のことであり、具体的には、読出ポインター５１と、書込ポインター５０とで囲まれた領域（＝未実行の受信データが書き込まれた領域。図６（Ａ）において、斜線で示す領域。）を除く領域のことである。ビジー状態とは、受信バッファー３１の全体の容量との関係で、空き領域の容量が少なくなった状態である。
【００２９】
受信バッファー３１の状態がビジー状態に至った場合（ステップＳＡ１：ＹＥＳ）、制御部２１は、受信バッファー３１の状態がビジー状態である旨、ホストコンピューター４に対して通知する（ステップＳＡ２）。この通知により、ホストコンピューター４は、受信バッファー３１の状態がビジー状態であることを検出すると共に、受信バッファー３１がビジー状態のときにすべき動作として予め定められた動作、例えば、プリンター２へのデータの出力のピッチを落としたり、予め定められた所定のコマンドに係るデータのみをプリンター２へ出力するようにしたり、また、受信バッファー３１の状態がビジー状態である旨の情報をディスプレー４１に表示したりする等の動作を実行する。なお、図示は省略したが、受信バッファー３１の空き領域の容量が、後述するバッファーフル容量（１２８バイト）以下となることなく、ビジー状態容量を上回った場合、制御部２１は、その旨、ホストコンピューター４に出力する。
【００３０】
次いで、制御部２１は、受信バッファー３１の空き領域の容量が、バッファーフル容量として規定された１２８バイト以下となったか否かを監視する（ステップＳＡ３）。このバッファーフル容量が、第１基準値に対応する。
受信バッファー３１の空き領域の容量が、バッファーフル容量以下となった場合（ステップＳＡ３：ＹＥＳ）、制御部２１は、動作モードを、通常モードからバッファーフルモードへ移行し（ステップＳＡ４）、動作モードがバッファーフルモードへ移行したことを、ホストコンピューター４に通知する（ステップＳＡ５）。このバッファーフルモードは、オフラインモードの一種であり、受信データの保全、及び、バッファーフル状態（後述）の解消を図るべく、コマンドの実行の停止や、印刷メカニズムの一時的な停止や、プリンター２とホストコンピューター４との間でやり取りするコマンドの制限等が行われる。
ステップＳＡ５の通知により、動作モードがバッファーフルモードに移行したことを検出すると、ホストコンピューター４は、オフラインモードに準じた動作を実行する。すなわち、ホストコンピューター４からプリンター２に対して出力されるコマンドが、即時実行コマンドに制限され、ホストコンピューター４は、基本的に、即時実行コマンドのみをプリンター２に対して出力する。ここで、プリンター２がバッファーフルモードへ移行した後に、ホストコンピューター４からプリンター２へ出力された即時実行コマンド以外のコマンドについては、そのコマンドに対応する動作が実行されることについて、保証されないものと事前に定められている。
次いで、制御部２１は、補助領域を規定する（ステップＳＡ６）。
【００３１】
図６（Ｂ）は、補助領域を説明するための図である。
本実施形態では、受信バッファー３１の４２２４バイトの記憶領域のうち、４０９６バイトの領域が、通常時に受信データが書き込まれる領域である通常書込領域とされ、この通常書込領域がバッファーフルとなったときに、残りの１２６バイトの領域を補助領域として予備的に使用する構成となっている。すなわち、通常書込領域のほかに、補助領域が常に確保される構成となっている。
なお、本実施形態では、通常時に使用される通常書込領域がバッファーフルとなっている場合に、受信バッファー３１の状態がバッファーフル状態となっているとされる。これは、補助領域は、予備的に使用するために確保された領域であるため、通常書込領域がバッファーフルとなった状態は、補助領域が形成されていないバッファーがバッファーフルとなった状態に該当するからである。
補助領域について、詳述すると、図６（Ｂ）を参照し、受信バッファー３１の空き領域の容量が１２６バイトとなったということは、４２２４バイトの記憶領域のうち、通常書込領域に対応する４０９６バイトの領域がバッファーフルとなったということである。そして、通常書込領域がバッファーフルとなったときに記憶領域に形成される１２６バイトの空き領域が、補助領域として機能する。
ステップＳＡ６では、制御部２１は、補助領域、すなわち、空き領域の容量が１２６バイトとなった時点での空き領域の先頭アドレス（以下、「補助領域先頭アドレス」という）、及び、末尾アドレス（以下、「補助領域末尾アドレス」という）を取得する。
次いで、制御部２１は、バッファーフル時処理を実行する（ステップＳＡ７）。
【００３２】
図７は、バッファーフル時処理を説明するための図である。
バッファーフル時処理とは、ホストコンピューター４から入力された受信データに応じて、受信データの書き込み、読み出し、実行を行う処理であり、特に、バッファーフル時処理では、受信データの書き込みは補助領域に対してのみ行われ、かつ、補助領域に書き込まれた受信データのうち、即時実行コマンドに係る受信データのみが読み出され、当該即時実行コマンドに対応する処理が実行される。
なお、補助領域は、１つのリングバッファーとして機能し、補助領域に対して受信データは、循環的に書き込まれる。
詳述すると、書込ポインター管理部２１ａは、受信データの入力、及び、入力された受信データの書き込みに応じて、補助領域に含まれるワード領域のうち、先頭のワード領域から、順次、書込ポインター５０が示すアドレスを更新する。
ここで、バッファーフルモードに移行後、補助領域の先頭のワード領域からデータの書き込みを行っていくためには、バッファーフルモードへ移行した際、書込ポインター５０が、補助領域の先頭のワード領域のアドレスを示している必要がある。本実施形態では、通常書込領域と、補助領域とが、１つの受信バッファー３１において連続一体的に形成されている。このため、バッファーフルモードへ移行するとき、すなわち、通常書込領域の末尾のワード領域への受信データの書き込みが終わったときに、通常の処理と同様にして、書込ポインター５０が示すアドレスを、通常書込領域の末尾のワード領域のアドレスから、次のワード領域のアドレス（＝補助領域の先頭のワード領域のアドレス）へと更新すれば、バファーフルモードに移行した時点で、書込ポインター５０が示すアドレスが、補助領域の先頭のワード領域のアドレスとなる。
このように、バッファーフルモードへ移行した際、通常と異なる処理により、書込ポインター５０が示すアドレスを更新する必要がないため、書込ポインター５０の管理に係る処理が簡易である。例えば、バッファーを２つ設け、１のバッファーがバッファーフルとなった場合に、予備的に他のバッファーを利用する構成とした場合、１のバッファーがバッファーフルとなったときに、他のバッファーにおける書込ポインターを、１のバッファーにおける書込ポインターとは別に管理する必要があるが、このような場合と比較して、本実施形態における書込ポインター５０の管理の簡易性は顕著である。
【００３３】
さらに、バッファーフル時処理において、即時実行コマンド読出ポインター管理部２１ｃは、即時実行コマンドを含むデータの読み出しに応じて、補助領域に含まれるワード領域のうち、先頭のワード領域から、順次、即時実行コマンド読出ポインター５２が示すアドレスを更新する。即時実行コマンド実行部２１Ｃは、即時実行コマンド読出ポインター５２の移動に応じて、順次、即時実行コマンドに対応する処理を実行していく。
バッファーフルモードに移行中、補助領域内において、即時実行コマンド読出ポインター５２は、書込ポインター５０を追従するように動いていき、これにより、バッファーフルモードに移行中、例えばオフラインであるにもかかわらず、緊急を要するためホストコンピューター４から送信され、受信した即時実行コマンドについて、当該コマンドに対応する処理が、順次、他の処理に優先して実行される。
【００３４】
ここで、本実施形態では、書込ポインター５０、及び、即時実行コマンド読出ポインター５２は、補助領域内を以下のように移動するよう管理される。なお、以下の説明では、各種ポインターが示すアドレスを更新することを、適宜、ポインターが移動すると表現することがあるものとする。
すなわち、図７（Ａ）を参照し、基本的には、制御部２１の各部は、即時実行コマンド読出ポインター５２が書込ポインター５０を追従するようにこれらポインターを移動させ、受信した順番に、即時実行コマンドに対応する処理が実行されるようにする。
ここで、図７（Ｂ）に示すように、書込ポインター５０と、即時実行コマンド読出ポインター５２との位置が一致した場合、すなわち、書込ポインター５０が示すアドレスと、即時実行コマンド読出ポインター５２が示すアドレスとが一致した場合、制御部２１の各部は、図７（Ｃ）に示すように、書込ポインター５０、及び、即時実行コマンド読出ポインター５２の双方を、補助領域の先頭のワード領域に対応する位置に移動し、再び、補助領域の先頭からこれらポインターの移動を開始する。
なお、補助領域の先頭に書込ポインター５０が戻った場合、受信データは、再び、補助領域の先頭のワード領域から、順次、書き込まれることとなるが、その際、実施していない通常コマンドを含むデータが既に書き込まれているワード領域については、データが上書きされる。
このように、書込ポインター５０、及び、即時実行コマンド読出ポインター５２を移動させることにより、書込ポインター５０の位置と、即時実行コマンド読出ポインター５２の位置とが一致した場合は、常に、これらポインターの移動を、補助領域の先頭から開始させることとなり、互いのポインターが完全に独立して移動する場合と比較して、これらポインターの管理が簡易化する。さらに、各ポインターについて、補助領域の末尾のワード領域から、先頭のワード領域への移動をある程度防止でき、さらなるポインターの管理の簡易化を図ることができる。
なお、バッファーフル時処理では、通常コマンドを含むデータは、読み出されることなく、随時、上書きされ、消滅することとなるが、上述したように、バッファーフルモード移行時は、通常コマンドに係る処理については、その処理が実行されることについて保証されないこととされており、ホストコンピューター４は、そのことを前提としてプリンター２に対して通常コマンドを出力しているため、通常コマンドに係る処理が実行されないことについては、問題はない。
【００３５】
以上説明したバッファーフル時処理により、以下の効果を得ることができる。
すなわち、プリンター２とホストコンピューター４との間で通常コマンドに対応する処理については動作保証をしないという定めがあり、必ずしも通常コマンドを実行しなくてもよい、というバッファーフルモードの特徴を踏まえ、補助領域という限られた容量の領域を利用して、即時実行コマンドに係る処理を確実に実行しつつ、バッファーフルモードから通常のモードへ移行するのに必要な空き領域が十分に確保されるまでの時間を確保できる、という効果を得ることができる。
特に、本実施形態では、バッファーフル時処理の実行に際し、補助領域を、１つの受信バッファー３１において通常書込領域と連続一体的に形成しているため、上述したように、各ポインターの管理、すなわち、コマンドの管理の簡易化する。
【００３６】
さて、バッファーフル時処理の実行中、制御部２１は、バッファーフルモードを解除するための閾値として規定された第２基準値を、空き領域の容量が上回ったか否かを監視する（ステップＳＡ８）。この第２基準値は、バッファーフルモードの解除をするか否かを判断する基準となる値であるため、少なくとも、上述したバッファーフル容量（第１基準値）よりも大きな値とされる。
空き容量が、第２基準値を上回った場合（ステップＳＡ８：ＹＥＳ）、制御部２１は、バッファーフルモードを解除し（ステップＳＡ９）、その旨、ホストコンピューター４に通知する（ステップＳＡ１０）。これをトリガーとして、ホストコンピューター４は、通常通り、通常コマンドのプリンター２への出力を開始する。
次いで、制御部２１は、空き領域への受信データの書き込みを開始する（ステップＳＡ１１）。
【００３７】
図８は、ステップＳＡ１１の処理を説明するための図である。
図８に示すように、空き領域が第２基準値を上回ることによりバッファーフルモードが解除された場合、空き領域は、補助領域として機能していた領域と連続した領域となる。従って、バッファーフルモードが解除された場合、書込ポインター５０、及び、即時実行コマンド読出ポインター５２のそれぞれのポインターは、バッファーフルモードが解除された時点での位置から、上述した通常の管理の下、移動を開始すればよいこととなる。これにより、これらポインターの移動に従って、空き領域に対して、受信した順番に、受信データを順次書き込むことができ、また、即時実行コマンドに係る処理を順次実行可能となる。
このように、本実施形態では、受信バッファー３１に補助領域が形成されており、バッファーフルモードの解除時には、この補助領域に対応する領域と連続して空き領域が形成されるため、バッファーフルモードの解除時に、書込ポインター５０や、即時実行コマンド読出ポインター５２を、特別な処理によって、移動、管理する必要がなく、これらポインターの管理に係る処理、すなわち、コマンドの管理に係る処理が簡易化する。
【００３８】
以上説明したように、本実施形態では、電子機器たるプリンター２は、書込制御部２１Ａ、コマンド実行部２１Ｂ、及び、即時実行コマンド実行部２１Ｃを備えており、受信バッファー３１の空き領域の容量が、バッファーフル容量以下となった場合、当該空き領域の容量がバッファーフル容量以上の値の第２基準値以上となるまでの間、バッファーフルモードへ移行し、バッファーフルモードへ移行している間、書込制御部２１Ａは、受信バッファー３１内に形成された補助領域に、受信コマンドを循環的に書き込むと共に、即時実行コマンド実行部２１Ｃは、補助領域に書き込まれた受信コマンドのうち、即時実行コマンドを読み出して実行する。
これによれば、受信バッファー３１の状態が、空き領域がバッファーフル容量以下となった場合であっても、同一の受信バッファー３１に形成された補助領域という限定された領域に即時実行コマンドを循環的に書き込み実行することにより、即時実行コマンドに係る処理が継続的に実行される状態を維持しつつ、受信バッファー３１におけるバッファーフルの解消を図ることができる。特に、補助領域は、受信バッファー３１内に形成された領域であるため、バッファーフルモードへ移行後の補助領域における受信コマンドの管理を、バッファーフルモードへ移行する前の受信コマンドの管理と連続一体的に行うことができ、受信コマンドの管理に係る処理が簡易化する。
【００３９】
また、本実施形態では、バッファーフルモードへの移行が終了した場合、書込制御部２１Ａは、補助領域への受信コマンドの循環的な書き込みを終了し、空き領域へのコマンドの書き込みを開始すること。
この構成によれば、空き領域の容量が第２基準値以上となり、バッファーフルモードへの移行が終了した場合、速やかに、受信バッファー３１を利用した通常の書き込みを開始できる。特に、補助領域は、受信バッファー３１内に形成された領域であるため、バッファーフルモード終了後における受信バッファー３１を利用した通常の受信コマンドの管理を、バッファーフルモードへ移行中の受信コマンドの管理と連続一体的に行うことができ、受信コマンドの管理に係る処理が簡易化する。
すなわち、空き領域が第２基準値を上回ることによりバッファーフルモードが解除された場合、空き領域は、補助領域として機能していた領域と連続した領域となる。従って、バッファーフルモードが解除された場合、書込ポインター５０、及び、即時実行コマンド読出ポインター５２のそれぞれのポインターは、バッファーフルモードが解除された時点での位置から、上述した通常の管理の下、移動を開始すればよいこととなる。これにより、これらポインターの移動に従って、空き領域に対して、受信した順番に、受信データを順次書き込むことができ、また、即時実行コマンドに係る処理を順次実行可能となる。
【００４０】
また、本実施形態では、バッファーフル時処理の実行中、補助領域において、書込ポインター５０、及び、即時実行コマンド読出ポインター５２を移動させることにより、書込ポインター５０の位置と、即時実行コマンド読出ポインター５２の位置とが一致した場合は、常に、これらポインターの移動を、補助領域の先頭から開始させる。これにより、互いのポインターが完全に独立して移動する場合と比較して、これらポインターの管理が簡易化する。さらに、各ポインターについて、補助領域の末尾のワード領域から、先頭のワード領域への移動をある程度防止でき、さらなるポインターの管理の簡易化を図ることができる。
【００４１】
また、本実施形態では、補助領域は、バッファーフルモードへ移行したときに受信バッファー３１に形成されている空き領域に対応した、バッファーフル容量に対応する容量の領域である。
これによれば、空き領域を利用して、受信バッファー３１内に補助領域に対応する領域を確保できる。
【００４２】
また、本実施形態では、バッファーフルモードへ移行した場合、その旨、ホストコンピューター４に通知することを特徴とする。
この構成によれば、ホストコンピューター４は、バッファーフルモードへ移行したことを検知でき、当該検知に基づいて、バッファーフルモードに対応した処理、例えば、コマンドの出力の制限等、を実行できる。
【００４３】
なお、上記実施形態は本発明を適用した一具体例を示すものであり、本発明はこれに限定されるものではない。また、図２及び図３に示す各機能部はハードウェアとソフトウェアの協働により任意に実現可能であり、特定のハードウェア構成を示唆するものではない。さらに、上記実施形態では、ＰＯＳ端末１において、レシート１０１を印刷するプリンター２に本発明を適用する場合について説明したが、本発明はこれに限定されるものではなく、独立して機能するプリンターに、各種の通信手段を介してホストコンピューター４を接続した構成が挙げられ、例えば、ＬＡＮを介してプリンター２が複数のホストコンピューター４に接続されていてもよい。また、上記実施形態では、プリンター２自身が制御部２１や、受信バッファー３１等を備えた構成を例に挙げて説明したが、例えば、制御部２１や、受信バッファー３１等を備えた制御装置を、プリンター２に外部接続される別の装置としてもよい。
また、本発明を適用可能な記録装置は、コマンドに従って動作可能なプリンターであれば特に制限されず、インクジェット式プリンター、ドットインパクト式プリンター、レーザープリンター、熱昇華型プリンターのいずれであってもよく、他の方式で文字や画像を形成するプリンターであってもよいし、他の装置に組み込まれるプリンターであってもよい。また、電子媒体に記録するものでもよい。
また、本発明を適用可能なプログラムは、ホストコンピューター４に搭載されるプリンタードライバーに含むものであってもよい。
また、図５に記載のフローチャートの各ステップを実行するプログラムを、プリンター２の内部の記憶媒体に記憶させたもの、またはプリンター２の外部の記憶媒体に記憶させたものを読み出して、制御部２１により実行させることもできる。
【符号の説明】
【００４４】
２…プリンター（電子機器）、４…ホストコンピューター、２１…制御部、２１Ａ…書込制御部、２１Ｂ…コマンド実行部、２１Ｃ…即時実行コマンド実行部、３１…受信バッファー、５０…書込ポインター、５２…即時実行コマンド読出ポインター。
【図１】
0005655453.tif 000002
【図２】
0005655453.tif 000003
【図３】
0005655453.tif 000004
【図４】
0005655453.tif 000005
【図５】
0005655453.tif 000006
【図６】
0005655453.tif 000007
【図７】
0005655453.tif 000008
【図８】
0005655453.tif 000009