JP2015014917A - 電子機器、印刷システム、及び、印刷システムの制御方法 - Google Patents
電子機器、印刷システム、及び、印刷システムの制御方法 Download PDFInfo
- Publication number
- JP2015014917A JP2015014917A JP2013141368A JP2013141368A JP2015014917A JP 2015014917 A JP2015014917 A JP 2015014917A JP 2013141368 A JP2013141368 A JP 2013141368A JP 2013141368 A JP2013141368 A JP 2013141368A JP 2015014917 A JP2015014917 A JP 2015014917A
- Authority
- JP
- Japan
- Prior art keywords
- printer
- device information
- printing
- host computer
- usb
- 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.)
- Pending
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
【課題】印刷装置を制御するシステムにおいて、制御側の装置の構成を変更することなく、印刷装置に係る構成変更を行えるようにする。【解決手段】プリンター(F)30が備えるUSBインターフェイス40は、ホストコンピューター10と接続し、デバイス情報記憶部54Bは、プリンターの機種名等を含むデバイス情報を記憶する。データ制御部51は、ホストコンピューター10に、デバイス情報記憶部54Bに記憶されたデバイス情報を送信し、ホストコンピューター10との通信が開始されない場合はデバイス情報記憶部54Bに記憶した他のデバイス情報を送信する。【選択図】図3
Description
本発明は、電子機器、印刷システム、及び、印刷システムの制御方法に関する。
従来、ホスト装置に対し、このホスト装置が対応している機種とは異なる機種の印刷装置を接続して印刷を実行する方法が知られている(例えば、特許文献1参照)。この方法では、ホスト装置が対応している機種用の設定コマンドに対応した処理を、別の機種の印刷装置が実行できるようにする。これにより、ホスト装置に新たなソフトウェアをインストールする等のホスト装置の構成変更をせずに、印刷装置の機種を変更する等の構成変更が可能となる。
特許文献1にはプリンターAのプリンタードライバーを使用して作成した帳票をプリンターBで手法が記載されている。
しかしながら、プリンターAのプリンタードライバーを用いてプリンターBにデータを出力することが必ずしも可能であるとは限らない。例えば、プリンターAのプリンタードライバーを使用するホスト装置にプリンターBを接続したときに、ホスト装置とプリンターBとが情報を送受信できるとは限らない。このように、ホスト装置と印刷装置との間で装置情報の送受信を行う構成で接続した場合には、ホスト装置が対応している機種とは異なる機種の印刷装置を接続することは、特に困難な場合があった。
本発明は、上述した事情に鑑みてなされたものであり、印刷装置を制御するシステムにおいて、ホスト装置の構成を変更することなく、容易に、印刷装置に係る構成変更を行えるようにすることを目的とする。
しかしながら、プリンターAのプリンタードライバーを用いてプリンターBにデータを出力することが必ずしも可能であるとは限らない。例えば、プリンターAのプリンタードライバーを使用するホスト装置にプリンターBを接続したときに、ホスト装置とプリンターBとが情報を送受信できるとは限らない。このように、ホスト装置と印刷装置との間で装置情報の送受信を行う構成で接続した場合には、ホスト装置が対応している機種とは異なる機種の印刷装置を接続することは、特に困難な場合があった。
本発明は、上述した事情に鑑みてなされたものであり、印刷装置を制御するシステムにおいて、ホスト装置の構成を変更することなく、容易に、印刷装置に係る構成変更を行えるようにすることを目的とする。
上記目的を達成するために、本発明は、ホスト装置と接続する接続部と、印刷装置の種別を含む第1の装置情報及び前記第1の装置情報と異なる印刷装置の種別を含む第2の装置情報を記憶する記憶部と、前記接続部に接続された前記ホスト装置に、前記記憶部に記憶された前記第1の装置情報を送信し、前記ホスト装置との通信が開始されない場合は前記記憶部に記憶された前記第2の装置情報を送信する制御部と、を備えることを特徴とする。
本発明によれば、ホスト装置に装置情報を送信して、ホスト装置との通信が開始されない場合は異なる装置情報をホスト装置に出力するので、ホスト装置との通信を開始できる。このように、本発明の電子機器をホスト装置に接続することで、ホスト装置との通信を開始し、ホスト装置に情報を出力させることが可能となる。
本発明によれば、ホスト装置に装置情報を送信して、ホスト装置との通信が開始されない場合は異なる装置情報をホスト装置に出力するので、ホスト装置との通信を開始できる。このように、本発明の電子機器をホスト装置に接続することで、ホスト装置との通信を開始し、ホスト装置に情報を出力させることが可能となる。
また、本発明は、上記電子機器において、前記制御部は、前記第1の装置情報を送信した後の所定時間内に、前記ホスト装置が前記第1の装置情報に基づく通信を開始しない場合に、前記記憶部に記憶された前記第2の前記装置情報を送信する。
本発明によれば、ホスト装置に第1の装置情報を送信した後に、ホスト装置により通信が開始されないことを速やかに判定し、異なる装置情報を送信する。これにより、ホスト装置との通信を速やかに開始できる。
本発明によれば、ホスト装置に第1の装置情報を送信した後に、ホスト装置により通信が開始されないことを速やかに判定し、異なる装置情報を送信する。これにより、ホスト装置との通信を速やかに開始できる。
また、本発明は、上記電子機器において、前記制御部は、前記ホスト装置が前記第1の装置情報に基づく通信を開始しない場合に、前記ホスト装置との接続を切断して再び接続開始する動作を行い、その後、前記記憶部に記憶された前記第2の装置情報を送信する。
本発明によれば、ホスト装置に対して送信した装置情報が、ホスト装置が対応可能な装置情報でない場合に、ホスト装置との接続を切断することで、ホスト装置との間の通信を速やかに初期化して他の装置情報を出力できる。これにより、より速やかに、ホスト装置との通信を開始できる。
本発明によれば、ホスト装置に対して送信した装置情報が、ホスト装置が対応可能な装置情報でない場合に、ホスト装置との接続を切断することで、ホスト装置との間の通信を速やかに初期化して他の装置情報を出力できる。これにより、より速やかに、ホスト装置との通信を開始できる。
また、本発明は、上記電子機器において、印刷を行う印刷部を有し、前記第2の装置情報は、前記印刷部の種別を含む。
本発明によれば、印刷部を有する電子機器が、この印刷部の種別を含む装置情報をホスト装置に送信して、ホスト装置との通信を開始する。このため、印刷部を有する電子機器とホスト装置との通信を速やかに開始させることが可能となる。
本発明によれば、印刷部を有する電子機器が、この印刷部の種別を含む装置情報をホスト装置に送信して、ホスト装置との通信を開始する。このため、印刷部を有する電子機器とホスト装置との通信を速やかに開始させることが可能となる。
また、上記目的を達成するために、本発明の印刷システムは、インターフェイス部を有し、前記インターフェイス部を介して装置情報を要求する信号を送信するホスト装置と、前記ホスト装置と接続する接続部、印刷装置の種別を含む第1の装置情報及び前記第1の装置情報と異なる印刷装置の種別を含む第2の装置情報を記憶する記憶部、前記ホスト装置に前記記憶部に記憶された前記第1の装置情報を送信した後に前記ホスト装置との通信が開始されない場合は前記記憶部に記憶された前記第2の装置情報を送信する制御部を有する電子機器と、を備えることを特徴とする。
本発明によれば、ホスト装置に電子機器を接続して、電子機器からホスト装置に装置情報を送信し、ホスト装置と電子機器の通信が開始されない場合は異なる装置情報を電子機器がホスト装置に送信する。これにより、電子機器とホスト装置との通信を開始させ、ホスト装置から電子機器に情報を出力させることが可能となる。
本発明によれば、ホスト装置に電子機器を接続して、電子機器からホスト装置に装置情報を送信し、ホスト装置と電子機器の通信が開始されない場合は異なる装置情報を電子機器がホスト装置に送信する。これにより、電子機器とホスト装置との通信を開始させ、ホスト装置から電子機器に情報を出力させることが可能となる。
また、本発明は、上記印刷システムにおいて、前記制御部は、前記第1の装置情報の送信した後の所定時間内に、前記ホスト装置が前記第1の装置情報に基づく通信を開始しない場合に、前記記憶部に記憶された前記第2の装置情報を送信する。
本発明によれば、ホスト装置に第1の装置情報を送信した後に、ホスト装置により通信が開始されないことを速やかに判定し、異なる装置情報を送信する。これにより、ホスト装置との通信を速やかに開始できる。
本発明によれば、ホスト装置に第1の装置情報を送信した後に、ホスト装置により通信が開始されないことを速やかに判定し、異なる装置情報を送信する。これにより、ホスト装置との通信を速やかに開始できる。
また、本発明は、上記印刷システムにおいて、前記電子機器と接続して印刷を行う印刷装置を備え、前記電子機器は、印刷を行う印刷部を有し、前記第2の装置情報は、前記印刷部の種別を含む。
本発明によれば、印刷部を有する電子機器が、この印刷部の種別を含む装置情報をホスト装置に送信して、ホスト装置との通信を開始する。このため、印刷部を有する電子機器とホスト装置との通信を速やかに開始させることが可能となる。
本発明によれば、印刷部を有する電子機器が、この印刷部の種別を含む装置情報をホスト装置に送信して、ホスト装置との通信を開始する。このため、印刷部を有する電子機器とホスト装置との通信を速やかに開始させることが可能となる。
また、上記目的を達成するために、本発明の印刷システムの制御方法は、接続部にホスト装置が接続された場合に、予め記憶した印刷装置の種別を含む第1の装置情報を前記ホスト装置に送信し、前記ホスト装置との通信が開始されない場合は記憶した第2の装置情報を前記ホスト装置に送信すること、を特徴とする。
本発明によれば、ホスト装置に第1の装置情報を送信し、通信できない場合は第2の装置情報をホスト装置に送信する。このため、ホスト装置を接続することで、ホスト装置との通信を開始し、ホスト装置に情報を出力させることが可能となる。
本発明によれば、ホスト装置に第1の装置情報を送信し、通信できない場合は第2の装置情報をホスト装置に送信する。このため、ホスト装置を接続することで、ホスト装置との通信を開始し、ホスト装置に情報を出力させることが可能となる。
以下、図面を参照して本発明の実施形態について説明する。
図1は、本発明の実施形態に係る印刷システム1の構成図である。
図1に示す印刷システム1は、ホストコンピューター10(ホスト装置)、機種Eのプリンター(E)20(第1印刷装置)、及び、機種Fのプリンター(F)30(電子機器、中継装置)を接続して構成される。
ホストコンピューター10は、アプリケーションプログラムを実行して文書等を生成し、印刷指示を出力する。
印刷システム1は、ホストコンピューター10とプリンター(E)20との間にプリンター(F)30が配設された構成となっている。言い換えれば、印刷システム1は、ホストコンピューター10にプリンター(F)30とプリンター(E)20とがデイジーチェーン接続された構成となっている。
図1は、本発明の実施形態に係る印刷システム1の構成図である。
図1に示す印刷システム1は、ホストコンピューター10(ホスト装置)、機種Eのプリンター(E)20(第1印刷装置)、及び、機種Fのプリンター(F)30(電子機器、中継装置)を接続して構成される。
ホストコンピューター10は、アプリケーションプログラムを実行して文書等を生成し、印刷指示を出力する。
印刷システム1は、ホストコンピューター10とプリンター(E)20との間にプリンター(F)30が配設された構成となっている。言い換えれば、印刷システム1は、ホストコンピューター10にプリンター(F)30とプリンター(E)20とがデイジーチェーン接続された構成となっている。
ホストコンピューター10は、後述するように、特定のプリンターに対応するデバイスドライバープログラムがインストールされ、このデバイスドライバープログラムに対応するプリンターが接続された場合に、このプリンターを制御する。
しかしながら、ホストコンピューター10は、プリンター(F)30に対応するデバイスドライバープログラムはインストールされていない。この印刷システム1は、ホストコンピューター10に、ホストコンピューター10、もしくはインストールされているデバイスドライバープログラムが対応していないプリンター(F)30を接続した場合に相当するシステムである。
しかしながら、ホストコンピューター10は、プリンター(F)30に対応するデバイスドライバープログラムはインストールされていない。この印刷システム1は、ホストコンピューター10に、ホストコンピューター10、もしくはインストールされているデバイスドライバープログラムが対応していないプリンター(F)30を接続した場合に相当するシステムである。
ホストコンピューター10は、制御部11、記憶部15、入力部16、及び表示部17を備えている。また、ホストコンピューター10は、外部の機器が接続されるインターフェイスとして、USBインターフェイス12を備えている。USBインターフェイス12は、USB_Aコネクター13と、このUSB_Aコネクター13にUSBケーブルを介して接続された機器との間の通信を、所定のプロトコルに従って実行するUSBホストコントローラー14とを備えている。
制御部11は、CPU、ROM、RAM等により構成され、記憶部15に記憶された各種プログラムを実行することにより、ホストコンピューター10の各部を制御する。
制御部11は、ROMに記憶された基本制御プログラム、及び、記憶部15に記憶されたオペレーティングシステムを実行して、ホストコンピューター10の各部を制御する。また、制御部11は、記憶部15に記憶されたアプリケーションプログラムを実行して、例えば、POS端末として動作する。この場合、制御部11は、入力部16により入力されるデータに基づいて商品販売に係るデータ処理を実行し、商品販売処理の結果を示すレシートを印刷するデータを印刷実行の指示とともに出力する。
また、制御部11は、記憶部15に記憶されたデバイスドライバープログラムを実行し、ホストコンピューター10に接続される各種機器を制御する。本実施形態のホストコンピューター10は、USBインターフェイスを介して接続されるデバイスに対応して、デバイスドライバープログラムを実行可能である。このデバイスドライバープログラムは、オペレーティングシステムと協働して、プリンターに対して印刷を指示する印刷コマンド及びデータを出力する。すなわち、制御部11は、アプリケーションプログラムにより出力される印刷指示とデータに基づいて、プリンターの機種に合わせた印刷コマンドと印刷データとを生成し、USBインターフェイス12から出力する。
制御部11は、ROMに記憶された基本制御プログラム、及び、記憶部15に記憶されたオペレーティングシステムを実行して、ホストコンピューター10の各部を制御する。また、制御部11は、記憶部15に記憶されたアプリケーションプログラムを実行して、例えば、POS端末として動作する。この場合、制御部11は、入力部16により入力されるデータに基づいて商品販売に係るデータ処理を実行し、商品販売処理の結果を示すレシートを印刷するデータを印刷実行の指示とともに出力する。
また、制御部11は、記憶部15に記憶されたデバイスドライバープログラムを実行し、ホストコンピューター10に接続される各種機器を制御する。本実施形態のホストコンピューター10は、USBインターフェイスを介して接続されるデバイスに対応して、デバイスドライバープログラムを実行可能である。このデバイスドライバープログラムは、オペレーティングシステムと協働して、プリンターに対して印刷を指示する印刷コマンド及びデータを出力する。すなわち、制御部11は、アプリケーションプログラムにより出力される印刷指示とデータに基づいて、プリンターの機種に合わせた印刷コマンドと印刷データとを生成し、USBインターフェイス12から出力する。
USBインターフェイス12、及び、後述するUSBインターフェイス21、40、45は、いずれもUSB規格に準拠した物理層、リンク層及びプロトコル層を構成し、1対1で接続された機器間のシリアルデータ通信を実行する。ここで、USB規格とは、USB1.1〜USB3.0またはそれ以降の拡張規格を含む。
また、本実施形態では、USB接続されるデバイスからホストに対し、USBデバイス情報(以下、デバイス情報)を送信する。このデバイス情報は、USB規格で定められた形式のデータであり、クラスID(USBデバイスクラスID)、ベンダーID、プロダクトID、ベンダー名、機種名等を含んでいる。
本実施形態のデバイス情報は、少なくとも、クラスID、デバイス毎に固有のプロダクトID、及び、デバイスの機種名を含んでいればよく、USBシリアル番号を含んでいれば好ましい。印刷システム1は、デバイス情報にUSBシリアル番号が含まれている場合には、USBシリアル番号を用いて各機器を識別する。また、USBシリアル番号が含まれない場合は、ベンダーIDとプロダクトIDとを組み合わせたIDにより機器を識別する。
また、本実施形態では、USB接続されるデバイスからホストに対し、USBデバイス情報(以下、デバイス情報)を送信する。このデバイス情報は、USB規格で定められた形式のデータであり、クラスID(USBデバイスクラスID)、ベンダーID、プロダクトID、ベンダー名、機種名等を含んでいる。
本実施形態のデバイス情報は、少なくとも、クラスID、デバイス毎に固有のプロダクトID、及び、デバイスの機種名を含んでいればよく、USBシリアル番号を含んでいれば好ましい。印刷システム1は、デバイス情報にUSBシリアル番号が含まれている場合には、USBシリアル番号を用いて各機器を識別する。また、USBシリアル番号が含まれない場合は、ベンダーIDとプロダクトIDとを組み合わせたIDにより機器を識別する。
USBインターフェイス12は、USB_Aコネクター13及びUSBホストコントローラー14を有する。USB_Aコネクター13は、USB規格によりホスト側の装置のコネクターとして指定された形状及び端子を有するメス(receptacle)側コネクターであって、USB規格に準拠したUSBケーブル2Bを接続可能である。USB_Aコネクター13は、miniUSB_A端子やmicroUSB_A端子としてもよい。なお、後述するようにプリンター(F)30が備えるUSB_Aコネクター46(図3)も同様である。また、USBインターフェイス12が備えるUSB_Aコネクター13の数について特に制限はない。
USBホストコントローラー14は、USB規格に準拠したデバイスに該当する機器がUSB_Aコネクター13に接続された場合に、この機器に対してホスト側として動作し、デバイスの認識及びデバイスとの間の通信を可能とする。
USBホストコントローラー14は、USB規格に準拠したデバイスに該当する機器がUSB_Aコネクター13に接続された場合に、この機器に対してホスト側として動作し、デバイスの認識及びデバイスとの間の通信を可能とする。
ここで、デバイスとは、例えばホストとして動作する装置に接続される入出力装置であり、デバイスはホストの制御に従ってデータをホストに出力し、或いは、ホストから入力されるデータを出力する。ここで、ホストとは、デバイスとしての入出力装置に対し、これら入出力装置を制御するコマンドを送信するコンピューター等が該当する。
図2は、ホストコンピューター10のソフトウェア構成を示す模式図である。この図2には制御部11が実行するアプリケーションプログラムの一例として、POSアプリケーション11Aを示す。また、制御部11が実行するデバイスドライバー群11B、通信ポート制御部11C、及び、オペレーティングシステム(OS)11Dを示す。この図2には理解の便宜のためUSBインターフェイス12及びプリンター(F)30を図示する。
ホストコンピューター10にはPOSアプリケーション11Aがインストールされており、オペレーティングシステム11D上で動作する。また、ホストコンピューター10には、デバイスドライバーがインストールされている。これらのデバイスドライバーを総称して、デバイスドライバー群11Bとする。ホストコンピューター10には、複数のデバイスドライバーをインストールできる。図2の例では機種Aのプリンターに対応するデバイスドライバー、機種Bのプリンターに対応するデバイスドライバー、…、機種Dのプリンターに対応するデバイスドライバーがインストールされている。これらのデバイスドライバーは、オペレーティングシステム11Dの機能と協働して、USBインターフェイス12に接続された機器を制御する。なお、上述のようにホストコンピューター10には機種Fのプリンターに対応するデバイスドライバーはインストールされていない。
ホストコンピューター10のオペレーティングシステム11Dは、USBインターフェイス12に接続された機器を個々に識別するため、仮想の通信ポートを複数設ける。図2の例では、機種Aのプリンターに対応する通信ポート、機種Bのプリンターに対応する通信ポート、…、機種Dのプリンターに対応する通信ポートが設けられている。各通信ポートは、デバイスドライバーがインストールされる際に作成される。ここで、複数の機種に対応するデバイスドライバーがインストールされた場合、ホストコンピューター10は、このデバイスドライバーに対応する一つの仮想の通信ポートを設けてもよい。また、このデバイスドライバーに対応する機種毎に、複数の仮想の通信ポートを設けてもよい。これらの通信ポートを総称して、通信ポート群11Eとする。
さらに、ホストコンピューター10は、通信ポート制御部11Cを備えている。通信ポート制御部11Cは、USBインターフェイス12に接続された機器と、通信ポート群11Eの各通信ポートとの対応付けを制御する機能を持ったプログラムモジュールである。通信ポート制御部11Cは、オペレーティングシステム11Dと協働するソフトウェアとして、例えばデバイスドライバーとともにインストールされてもよい。また、通信ポート制御部11Cがオペレーティングシステム11Dの一部として実装されてもよい。
USBインターフェイス12に機器が接続された場合の動作を説明する。図2に例示するように、USBインターフェイス12に機器3が接続されると、ホストコンピューター10は、機器3の接続を認識する。この認識処理では、オペレーティングシステム11D及びUSBインターフェイス12が備えるUSBホストコントローラー14(図1)の機能が使われる。オペレーティングシステム11Dは、機器3から送信されるデバイス情報を受信し、受信したデバイス情報に基づき、機器3のクラスIDや機種名を特定し、デバイスドライバー群11Bから対応するデバイスドライバーを特定する。特定されたデバイスドライバーは、通信ポート制御部11Cを呼び出す。通信ポート制御部11Cは、機器3のクラスID及び機種名に基づき、通信ポート群11Eのいずれかの通信ポートを割り当てる。これにより、機器3と、機器3が接続されたUSB_Aコネクター13(図1)と、通信ポートと、デバイスドライバーとが対応付けられる。
通信ポート制御部11Cは、通信ポート群11Eの各通信ポートについて、その通信ポートが割り当てられた機器のクラスID、機種名、及び、USBシリアル番号を設定する。通信ポートに設定されたUSBシリアル番号は、その通信ポートが異なるUSBシリアル番号を有する機器に割り当てられるまで、維持される。デバイス情報にUSBシリアル番号が含まれない場合には、代わりに、ベンダーIDとプロダクトIDとを組合せたIDが通信ポートに設定される。
その後、通信ポート制御部11Cは、機器3に割り当てた通信ポートを、デバイスドライバー及びオペレーティングシステム11Dに通知する。この処理の後は、機器3と、デバイスドライバー及びオペレーティングシステム11Dとは、特定の通信ポートを通じて通信を行う。
例えば、オペレーティングシステム11Dは、機器3にアドレスを割り当てて、機器3から必要な情報を取得し、機器3と通信可能な状態に移行する。その後、例えば、デバイスドライバーは、機器3の動作を初期化する設定コマンド等を送信し、この設定コマンドの応答を受信して、印刷可能な状態に移行する。
例えば、オペレーティングシステム11Dは、機器3にアドレスを割り当てて、機器3から必要な情報を取得し、機器3と通信可能な状態に移行する。その後、例えば、デバイスドライバーは、機器3の動作を初期化する設定コマンド等を送信し、この設定コマンドの応答を受信して、印刷可能な状態に移行する。
ここで、機器3に対応するデバイスドライバーがインストールされていない場合、通信ポート群11Eには機器3に対応する通信ポートがない。具体的には、機器3から送信されたデバイス情報に対応するデバイスドライバーがインストールされていない場合である。この場合、通信ポート制御部11Cは通信ポートを割り当てることができないので、ホストコンピューター10は、機器3との通信を開始できない。勿論、オペレーティングシステム11Dが機器3にアドレスを割り当てる処理、及び、デバイスドライバーが機器3に設定コマンドを送信する処理も実行されない。この場合、ホストコンピューター10は、機器3が接続されてから所定時間待機し、タイムアウトした後に、エラーを出力するか、機器3を使用できない(使用不可)と判定する。
図1に示すように、プリンター(E)20は、図示しない印刷ヘッド、搬送モーター、搬送ローラー、カッターユニット等の印刷部(E)28を備え、カット紙やロール紙等の印刷媒体に、文字や画像を印刷(記録)する装置である。プリンター(E)20は、USBインターフェイス21、通信部26、印刷制御部(E)27、及び印刷部(E)28を有する。通信部26は、USBインターフェイス21を介して接続された機器との間でデータ通信を実行する。印刷制御部(E)27は、通信部26が受信したデータに基づいて印刷部(E)28を制御し、印刷を実行させる。
USBインターフェイス21が備えるUSB_Bコネクター22は、USB規格によりデバイス側の装置のコネクターとして指定された形状及び端子を有するメス側コネクターであって、USB規格に準拠したUSBケーブル2Cを接続可能である。USB_Bコネクター22は、miniUSB_B端子やmicroUSB_B端子としてもよい。なお、後述するUSB_Bコネクター41(図3)も同様である。USBデバイスコントローラー23は、USB規格のデバイス側の機器として動作する。USBデバイスコントローラー23は、USB_Bコネクター22にUSBケーブルを介して接続された機器に対してデバイス情報を送信する。
通信部26は、USBインターフェイス21を介して接続されたホスト装置から送信されるコマンドやデータを受信し、受信バッファー25に一時的に記憶する。通信部26は、プリンター(E)20のステータスを示すデータや制御コマンド等を、USBインターフェイス21を介して送信する。
印刷制御部(E)27は、受信バッファー25に記憶されたコマンドを受信順に読み出して制御を実行する。例えば、印刷制御部(E)27は、受信バッファー25からステータスの送信を要求するコマンドを読み出した場合、プリンター(E)20の動作状態を示すステータス情報を生成して、通信部26により送信する。また、例えば、印刷制御部(E)27は、受信バッファー25から印刷データを伴う印刷コマンドを読み出した場合、このコマンドに従って印刷制御部(E)27は、印刷部(E)28を制御し、印刷部(E)28は印刷を実行する。印刷制御部(E)27は、印刷が完了したことを示す完了通知またはエラーが発生したことを示すエラー通知を生成して、通信部26によってUSBインターフェイス21から送信する。
印刷制御部(E)27は、受信バッファー25に記憶されたコマンドを受信順に読み出して制御を実行する。例えば、印刷制御部(E)27は、受信バッファー25からステータスの送信を要求するコマンドを読み出した場合、プリンター(E)20の動作状態を示すステータス情報を生成して、通信部26により送信する。また、例えば、印刷制御部(E)27は、受信バッファー25から印刷データを伴う印刷コマンドを読み出した場合、このコマンドに従って印刷制御部(E)27は、印刷部(E)28を制御し、印刷部(E)28は印刷を実行する。印刷制御部(E)27は、印刷が完了したことを示す完了通知またはエラーが発生したことを示すエラー通知を生成して、通信部26によってUSBインターフェイス21から送信する。
プリンター(F)30は、2つのUSBインターフェイス40、45を備える。USBインターフェイス40にはUSBケーブル2Bを介してホストコンピューター10が接続され、USBインターフェイス45にはUSBケーブル2Cを介してプリンター(E)20が接続される。
プリンター(F)30は、通信制御部31、印刷部(F)60、及び印刷制御部(F)32を備えている。通信制御部31は、USBインターフェイス40、45を介した通信を制御する。印刷部(F)60は、図示しない印刷ヘッド、搬送モーター、搬送ローラー、カッターユニット等を備え、印刷を行う。印刷制御部(F)32は、通信制御部31が送受信するデータに基づいて印刷部(F)60を制御し、印刷部(F)は印刷を実行する。
プリンター(F)30は、通信制御部31、印刷部(F)60、及び印刷制御部(F)32を備えている。通信制御部31は、USBインターフェイス40、45を介した通信を制御する。印刷部(F)60は、図示しない印刷ヘッド、搬送モーター、搬送ローラー、カッターユニット等を備え、印刷を行う。印刷制御部(F)32は、通信制御部31が送受信するデータに基づいて印刷部(F)60を制御し、印刷部(F)は印刷を実行する。
図3は、印刷システム1の機能ブロック図であり、プリンター(F)30の構成について特に詳細に示している。図3には、特定のハードウェアを表した機能ブロックだけでなく、ソフトウェアにより実現される機能ブロックが含まれる。
図3に示すように、USBインターフェイス40(接続部)は、USB_Bコネクター41とUSBデバイスコントローラー42とを備える。USBインターフェイス45(機器接続部)は、USB_Aコネクター46とUSBホストコントローラー47とを備える。
図3に示すように、USBインターフェイス40(接続部)は、USB_Bコネクター41とUSBデバイスコントローラー42とを備える。USBインターフェイス45(機器接続部)は、USB_Aコネクター46とUSBホストコントローラー47とを備える。
USB_Bコネクター41は、USB_Bコネクター22と同様、USB規格によりデバイス側の装置のコネクターとして指定された形状及び端子を有するメス側コネクターであり、USBケーブル2Bが接続される。
また、USB_Aコネクター46は、USB_Aコネクター13と同様、USB規格によりホスト側の装置のコネクターとして指定された形状及び端子を有するメス側コネクターであって、USBケーブル2Cが接続される。なお、USBインターフェイス45が備えるUSB_Aコネクター46の数については特に制限はない。
また、USB_Aコネクター46は、USB_Aコネクター13と同様、USB規格によりホスト側の装置のコネクターとして指定された形状及び端子を有するメス側コネクターであって、USBケーブル2Cが接続される。なお、USBインターフェイス45が備えるUSB_Aコネクター46の数については特に制限はない。
USBデバイスコントローラー42は、USB_Bコネクター41に接続された機器に対してデバイス情報を送信し、この機器から送信されるコマンドや制御データに従って通信を実行する。USBデバイスコントローラー42はホスト装置に接続されて、デバイスとして動作する。例えば、USBデバイスコントローラー42は、ホストコンピューター10に接続されて、機器3(図2)として動作する。USBホストコントローラー47は、USB規格のデバイスに該当する機器がUSB_Aコネクター46に接続された場合に、この機器に対してホスト側として動作し、デバイスの認識及びデバイスとの間の通信を可能とする。
つまり、プリンター(F)30は、USBインターフェイス40に接続された機器に対してはデバイスとして動作し、USBインターフェイス45に接続された機器に対してはホストとして動作する。
つまり、プリンター(F)30は、USBインターフェイス40に接続された機器に対してはデバイスとして動作し、USBインターフェイス45に接続された機器に対してはホストとして動作する。
通信制御部31は、データ制御部51、USBクライアントドライバー52、USBドライバー53、データ処理部55、及びプリンタードライバー56を備えている。通信制御部31は、インターフェイス基板35に実装された図示しないCPU、ROM、RAM等により構成され、CPUが制御プログラムを実行することによって通信制御部31の各部がソフトウェア的に実現される。また、インターフェイス基板35は、通信制御部31に接続された記憶部(F)54を備えている。記憶部(F)54は、例えばインターフェイス基板35に実装されたフラッシュROM等により構成される。記憶部(F)54の記憶領域には、受信バッファー54A、及び、デバイス情報記憶部54Bが設けられている。受信バッファー54Aは、後述するように通信制御部31がホストコンピューター10から印刷指示のコマンドやデータを受信した場合に、受信されたコマンドやデータを逐次記憶する。また、デバイス情報記憶部54Bは、通信制御部31がホストコンピューター10に送信するデバイス情報(装置情報)を記憶する。
通信制御部31は、USBクライアントドライバー52を実行する。USBクライアントドライバー52は、USBインターフェイス40に接続されるホストコンピューター10に対して、USB規格のデバイスとして動作する。USBクライアントドライバー52は、USBインターフェイス40に接続された機器(ホスト)からクラスID等が要求された場合に、この要求に応答してデバイス情報をホストに送信する。その後、ホストの制御に従ってデータを送受信する。本実施形態では、USBインターフェイス40にホストコンピューター10が接続された場合に、ホストコンピューター10に対してデバイス情報を送信する。
デバイス情報記憶部54Bには、複数のデバイス情報(第1の装置情報、第2の装置情報)を記憶している。本実施形態では、複数の機種のプリンターに対応するデバイス情報を記憶している。すなわち、デバイス情報記憶部54Bに記憶される各デバイス情報は、プリンタークラスのクラスIDを含み、各デバイス情報の機種名は異なる。ベンダーID及びベンダー名は機種名に対応していればよい。また、各デバイス情報は互いに異なるUSBシリアル番号を含んでいる。或いは、各デバイス情報がUSBシリアル番号を含まない場合は、各デバイス情報が含むベンダーIDとプロダクトIDとを組合せたIDが、互いに異なるIDになっている。
デバイス情報記憶部54Bは、プリンター(F)30が備える印刷部(F)60の仕様に適合したデバイス情報(第2の装置情報)を少なくとも記憶している。また、デバイス情報記憶部54Bには、ホストコンピューター10が対応している可能性の高い機種のプリンターのデバイス情報が記憶されている。本実施形態では、機種Aのプリンターに対応するデバイス情報が記憶されている。データ制御部51は、USBインターフェイス40にホストコンピューター10が接続されたことを検出すると、後述するように、記憶部54に記憶されたデバイス情報をUSBクライアントドライバー52に出力する。USBクライアントドライバー52は、このデバイス情報をホストコンピューター10に送信(通知)する。ホストコンピューター10は、プリンター(F)30から送信されたデバイス情報が機種Aのデバイス情報である場合に、プリンター(F)30を機種Aのプリンターとして認識する。その後、ホストコンピューター10は、USBインターフェイス12に機種Aのプリンターが接続された場合と同様に動作する。
プリンター(F)30にとって、ホストコンピューター10に接続されるまで、ホストコンピューター10がどの機種に対応するデバイスドライバーが動作しているかは不明である。このため、データ制御部51は、デバイス情報記憶部54Bに記憶しているデバイス情報のいずれかをホストコンピューター10に送信して、ホストコンピューター10からの応答を待つ。もし、データ制御部51が送信したデバイス情報が、ホストコンピューター10が対応している機種のデバイス情報であった場合、ホストコンピューター10はプリンター(F)30を認識して、通信を開始し、各種のデータを送信する。このデータは、例えば、ホスト装置がUSB機器を認識する制御データ、USBインターフェイス12に接続されたプリンターを初期化する制御コマンドやデータ等である。また、データ制御部51が送信したデバイス情報が、ホストコンピューター10が対応していない機種のデバイス情報であった場合、ホストコンピューター10は通信を開始せず、処理を実行しない。この場合、プリンター(F)30は、ホストコンピューター10の応答を待っている状態でタイムアウトとなる。データ制御部51は、ホストコンピューター10にいずれかのデバイス情報(第1のデバイス情報)を送信し、ホストコンピューター10が通信を開始するまで所定時間、待機する。そして、ホストコンピューター10から応答がないままタイムアウトした場合は、別のデバイス情報(第2のデバイス情報)を送信する。
プリンター(F)30は、デバイス情報記憶部54B内の複数のデバイス情報を送信する順序を定める情報を、デバイス情報記憶部54Bに記憶している。この情報は、例えば送信リストの形式になっている。データ制御部51は、送信リストが定める順序でデバイス情報を選択して、ホストコンピューター10に送信する。また、ホストコンピューター10から応答がなければ、送信リストが定める順序に従って、デバイス情報の選択と送信を繰り返す。
データ制御部51は、ホストコンピューター10から応答があった場合、すなわち、いずれかのデバイス情報がホストコンピューター10に適合した場合、このデバイス情報が送信リストの上位になるように、送信リストを編集してもよい。この編集処理を行うことで、次回、プリンター(F)30がホストコンピューター10に接続されたときに、速やかにホストコンピューター10に認識される。
データ制御部51は、ホストコンピューター10から応答があった場合、すなわち、いずれかのデバイス情報がホストコンピューター10に適合した場合、このデバイス情報が送信リストの上位になるように、送信リストを編集してもよい。この編集処理を行うことで、次回、プリンター(F)30がホストコンピューター10に接続されたときに、速やかにホストコンピューター10に認識される。
また、通信制御部31は、USBドライバー53を実行する。USBドライバー53は、USBインターフェイス45に接続された機器に対し、USBホストコントローラー47を利用して、USB規格により規定されたホスト機器として動作する。USBドライバー53の制御により、デバイスの認識が行われ、デバイスとの間の通信が可能となる。本実施形態では、USBドライバー53は、プリンター(E)20に対応したデバイスドライバーであり、プリンター(E)20に対応する印刷コマンドや印刷データを生成して出力する機能を有する。USBインターフェイス45にプリンター(E)20が接続された場合、USBドライバー53は、プリンター(E)20に対してデバイス情報の送信を要求する。その後、USBインターフェイス45は、この要求に応答してプリンター(E)20が送信する情報を取得する。その後、USBドライバー53は、プリンター(E)20との間の通信が可能な状態に移行する。この場合、プリンター(E)20は、USBケーブルでホストコンピューター10に直接接続された場合と同様に動作する。
データ制御部51は、USBインターフェイス40に接続されたホストコンピューター10から印刷コマンド及び印刷データが出力された場合に、このコマンド及びデータを記憶部54に設けられた受信バッファー54Aに記憶する。
データ制御部51は、受信バッファー54Aに記憶したコマンド及びデータをデータ処理部55に出力するとともに、USBドライバー53によってプリンター(E)20に出力する。これにより、ホストコンピューター10が送信したコマンドやデータがプリンター(E)20に送信される。
プリンター(E)20に対して、プリンター(F)30はUSBインターフェイス45によりホストとして機能するので、プリンター(E)20は、ホストから送信されたコマンドやデータを受信した場合と同様に、このコマンドやデータに従って動作する。
データ制御部51は、受信バッファー54Aに記憶したコマンド及びデータをデータ処理部55に出力するとともに、USBドライバー53によってプリンター(E)20に出力する。これにより、ホストコンピューター10が送信したコマンドやデータがプリンター(E)20に送信される。
プリンター(E)20に対して、プリンター(F)30はUSBインターフェイス45によりホストとして機能するので、プリンター(E)20は、ホストから送信されたコマンドやデータを受信した場合と同様に、このコマンドやデータに従って動作する。
プリンター(F)30は、印刷部(F)60を制御する印刷制御部(F)32が搭載されたメイン基板36(印刷制御基板)と、インターフェイス基板35とを備える。インターフェイス基板35は、メイン基板36とは別に、プリンター(F)30の本体に対して着脱可能に設けられる。インターフェイス基板35には、通信制御部31、メモリー33、及びUSBインターフェイス40、45の各部が実装されている。インターフェイス基板35に実装された各部と、メイン基板36に実装された印刷制御部(F)32とは、プリンター(F)30が内蔵する内部インターフェイス37を介して相互にデータ入出力可能に接続される。また、インターフェイス基板35上の各部に対し内部インターフェイス37を介して電力を供給してもよいし、インターフェイス基板35に外部電源が接続される構成としてインターフェイス基板35からメイン基板36に電力を供給してもよい。印刷制御部(F)32にはメモリー34が接続される。メモリー34はコマンドやデータを一時的に記憶する記憶部(E)である。
印刷部(F)60は、図2に示すように、印刷ヘッド61、搬送モーター62、及びカッターユニット63を備えている。印刷部(F)60は、印刷制御部(F)32の制御に従って印刷を行う。すなわち、図示しないカット紙やロール紙等の印刷媒体を搬送モーター62により搬送し、印刷ヘッド61により文字や画像を印刷し、印刷後の印刷媒体をカッターユニット63によりカットして出力する。
印刷部(F)60は、図2に示すように、印刷ヘッド61、搬送モーター62、及びカッターユニット63を備えている。印刷部(F)60は、印刷制御部(F)32の制御に従って印刷を行う。すなわち、図示しないカット紙やロール紙等の印刷媒体を搬送モーター62により搬送し、印刷ヘッド61により文字や画像を印刷し、印刷後の印刷媒体をカッターユニット63によりカットして出力する。
さらに、データ処理部55は、データ制御部51から入力されたコマンド及びデータを変換する。上記のように、プリンター(F)30及びプリンター(E)20は、ホストコンピューター10が対応しているプリンターではない。このため、ホストコンピューター10が出力するコマンド及びデータは、印刷制御部(F)32もプリンター(E)20も実行できない可能性がある。データ処理部55は、データ制御部51から入力されるコマンド及びデータを、印刷制御部(F)32が実行可能なコマンド及びデータに変換する処理と、プリンター(E)20が実行可能なコマンド及びデータに変換する処理とを実行できる。データ処理部55が印刷制御部(F)32に合わせて変換処理を行った場合、変換後のコマンド及びデータはプリンタードライバー56に出力される。また、データ処理部55がプリンター(E)20に合わせて変換処理を行った場合、変換後のコマンド及びデータはUSBドライバー53に出力される。
データ処理部55がどちらの変換処理を実行するかは、データ制御部51により指定される。例えば、データ制御部51は、ホストコンピューター10が出力するコマンド及びデータを、印刷部(F)60で印刷する動作モードと、プリンター(E)20で印刷させる動作モードとを切り換えて実行する。この場合、データ処理部55は、印刷部(F)60を使用する動作モードでは印刷部(F)60に合わせてコマンド及びデータを変換する。また、プリンター(E)20を使用する動作モードでは、データ処理部55はプリンター(E)20に合わせてコマンド及びデータを変換する。データ処理部55は、データ制御部51がUSBクライアントドライバー52を介してホストコンピューター10に送信したデバイス情報をもとに、変換処理を行う。
これにより、ホストコンピューター10で動作するアプリケーションプログラムやデバイスドライバープログラムの変更を行うことなく、ホストコンピューター10が対応していないプリンター(F)30やプリンター(E)20により印刷を実行できる。また、プリンター(E)20においても、プリンター(E)20の動作条件の変更等を行うことなく、ホストコンピューター10が出力したデータを印刷できる。従って、ホストコンピューター10を備えたシステムのプリンターを、プリンター(F)30やプリンター(E)20に置き換えて印刷することができる。
図4は、印刷システム1の各部の動作を示すシーケンス図であり、(A)はホストコンピューター10の動作を示し、(B)はプリンター(F)30の動作を示す。この図4の動作はホストコンピューター10とプリンター(F)30とをUSBケーブル2Bにより接続した場合に実行される。
ホストコンピューター10は、USB_Aコネクター13に何らかの機器が接続されたことを検出すると(ステップS11)、接続先の機器に対してホスト機器として動作し、デバイス情報を要求する(ステップS12)。
プリンター(F)30のデータ制御部51は、USBインターフェイス40に何らかの機器が接続されたことを検出すると(ステップS21)、デバイス機器として動作する。
ホストコンピューター10は、USB_Aコネクター13に何らかの機器が接続されたことを検出すると(ステップS11)、接続先の機器に対してホスト機器として動作し、デバイス情報を要求する(ステップS12)。
プリンター(F)30のデータ制御部51は、USBインターフェイス40に何らかの機器が接続されたことを検出すると(ステップS21)、デバイス機器として動作する。
データ制御部51は、ホストコンピューター10が送信したUSBデバイス情報の要求を受信すると(ステップS22)、デバイス情報記憶部54Bに記憶しているデバイス情報のうち、送信するデバイス情報を選択する(ステップS23)。ステップS23で、データ制御部51は、例えばデバイス情報記憶部54Bに記憶されている送信リストの順序に従ってデバイス情報を選択する。
データ制御部51は、選択したデバイス情報をホストコンピューター10に送信する(ステップS24)。
データ制御部51は、選択したデバイス情報をホストコンピューター10に送信する(ステップS24)。
ホストコンピューター10は、プリンター(F)30から送信されたデバイス情報を受信し(ステップS13)、受信したデバイス情報に対応するデバイスドライバープログラムにより、通信ポート制御部11Cを呼び出す(ステップS14)。そして、制御部11は、通信ポート制御部11Cによって対応する通信ポート群11Eを検索する(ステップS15)。ここで、受信したデバイス情報が、ホストコンピューター10に対応するデバイス情報である場合、対応する通信ポートが存在する(ステップS16;Yes)。この場合、制御部11はデバイスドライバー群11B及びオペレーティングシステム11Dの機能により、通信を開始するコマンドや印刷設定のコマンド等を送信する(ステップS17)。
プリンター(F)30のデータ制御部51は、ホストコンピューター10からコマンドを受信したか否かを判別し(ステップS25)、コマンドを受信した場合は(ステップS25;Yes)、受信したコマンドに従って通信を開始する(ステップS26)。
その後、ホストコンピューター10及びプリンター(F)30は、相互に通信を行う設定を行い、通信可能な状態に移行して本処理を終了する(ステップS18、S27)。
プリンター(F)30のデータ制御部51は、ホストコンピューター10からコマンドを受信したか否かを判別し(ステップS25)、コマンドを受信した場合は(ステップS25;Yes)、受信したコマンドに従って通信を開始する(ステップS26)。
その後、ホストコンピューター10及びプリンター(F)30は、相互に通信を行う設定を行い、通信可能な状態に移行して本処理を終了する(ステップS18、S27)。
一方、受信したデバイス情報に対応するデバイスドライバーがホストコンピューター10にインストールされていない場合、対応する通信ポートはないので、その後の処理は行われない(ステップS16;No)。ここで、制御部11は、USBインターフェイス12に接続された機器との接続をリセットする信号が入力されたか否かを判別し(ステップS19)、リセット信号が入力されずに所定時間が経過した場合には(ステップS19;No)、本処理を終了する。また、リセット信号が入力された場合は(ステップS19;Yes)、ステップS11に戻って、USBケーブルによる接続を検出したところから処理を開始する。
プリンター(F)30においては、ホストコンピューター10からコマンドを受信しない場合に(ステップS25;No)、データ制御部51は、予め設定された時間が経過したか否かを判別する(ステップS28)。設定された時間がタイムアウトしていなければ(ステップS28;No)、データ制御部51はステップS25でコマンドの受信を待機する。タイムアウトした場合(ステップS28;Yes)、データ制御部51は、ホストコンピューター10との接続を切断する(ステップS29)。このステップS29では、データ制御部51はUSBインターフェイス40からホストコンピューター10に対し、接続をリセットする信号を送出して、ホストコンピューター10に接続を切断させる。さらに、データ制御部51は、USBインターフェイス40をリセットして、プリンター(F)30側の接続を切断させる。その後、データ制御部51はステップS21に戻って、USBケーブルによる接続を検出したところから処理を開始する。
データ制御部51は、ステップS21で接続を検出し、ステップS22でデバイス情報の要求を受信した場合、ステップS23でデバイス情報を選択する。ステップS23の処理を2回目に実行する場合、データ制御部51は、例えば送信リストで2番目に指定されたデバイス情報を選択する。ステップS23の処理を3回目以後に実行する場合も、データ制御部51は、例えば送信リストの順序に従って3番目以後のデバイス情報を選択する。
従って、データ制御部51は、ホストコンピューター10から初期化コマンドを受信するまで、デバイス情報を選択してホストコンピューター10に送信し、接続切断(リセット)及び接続開始する一連の処理を繰り返す。そして、ホストコンピューター10が対応しているデバイス情報が送信されると、ホストコンピューター10とプリンター(F)30とが通信できる。その後は、プリンター(F)30またはプリンター(E)20によって印刷を実行できる。
従って、データ制御部51は、ホストコンピューター10から初期化コマンドを受信するまで、デバイス情報を選択してホストコンピューター10に送信し、接続切断(リセット)及び接続開始する一連の処理を繰り返す。そして、ホストコンピューター10が対応しているデバイス情報が送信されると、ホストコンピューター10とプリンター(F)30とが通信できる。その後は、プリンター(F)30またはプリンター(E)20によって印刷を実行できる。
制御部11は、通信ポート制御部11Cにより、ステップS15で通信ポートを検索するときに、ステップS13で受信したデバイス情報に含まれる機種名とUSBシリアル番号またはIDを参照する。ここで、通信ポート群11Eの通信ポートには、USBシリアル番号またはIDが設定されている。通信ポート制御部11Cが通信ポートを検索する場合に、USBシリアル番号またはIDが一致し、かつ、機種名が対応していない通信ポートがあれば、エラーが発生する可能性がある。
例えば、プリンター(F)30から、ホストコンピューター10が対応していない機種Eのデバイス情報を受信し、このデバイス情報に含まれるUSBシリアル番号が「11」であったと仮定する。この場合に、機種Aに対応する通信ポートに、USBシリアル番号「11」が設定されていると、通信ポート制御部11Cは、機種Aの通信ポートを選択することがある。USBシリアル番号及びIDはUSBデバイスに固有の情報であるから、異なる機器が同じUSBシリアル番号または同じIDを有することはない。このため、USBシリアル番号またはIDが一致した場合、機種の適合を判断する必要がないということができる。ところが上記の仮定では、機種Eのプリンターに対応していないので、機種Eに適合するデバイスドライバーはインストールされていない。従って、通信ポート制御部11Cがデバイス情報に対応する通信ポートを特定したにも関わらず、対応するデバイスドライバーを特定できないという、不整合が発生する。このような不整合を防止するため、デバイス情報記憶部54Bに記憶される複数のデバイス情報が、同じUSBシリアル番号または同じIDを持つことがないように、設定されている。
例えば、プリンター(F)30から、ホストコンピューター10が対応していない機種Eのデバイス情報を受信し、このデバイス情報に含まれるUSBシリアル番号が「11」であったと仮定する。この場合に、機種Aに対応する通信ポートに、USBシリアル番号「11」が設定されていると、通信ポート制御部11Cは、機種Aの通信ポートを選択することがある。USBシリアル番号及びIDはUSBデバイスに固有の情報であるから、異なる機器が同じUSBシリアル番号または同じIDを有することはない。このため、USBシリアル番号またはIDが一致した場合、機種の適合を判断する必要がないということができる。ところが上記の仮定では、機種Eのプリンターに対応していないので、機種Eに適合するデバイスドライバーはインストールされていない。従って、通信ポート制御部11Cがデバイス情報に対応する通信ポートを特定したにも関わらず、対応するデバイスドライバーを特定できないという、不整合が発生する。このような不整合を防止するため、デバイス情報記憶部54Bに記憶される複数のデバイス情報が、同じUSBシリアル番号または同じIDを持つことがないように、設定されている。
図5は、印刷システム1の各部の動作を示すシーケンス図であり、(A)はホストコンピューター10の動作を示し、(B)はプリンター(F)30の動作を示し、(C)はプリンター(E)20の動作を示す。図5の動作は、図4の動作の後に実行される。
図5には、ホストコンピューター10が出力したデータに基づき、プリンター(E)20が印刷を行う動作例を示している。
図5には、ホストコンピューター10が出力したデータに基づき、プリンター(E)20が印刷を行う動作例を示している。
まず、ホストコンピューター10において、POSアプリケーション11Aの動作によりレシートのデータが作成され、印刷指示が出力される(ステップS31)。この印刷指示に基づいて、デバイスドライバーが印刷コマンドと印刷データを生成する(ステップS32)。ここで生成される印刷コマンド及び印刷データは、ステップS13(図4)で受信したデバイス情報に基づき認識した機種に対応している。デバイスドライバーが生成した印刷コマンド及び印刷データは、オペレーティングシステム11DによりUSBインターフェイス12から送信される(ステップS33)。
ホストコンピューター10が送信した印刷コマンド及び印刷データは、プリンター(F)30がUSBインターフェイス40によって受信する(ステップS41)。データ制御部51は、USBインターフェイス40により受信した印刷コマンドと印刷データをいったん受信バッファー54Aに記憶し、データ処理部55に出力する。データ処理部55は、印刷コマンド及び印刷データを解析して、プリンター(E)20に適合するコマンド及びデータに変換する(ステップS42)。データ処理部55は、変換後のコマンド及びデータを、USBインターフェイス45から出力する(ステップS43)。
プリンター(E)20は、プリンター(F)30が送信した印刷コマンド及び印刷データを受信し(ステップS51)、受信した印刷コマンド及び印刷データに従って、印刷制御部(E)27の制御により印刷部(E)はレシートを印刷する(ステップS52)。印刷が完了した後、プリンター(E)20は、印刷完了通知をUSBインターフェイス21からプリンター(F)30へ送信する(ステップS53)。
ここで、プリンター(F)30は、プリンター(E)20から印刷完了通知を受信する(ステップS44)。プリンター(F)30のデータ制御部51は、ホストコンピューター10に送信する印刷完了通知を生成して、ホストコンピューター10に送信する(ステップS45)。ここでデータ制御部51が生成する印刷完了通知は、ステップS24(図4)でホストコンピューター10に送信し、ホストコンピューター10により認識されたデバイス情報に対応する形式である。すなわち、ホストコンピューター10は、プリンター(F)30を、プリンター(F)30とは異なる機種のプリンターとして認識している。このため、データ制御部51は、ホストコンピューター10が認識している機種のプリンターが生成する印刷完了通知を、生成する。
ホストコンピューター10は、プリンター(F)30から送信された印刷完了通知を、認識している機種のプリンターの印刷完了通知として受信し(ステップS34)、印刷が完了したことに基づき本処理を終了する。
ここで、プリンター(F)30は、プリンター(E)20から印刷完了通知を受信する(ステップS44)。プリンター(F)30のデータ制御部51は、ホストコンピューター10に送信する印刷完了通知を生成して、ホストコンピューター10に送信する(ステップS45)。ここでデータ制御部51が生成する印刷完了通知は、ステップS24(図4)でホストコンピューター10に送信し、ホストコンピューター10により認識されたデバイス情報に対応する形式である。すなわち、ホストコンピューター10は、プリンター(F)30を、プリンター(F)30とは異なる機種のプリンターとして認識している。このため、データ制御部51は、ホストコンピューター10が認識している機種のプリンターが生成する印刷完了通知を、生成する。
ホストコンピューター10は、プリンター(F)30から送信された印刷完了通知を、認識している機種のプリンターの印刷完了通知として受信し(ステップS34)、印刷が完了したことに基づき本処理を終了する。
図5の動作に限らず、例えばホストコンピューター10が出力するコマンド及びデータに従って、プリンター(F)30が印刷を行うことも可能である。この場合、ステップS42において、データ処理部55は、印刷制御部(F)32が実行可能なコマンド及びデータへの変換を行う。また、データ制御部51は、印刷部(F)60における印刷が完了した場合に、ステップS45で印刷完了通知を生成して送信する。
また、データ制御部51は、ホストコンピューター10に対して、印刷完了通知の他に、プリンター(E)20や印刷部(F)60におけるエラーを通知することも可能である。この場合、データ制御部51は、ホストコンピューター10が認識した機種のプリンターのエラー通知を生成して、送信する。
さらに、データ制御部51は、ホストコンピューター10が認識した機種のプリンターと、プリンター(E)20またはプリンター(F)30との仕様の相違に対応して、エラー通知の内容を変更することができる。例えば、ホストコンピューター10が認識した機種のプリンターがサーマルプリンターであって、プリンター(E)20またはプリンター(F)30がインクジェット式のプリンターである場合を仮定する。この場合、プリンター(E)20またはプリンター(F)30においてインク切れが発生した場合、データ制御部51は、インク切れのエラー通知を取得する。ここで、ホストコンピューター10が認識した機種のプリンターでインク切れが想定されていないため、ホストコンピューター10が受信可能なエラー通知に、インク切れに対応するエラー通知がないことがある。データ制御部51は、例えば、インクエラーによりオフラインとなることを示すエラー通知を生成して、ホストコンピューター10に出力する。このエラー通知は、ホストコンピューター10が認識した機種のプリンターで定義済みのエラー通知であり、ホストコンピューター10が受信し、処理できる。このように、データ制御部51が、プリンター(F)30またはプリンター(E)20で発生したエラー通知を異なる内容のエラー通知に変換することで、ホストコンピューター10を安定して動作させることができ、かつ、エラーに対して確実に対応できる。
さらに、データ制御部51は、ホストコンピューター10が認識した機種のプリンターと、プリンター(E)20またはプリンター(F)30との仕様の相違に対応して、エラー通知の内容を変更することができる。例えば、ホストコンピューター10が認識した機種のプリンターがサーマルプリンターであって、プリンター(E)20またはプリンター(F)30がインクジェット式のプリンターである場合を仮定する。この場合、プリンター(E)20またはプリンター(F)30においてインク切れが発生した場合、データ制御部51は、インク切れのエラー通知を取得する。ここで、ホストコンピューター10が認識した機種のプリンターでインク切れが想定されていないため、ホストコンピューター10が受信可能なエラー通知に、インク切れに対応するエラー通知がないことがある。データ制御部51は、例えば、インクエラーによりオフラインとなることを示すエラー通知を生成して、ホストコンピューター10に出力する。このエラー通知は、ホストコンピューター10が認識した機種のプリンターで定義済みのエラー通知であり、ホストコンピューター10が受信し、処理できる。このように、データ制御部51が、プリンター(F)30またはプリンター(E)20で発生したエラー通知を異なる内容のエラー通知に変換することで、ホストコンピューター10を安定して動作させることができ、かつ、エラーに対して確実に対応できる。
以上説明したように、印刷システム1を構成するプリンター(F)30は、USBインターフェイス40、デバイス情報記憶部54B、及びデータ制御部51を備える。USBインターフェイス40は、ホストコンピューター10と接続するインターフェイスである。デバイス情報記憶部54Bには、プリンターの機種名等を含むデバイス情報を複数記憶する。また、データ制御部51は、ホストコンピューター10に、デバイス情報記憶部54Bに記憶されたデバイス情報を送信(出力)してホストコンピューター10との通信を開始する。データ制御部51は、さらに、ホストコンピューター10との通信が開始されない場合はデバイス情報記憶部54Bに記憶された、異なるデバイス情報を送信する。このように、プリンター(F)30は、ホストコンピューター10が対応するプリンターが特定されていない状態であっても、ホストコンピューター10に複数のデバイス情報を送信して通信開始を試行し、通信開始されない場合は別のデバイス情報を送信する。これにより、プリンター(F)はホストコンピューター10との通信を開始することができ、ホストコンピューター10に情報を出力させることができる。従って、プリンター(F)30をホストコンピューター10に接続するだけで、ホストコンピューター10の構成を変更することなく、ホストコンピューター10が対応していないプリンター(F)30やプリンター(E)20で印刷できる。これにより、ホストコンピューター10に接続されるプリンターの構成変更を容易に行うことができる。
また、データ制御部51は、デバイス情報を送信した後の所定時間内に、ホストコンピューター10がデバイス情報に基づく通信を開始しない場合に、デバイス情報記憶部54Bに記憶された他のデバイス情報を送信する。このため、速やかに、ホストコンピューター10との通信を開始できる。
また、データ制御部51は、ホストコンピューター10がデバイス情報に基づく通信を開始しない場合に、ホストコンピューター10との接続を切断(リセット)して再び接続開始する動作を行い、その後、他のデバイス情報を送信する。このため、ホストコンピューター10に送信したデバイス情報が、ホストコンピューター10に適合しない場合に、通信を速やかに初期化して他のデバイス情報を送信できる。これにより、ホストコンピューター10に適したデバイス情報に基づき、速やかに通信を開始できる。
また、データ制御部51は、ホストコンピューター10がデバイス情報に基づく通信を開始しない場合に、ホストコンピューター10との接続を切断(リセット)して再び接続開始する動作を行い、その後、他のデバイス情報を送信する。このため、ホストコンピューター10に送信したデバイス情報が、ホストコンピューター10に適合しない場合に、通信を速やかに初期化して他のデバイス情報を送信できる。これにより、ホストコンピューター10に適したデバイス情報に基づき、速やかに通信を開始できる。
また、プリンター(F)30は印刷部(F)60を備え、データ制御部51は、印刷部(F)60の種別を含むデバイス情報をホストコンピューター10に送信する。このため、ホストコンピューター10がプリンター(F)30に対応している場合には、このプリンター(F)30をホストコンピューター10に認識させて通信を開始できる。この場合、ホストコンピューター10とプリンター(F)30とは、プリンター(F)30が備える本来の機能の全てに対応するように、通信を行い、印刷できる。
また、データ制御部51は、ホストコンピューター10との通信が開始された後に、ホストコンピューター10から入力されるデータに従って印刷部(F)60に印刷させる印刷制御部(F)32を備えている。このため、プリンター(F)30が、ホストコンピューター10が対応していない機種のプリンターであった場合に、ホストコンピューター10が出力するコマンドやデータに基づき、印刷部(F)60が印刷できる。
また、データ制御部51は、ホストコンピューター10から入力されるデータを、USBインターフェイス45からプリンター(E)20に出力して、プリンター(E)20に印刷させることも可能である。
そして、データ処理部55によって、データ制御部51がホストコンピューター10に送信したデバイス情報に基づいて、ホストコンピューター10から入力されるデータを変換することができる。
そして、データ処理部55によって、データ制御部51がホストコンピューター10に送信したデバイス情報に基づいて、ホストコンピューター10から入力されるデータを変換することができる。
なお、上記各実施形態は本発明を適用した一態様を示すものであって、本発明を限定するものではない。例えば、上記実施形態において、プリンター(F)30のUSBインターフェイス40に接続される装置はホストとして動作するものであれば特に制限されず、USBホストコントローラーを備えた携帯型の端末装置や他のプリンター等であってもよい。また、USBインターフェイス45に接続される装置はデバイスとして動作する装置であれば特に制限はなく、プリンター以外のデバイスであってもよい。また、第1プリンター30のUSBインターフェイス45に複数のプリンターを接続してもよい。同様に、ホストコンピューター10に、複数の第1プリンター30を接続してもよい。
また、上記実施形態では印刷部(E)28及び印刷部(F)60について、カット紙やロール紙に印刷する構成を例に挙げて説明したが、その具体的な構成は限定されない。例えば、サーマルプリンター、インクジェットプリンター、ドットインパクト式プリンター、レーザープリンター、その他の各種プリンターとしてもよい。さらに、図1〜図3に示す各機能ブロックはハードウェアとソフトウェアの協働により任意に実現でき、特定のハードウェア構成を示唆するものではない。さらに、これらの各部は外部接続される記憶媒体に記憶させたプログラムを実行することにより、図4〜図5のフローチャートに係る動作を含む各種動作を実行する構成としてもよい。
また、USBインターフェイス40とUSBインターフェイス45とは別のハードウェアでなくてもよい。例えば、USBデバイスコントローラー42とUSBホストコントローラー47との機能を兼ね備えた一つのハードウェアに、USB_Bコネクター41及びUSB_Aコネクター46を接続することも勿論可能である。
また、上記実施形態では印刷部(E)28及び印刷部(F)60について、カット紙やロール紙に印刷する構成を例に挙げて説明したが、その具体的な構成は限定されない。例えば、サーマルプリンター、インクジェットプリンター、ドットインパクト式プリンター、レーザープリンター、その他の各種プリンターとしてもよい。さらに、図1〜図3に示す各機能ブロックはハードウェアとソフトウェアの協働により任意に実現でき、特定のハードウェア構成を示唆するものではない。さらに、これらの各部は外部接続される記憶媒体に記憶させたプログラムを実行することにより、図4〜図5のフローチャートに係る動作を含む各種動作を実行する構成としてもよい。
また、USBインターフェイス40とUSBインターフェイス45とは別のハードウェアでなくてもよい。例えば、USBデバイスコントローラー42とUSBホストコントローラー47との機能を兼ね備えた一つのハードウェアに、USB_Bコネクター41及びUSB_Aコネクター46を接続することも勿論可能である。
1…印刷システム、2B、2C…USBケーブル、10…ホストコンピューター(ホスト装置)、11…制御部、12…USBインターフェイス、20…プリンター(E)(第1印刷装置)、30…プリンター(F)(電子機器、中継装置)、32…印刷制御部(E)、40…USBインターフェイス(接続部)、45…USBインターフェイス(機器接続部)、51…データ制御部、54B…デバイス情報記憶部(記憶部)、55…データ処理部、60…印刷部(F)。
Claims (8)
- ホスト装置と接続する接続部と、
印刷装置の種別を含む第1の装置情報及び前記第1の装置情報と異なる印刷装置の種別を含む第2の装置情報を記憶する記憶部と、
前記接続部に接続された前記ホスト装置に、前記記憶部に記憶された前記第1の装置情報を送信し、前記ホスト装置との通信が開始されない場合は前記記憶部に記憶された前記第2の装置情報を送信する制御部と、
を備えることを特徴とする電子機器。 - 前記制御部は、前記第1の装置情報を送信した後の所定時間内に、前記ホスト装置が前記第1の装置情報に基づく通信を開始しない場合に、前記記憶部に記憶された前記第2の装置情報を送信する請求項1記載の電子機器。
- 前記制御部は、前記ホスト装置が前記第1の装置情報に基づく通信を開始しない場合に、前記ホスト装置との接続を切断して再び接続開始する動作を行い、その後、前記記憶部に記憶された前記第2の装置情報を送信する請求項2記載の電子機器。
- 印刷を行う印刷部を有し、
前記第2の装置情報は、前記印刷部の種別を含む請求項1から3のいずれか1項に記載の電子機器。 - インターフェイス部を有し、前記インターフェイス部を介して装置情報を要求する信号を送信するホスト装置と、
前記ホスト装置と接続する接続部、印刷装置の種別を含む第1の装置情報及び前記第1の装置情報と異なる印刷装置の種別を含む第2の装置情報を記憶する記憶部、前記ホスト装置に前記記憶部に記憶された前記第1の装置情報を送信した後に前記ホスト装置との通信が開始されない場合は前記記憶部に記憶された前記第2の装置情報を送信する制御部を有する電子機器と、
を備えることを特徴とする印刷システム。 - 前記制御部は、前記第1の装置情報の送信した後の所定時間内に、前記ホスト装置が前記第1の装置情報に基づく通信を開始しない場合に、前記記憶部に記憶された前記第2の装置情報を送信する請求項5記載の印刷システム。
- 前記電子機器と接続して印刷を行う印刷装置を備え、
前記電子機器は、印刷を行う印刷部を有し、前記第2の装置情報は、前記印刷部の種別を含む請求項5または6に記載の印刷システム。 - 接続部にホスト装置が接続された場合に、予め記憶した印刷装置の種別を含む第1の装置情報を前記ホスト装置に送信し、
前記ホスト装置との通信が開始されない場合は記憶した第2の装置情報を前記ホスト装置に送信することを特徴とする印刷システムの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013141368A JP2015014917A (ja) | 2013-07-05 | 2013-07-05 | 電子機器、印刷システム、及び、印刷システムの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013141368A JP2015014917A (ja) | 2013-07-05 | 2013-07-05 | 電子機器、印刷システム、及び、印刷システムの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015014917A true JP2015014917A (ja) | 2015-01-22 |
Family
ID=52436610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013141368A Pending JP2015014917A (ja) | 2013-07-05 | 2013-07-05 | 電子機器、印刷システム、及び、印刷システムの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015014917A (ja) |
-
2013
- 2013-07-05 JP JP2013141368A patent/JP2015014917A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101446436B1 (ko) | 인쇄 장치, 인쇄 시스템 및 인쇄 방법 | |
US10904407B2 (en) | Computer-readable storage medium and printing system | |
JP5031539B2 (ja) | 印刷システム、印刷装置及び印刷方法 | |
JP6582830B2 (ja) | モニタプログラム、通信プログラム、情報処理装置、画像形成装置、及び画像形成システム | |
US10459673B2 (en) | Print control device, print system, and print control method | |
US9448748B2 (en) | Printing device, printing system, and control method of a printing system | |
KR20050078464A (ko) | 드라이버정보의 사전 전송을 통해 프린팅 오동작을예측하는 인쇄시스템 및 그 방법 | |
JP2015014917A (ja) | 電子機器、印刷システム、及び、印刷システムの制御方法 | |
JP2007179371A (ja) | 印刷システム | |
JP7322443B2 (ja) | 通信デバイス | |
JP6131640B2 (ja) | 印刷装置、印刷システム、及び、印刷方法 | |
US8547578B2 (en) | Print driver, information processing apparatus, and computer-readable storage medium for generating different types of drawing commands and job commands | |
JP5939064B2 (ja) | 印刷装置、及び、印刷システム | |
US10908850B2 (en) | Information processing apparatus, and non-transitory computer-readable recording medium therefor to be compliant to a particular protocol | |
KR101219427B1 (ko) | 화상형성장치, 이에 연결된 호스트장치 및 그 화상처리방법 | |
JP2014019088A (ja) | 印刷装置、及び、印刷システム | |
JP5614084B2 (ja) | 情報処理装置、及び情報処理方法 | |
JP6265053B2 (ja) | 印刷制御装置、印刷システム、及び、印刷制御方法 | |
JP2014108545A (ja) | 印刷装置、印刷装置の制御方法、及びプログラム | |
JP2011221889A (ja) | 印刷システム、印刷装置、インストーラ、インストール方法、およびインストールプログラム | |
JP2006302039A (ja) | 画像形成システム、その制御方法、プログラム、及び記憶媒体、並びに画像形成装置、及びホストコンピュータ | |
JP2016218757A (ja) | 画像形成システム、画像形成装置及びその制御方法、並びにプログラム | |
JP2006347113A (ja) | 印刷システム | |
JP2012185702A (ja) | システム、デバイス制御装置、制御方法、及び、プログラム | |
JP2007041703A (ja) | 印刷システム、印刷制御方法、ホスト装置、及び印刷装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20150113 |