(57)【要約】【課題】ホストコンピューターに組み込まれているアプリケーションにステータス取得コマンドが実装されている場合にはステータスデータを送信し、ステータス取得コマンドが実装されていない場合にはビジー信号を送信することができるプリンター及びプリンターの制御方法を提供する。【解決手段】受信バッファ１０５の記憶容量がフル状態になったとき及びプリンター１００のステータスが変化したときにホストコンピューター２００へビジー信号を送信する第１のモードが設定されている場合に、ホストコンピューター２００から特定のコマンドを受信するステップＳ５３,ステップＳ５５と、特定のコマンドを受信すると、第１のモードから、受信バッファ１０５の記憶容量がフル状態になったときのみホストコンピューター２００へビジー信号を送信する第２のモードに移行するステップＳ５９と、を有する。【選択図】図７
2011046146.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピューターと通信可能に接続されたプリンターであって、
前記ホストコンピューターから受信したデータを一時的に記憶する一時記憶部を備え、
前記一時記憶部の記憶容量がほぼフル状態になったとき及び前記プリンターのステータスが変化したときに前記ホストコンピューターへビジー信号を送信する第１のモード、前記一時記憶部の記憶容量がほぼフル状態になったときに前記ホストコンピューターへ前記ビジー信号を送信する第２のモード、の何れかのモードが選択可能であることを特徴とするプリンター。
【請求項２】
前記第１のモードが設定されている場合に、
前記ホストコンピューターから特定のコマンドを受信すると、前記第１のモードから前記第２のモードに移行するモード設定部を有することを特徴とする請求項１に記載のプリンター。
【請求項３】
前記特定のコマンドは、前記プリンターのステータスデータを取得するステータス取得コマンドであることを特徴とする請求項２に記載のプリンター。
【請求項４】
前記特定のコマンドは、前記プリンターのステータスデータを要求するリアルタイムコマンド、及び、前記プリンターのステータスが変化すると、前記ステータスデータを前記ホストコンピューターへ自動的に送信するように前記プリンターに設定するための設定コマンドの少なくともいずれかであることを特徴とする請求項２に記載のプリンター。
【請求項５】
前記第１のモード及び前記第２のモードの何れかのモードを設定する切り替えスイッチまたはメモリースイッチを有することを特徴とする請求項１〜４に記載の何れかに載のプリンター。
【請求項６】
ホストコンピューターと通信可能に接続され、前記ホストコンピューターから受信したデータを一時的に記憶して処理するプリンターの制御方法であって、
前記一時記憶部の記憶容量がほぼフル状態になったとき及び前記プリンターのステータスが変化したときに前記ホストコンピューターへビジー信号を送信する第１のモードが設定されている場合に、前記ホストコンピューターから特定のコマンドを受信するステップと、
前記特定のコマンドを受信すると、前記第１のモードから、前記一時記憶部の記憶容量がほぼフル状態になったときに前記ホストコンピューターへ前記ビジー信号を送信する第２のモードに移行するステップと、を有することを特徴とするプリンターの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピューターと通信可能に接続されたプリンター及びその制御方法に関する。
【背景技術】
【０００２】
プリンターを制御して印刷するホストコンピューターに対して、ステータスデータを送信するプリンターが提案されている。例えば、プリンターのカバーオープン状態、用紙なし状態等のプリンターの状態（ステータス）をステータスデータとしてホストコンピューターに通知することができる。
ホストコンピューターはプリンターのステータスデータを取得するために、プリンターに対してステータスデータを要求するコマンドを送信する。プリンターはステータスデータを要求するコマンドに応じてステータスデータをホストコンピューターへ送信する。
【０００３】
また、特許文献１には、ホストコンピューターから受信した自動ステータス送信選択コマンドを実行すると、それ以降、選択されたステータスが変化したときだけステータスデータをホストコンピューターへ送信するプリンターが記載されている。ステータスが変化すると選択されたステータスデータだけを自動的にホストコンピューターへ送信するので、ホストコンピューターは必要とするプリンターのステータス変化を必要最小限のステータスデータで得ることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０７−１３７３５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
プリンターは、ホストコンピューターからデータを受信するデータ受信部、受信データを一時的に蓄積する受信バッファ、受信バッファ内の受信データを順に取り出して解析し、印刷データと制御コマンドとを判別し、制御コマンドに基づいて印刷データを展開し印刷パターンを生成するコマンド解析部、生成された印刷パターンを格納する印刷バッファ等を備えている。そして制御部が印刷バッファに格納された印刷パターンを読み出し、印刷機構によって印刷を行う。
【０００６】
ところで、上述した受信バッファがいっぱいになると、それ以降、ホストコンピューターからデータが送られて来ても受信することはできない。このような事態を回避するため、プリンターはホストコンピューターに対してビジー信号を送信し、ホストコンピューターはビジー信号を受けるとビジー信号が解除（レディー状態）になるまで、データの送信を停止するようにしている。
【０００７】
また、受信バッファがいっぱいになった場合以外にも、プリンターがカバーオープン状態、用紙なし状態のように印刷ができない状態（オフライン状態）になった場合に、ホストコンピューターに対してビジー信号を送信するプリンターもある。オフライン状態になった後も、ホストコンピューターから続けてデータが送信されてしまうと、ユーザーがオフライン状態になった要因を解消する際、誤った操作をして受信したデータを消滅させてしまうおそれがある。例えば、オフライン状態ではプリンターが動作していないので、誤って電源を切ってしまうなどである。また、ユーザーがオフライン要因を解消させオンライン状態へ復帰させた途端に、突然続きの印刷処理が開始される。ホストコンピューター側が予期せぬタイミングで、プリンターが勝手に印刷結果を出力することは好ましくない。このため、オフライン状態の場合にもビジー信号を送信しているプリンターもある。
【０００８】
一方、プリンターがビジー信号をホストコンピューターに送信すると、以降、ホストコンピューターは問い合わせをすることができなくなってしまう。このため、ビジー信号を送信する頻度は少ない方がよい。また、ホストコンピューターはビジー信号を受信すると、ステータスデータを取得してユーザーに必要事項を表示するなど、指示することができない。例えば、用紙なし状態を取得した場合は、ユーザーに紙交換を促す指示をするなどである。
【０００９】
このため、オフライン状態になっても、プリンターはビジー信号をホストコンピューターに送信せず、プリンターのカバーオープン状態、用紙なし状態等をステータスデータとしてホストコンピューターに通知すれば、ホストコンピューターはプリンターの状態変化を把握できる。また、プリンターからビジー信号を受信しなくても、プリンターが印刷できる状態かどうか知ることができるので、データ送信が可能かを判断することができる。
【００１０】
ところで、ホストコンピューターに組み込まれているアプリケーションにステータスデータを要求するコマンドや自動ステータス送信選択コマンドのようなステータス取得コマンドが実装されていない場合には、ホストコンピューターはプリンターのステータスデータを取得しない。この場合は、上述したようにプリンターから受信したビジー信号によってデータ送信を停止する必要がある。
【００１１】
本発明は上記課題を解決するためになされたものであって、プリンターのステータスが変化したときに、ホストコンピューターに組み込まれているアプリケーションにステータス取得コマンドが実装されている場合にはステータスデータを送信し、ステータス取得コマンドが実装されていない場合にはビジー信号を送信することができるプリンター及びプリンターの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決することのできる本発明は、ホストコンピューターと通信可能に接続されたプリンターであって、前記ホストコンピューターから受信したデータを一時的に記憶する一時記憶部を備え、前記一時記憶部の記憶容量がほぼフル状態になったとき及び前記プリンターのステータス（状態）が変化したときに前記ホストコンピューターへビジー信号を送信する第１のモード、前記一時記憶部の記憶容量がほぼフル状態になったときに前記ホストコンピューターへ前記ビジー信号を送信する第２のモード、の何れかのモードが選択可能であることを特徴とする。
上記構成によれば、ホストコンピューターに組み込まれているアプリケーションにステータス取得コマンドが実装されている場合は第２のモードを選択することによって、プリンターのステータスが変化したときはステータスデータをホストコンピューターへ送信することができる。ホストコンピューターは、受信バッファがフル状態のとき、及び、ステータスデータの受信に基づき、データ送信をしてはいけないタイミングを知ることができる。また、ステータスデータに基づきメッセージを表示するなど、ユーザーに適切な指示をすることができる。受信バッファがフル状態のときだけビジー信号をホストコンピューターへ送信すればよい。
一方、ホストコンピューターに組み込まれているアプリケーションにステータス取得コマンドが実装されていない場合は第１のモードを選択することによって、プリンターのステータスが変化したとき及び受信バッファがフル状態のときにビジー信号をホストコンピューターへ送信することにより、ホストコンピューターはデータ送信をしてはいけないタイミングを知ることができる。
このため、ホストコンピューターのアプリケーションが、ステータス取得コマンドに対応している場合の適切なモードと、対応していない場合の適切なモードを自由に選択することができ、各アプリケーションに柔軟に対応できるプリンターを提供することができる。
【００１３】
また、本発明において、前記第１のモードが設定されている場合に、前記ホストコンピューターから特定のコマンドを受信すると、前記第１のモードから前記第２のモードに移行するモード設定部を有することを特徴とする。
第２のモードは一時記憶部がフル状態になった場合にのみビジー信号をホストコンピューターへ送信するモードである。すなわち、第１のモードのときよりも、第２のモードのときの方がビジー信号をホストコンピューターへ送信する回数が少なくてすむ。また、ホストコンピューターは、データ送信をしてはいけないタイミングを知ることができ、ステータスデータに基づきメッセージを表示するなどができる。ホストコンピューターはビジー信号を受信すると、それ以降プリンターがビジー信号の解除の信号（レディー信号）を受信するまでは何の指示を送ることもできない。したがって上記構成によれば、モードの切り換えを行うための特定のコマンドを受信した場合にモード設定部が自動的に第１のモードから第２のモードへ移行させるので、ビジー信号を頻出しない使用状態に自動的に移行させることができる。
【００１４】
前記特定のコマンドは、前記プリンターのステータスデータを取得するためのステータス取得コマンドであることを特徴とする。
上記構成によれば、プリンターのステータスデータを取得するためのステータス取得コマンドを受信すると、プリンターはステータスデータをホストコンピューターへ送信する第２のモードへ移行することができる。第２のモードへ移行することで、ビジー信号をホストコンピューターへ送信する回数を減らすことができ、またホストコンピューターは、データ送信をしてはいけないタイミングを知ることができ、ステータスデータに基づきメッセージを表示するなどができる。
【００１５】
また、本発明において、前記特定のコマンドは、前記プリンターにステータスデータを要求するリアルタイムコマンド、及び、前記プリンターのステータスが変化すると、前記ステータスデータを前記ホストコンピューターへ自動的に送信するように前記プリンターに設定するための設定コマンドの少なくともいずれかであることを特徴とする。
リアルタイムコマンドとは、ホストコンピューターから要求があったときに即時に実行しなければならないコマンドである。また、ステータスデータをホストコンピューターへ自動的に送信する機能は、所謂ＡＳＢ（Auto Status Back）機能であり、プリンターのステータスが変化すると自動的にホストコンピューターへステータスデータを送信する機能をいう。
上記構成によれば、ＡＳＢ機能が設定された場合は、自動的にステータスデータをホストコンピューターへ送信することができるので、第２のモードへ移行することで、ビジー信号をホストコンピューターへ送信する回数を減らすことができ、またホストコンピューターは、データ送信をしてはいけないタイミングを知ることができ、ステータスデータに基づきメッセージを表示するなどができる。また、プリンターのステータス送信を要求するリアルタイムコマンドを受信すると、プリンターは即時にステータスデータをホストコンピューターへ送信することができるので、この場合も第２のモードへ移行することで、ビジー信号をホストコンピューターへ送信する回数を減らすことができ、またホストコンピューターは、データ送信をしてはいけないタイミングを知ることができ、ステータスデータに基づきメッセージを表示するなどができる。
【００１６】
また、本発明において、前記第１のモード及び前記第２のモードの何れかのモードを設定する切り替えスイッチまたはメモリースイッチを有することを特徴とする。
上記構成によれば、プリンターのディップスイッチやホストコンピューターからのコマンドによって容易にモードの切り替えを行なうこともできる。
【００１７】
また、上記課題を解決することのできる本発明は、ホストコンピューターと通信可能に接続され、前記ホストコンピューターから受信したデータを一時的に記憶して処理するプリンターの制御方法であって、前記一時記憶部の記憶容量がほぼフル状態になったとき及び前記プリンターのステータスが変化したときに前記ホストコンピューターへビジー信号を送信する第１のモードが設定されている場合に、前記ホストコンピューターから特定のコマンドを受信するステップと、前記特定のコマンドを受信すると、前記第１のモードから、前記一時記憶部の記憶容量がほぼフル状態になったときに前記ホストコンピューターへ前記ビジー信号を送信する第２のモードに移行するステップと、を有することを特徴とする。
上記構成によれば、ホストコンピューターに組み込まれているアプリケーションにステータス取得コマンドが実装されている場合にプリンターのステータスが変化すると、ステータスデータを送信し、ステータス取得コマンドが実装されていない場合にプリンターのステータスが変化したときはビジー信号を送信することができる。
【図面の簡単な説明】
【００１８】
【図１】本実施形態のプリンターのカバーフレームを閉じた状態を示す要部側面図である。
【図２】本実施形態のプリンターのカバーフレームを開けた状態を示す要部側面図である。
【図３】本実施形態のプリンターの内部構成を示すブロック図である。
【図４】本実施形態のプリンターの機能ブロック図である。
【図５】第１のモードが設定されている場合のプリンターの内部処理を説明するフローチャートである。
【図６】第２のモードが設定されている場合のプリンターの内部処理を説明するフローチャートである。
【図７】第１のモードから第２のモードへ自動的に移行する方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明のプリンターの実施形態を図面を参照して説明する。
本実施形態のプリンター１００は、印刷媒体であるロール紙１１に対して印刷を行う。プリンター１００は、プリンター本体１３を備える。プリンター本体１３は、金属製の本体部である本体フレーム１５が外装としての本体ケース１７によって覆われる。
【００２０】
プリンター本体１３にはロール紙１１を収納する開口部２０が設けられる。プリンター１００は、この開口部２０を開閉するカバー２１を有する。カバー２１は、ロール紙１１を搬送するための回転部材であるプラテンローラー１９を備える。カバー２１には、カバーフレーム２３が設けられている。本体ケース１７と、カバー２１は、それぞれ樹脂を用いて略箱状となるように形成される。プリンター１００の上面には紙排出口２５が設けられ、印刷されたロール紙１１の端部がこの紙排出口２５から排出される。
【００２１】
カバーフレーム２３の後部両端部分にはそれぞれ軸受部２７が形成され、軸受部２７は支軸２９を介して本体フレーム１５に開閉自在に支持される。プリンター本体１３の内部には、ロール紙１１を収容可能なロール紙ホルダー３１が設けられている。ロール紙ホルダー３１の前方には、印刷ヘッド３３が設けられている。印刷ヘッド３３は、ロール紙ホルダー３１と、プリンター本体１３のフロント部３５との間の部位に配設されている。プラテンローラー１９は、カバー２１が閉じた状態において、印刷ヘッド３３に対向配置され、送出ロール紙片を挟んだ状態とする。この状態で印刷ヘッド３３を駆動することにより、プリンター１００はロール紙１１に対して印刷を行う。
【００２２】
図２に示すように、プラテンローラー１９は、プラテンユニット３７のプラテンホルダー３９に設けられている。プラテンホルダー３９は、金属材料よりなる。プラテンホルダー３９は、解除レバー機構を有している。解除レバー機構は、係合爪と、これと連動可能な解除レバーとからなり、ロック機構を構成する。解除レバー機構は、カバー２１を本体ケース１７に対して閉止状態に係合又は係合解除する。
【００２３】
カバー２１は、紙排出口２５の近傍に、ロール紙１１を切断するためのカッターである固定刃４１を備える。一方、プリンター本体１３のフロント部３５側には可動刃４３を内蔵したカッターユニット４５が設けられている。固定刃４１と可動刃４３は、ハサミ方式によりロール紙１１を切断するための切断機構を構成する。
【００２４】
さらに、図１及び図２に示すようにプリンター１００はカバー２１の開閉を検出するカバー開閉検出器７０と、ロール紙ホルダー３１内の側壁に設けられたニアエンド検出器６０と、ロール紙１１の有無を検出する用紙検出器３０と、を有している。
【００２５】
カバー開閉検出器７０には、カバー２１の開閉を検出するメカスイッチ７２と、カバー２１側に設けられた検出板２２に押されてメカスイッチ７２方向へ移動可能な検出バー７４と、検出バー７４に検出板２２方向への押圧を付与するばね７５と、検出バー７４の移動をメカスイッチ７２へ伝達してメカスイッチ７２を作動させるスイッチレバー７３とを有する。
【００２６】
カバー２１が閉じられ検出板２２が検出バー７４に当接すると、検出バー７４は、ばね７５の押圧に抗してメカスイッチ７２の方向へ押される。検出バー７４は、スイッチレバー７３を介してメカスイッチ７２を作動させ、メカスイッチ７２は、電気的信号がＯＮとなりカバー２１が閉じられたことが検出可能である。カバー２１が開けられると、検出板２２が検出バー７４から離れ、検出バー７４は、ばね７５によりメカスイッチ７２から離れる方向へ移動する。検出バー７４の移動によりメカスイッチ７２を作動させていたスイッチレバー７３が戻り、メカスイッチ７２は、電気的にＯＦＦとなる。これによりカバー２１が開けられたことが検出可能である。
【００２７】
ニアエンド検出器６０は、ロール紙１１の残量が少なくなった状態であるニアエンド状態を検出する。ニアエンド検出部６０は、ロール部６のロール状をなす側面側に回動自在なニアエンドレバーを有している。さらに、ニアエンド検出部６０は、ニアエンドレバーの回動に連動して電気的にＯＮ、ＯＦＦとなるメカスイッチを有する。
【００２８】
ニアエンド検出部６０は、使用前のロール紙が装着されると、メカスイッチを電気的ＯＮ状態に作動させる。メカスイッチの作動により、ロール紙１１が装着され供給可能であることが検出される。印刷が行われロール紙１１が消費されロール径が小さくなると、ニアエンドレバーが回動しメカスイッチから離れる。すなわち、メカスイッチは、電気的にＯＦＦとなりロール紙１１が残り少ないニアエンドであることが検出される。
【００２９】
また、用紙検出器３０には、ロール紙１１の有無を電気的に検出するメカスイッチ３２と、ロール紙１１に押されてメカスイッチ３２方向へ移動可能な検出バー３４と、を備えている。ロール紙１１が検出バー３４に当接すると、検出バー３４は、メカスイッチ３２の方向へ押される。検出バー３４がメカスイッチ３２を作動させ、メカスイッチ３２の電気的信号がＯＮとなるとロール紙１１が装填されていることを検出できる。ロール紙１１が無くなると、検出バー３４はメカスイッチ３２から離れる方向へ移動する。メカスイッチ３２は電気的にＯＦＦとなりロール紙１１が無くなったことを検出できる。
【００３０】
次に、図３を参照してプリンター１００の内部構成について説明する。
プリンター１００は、ホストコンピューター２００と接続されている。プリンター１００は、ホストコンピューター２００と接続するための入出力インターフェイス８１と、プリンター１００を制御するプログラム等が記憶されているフラッシュＲＯＭ８３（ＲＯＭでもよい）と、ホストコンピューター２００から受信する印刷データなどを一時的に記憶しておくＲＡＭ８５と、フラッシュＲＯＭ８３に記憶されているプログラムに基づき制御を実行するＣＰＵ８７とを有する。
【００３１】
そして、カバー開閉検出器７０、ニアエンド検出器６０及び用紙検出器３０を制御する検出制御部９１と、印刷ヘッド３３およびプラテンローラー１９等の各種印刷機構９４を制御する印刷制御部９３と、カッターユニット４５の可動刃４３に動力を与える駆動モーター５２を制御するカッター制御部９５を有する。
【００３２】
入出力インターフェイス８１、フラッシュＲＯＭ８３、ＲＡＭ８５、ＣＰＵ８７、検出制御部９１、印刷制御部９３、カッター制御部９５はバス９７を介して相互に接続されている。
【００３３】
カッター制御部９５はＣＰＵ８７から送られた指示に応じてカッターユニットの駆動モーター５２を動作制御し、検出制御部９１はＣＰＵ８７から送られた指示に応じてニアエンド検出器６０、カバー開閉検出器７０及び用紙検出器３０を制御し、印刷制御部９３はＣＰＵ８７から送られた指示に応じてプラテンローラー１９及び印刷ヘッド３３等の印刷機構の動作を制御する。
【００３４】
例えば、印刷制御部９３はＣＰＵ８７から印刷指示を受けると、プラテンローラー１９を回転駆動させてロール紙１１を搬送するとともに、印刷ヘッド３３の複数の発熱素子に選択的にエネルギーを印加させて、ロール紙１１に対する印刷を行う。
【００３５】
また、カッターユニット４５によってロール紙１１を自動的に切断するオートカット動作を実行する際に、印刷制御部９３はＣＰＵ８７からロール紙搬送指示を受けると、プラテンローラー１９を所定量だけ回転駆動させて、ロール紙１１をカット位置まで搬送させる。
【００３６】
検出制御部９１は、ニアエンド検出器６０、カバー開閉検出器７０及び用紙検出器３０のメカスイッチがＯＮ状態からＯＦＦ状態あるいはＯＦＦ状態からＯＮ状態に遷移すると、ＣＰＵ８７に通知する。
例えば、検出制御部９１がＣＰＵ８７にニアエンド検出器６０のメカスイッチがＯＮ状態からＯＦＦ状態に遷移したことを通知すると、ＣＰＵ８７はロール紙１１がニアエンド状態であると判定することができる。これにより、プリンター１００の表示部１２５を介してユーザーにロール紙１１のニアエンドを通知したり、入出力インターフェイス８１を介してホストコンピューター２００にプリンターのニアエンドを知らせることができる。
また、検出制御部９１がＣＰＵ８７にカバー開閉検出器７０のメカスイッチがＯＮ状態からＯＦＦ状態に遷移したことを通知すると、ＣＰＵ８７はプリンター１００のカバー２１が開状態であると判定することができる。これにより、プリンター１００の表示部１２５を介してユーザーにカバー開状態を通知したり、入出力インターフェイス８１を介してホストコンピューター２００にカバー開状態を知らせることができる。
さらに、検出制御部９１がＣＰＵ８７にカバー開閉検出器３０のメカスイッチがＯＮ状態からＯＦＦ状態に遷移したことを通知すると、ＣＰＵ８７はプリンター１００のカバー２１が開状態であると判定することができる。これにより、プリンター１００の表示部１２５を介してユーザーにカバー開状態を通知したり、入出力インターフェイス８１を介してホストコンピューター２００にカバー開状態を知らせることができる。
【００３７】
次に、本実施形態のプリンターが構成する各種機能について説明する。
データ受信部１０１は、入出力インターフェイス８１を介してホストコンピューター２００からのデータを受信する。
リアルタイムコマンド解析部１０３は、リアルタイムコマンドを受信した時点で受信データを解析し、即時に実行する。すなわち、データ受信部１０１が受信した受信データがリアルタイムコマンドであるかどうかを判断し、リアルタイムコマンドであればそのコマンドに応じた処理を即時に実行する。
受信バッファ１０５は、リアルタイムコマンド解析部１０３においてリアルタイムコマンドではないと判定された受信データが一時的に蓄えられる。
【００３８】
コマンド解析部１０７は、受信バッファ１０５に蓄えられた受信データを順次取り出して、解析する。そして、プリンター１００に対して様々な指令を設定するコマンドと印字データとを判別する。コマンドであれば、制御部１０９がそのコマンドに従った文字装飾や所定の設定、もしくは所定の動作を各部に指示する。一方、印字データであればそのデータに従って文字パターンを印刷バッファ１１１内に格納する。制御部１０９は印刷を実行する場合、この印刷バッファ１１１から印字パターンを読み出し、各種印刷機構９４を制御して印刷処理を行う。
【００３９】
なお、受信バッファ１０５がフル状態になった場合は、制御部１０９は、ビジー設定部１２３によってビジー信号を生成し、データ送信部１２１を介してホストコンピューター２００へ送信する。通常、受信バッファ１０５がフル状態になった場合は、それ以降に受信するデータは読み捨てられてしまう。このため、ホストコンピューター２００に対してデータ送信を停止するよう通知するためである。
【００４０】
制御部１０９は、例えば印刷機構９４にエラーが発生した場合やその他のエラーが発生した場合には、エラー状態記憶部１１３にエラー情報を書き込む。ステータスデータ生成部１１５は、各検出器３０，６０，７０，１２７から検出信号を受けると、ステータスデータを生成する。例えば、ステータスデータ生成部１１５はエラー検出部１２７からエラー検出信号を受けると、エラー情報のステータスデータを生成し記憶する。また、ステータスデータ生成部１１５は、用紙検出器３０によってロール紙無し状態が検出された場合も、ロール紙なしのステータスデータを生成し記憶する。さらに、ステータスデータ生成部１１５は、カバー開閉検出器７０によってカバー開状態が検出された場合、ニアエンド検出器６０によってロール紙１１のニアエンドが検出された場合等にも、ステータスデータを生成し記憶する。カッターユニット４５において、可動刃４３の位置を検出する不図示のセンサにより、可動刃４３が元の位置に戻らないことを検出した場合、紙ジャムまたはカッターエラーとしてステータスデータを生成することもできる。
【００４１】
なお、ステータスデータ生成部１１５は、生成したステータスデータをデータ送信部１２１を介してホストコンピューターへ送信する機能を有している。この機能は、ホストコンピューター２００から受信する特定のコマンドによって有効となる。
ここで、特定のコマンドとは、ホストコンピューター２００から受信するＡＳＢ（Auto Status Back）設定コマンド、プリンター２００のステータスデータを要求するリアルタイムコマンドがある。
【００４２】
ＡＳＢ設定コマンドとは、ステータスデータ生成部１１５が記憶しているステータスデータに変化があると、その変化したステータスデータをホストコンピューター２００へ自動的に送信する機能を設定するためのコマンドである。
ステータスデータを要求するリアルタイムコマンドとは、ステータスデータ生成部１１５が記憶しているステータスデータを即時にホストコンピューター２００へ送信するよう要求するコマンドである。
【００４３】
なお、特定のコマンドを受信しなければステータスデータ生成部１１５の上記機能は無効であり、ホストコンピューター２００にステータスデータが送信されることはない。
【００４４】
本実施形態では、入出力インターフェイス８１は双方向のシリアルインターフェイスであるＲＳ−２３２Ｃを用いており、ＲＳ−２３２Ｃではプリンター１００がオフラインの状態でもホストコンピューター２００との通信は可能である。一般にＲＳ−２３２Ｃの双方向シリアルインターフェイスでは、一方の装置がオフラインとなっても他方の装置がそれを検出しデータの送信を停止するまでの間、数バイトのデータが回線上に乗っている可能性がある。このため、カバー開状態や用紙無し状態等のオフライン状態とした側の装置はオフライン後もデータを受信した方が好ましい。よって、受信バッファ１０５がフル状態になる前に、例えば数バイト分の空き状態になったとき、オフライン状態をホストコンピューター２００へ通知することが好ましい。
【００４５】
すなわち、プリンター１００が何らかのエラー状態、カバー開状態、ロール紙無し状態等のオフライン状態となっても受信バッファ１０５に上述のように数バイト分以上の空き領域がある間は、リアルタイムコマンドやＡＳＢ設定コマンドなどのデータは受信され、受信バッファ１０５に蓄積されることが好ましい。そして、受信バッファ１０５が完全にフル状態になると、それ以降の受信データは捨てられる。
【００４６】
しかしながら、本実施形態では、リアルタイムコマンド解析部１０３を備えているので、受信バッファ１０５に一時的に蓄える前にリアルタイムコマンドか否かの解析を行って、リアルタイムコマンドであれば即時に実行することができる。
つまり、ステータスデータを要求するリアルタイムコマンドを受信した場合は、即時に実行され、ステータスデータがホストコンピューター２００へ送信される。これにより、受信バッファ１０５が完全にフル状態になる前に、ホストコンピューター２００はプリンターのステータスを把握することができ、データ送信の可否を判定することができる。
【００４７】
また、予めＡＳＢ設定コマンドによって、ステータスデータをホストコンピューター２００へ自動的に送信する機能を設定しておいた場合にも、ステータスデータが自動的にホストコンピューター２００へ送信される。したがって、受信バッファ１０５がフル状態になる前に、ホストコンピューター２００はプリンターのステータスを把握することができ、データ送信の可否を判定することができる。
【００４８】
次に、本実施形態のプリンター１００が備える２つのモードについて説明する。プリンター１００は、以下の２つのモードの何れかを選択可能な構成となっている。
（第１のモード）
第１のモードは、受信バッファ１０５の記憶容量がフル状態になったとき及びプリンター１００のステータスが変化したときにホストコンピューター２００へビジー信号を送信するモードである。
すなわち、制御部１０９が受信バッファ１０５のフル状態を認識したとき、または何れかの検出器３０,６０,７０,１２７からの検出信号によってプリンター１００のステータス変化を認識したときに、ビジー設定部１２３によってビジー信号を生成し、データ送信部１２１を介してホストコンピューター２００へ送信するモードである。
これは、ホストコンピューター２００側のアプリケーションが、ステータスデータ生成部１１５の機能を有効にするための設定コマンドを実装していない場合に対応するように選択するモードである。
【００４９】
つまり、設定コマンドを実装していないので、上述したステータスデータ生成部１１５の機能を有効にすることができない。このため、プリンター１００はホストコンピューター２００へステータスデータを送信することができない。ホストコンピューター２００はプリンターの状態を把握することができず、データを送信し続けてしまう。したがって、制御部１０９は受信バッファ１０５がフル状態となった場合以外にも、プリンター１００がオフライン状態となるようなステータス変化があった場合にも、ビジー信号でホストコンピューター２００にデータ送信を停止するよう通知する。
【００５０】
（第２のモード）
第２のモードは、受信バッファ１０５の記憶容量がフル状態になったときのみホストコンピューター２００へビジー信号を送信するモードである。
すなわち、制御部１０９が受信バッファ１０５のフル状態を認識したときのみ、ビジー設定部１２３によってビジー信号を生成し、データ送信部１２１を介してホストコンピューター２００へ送信するモードである。
これは、ホストコンピューター２００側のアプリケーションが、ステータスデータ生成部１１５の機能を有効にするための設定コマンドを実装している場合に選択することが適するモードである。
【００５１】
つまり、設定コマンドによってステータスデータ生成部１１５の機能を有効にすることができるので、プリンター１００はステータスデータをホストコンピューター２００へ送信することができる。このため、ホストコンピューター２００はデータ送信の可否をステータスデータに基づいて判断することができる。この場合は、プリンター１００は受信バッファ１０５がフル状態となった場合のみビジー信号によってホストコンピューター２００にデータ送信を停止するよう通知すればよい。
【００５２】
上述した第１のモード及び第２のモードは、ディップスイッチ１１７あるいはメモリースイッチ１１９によって設定することができる。
ディップスイッチ１１７によって設定する場合は、ユーザーが手動で、スイッチを切り替える。
メモリースイッチ１１９の場合には、予め決められた操作でメモリースイッチ設定モードへ移行する。メモリースイッチ設定モードにおいてさらに所定の操作を行なうことで、フラッシュＲＯＭ８３など不揮発性の記憶部に記憶されているメモリースイッチ１１９の設定を変更することができる。メモリースイッチ設定コマンドにより、設定してもよい。
ここでは、スイッチＯＮが第１のモード、スイッチＯＦＦが第２のモードを選択するようになっている。
【００５３】
次に、図５を参照して第１のモードが設定されている場合のプリンターの内部処理を説明する。
ホストコンピューター２００はプリンター１００にデータを送信する（ステップＳ２１）。通常時は、プリンター１００のデータ受信部１０１がデータを受信すると、リアルタイムコマンド解析部１０３がリアルタイムコマンドか否かを判定し、リアルタイムコマンドで無い場合は、受信バッファ１０５に蓄えられる。受信バッファ１０５がフル状態になっていなければ（ステップＳ１１：Ｎｏ）、制御部１０９は各検出器３０，６０，７０，１２７からの検出信号に基づきステータスに変化があるか否かを判定する。
【００５４】
ステータスに変化がある場合は（ステップＳ１３：Ｙｅｓ）、制御部１０９はホストコンピューターにビジー設定部１２３にビジー信号を生成させ、データ送信部１２１を介してホストコンピューター２００へビジー信号を送信する（ステップＳ１５）。ステータスに変化が無い場合は（ステップＳ１３：Ｎｏ）、受信したデータを解析して解析結果に応じ印刷などその他の処理を実行する。
【００５５】
一方、受信バッファ１０５がフル状態となった場合は（ステップＳ１１：Ｙｅｓ）、制御部１０９はビジー設定部１２３にビジー信号を生成させ、データ送信部１２１を介してホストコンピューター２００へビジー信号を送信する（ステップＳ１５）。
【００５６】
ホストコンピューター２００はビジー信号を受信すると（ステップＳ２３）、データ送信を停止する（ステップＳ２５）。
このように、第１のモードでは受信バッファ１０５がフル状態になったとき、及びステータスに変化があったときに、ビジー信号をホストコンピューターへ送信する。
【００５７】
次に、図６を参照して第２のモードが設定されている場合のプリンターの内部処理を説明する。
ホストコンピューター２００はプリンター１００にデータを送信する（ステップＳ４１）。通常時は、プリンター１００のデータ受信部１０１がデータを受信すると、リアルタイムコマンド解析部１０３がリアルタイムコマンドか否かを判定し、リアルタイムコマンドで無い場合は、受信バッファ１０５に蓄えられる。受信バッファ１０５がフル状態になっていなければ（ステップＳ３１：Ｎｏ）、受信したデータを解析して解析結果に応じ印刷などその他の処理を実行する。
【００５８】
受信バッファ１０５がフル状態になっていれば（ステップＳ３１：Ｙｅｓ）、制御部１０９はビジー設定部１２３にビジー信号を生成させ、データ送信部１２１を介してホストコンピューター２００へビジー信号を送信する（ステップＳ３３）。
【００５９】
ホストコンピューター２００はビジー信号を受信すると（ステップＳ４３）、データ送信を停止する（ステップＳ４５）。
【００６０】
次に、図７を参照して第１のモードから第２のモードへ自動的に移行する方法について説明する。
上述したように、第１のモード及び第２のモードは、ディップスイッチ１１７やメモリースイッチ１１９によってユーザーが手動で変更することができる。
これ以外に、本実施形態のプリンター１００は、第１のモードが選択されている場合に上述したリアルタイムコマンドやＡＳＢ設定コマンドなど特定のコマンドを受信した場合は、自動的に第２のモードへ移行するようになっている。
【００６１】
ホストコンピューター２００からデータ受信部１０１を介してデータを受信すると（ステップＳ５１）、リアルタイムコマンド解析部１０３は受信したデータがリアルタイムコマンドであるか否かを判定する。リアルタイムコマンドであると解析すると（ステップＳ５３：Ｙｅｓ）、メモリースイッチ１１９あるいはディップスイッチ１１７に現在設定されているモードが第１のモードか否かを判定する。
【００６２】
一方、リアルタイムコマンド解析部１０３は受信したデータがリアルタイムコマンドでないと解析すると（ステップＳ５３：Ｎｏ）、そのデータを受信バッファ１０５へ蓄える。次に、コマンド解析部１０７がデータを解析し、ＡＳＢ設定コマンドであると解析すると（ステップＳ５５：Ｙｅｓ）、制御部１０９はメモリースイッチ１１９あるいはディップスイッチ１１７に現在設定されているモードが第１のモードか否かを判定する。
ＡＳＢ設定コマンドでないと解析した場合は（ステップＳ５５：Ｎｏ）、制御部１０９が解析結果に応じ印刷やその他の処理を指示する。
【００６３】
リアルタイムコマンド解析部１０３あるいは制御部１０９は、第１のモードが設定されていると判定した場合は（ステップＳ５７：Ｙｅｓ）、第２のモードへ移行するためメモリースイッチ１１９の設定を第１のモードから第２のモードに変更する（ステップＳ５９）。このとき、リアルタイムコマンド解析部１０３あるいは制御部１０９は、モード設定部として機能する。その後、受信したコマンドを実行する（ステップＳ６１）。
【００６４】
このように、上記実施形態によれば、ホストコンピューター２００に組み込まれているアプリケーションにステータスを要求するリアルタイムコマンドやＡＳＢ設定コマンドのようなステータス取得コマンドが実装されている場合は、ホストコンピューター２００はプリンター１００のステータスデータを取得することができる。ステータスデータを取得することができれば、データ送信の可否を判断することができるので、プリンター１００からビジー信号を送信する必要がない。このため、第２のモードを選択すれば、受信バッファ１０５がフル状態のときのみビジー信号がホストコンピューター２００へ送信されるので、ビジー信号の頻度を低下させることができる。ホストコンピューター２００は、データ送信をしてはいけないタイミングを知ることができ、ステータスデータに基づきユーザーに指示するメッセージを表示するなどができる。
【００６５】
なお、ホストコンピューター２００が行うデータ送信の可否は、例えば、ホストコンピューター２００が受信したステータスデータがカバーオープンであれば「否」と判定しデータ送信を停止する。一方、ホストコンピューター２００が受信したステータスデータがカバークローズであれば「可」と判定しデータ送信を行なう。ステータスデータの内容によってプリンター１００が受信データを処理できる状態にあるかを判定できる。
【００６６】
一方、ホストコンピューター２００に組み込まれているアプリケーションにリアルタイムコマンドやＡＳＢ設定コマンドのようなステータス取得コマンドが実装されていない場合は、プリンター１００のステータスデータをホストコンピューター２００へ送信することができない。この場合は、第１のモードを選択することによって、プリンター１００のステータスが変化したとき及び受信バッファがフル状態のときはビジー信号をホストコンピューター２００へ送信することができる。
【００６７】
また、リアルタイムコマンドを受信した場合は、リアルタイムコマンド解析部１０３がモード設定部として機能し、自動的に第１のモードから第２のモードへ移行させる。また、ＡＳＢ設定コマンドを受信した場合は、制御部１０９がモード設定部として機能し、自動的に第１のモードから第２のモードへ移行させる。
そして、受信したコマンドがステータスデータを要求するリアルタイムコマンドであれば、ステータスデータ生成部１１５の機能が有効となり、ステータスデータがホストコンピューター２００へ送信される。
また、受信したコマンドがＡＳＢ設定コマンドであれば、ステータスデータ生成部１１５のステータスデータに変化があると、その変化があったステータスデータを自動的にホストコンピューター２００へ送信する機能が有効となる。ＡＳＢ機能を有効にすれば、ステータスに変化があった場合は、自動的にステータスデータがホストコンピューター２００へ送信される。
【００６８】
このように、ビジー信号の発生頻度の低い第２のモードに自動的に切り替えることができるので、ユーザーはモード設定の確認を行なう必要がなく、煩わしい操作を行なうことがなくなる。
【符号の説明】
【００６９】
１９：プラテンローラー、３０：用紙検出器、３３：印刷ヘッド、４５：カッターユニット、６０：ニアエンド検出器、７０：カバー開閉検出器、８１：入出力インターフェイス、８３：フラッシュＲＯＭ、８５：ＲＡＭ、８７：ＣＰＵ、９１：検出制御部、９３：印刷制御部、９５：カッター制御部、１００：プリンター、１０１：データ受信部、１０３：リアルタイムコマンド解析部（モード設定部）、１０５：受信バッファ、１０７：コマンド解析部、１０９：制御部（モード設定部）、１１１：印刷バッファ、１１３：エラー状態記憶部、１１５：ステータスデータ生成部、１１７：ディップスイッチ、１１９：メモリースイッチ、１２１：データ送信部、１２３：ビジー設定部、２００：ホストコンピューター。
【図１】
2011046146.tif 000003
【図２】
2011046146.tif 000004
【図３】
2011046146.tif 000005
【図４】
2011046146.tif 000006
【図５】
2011046146.tif 000007
【図６】
2011046146.tif 000008
【図７】
2011046146.tif 000009