JP2007011793A - 周辺装置制御システム及びその制御方法及び情報処理装置、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体 - Google Patents

周辺装置制御システム及びその制御方法及び情報処理装置、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体 Download PDF

Info

Publication number
JP2007011793A
JP2007011793A JP2005193085A JP2005193085A JP2007011793A JP 2007011793 A JP2007011793 A JP 2007011793A JP 2005193085 A JP2005193085 A JP 2005193085A JP 2005193085 A JP2005193085 A JP 2005193085A JP 2007011793 A JP2007011793 A JP 2007011793A
Authority
JP
Japan
Prior art keywords
peripheral device
version information
control method
version
information acquisition
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.)
Granted
Application number
JP2005193085A
Other languages
English (en)
Other versions
JP4827445B2 (ja
Inventor
Koichi Abe
孝一 安部
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2005193085A priority Critical patent/JP4827445B2/ja
Priority to US11/471,568 priority patent/US8438556B2/en
Publication of JP2007011793A publication Critical patent/JP2007011793A/ja
Application granted granted Critical
Publication of JP4827445B2 publication Critical patent/JP4827445B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1209Improving or facilitating administration, e.g. print management resulting in adapted or bridged legacy communication protocols, e.g. emulation, protocol extension
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03GELECTROGRAPHY; ELECTROPHOTOGRAPHY; MAGNETOGRAPHY
    • G03G15/00Apparatus for electrographic processes using a charge pattern
    • G03G15/50Machine control of apparatus for electrographic processes using a charge pattern, e.g. regulating differents parts of the machine, multimode copiers, microprocessor control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1225Software update, e.g. print driver, modules, plug-ins, fonts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/123Software or firmware update, e.g. device firmware management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1286Remote printer device, e.g. being remote from client or server via local network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration

Abstract

【課題】 情報処理装置のOSのバージョンのアップデートや、周辺装置のファームウェアのバージョンアップを行った場合であっても、それに伴って最適な処理を選択することで、その周辺装置の制御を行う。
【解決手段】 情報処理装置のOSのバージョン情報、制御対象となるプリンタのファームウェアのバージョン情報、及び、プリンタドライバのバージョン情報を取得する(S1902、S1906、1908)。そして、その取得した情報に従って、プリンタ3の状態情報を取得するための制御方法になるように設定する(S1909、S1909)。
【選択図】 図19

Description

本発明は、情報処理装置とプリンタ等の周辺装置から構成される周辺装置制御システムに関する。
従来、情報処理装置と周辺装置とのインタフェースとして、例えば、パラレル、シリアル、IrDA、Universal Serial Bus(USB)、Ethernet(登録商標)等が主に利用されていた。ここで、情報処理装置としては、(パーソナルコンピュータ、デジタルカメラ、デジタルビデオカメラ等が挙げられる。また、周辺装置としては、プリンタ(印刷装置)、複写機、ファクシミリ、スキャナ、デジタルカメラ、デジタルビデオカメラ、及びこれらの複合機能を備える画像処理装置等が挙げられる。
近年では、機器間の通信インタフェースとして、Bluetooth、無線LAN(IEEE 802.11a/b/g等)、IEEE 1394が新に加わってきた。また、これ以外の新たな通信インターフェースとして、FotoNation社(http://www.fotonation.com/index.php)が開発したPicture Transfer Protocol over Internet Protocol(PTP/IP)がある。また、Wireless USB Promoter Groupが策定したWireless USBもある。また、カメラ映像機器工業会(CIPA)が標準化したPictBridge(http://www.cipa.jp/pictbridge/index_j.html)等の新しいインタフェースが利用されるようになってきた。
これに伴い、これらの新しいインタフェースをサポートする為に、情報処理装置のOS(Operating System)の一部をアップデートする等の対応が行われている。例えば米国マイクロソフト社のWindows(登録商標)XPのOSの場合、Windows(登録商標)XP Service Pack、Windows(登録商標)Update、OSをアップデートするQFE等によるOSのアップデートが行われている。また、このようなアップデートにより、セキュリティが強化される場合もある。
このようにOSがアップデートされた場合、アップデートされたOSの仕様に合わせて、周辺装置のファームウェアやその周辺装置を制御するドライバをアップデートすることで、以前より優れた仕様の周辺装置制御システムを提供することができる。また、OSのアップデートによるセキュリティの強化等により、以前のOSで正常に動作していた周辺装置やその周辺装置を制御するドライバが、以前の仕様で動作できなくなる場合もある。この場合も正常に動作させる為に、周辺装置のファームウェアやその周辺装置を制御するドライバをアップデートする必要がある。
しかしながら、このようにアップデート後のOSのバージョン、周辺装置のファームウェアのバージョン、その周辺装置を制御するドライバのバージョンの組み合わせが合致しない場合、周辺装置制御システムとして正常に動作しない、という問題があった。
本発明は、かかる問題点に鑑みなされたものであり、パーソナルコンピュータ等の情報処理装置のOS、周辺装置のファームウェアの組み合わせから、周辺装置の制御にかかる最適な処理を選択する技術を提供しようとするものである。
この課題を解決するため、例えば、本発明の周辺装置制御システムは以下の構成をそなえる。すんわち、
情報処理装置と、前記情報処理装置上で実行可能なアプリケーションと、周辺装置から成る周辺装置制御システムであって、
前記アプリケーションは、
前記情報処理装置を制御するオペレーティングシステムのバージョン情報を取得する第1のバージョン情報取得手段と、
前記周辺装置を制御するファームウェアのバージョン情報を取得する第2のバージョン情報取得手段と、
前記周辺装置の制御方法を選択する制御方法選択手段と、
前記第1のバージョン情報取得手段と前記第2のバージョン情報取得手段で取得した情報に基づいて、前記制御方法選択手段により選択された制御方法に従って、前記周辺装置を制御する手段とを備える。
本発明によれば、情報処理装置のOSのバージョンのアップデートや、周辺装置のファームウェアのバージョンアップを行った場合であっても、それに伴って最適な処理を選択することで、その周辺装置の制御が行える。
また、周辺装置制御システムの構成から最適な処理を選択する際に、ユーザによる特別な操作が不要であり、自動的に最適な処理が選択されるので、ユーザの操作性にも優れる。
さらに、一つのアプリケーションと一つの周辺装置制御用ドライバで、従来の仕様と新仕様の両仕様を両立できるので、ユーザの操作性に優れ、トータルコストも削減できる。
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
以下の説明で引用される関数(情報)の内、特に詳しい説明を付加していないものに関しては、2004年7月15日現在、Microsoft Developer Network (MSDN)のサイトでインターネット上で公開されている関数(情報)であるとし、その詳述は省略する。また、以下の説明において、Bluetoothは双方向通信が可能な公知の無線インタフェースであり、その仕様は公開されているので、その詳細についても省略する。
図1は本発明の情報処理装置及び周辺装置からなる周辺装置制御システムの構成を示すブロック図である。同図において、1は情報処理装置であり、一般的なパーソナルコンピュータ(以下、PCと略す場合がある)で構成される。PC1は図2で後述するようなハードウェアで構成され、OS(Operating System)として米国マイクロソフト社のWindows(登録商標)XPがインストールされているものとする。3はプリンタ(印刷装置もしくは画像形成装置)であり、カラーインクジェットプリンタで構成され、本実施形態における周辺装置に相当する。プリンタ3はXYZ社製のkmmnというモデル名のプリンタであるとする。尚、本発明における周辺装置としては、プリンタ、複写機、ファクシミリ、またはこれらの複合機などの画像形成装置、スキャナ、デジタルカメラであってもよい。プリンタ3は図3で後述するようなハードウェアで構成され、PC1とBluetoothインタフェース9を介して接続されており、互いに双方向通信が可能である。36は図4で後述するランゲージモニタ(language Monitor;以降、LMと略す場合がある)であり、Windows(登録商標)用のダイナミックリンクライブラリで構成される。30はアプリケーションであり、Windows(登録商標)用の実行可能形式のファイル(*.EXE)で構成される。アプリケーション30の一例としては、プリンタ3の状態を表示するようなステータスモニタ等が挙げられる。アプリケーション30は前記MSDNのサイトで公開されているPrinting and Print Spooler Interfacesを利用して、LM36へデータ(情報)を送ったり、LM36からデータ(情報)を受け取ったりすることができる。これはWindows(登録商標)XPの公知の機能であるので、その詳細説明は省略する。
図2はPCのハードウェア構成の一例を表すブロック図である。ここではPC1を例にして説明する。PC1はランダムアクセスメモリ部(RAM1201)、記憶部であるハードディスクドライブ部(HDD1202)、入力部の一例であるキーボード部(KBD1203)を備える。また、このPC1は、制御部としてのCPU1204、表示部の一例である表示用ディスプレイ(LCD1205)、通信制御部の一例であるネットワークボード(NB1207)を備える。そして、バス1206は、以上のPC1の構成要素を互いに接続する。NB1207は、Bluetoothインタフェース9用の接続ポートを含み、Bluetoothの通信を制御する。なお、記憶部は、可搬性CD−ROMまたは内部据付のROMなどであってもよい。図1に示すPC1の各モジュール(アプリケーション30、LM36)は、HDD1202に記憶され、必要に応じてRAM1201に読み出されてCPU1204により実行される。これにより、CPU1204が、図1に示す各モジュールの機能を実現する。
図3はプリンタのハードウェア構成を表すブロック図である。プリンタ3は同図に示すようなハードウェア構成を持つ。同図において、15はマイクロプロセッサ等から構成されるCPUであり、プリンタ3の中央処理装置として、ROM16に記憶されているプログラムに従って、RAM17、通信部18、記録部19を制御する。PC1側のプリンタドライバ50(図4で後述する)による要求に応じて、プリンタ3の記録(印刷)処理や、状態をPC1へ伝える処理を行うプログラムも、このROM16に記憶されている。RAM17は主にPC1から送られて、それをもとに記録部19によって印刷される印字データが一時的に記憶される。通信部18にはBluetoothインタフェース9用の接続ポートが含まれており、Bluetoothの通信を制御する。
記録部19は、インクジェット方式の記録ヘッド、各カラーインク、キャリッジ、記録紙搬送機構等から構成される記録ユニットを備える。また、この記録部19は、印字データをもとに前記記録ヘッドにて印字用パルスを発生させる為のASIC等から構成される電気回路を備える。
上記構成において、PC1上で実行する印刷出力機能を有するアプリケーション上で、ユーザが印刷指示を行う。この結果、そのアプリケーションで開かれているファイルの表示内容(画像データ)が、EMF形式のスプールファイルとしてPC1のHDD1202に一時的に格納される。そして、プリンタドライバ50は、そのスプールファイルを、プリンタ3の制御用コマンドを含む印字データに変換した後、Bluetoothインタフェース9を介してプリンタ3に送信する。プリンタ3は、印刷データを受信し、記録部19によって印字用パルスに変換されて、記録紙上に印刷することになる。
図4は、PC1におけるプリンタドライバの構成を表すブロック図である。同図において、プリンタドライバ50はPC1にインストールされているドライバであり、33〜38で示す複数のモジュールを備えている。アプリケーション30は印刷指令やプリンタの状態表示が可能なアプリケーションソフトウェアであり、例えば、Windows(登録商標) XP OS に標準で同梱されているテキストエディタであるNotepad(Notepad.exe)等に相当する。尚、本実施形態では、アプリケーション30はステータスモニタ等である。31はGDI(Graphics Device Interface)であり、Windows (登録商標)XP OSの一部である。32はプリンタキューで、Windows (登録商標)XP OSのSpoolerの一部であり、印刷ジョブをキューイングする。
次にプリンタドライバ50の構成を説明する。33はプリントプロセッサであり、印刷レイアウトの変更や印刷画像の特殊処理を行う。34はグラフィックスドライバで、プリンタドライバ50の画像処理のコアとして動作し、GDI31から送られて来る描画命令に基づき印刷用の画像処理を行い、印刷制御コマンドを作成する。35はUIモジュールで、プリンタドライバ50のユーザインタフェースの提供及び制御を行う。36は図1で説明したランゲージモニタであり、データの通信I/Fとしてデータの送受信を制御する。37はポートモニタ(以降PMと略す場合がある)であり、LM36から送られてくるデータを適切なポートに対して送信したり、プリンタ3から送られてくるデータを、クラスドライバ38を介して受信したりする。クラスドライバ38は、最もポートに近いローレベルのモジュールである。本実施形態でのクラスドライバ38は、BluetoothのHardcopy Cable Replacement Profile(HCRP)のスタックを制御するドライバに相当し、ポート(本発明ではBluetoothポート)を制御する。
図5はアプリケーション30がプリンタ3から、インクの情報及び状態を取得する時に使用するスキーマを表す図である。このスキーマは、アプリケーション30がPrinting and Print Spooler Interfacesを介してLM36経由でプリンタ3からインクの情報及び状態を取得する時に指定される。具体的には、このスキーマは、OSで使用できるCOMインタフェースIBidiSpl のAPI関数IBidiSpl::SendRecv()をコールする際に引数として指定される。
同図において、InkInfoはインクの情報を表すPropertyであり、スキーマのフルパスの指定は\Printer.InkInfoである。[Color]は色の情報を表すPropertyであり、スキーマのフルパスの指定は\Printer.InkInfo.[Color]である。[Color]で設定可能な値は、黒を表すBlack、シアンを表すCyan、マゼンタを表すMagenta、黄を表すYellowの何れかである。例えば、黒インクの情報を取得したい場合は、\Printer.InkInfo.Blackと指定する。
Installedは[Color]色のインクが搭載されているか否かを表すValueであり、データ型はBoolean、スキーマのフルパスの指定は\Printer.InkInfo.[Color]:Installedである。また、設定可能な値は、搭載されていること表すTrue、搭載されていないを表すFalseの何れかである。
Levelは[Color]色のインクの残量を表すValueであり、データ型はInt、スキーマのフルパスの指定は\Printer.InkInfo.[Color]:Levelである。設定可能な値は、インク残量無しを表す0(単位: %)からインク残量満タンを表す100(単位: %)までの間の整数か、インク残量不明を表す−1である。
ModelNameは[Color]色のインクの型名を表すValueであり、データ型はString、スキーマのフルパスの指定は\Printer.InkInfo.[Color]:ModelNameである。設定可能な値の例は、同図のExamplesのようなASCIIの文字列である。
Installed、Level、ModelName等のValueはLM36またはプリンタ3からアプリケーション30へ返される値である。
このように、これらの図で定義されているスキーマを使って、アプリケーション30はプリンタ3に搭載されているインクの情報及び状態、具体的な例としては、インクが搭載されているか否か、残量、型名を取得することができる。
図6は図5で定義されているスキーマを使ってインクの情報及び状態を列挙(Enumeration)する時のスキーマ及び値を表す図である。同図において、アプリケーション30(ステータスモニタ等)から\Printer.InkInfoのスキーマを指定してIBidiSpl::SendRecv()関数をコールする(Query (Schema))。この結果、プリンタ3からPC1には、全インクの情報及び状態のスキーマ(Retrieve (Schema))と値(Retrieve (Value))がセットで返される。同図の例では、プリンタ3に黒、黄、マゼンタ、シアンのインクが搭載されていて、インクの残量がそれぞれ、80%、50%、0%(インク残量無し)、100%(インク残量満タン)である例を示している。また、インクの型名がそれぞれ、CI-B、CI-Y、CI-M、CI-Cであることを表している。このようにインクの情報及び状態を列挙(Enumeration)することにより、インクの情報及び状態、具体的な例としては、インクが搭載されているか否か、残量、型名を取得することができる。
図7はプリンタの状態をモニタするアプリケーション30(ステータスモニタ)のGUIを表す図である。同図において、201はステータスモニタのメインウィンドウであり、プリンタ3(XYZ社製のkmmnというモデル名のプリンタ)の現在の状態を表している。202はプリンタ情報(Printer Information)表示部であり、プリンタがOnline(オンライン)の状態であることを表している。203はインク情報(Ink Information)表示部であり、プリンタ3のインクの情報を表す。204はインク残量表示部であり、プリンタ3に搭載されている各インクの残量を表示する。同図に示す通り、プリンタ3には黒(Black)、黄(Yellow)、マゼンタ(Magenta)、シアン(Cyan)の4色のインクが装着されていることが示されている。また、それぞれの色のインクの残量が80%、50%、0%(インク残量無し)、100%(インク残量満タン)であることが表示されている。
図8はPC1がプリンタ3からインク情報を取得する時の送受信データを表す図である。実際にPC1とプリンタ3との間で送受信されるデータはバイナリデータであるが、同図では理解しやすくすることを考えて、ASCII文字コードでエンコードした後のテキストデータとして表している。同図において、PC1が要求コマンド:Ink;をプリンタ3にBluetoothインタフェース9を介して送信すると、インク情報がプリンタ3からPC1にBluetoothインタフェース9を介して返される。このインク情報は次の内容を表している。
<色> <型名> <残量>
黒 CI-B 80%
黄 CI-Y 50%
マゼンタ CI-M 0%
シアン CI-C 100%
尚、この仕様はプリンタ3のファームウェアのバージョンには依存せず、任意のバージョンのファームウェアを搭載するプリンタ3において、サポートされる仕様である。
図9はPC1がプリンタ3からインク情報を取得する時の送信データを表す図である。実際にPC1からプリンタ3へ送信されるデータはバイナリデータであるが、同図では理解しやすくすることを考えて、ASCII文字コードでエンコードした後のテキストデータとして表している。同図において、PC1が設定コマンド:Set Ink;をプリンタ3にBluetoothインタフェース9を介して送信し、プリンタ3がこの設定コマンドを受信すると、プリンタ3がインク情報返却モードを開始する(詳細は図15、図16で後述)。尚、この仕様はプリンタ3のファームウェアのバージョンには依存せず、任意のバージョンのファームウェアを搭載するプリンタ3において、サポートされる仕様である。
図10はPC1のOSのバージョン、プリンタのファームウェアのバージョン及びプリンタドライバのバージョンの組み合わせにおけるステータスモニタ(常駐時)の動作を示す表である。同図において、[OS Version]欄は、PC1のOSのバージョン情報である。また、[Firmware Version]欄は、プリンタ3のファームウェアのバージョン情報である。[Driver Version]欄にはプリンタドライバ50のバージョン情報である。[ステータスモニタ(常駐時)の動作]欄にはステータスモニタが起動して常駐している時の動作が、それぞれ記載されている。
ここで、ステータスモニタが起動して常駐しているとは、印刷中以外の時にステータスモニタを起動して、プリンタ3の状態を常時監視している状態を意味する。
同図に示す通り、PC1のOSのバージョン情報がWindows (登録商標)XP Service Pack 1(SP1)以前の場合、OSの仕様によりPC1からプリンタ3へのBluetooth通信による送信だけの片方向通信である。従って、プリンタ3のファームウェアのバージョン情報及びプリンタドライバ50のバージョン情報に依存することなく、ステータスモニタがプリンタ3の状態を取得することができない。つまり、アプリケーションであるステータスモニタ30は、PC1のOSがWindows (登録商標)XP Service Pack 1(SP1)以前の場合のバージョンをサポートできない。尚、この場合におけるOSの仕様は図11を用いて後述する。
PC1のOSのバージョン情報がWindows (登録商標)XP Service Pack 2(SP2)の場合、OSの仕様により印刷ジョブ内でPC1とプリンタ3間でのBluetooth通信による送受信が可能である。また、任意のバージョンのファームウェアを搭載するプリンタ3が、任意のバージョンのプリンタドライバ50の制御のもとでこのような印刷ジョブ内での送受信をサポートしている。従って、Null Job方式の双方向通信によるステータスモニタの動作をサポートする。尚、この場合におけるOSの仕様及びNull Job方式の双方向通信に関しては図12で後述する。
PC1のOSのバージョン情報がWindows (登録商標)XP Full Bluetooth Supportの場合、OSの仕様により任意のケースでのBluetooth通信による送受信が可能である。バージョン1.xxのファームウェアを搭載するプリンタ3が任意のバージョンのプリンタドライバ50の制御のもとで印刷ジョブ内での送受信をサポートしている。また、Null Job方式の双方向通信によるステータスモニタの動作をサポートする。
また、バージョン2.00以降のファームウェアを搭載するプリンタ3は、バージョン5.00以降のプリンタドライバ50の制御のもとで印刷ジョブ内での送受信及びそれ以外でのPC1への送信をサポートしている。従って、Direct Read方式の双方向通信によるステータスモニタの動作をサポートする。また、バージョン5.00より古いプリンタドライバ50の制御のもとで印刷ジョブ内での送受信をサポートしているが、それ以外でのPC1への送信をサポートしていないので、Null Job方式の双方向通信によるステータスモニタの動作をサポートする。尚、この場合におけるOSの仕様及びDirect Read方式の双方向通信に関しては図13で後述する。
このように、PC1のOSのバージョン、プリンタ3のファームウェアのバージョン、及びプリンタドライバ50のバージョンの組み合わせにより、ステータスモニタの動作が異なる。そして、これらの中で最も理想的なステータスモニタの動作は、プリンタ3の状態を監視する為の印刷ジョブが不要で、任意のタイミングでプリンタの状態を表す情報を取得できるDirect Read方式の双方向通信を利用する場合である。尚、Windows (登録商標)XP Full Bluetooth SupportというOSのバージョン情報及びBluetooth通信におけるDirect Read方式の双方向通信に関しては、本発明で新たに提案する仕様である。つまり、現時点におけるWindows (登録商標)XP、Windows (登録商標)XP Service Pack、Windows (登録商標)Update、OSをアップデートするQFE等によるOSのアップデートではサポートされていない新しい仕様である。
図11はLM36からPM(ポートモニタ)37がエクスポートしている関数を呼び出す時のコーリングシーケンスを表す図である。同図はPC1のOSのバージョン情報がWindows (登録商標)XP Service Pack 1(SP1)以前の場合を表す。同図において、印刷ジョブが開始されるとWindows (登録商標)XP OSのSpoolerがLM36がエクスポートしているStartDocPort()関数を呼び出し、LM36はこの関数内でPM37がエクスポートしているStartDocPort()関数を呼び出す。その後、PM37がエクスポートしているWritePort()関数を呼び出してプリンタ3に印刷開始時の制御コマンドを送信し、印刷ジョブを開始する。
印刷ジョブが終了すると前記SpoolerがLM36がエクスポートしているEndDocPort()関数を呼び出し、LM36はこの関数内でPM37がエクスポートしているEndDocPort()関数を呼び出す。その後、PM37がエクスポートしているWritePort()関数を呼び出してプリンタ3に印刷終了時の制御コマンドを送信し、印刷ジョブを終了する。
このように、前記Spooler がLM36がエクスポートしているStartDocPort()を呼び出してからLM36がエクスポートしているEndDocPort()を呼び出す迄が印刷ジョブ内を表す。この印刷ジョブ内において、LM36はPM37がエクスポートしているWritePort()関数を呼び出すことで、プリンタ3に印刷制御コマンドを送信することができる。
PM37はプリンタ3からPC1へ送信されるデータを受信する為のReadPort()関数をエクスポートしている。しかし、同図に示すようなPC1のOSのバージョン情報がWindows (登録商標)XP Service Pack 1(SP1)以前の場合は、LM36がこのReadPort()関数を呼び出しても失敗するので、LM36はプリンタ3からPC1へ送信されるデータを受信することができない。
図12はLM36からPM37がエクスポートしている関数を呼び出す時のコーリングシーケンスを表す図である。同図はOSのバージョン情報がWindows (登録商標)XP Service Pack 2(SP2)の場合を表す。同図において、印刷ジョブが開始されるとWindows (登録商標)XP OSのSpoolerがLM36がエクスポートしているStartDocPort()関数を呼び出し、LM36はこの関数内でPM37がエクスポートしているStartDocPort()関数を呼び出す。この後、PM37がエクスポートしているWritePort()関数を呼び出してプリンタ3に印刷開始時の制御コマンドを送信し、印刷ジョブを開始する。
印刷ジョブが終了すると前記SpoolerがLM36がエクスポートしているEndDocPort()関数を呼び出し、LM36はこの関数内でPM37がエクスポートしているEndDocPort()関数を呼び出す。この後、PM37がエクスポートしているWritePort()関数を呼び出してプリンタ3に印刷終了時の制御コマンドを送信し、印刷ジョブを終了する。
このように、前記Spooler がLM36がエクスポートしているStartDocPort()を呼び出してからLM36がエクスポートしているEndDocPort()を呼び出す迄が印刷ジョブ内を表す。この印刷ジョブ内において、LM36はPM37がエクスポートしているWritePort()関数を呼び出すことで、プリンタ3に印刷制御コマンドを送信することができる。また、PM37はプリンタ3からPC1へ送信されるデータを受信する為のReadPort()関数をエクスポートしている。しかし、同図に示すようなPC1のOSのバージョン情報がWindows (登録商標)XP Service Pack 2(SP2)の場合は、印刷ジョブ内でLM36がこのReadPort()関数を呼び出すこともできる。プリンタ3がPC1へ送信するデータを準備している場合、LM36が印刷ジョブ内でこのReadPort()関数を呼び出すことで、LM36はこのデータを受信することができる。尚、印刷ジョブ内以外では、LM36がこのReadPort()関数を呼び出しても失敗するので、印刷ジョブ内以外でLM36はプリンタ3からPC1へ送信されるデータを受信することができない。
図13はLM36からPM37がエクスポートしている関数を呼び出す時のコーリングシーケンスを表す図である。同図はOSのバージョン情報がWindows (登録商標)XP Full Bluetooth Supportの場合を表す。
同図において、印刷ジョブが開始されるとWindows (登録商標)XP OSのSpoolerがLM36がエクスポートしているStartDocPort()関数を呼び出し、LM36はこの関数内でPM37がエクスポートしているStartDocPort()関数を呼び出す。この後、PM37がエクスポートしているWritePort()関数を呼び出してプリンタ3に印刷開始時の制御コマンドを送信し、印刷ジョブを開始する。
印刷ジョブが終了すると前記SpoolerがLM36がエクスポートしているEndDocPort()関数を呼び出し、LM36はこの関数内でPM37がエクスポートしているEndDocPort()関数を呼び出す。この後、PM37がエクスポートしているWritePort()関数を呼び出してプリンタ3に印刷終了時の制御コマンドを送信し、印刷ジョブを終了する。
このように、前記Spooler がLM36がエクスポートしているStartDocPort()を呼び出してからLM36がエクスポートしているEndDocPort()を呼び出す迄が印刷ジョブ内を表す。この印刷ジョブ内において、LM36はPM37がエクスポートしているWritePort()関数を呼び出すことで、プリンタ3に印刷制御コマンドを送信することができる。また、PM37はプリンタ3からPC1へ送信されるデータを受信する為のReadPort()関数をエクスポートしている。しかし、同図に示すようなPC1のOSのバージョン情報がWindows (登録商標)XP Full Bluetooth Supportの場合は、印刷ジョブ内でLM36がこのReadPort()関数を呼び出すこともできる。また、プリンタ3がPC1へ送信するデータを準備している場合、LM36が印刷ジョブ内でこのReadPort()関数を呼び出すことで、LM36はこのデータを受信することができる。さらに、印刷ジョブ内以外でもLM36がこのReadPort()関数を呼び出すことができる。プリンタ3がPC1へ送信するデータを準備している場合、LM36が印刷ジョブ内以外でこのReadPort()関数を呼び出すことで、LM36はこのデータを受信することができる。
図14はプリンタからPCへ送信されるDevice IDの例を表す図である。同図はプリンタ3からPC1へ送信されるDevice IDの例である。MFGはプリンタ3の製造元がXYZであることを表わしている。CMDはプリンタ3がサポートしている制御コマンドがRasterとSTSであることを表わしている。また、MDLはプリンタ3のモデル名がkmmnであること、CLSはプリンタ3のデバイスクラスがPRINTERであることを表わしている。そして、DESはプリンタ3のデバイスディスクリプションがXYZ kmmnであること、VERはプリンタ3のファームウェアのバージョン情報が1.00であることを表わしている。例えば、プリンタのファームウェアがアップデートされて、同図に示すDevice IDの中ではバージョン情報だけが2.00と変更された場合、同図においてVERがVER:2.00;というように変更されたDevice IDとなる。
以下、図15〜図21のフローチャートを用いて、本発明の実施の形態の動作について説明する。
図15はプリンタ3がBluetooth通信の接続を開始してから終了する迄の処理を表すフローチャートである。同図はプリンタ3のファームウェアのバージョンが1.xxの場合の処理を表す。
同図において、プリンタ3がBluetooth通信の接続を開始すると(ステップS1501)、Bluetooth通信の接続リンクを確立する(ステップS1502)。
次いで、PC1からの設定コマンド:Set Ink;を受信したか否かを判断する(ステップS1503)。PC1からの設定コマンド:Set Ink;を受信していないと判断した場合には、ステップS1503に戻る。また、設定コマンド:Set Ink;を受信したと判断した場合には、インク情報を用意してPC1からのリード要求に対していつでもインク情報を返すことができるインク情報返却モードを開始する(ステップS1504)。
次いで、Bluetooth通信の接続リンクが切断されたか否かを判断する(ステップS1505)。ステップS1505において、Bluetooth通信の接続リンクが維持されていると判断した場合には、ステップS1503に戻る。また、通信接続が切断されたと判断した場合には、用意しているインク情報をクリアし(ステップS1506)、インク情報返却モードを終了し(ステップS1507)、Bluetooth通信の接続を終了する(ステップS1508)。
ここで、インク情報返却モードの処理中では、プリンタ3は、PC1からのリード要求に対して、図8に示すインク情報を返す。
図16はプリンタがBluetooth通信の接続を開始してから終了する迄の処理を表すフローチャートである。同図はプリンタ3のファームウェアのバージョンが2.00以降の場合の処理を表す。
同図において、プリンタ3がBluetooth通信の接続を開始すると(ステップS1601)、Bluetooth通信の接続リンクを確立する(ステップS1602)。
次に、PC1からの設定コマンド:Set Ink;を受信したか否かを判断する(ステップS1603)。否の場合にはステップS1603に戻る。また、PC1から設定コマンド:Set Ink;を受信したと判断した場合には、インク情報を用意してPC1からのリード要求に対していつでもインク情報を返すことができるインク情報返却モードを開始する(ステップS1604)。
次いで、Bluetooth通信の接続リンクが切断されたか否かを判断する(ステップS1605)。通信接続が維持されている場合には、ステップS1603に処理を戻す。また、通信接続が切断されたと判断した場合には、Bluetooth通信の接続を終了する(ステップS1606)。
ここでプリンタ3におけるインク情報返却モードの処理中は、プリンタ3は、PC1からのリード要求に対して図8に示すようなインク情報をPC1に返す。
次に、実施形態におけるPC1側のアプリケーション(ステータスモニタ)30のメイン処理を、図17のフローチャートに従って説明する。
同図において、アプリケーション30(ステータスモニタ)が起動すると(ステップS1701)、設定コマンド:Set Ink;をプリンタ3に送信する為の印刷ジョブを発行する(S1702)。
次いで、ステータスモニタのメインウィンドウ201を表示する(ステップS1703)。この後、5秒間間隔毎の割り込みイベント処理を開始し(ステップS1704)、メッセージループを作成する(ステップS1705)。
5秒経過の割り込みが発生した場合(ステップS1706)、図18で後述するインク情報の取得と更新処理を行う(ステップS1707)。また、5秒経過の割り込みが発生していないと判断した場合には、ステップS1707の処理を行わず、ステップS1708に進む。
次いで、メッセージを受信したか否かを判断する(ステップS1708)。メッセージを受信しなかった場合には、次の割り込みイベントに備えるため、ステップS1706に戻る。
また、メッセージを受信したと判断した場合には、そのメッセージが終了メッセージであるか否かを判断する(S1709)。終了メッセージ以外であると判断した場合は、そのメッセージに対応する各種の処理を行い(ステップS1710)、ステップS1706に戻る。
また、メッセージが終了メッセージであると判断した場合には、アプリケーション30(ステータスモニタ)を終了する(ステップS1711)。
次に、実施形態におけるアプリケーション(ステータスモニタ)がプリンタのインク情報を取得してインク情報の表示を更新する処理(上記ステップS1707)を、図18のフローチャートに従って説明する。
同図において、アプリケーション30(ステータスモニタ)がプリンタ3のインク情報を取得してインク情報の表示を更新する処理をスタートする(ステップS1801)。この後、後述する図19の双方向通信の確認を行う(ステップS1802)。次いで、OSのレジストリに記憶されている通信に関する情報が片方向通信を示しているか否かを判断する(ステップS1803)。ここで、片方向通信状態であると判断した場合には、プリンタ3のインク情報の取得及びインク情報の表示更新の処理は行わず、リターンする(ステップS1812)。
ステップS1803において、レジストリに記憶されている通信情報が片方向通信でない場合、すなわち、Null Job方式の双方向通信またはDirect Read方式の双方向通信であると判断した場合、ステップS1804に処理を進める。このステップS1804では、図5で定義されている\Printer.InkInfoのスキーマを引数として、COMインタフェースIBidiSpl のAPI関数IBidiSpl::SendRecv()をコールしてインク情報の取得を開始する(ステップS1804)。
この結果、Printing and Print Spooler Interfacesを介して、LM36がエクスポートしているSendRecvBidiDataFromPort()関数がSpoolerからコールされて、この関数における処理が開始される(ステップS1805)。LM36のSendRecvBidiDataFromPort()関数内において、PM37がエクスポートしているReadPort()関数を呼び出すと、PC1からプリンタ3に対してリード要求が発行される。この結果、プリンタ3は、このリード要求に対して図8に示すインク情報をPC1に返すので、LM36はそのインク情報を取得し(ステップS1806)。この取得したインク情報をSendRecvBidiDataFromPort()関数の引数として指定されている\Printer.InkInfoのスキーマの定義に従って変換(図20で後述)される(ステップS1807)。そして、LM36は、SendRecvBidiDataFromPort()関数の引数として図6に示すようなスキーマの定義に変換されたインク情報をアプリケーションに返し、LM36のSendRecvBidiDataFromPort()関数の処理を終了する(ステップS1808)。
アプリケーション30(ステータスモニタ)において、IBidiSpl::SendRecv()関数がリターンされ、引数として図6に示すようなスキーマの定義で返されたインク情報を取得する(ステップS1809)。そして、インク情報表示用のデータを作成(図21で後述)し(ステップS1810)、このデータを使ってインク情報を更新する(ステップS1811)。このステップS1811では、アプリケーション30(ステータスモニタ)がプリンタ3のインク情報を取得してインク情報の表示を更新する処理も行う。この後、本処理をリターンする(S1812)。
図19は、実施形態におけるアプリケーション(ステータスモニタ)における、上記の双方向通信の確認処理(ステップS1802)の詳細を示すフローチャートである。
同図において、アプリケーション30(ステータスモニタ)が双方向通信の確認処理を開始すると(ステップS1901)、Win32 APIのGetVersionEx()関数を使ってPC1のOSのバージョン情報を取得する(ステップS1902)。次いで、取得したOSのバージョンがWindows (登録商標)XP SP1以前であるか否かを判断する(ステップS1903)。
OSのバージョンがWindows (登録商標)XP SP1以前であると判断した場合には、実施形態におけるアプリケーションが利用しようとしているBluetooth通信は片方向通信であるので、その旨の情報をレジストリに記憶し(ステップS1911)、リターンする(ステップS1914)。
また、ステップS1903において、OSのバージョンがWindows (登録商標)SP1より新しいと判断した場合、処理はステップS1904に進んで、OSのバージョンがWindows (登録商標)XP SP2であるか否かを判断する。OSのバージョンがWindows (登録商標)XP SP2であると判断した場合には、要求コマンド:Ink;の印刷ジョブを発行する(ステップS1909)。そして、通信の種類がNull Job方式の双方向通信であるという情報をレジストリに記憶し(ステップS1910)、リターンする(ステップS1914)。
一方、ステップS1904において、OSのバージョンがWindows (登録商標)SP2ではないと判断した場合には、ステップS1905に進んで、OSのバージョンがXP Full Bluetooth Supportであるか否かを判断する。OSのバージョンがXP Full Bluetooth Supportであると判断した場合には、プリンタ3からDevice IDを取得して、取得された図14で示すようなDevice IDからプリンタ3のファームウェアのバージョン情報を取得する(ステップS1906)。そして、プリンタ3のファームウェアのバージョンが2.00以降であるか否かを判断する(ステップS1907)。プリンタ3のファームウェアのバージョンが2.00より前、すなわち、バージョンが1.xxxであると判断した場合には、ステップS1909の処理を行う。また、プリンタ3のファームウェアのバージョンが2.00以降であると判断した場合には、ステップS1908に処理を進める。
ステップS1908では、PC1にインストールされているプリンタドライバ50のバージョンを取得する。次いで、ステップS1912にて、プリンタドライバ50のバージョンが5.00以降であるか否かを判断する。プリンタドライバ50のバージョンが5.00以降であると判断した場合には、通信の種類としてDirect Read方式の双方向通信が可能であるので、Direct Readであることを示す情報をレジストリに記憶し(ステップS1913)、リターンする(ステップS1914)。
また、ステップS1912において、プリンタドライバのバージョンが5.00より古い場合、ステップS1909に進む。また、ステップS1905において、XP Full Bluetooth Supportでない場合、OSのバージョンが不明であると判断して、ステップS1911に進む。
なお、ステップS1909で発行した印刷ジョブ(要求コマンド:Ink;)を受信したプリンタ3は、その後のPC1からのリード要求に対して、図8のプリンタから返されるインク情報に示すようなインク情報を一度返す用意を行う。ステップS1909で要求コマンド:Ink;をの印刷ジョブが発行されるケースでは、プリンタ3からインク情報を取得する為に、同図に示す双方向通信の確認処理が行われる度に印刷ジョブを発行する必要がある。本実施形態では、これをNull Job方式の双方向通信と定義する。
また、ステップS1913を通るケースでは、プリンタ3からインク情報を取得する為に、ステップS1909で発行するような印刷ジョブが不要である。本実施形態ではこれをDirect Read方式の双方向通信と定義する。そして、このDirect Read方式の双方向通信を利用することが最も効率の良い理想的な実現手段である。
図20は、LM36におけるインク情報をスキーマの定義に変換する処理(図18のステップS1807の詳細)を表すフローチャートである。
同図において、LM36におけるインク情報をスキーマの定義に変換する処理が開始されると(ステップS2001)、図18のステップS1806で取得したプリンタ3から返されるインク情報からインクの色を取得する(ステップS2002)。色が有る(見つかった)場合(ステップS2003)、その色をステップS2007におけるリターン時の戻り値格納用バッファ(メモリ)にセットする(ステップS2004)。そして、その色のインクの型名を取得してその型名をステップS2007におけるリターン時の戻り値格納用バッファ(メモリ)にセットする(ステップS2005)。また、その色のインクの残量を取得してその残量を、ステップS2007におけるリターン時の戻り値格納用バッファ(メモリ)にセットし(ステップS2006)、ステップS2002に戻る。
なお、ステップS2003において、色が無い(見つからなかった)場合、全ての色のインクに対する処理が完了したことを意味する。従って、戻り値格納用バッファにセットされている色(図5の[Color])、及び、その色のインクが搭載されているか否か(図5のInstalled)、その色のインクの型名(図5のModelName)、その色のインクの残量(図5のLevel)をメイン処理返すためにリターンする(ステップS2007)。
図21は、実施形態におけるアプリケーションにおけるインク情報表示用データの作成処理(図18のステップS1810)を表すフローチャートである。
同図において、アプリケーション30(ステータスモニタ)におけるインク情報表示用データの作成処理が開始される(ステップS2101)。次いで、図18のステップS1809で取得したIBidiSpl::SendRecv()関数の引数として図6に示すようなスキーマの定義で返されたインク情報からインクの色を取得する(ステップS2102)。色情報が有る(見つかった)と判断した場合(ステップS2103)、その色情報をステップS2106におけるリターン時の戻り値格納用バッファ(メモリ)にセットする(ステップS2104)。また、その色のインクの残量を取得してその残量をステップS2106におけるリターン時の戻り値格納用バッファ(メモリ)にセットし(ステップS2105)、ステップS2102に戻る。
また、ステップS2103において、色情報が無い(見つからなかった)場合、全ての色のインクに対する処理が完了したことを意味するので、戻り値格納用バッファにセットされている色(図5の[Color])、及び、その色のインクが搭載されているか否か(図5のInstalled)、その色のインクの残量(図5のLevel)をメイン処理に返して、リターンする(ステップS2106)。
以下、図22に示すメモリマップを参照して、上記実施形態に係る情報処理装置及び周辺装置からなる周辺装置制御システムで読み出し可能なデータ処理プログラムの構成について説明する。
図22は、本実施形態に係る周辺装置制御システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを示す図である。なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等もこの記憶媒体に記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。同図において、64は記憶媒体であり、ここではハードディスクで構成されているものとする。65はディレクトリ情報管理部であり、各種プログラムに従属するデータがこのディレクトリ情報管理部65で管理されている。66はプログラム格納部であり、各種プログラムを情報処理装置にインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に解凍するためのプログラム等も記憶される場合がある。本発明の実施の形態における図15〜図21にそれぞれ示す各フローチャートで実現される処理は、このプログラム格納部66に記憶されており、それぞれ実行される。これらの各フローチャートの実行によって実現できる各機能が、外部からインストールされるプログラムによって、情報処理装置によって実現されるようにしてもよい。そして、その場合、CD−ROMやフラッシュメモリやフレキシブルディスク等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群が情報処理装置や周辺装置に供給される場合でも、本発明は適用されるものである。
上記実施の形態では、アプリケーション30の一例としてステータスモニタを挙げたが、この例に限られることなく、例えば周辺装置から情報を取得して、それを利用するような任意のアプリケーションで実現可能であり、有効である。
また、上記実施の形態では、アプリケーション(ステータスモニタ)30でプリンタ3に搭載されているインクの情報及び状態をモニタする例を説明したが、この例に限られることなく、例えば、周辺装置の動作状態や、警告、エラーの状態、オプションの装着状態等の任意の情報や状態の取得に有効活用できる。
また、上記実施の形態では、プリンタの例としてカラーインクジェットプリンタを使用したが、この例に限られることなく、例えば、モノクロLBP等の任意のプリンタを使用することができる。
また、上記実施の形態では、情報処理装置としてパーソナルコンピュータを想定したが、この例に限られるものではない。情報処理装置としては、例えばデジタルカメラ、デジタルビデオカメラ、DVDビデオプレーヤー、ゲーム、セットトップボックス、インターネット家電等、同様な使用方法が可能な任意の端末に対して実現することができ、有効である。
また、上記実施の形態では、周辺装置としてプリンタを例示しているが、周辺装置として他に、複写機、ファクシミリ、スキャナ、デジタルカメラ、デジタルビデオカメラ、及びこれらの複合機能を備える装置などのいずれかが、本発明の適用対象となり得る。
また、上記実施の形態では、OSに例としてWindows (登録商標)XPを使用したが、このOSに限られることなく、任意のOSを使用することができる。
また、上記実施の形態では、PC1とプリンタ3との間のインタフェースとして、Bluetoothインタフェースを用いたが、このインタフェースに限られるものでもない。例えば、例えば、USB、Ethernet(登録商標)、無線LAN(IEEE 802.11a/b/g等)、IEEE 1394、IrDA、パラレル、シリアル、FotoNation社(http://www.fotonation.com/index.php)が開発したPicture Transfer Protocol over Internet Protocol(PTP/IP)、Wireless USB Promoter Groupが策定したWireless USB、カメラ映像機器工業会(CIPA)が標準化したPictBridge(http://www.cipa.jp/pictbridge/index_j.html)等の任意のインタフェースを用いるようにしてもよい。
また、本発明の目的は、前述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(基本システム或いはオペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明の情報処理装置及び周辺装置からなる周辺装置制御システムの構成を示すブロック図である。 PCのハードウェア構成の一例を表すブロック図である。 プリンタのハードウェア構成を表すブロック図である。 PCにおけるプリンタドライバの構成を表すブロック図である。 アプリケーションがプリンタからインクの情報及び状態を取得する時に使用するスキーマを表す図である。 図5で定義されているスキーマを使ってインクの情報及び状態を列挙(Enumeration)する時のスキーマ及び値を表す図である。 プリンタの状態をモニタするステータスモニタを表す図である。 PCがプリンタからインク情報を取得する時の送受信データを表す図である。 PCがプリンタからインク情報を取得する時の送信データを表す図である。 PCのOSのバージョン、プリンタのファームウェアのバージョン及びプリンタドライバのバージョンの組み合わせにおけるステータスモニタ(常駐時)の動作を示すテーブルである。 LM36からPM37がエクスポートしている関数を呼び出す時のコーリングシーケンスを表す図である。 LM36からPM37がエクスポートしている関数を呼び出す時のコーリングシーケンスを表す図である。 LM36からPM37がエクスポートしている関数を呼び出す時のコーリングシーケンスを表す図である。 プリンタからPCへ送信されるDevice IDの例を表す図である。 プリンタがBluetooth通信の接続を開始してから終了する迄の処理を表すフローチャートである。 プリンタがBluetooth通信の接続を開始してから終了する迄の処理を表すフローチャートである。 アプリケーション(ステータスモニタ)のメイン処理を表すフローチャートである。 アプリケーション(ステータスモニタ)がプリンタのインク情報を取得してインク情報の表示を更新する処理を表すフローチャートである。 アプリケーション(ステータスモニタ)の双方向通信の確認処理を表すフローチャートである。 LMにおけるインク情報をスキーマの定義に変換する処理を表すフローチャートである。 アプリケーションにおけるインク情報表示用データの作成処理を表すフローチャートである。 周辺装置制御システムで読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを示す図である。

Claims (11)

  1. 情報処理装置と、前記情報処理装置上で実行可能なアプリケーションと、周辺装置から成る周辺装置制御システムであって、
    前記アプリケーションは、
    前記情報処理装置を制御するオペレーティングシステムのバージョン情報を取得する第1のバージョン情報取得手段と、
    前記周辺装置を制御するファームウェアのバージョン情報を取得する第2のバージョン情報取得手段と、
    前記周辺装置の制御方法を選択する制御方法選択手段と、
    前記第1のバージョン情報取得手段と前記第2のバージョン情報取得手段で取得した情報に基づいて、前記制御方法選択手段により選択された制御方法に従って、前記周辺装置を制御する制御手段と
    を備えることを特徴とする周辺装置制御システム。
  2. 更に、前記アプリケーションは前記周辺装置を制御する周辺装置制御部のバージョン情報を取得する第3のバージョン情報取得手段を備え、
    前記制御手段は、前記第1のバージョン情報取得手段と、前記第2のバージョン情報取得手段と、前記第3のバージョン情報取得手段で取得した情報に基づいて、前記制御方法選択手段により選択された制御方法に従って、前記周辺装置を制御することを特徴とする請求項1記載の周辺装置制御システム。
  3. 情報処理装置と、前記情報処理装置上で実行可能なアプリケーションと、周辺装置から成る周辺装置制御方法であって、
    前記アプリケーションは、
    前記情報処理装置を制御するオペレーティングシステムのバージョン情報を取得する第1のバージョン情報取得工程と、
    前記周辺装置を制御するファームウェアのバージョン情報を取得する第2のバージョン情報取得工程と、
    前記周辺装置の制御方法を選択する制御方法選択工程と、
    前記第1のバージョン情報取得工程と、前記第2のバージョン情報取得工程で取得した情報に基づいて、前記制御方法選択工程により選択された制御方法に従って、前記周辺装置を制御する制御工程と
    を備えることを特徴とする周辺装置制御方法。
  4. 前記アプリケーションは更に、前記周辺装置を制御する周辺装置制御部のバージョン情報を取得する第3のバージョン情報取得工程を備え、
    前記制御工程は、前記第1のバージョン情報取得工程と、前記第2のバージョン情報取得工程と、前記第3のバージョン情報取得工程で取得した情報に基づいて、前記制御方法選択手段により選択された制御方法に従って、前記周辺装置を制御することを特徴とする請求項3記載の周辺装置制御方法。
  5. 情報処理装置上で実行され、当該情報処理装置の周辺装置を制御するためのアプリケーションとしてのコンピュータプログラムであって、
    前記情報処理装置を制御するオペレーティングシステムのバージョン情報を取得する第1のバージョン情報取得手段と、
    前記周辺装置を制御するファームウェアのバージョン情報を取得する第2のバージョン情報取得手段と、
    前記周辺装置の制御方法を選択する制御方法選択手段と、
    前記第1のバージョン情報取得手段と前記第2のバージョン情報取得手段で取得した情報に基づいて、前記制御方法選択手段により選択された制御方法に従って、前記周辺装置を制御する制御手段
    として機能することを特徴とするコンピュータプログラム。
  6. 更に、周辺装置の制御部のバージョン情報を取得する第3のバージョン情報取得手段として機能し、
    前記制御手段は、前記第1のバージョン情報取得手段と、前記第2のバージョン情報取得手段と、前記第3のバージョン情報取得手段で取得した情報に基づいて、前記制御方法選択手段により選択された制御方法に従って、前記周辺装置を制御することを特徴とする請求項5記載のコンピュータプログラム。
  7. 情報処理装置であって、
    前記情報処理装置上で実行可能なアプリケーションが、前記情報処理装置を制御するオペレーティングシステムのバージョン情報を取得する第1のバージョン情報取得手段と、周辺装置を制御するファームウェアのバージョン情報を取得する第2のバージョン情報取得手段と、前記周辺装置の制御方法を選択する制御方法選択手段と、前記第1のバージョン情報取得手段と前記第2のバージョン情報取得手段で取得した情報に基づいて、前記制御方法選択手段により選択された制御方法に従って、前記周辺装置を制御する制御手段とを備えることを特徴とする情報処理装置。
  8. 更に、前記アプリケーションは前記周辺装置を制御する周辺装置制御部のバージョン情報を取得する第3のバージョン情報取得手段を備え、
    前記制御手段は、前記第1のバージョン情報取得手段と、前記第2のバージョン情報取得手段と、前記第3のバージョン情報取得手段で取得した情報に基づいて、前記制御方法選択手段により選択された制御方法に従って、前記周辺装置を制御することを特徴とする請求項7記載の情報処理装置。
  9. 情報処理装置上で実行され、当該情報処理装置と通信することになる周辺装置の状態を監視するアプリケーションプログラムとしてのコンピュータプログラムであって、
    前記情報処理装置にインストールされたオペレーティングシステムのバージョンを取得する第1の取得手段と、
    前記周辺装置を制御するためのドライバプログラムのバージョンを取得する第2の取得手段と、
    前記周辺装置のファームウェアのバージョンを取得する第3の取得手段と、
    前記第1乃至第3の取得手段で取得したバージョン情報に基づき、前記周辺装置から状態情報を取得するための状態情報取得に係る通信方法を決定する処理決定手段と、
    該処理決定手段で決定された処理に沿って、前記周辺装置の状態情報を取得し、表示する表示手段
    として機能することを特徴とするコンピュータプログラム。
  10. 更に、前記第1の取得手段で取得したオペレーティングシステムのバージョンに基づいて、前記情報処理装置と前記周辺装置と双方向通信可能であるか否かを判断する判断手段と、
    該判断手段により、前記情報処理装置と前記周辺装置と双方向通信可能であると判断した場合に、前記第3の取得手段を実行する手段として機能することを特徴とする請求項9に記載のコンピュータプログラム。
  11. 請求項9又は10に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
JP2005193085A 2005-06-30 2005-06-30 周辺装置制御システム及びその制御方法及び情報処理装置、並びに、コンピュータプログラム Expired - Fee Related JP4827445B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005193085A JP4827445B2 (ja) 2005-06-30 2005-06-30 周辺装置制御システム及びその制御方法及び情報処理装置、並びに、コンピュータプログラム
US11/471,568 US8438556B2 (en) 2005-06-30 2006-06-21 Peripheral device control system, its control method, and information processing apparatus, and computer program and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005193085A JP4827445B2 (ja) 2005-06-30 2005-06-30 周辺装置制御システム及びその制御方法及び情報処理装置、並びに、コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2007011793A true JP2007011793A (ja) 2007-01-18
JP4827445B2 JP4827445B2 (ja) 2011-11-30

Family

ID=37591139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005193085A Expired - Fee Related JP4827445B2 (ja) 2005-06-30 2005-06-30 周辺装置制御システム及びその制御方法及び情報処理装置、並びに、コンピュータプログラム

Country Status (2)

Country Link
US (1) US8438556B2 (ja)
JP (1) JP4827445B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018173998A (ja) * 2018-07-24 2018-11-08 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
US10552146B2 (en) 2016-05-11 2020-02-04 Canon Kabushiki Kaisha Information processing apparatus that executes update application, control method therefor, and storage medium
JP7367431B2 (ja) 2019-09-30 2023-10-24 ブラザー工業株式会社 プログラム及び情報処理装置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4630783B2 (ja) * 2004-12-16 2011-02-09 キヤノン株式会社 周辺装置制御システム、印刷装置、周辺装置制御方法、及びプログラム
JP4501120B2 (ja) * 2008-03-10 2010-07-14 コニカミノルタビジネステクノロジーズ株式会社 ファイル編集装置及びファイル編集方法並びにファイル編集プログラム
JP5324257B2 (ja) * 2009-02-27 2013-10-23 キヤノン株式会社 情報処理装置及びその制御方法、プログラム
KR101595754B1 (ko) * 2009-11-26 2016-02-19 삼성전자주식회사 디지털 방송 시스템에서 셋탑박스의 펌웨어 갱신 방법 및 이를 위한 장치
JP5679740B2 (ja) 2010-08-26 2015-03-04 キヤノン株式会社 周辺装置制御システム、周辺装置、情報処理装置及び制御方法
JP5843605B2 (ja) 2011-06-29 2016-01-13 キヤノン株式会社 印刷制御装置、印刷制御方法、情報処理システム、情報処理装置、情報処理方法およびコンピュータプログラム
US11474767B1 (en) * 2014-05-28 2022-10-18 Amazon Technologies, Inc. Print from web services platform to local printer
JP6311885B2 (ja) * 2015-02-27 2018-04-18 京セラドキュメントソリューションズ株式会社 プログラム入替システム
CN104714827B (zh) * 2015-03-31 2018-06-08 北京奇虎科技有限公司 插件更新方法及装置
JP6349618B2 (ja) * 2015-07-13 2018-07-04 スター精密株式会社 データ中継アプリによる情報提供システム
CN108446131B (zh) * 2018-03-19 2021-10-08 深圳怡化电脑股份有限公司 一种atm机固件升级方法、装置、设备及存储介质
JP2022085479A (ja) 2020-11-27 2022-06-08 キヤノン株式会社 印刷システム、制御方法、及びプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH076114A (ja) * 1993-06-17 1995-01-10 Toshiba Corp コンピュータシステム
JP2002014850A (ja) * 2000-06-28 2002-01-18 Hitachi Ltd バージョン情報確認方法
JP2003015841A (ja) * 2001-07-03 2003-01-17 Canon Inc 無線通信装置および無線通信システム
JP2003216375A (ja) * 2002-01-25 2003-07-31 Canon Inc プリントシステム及びユーザインタフェースを制御する方法
JP2004234056A (ja) * 2003-01-28 2004-08-19 Ricoh Co Ltd ソフトウェア更新方法、管理サーバプログラム、ソフトウェア更新プログラム、及びプリンタユーティリティプログラム
JP2006178720A (ja) * 2004-12-22 2006-07-06 Hitachi Ltd ストレージシステム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5699493A (en) * 1995-06-23 1997-12-16 Lexmark International, Inc. Method and apparatus for providing job accounting information to a host computer from a printer
JP4809968B2 (ja) * 1999-04-09 2011-11-09 キヤノン株式会社 情報処理装置、情報処理方法、及びコンピュータ読み取り可能な記録媒体
JP4124975B2 (ja) * 2000-03-30 2008-07-23 キヤノン株式会社 情報処理装置、情報処理方法、記憶媒体及びプログラム
US7246348B1 (en) * 2000-10-13 2007-07-17 International Business Machines Corp. Method and apparatus for using print jobs for downloading and executing printer controller code
WO2002041107A2 (en) * 2000-11-20 2002-05-23 Flexiworld Technologies, Inc. Systems and methods for mobile and pervasive output
JP4109827B2 (ja) * 2000-12-22 2008-07-02 キヤノン株式会社 情報処理装置、方法及びコンピュータ読み取り可能な記憶媒体
US6671749B2 (en) * 2001-03-07 2003-12-30 Hewlett-Packard Development Company, L.P. Peripheral driver installation method and system
US7321443B2 (en) * 2001-06-29 2008-01-22 Hewlett-Packard Development Company, L.P. Print device and program product for supporting print by reference methods
US7624391B2 (en) * 2001-11-05 2009-11-24 Hewlett-Packard Development Company, L.P. Device-based model for software driver delivery and upgrade
JP2003303071A (ja) * 2002-01-16 2003-10-24 Canon Inc 情報処理装置及び情報処理方法及び情報処理システム及び制御プログラム及び記憶媒体
US7100158B2 (en) * 2002-04-30 2006-08-29 Toshiba Tec Kabushiki Kaisha Program management apparatus, program management system, and program management method
US6976252B2 (en) * 2002-05-17 2005-12-13 Hewlett-Packard Development Company, L.P. Systems and methods for driver installation
JP4261916B2 (ja) * 2002-06-19 2009-05-13 キヤノン株式会社 情報処理装置及び印刷処理方法
US7243347B2 (en) * 2002-06-21 2007-07-10 International Business Machines Corporation Method and system for maintaining firmware versions in a data processing system
US7149826B2 (en) * 2002-08-05 2006-12-12 Hewlett-Packard Development Company, L.P. Peripheral device output job routing
GB2400928A (en) * 2003-04-22 2004-10-27 Sharp Kk Distributed periperal device control system
US8176503B2 (en) * 2004-01-27 2012-05-08 Hewlett-Packard Development Company, L.P. Device driver selection
US7716382B2 (en) * 2005-01-11 2010-05-11 Microsoft Corporation Rich targeting criteria for selection of driver packages
JP2007042015A (ja) * 2005-08-05 2007-02-15 Brother Ind Ltd 周辺電子機器制御システム及び機能制限制御プログラム
US7793285B2 (en) * 2006-03-31 2010-09-07 Ricoh Company, Ltd. Web installer driver and management through a remote network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH076114A (ja) * 1993-06-17 1995-01-10 Toshiba Corp コンピュータシステム
JP2002014850A (ja) * 2000-06-28 2002-01-18 Hitachi Ltd バージョン情報確認方法
JP2003015841A (ja) * 2001-07-03 2003-01-17 Canon Inc 無線通信装置および無線通信システム
JP2003216375A (ja) * 2002-01-25 2003-07-31 Canon Inc プリントシステム及びユーザインタフェースを制御する方法
JP2004234056A (ja) * 2003-01-28 2004-08-19 Ricoh Co Ltd ソフトウェア更新方法、管理サーバプログラム、ソフトウェア更新プログラム、及びプリンタユーティリティプログラム
JP2006178720A (ja) * 2004-12-22 2006-07-06 Hitachi Ltd ストレージシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552146B2 (en) 2016-05-11 2020-02-04 Canon Kabushiki Kaisha Information processing apparatus that executes update application, control method therefor, and storage medium
JP2018173998A (ja) * 2018-07-24 2018-11-08 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
JP7367431B2 (ja) 2019-09-30 2023-10-24 ブラザー工業株式会社 プログラム及び情報処理装置

Also Published As

Publication number Publication date
US20070005845A1 (en) 2007-01-04
JP4827445B2 (ja) 2011-11-30
US8438556B2 (en) 2013-05-07

Similar Documents

Publication Publication Date Title
JP4827445B2 (ja) 周辺装置制御システム及びその制御方法及び情報処理装置、並びに、コンピュータプログラム
JP4827615B2 (ja) 情報処理装置、印刷システム、監視方法、プログラム及び記憶媒体
JP4541579B2 (ja) 印刷システム、ネットワークインターフェース装置、印刷装置、データ提供方法及び記憶媒体
US9645773B2 (en) Peripheral device control system, printing device, peripheral device control method, and program for providing information regarding an amount of color material
US7633403B2 (en) Information processing apparatus, information processing system, and information processing method
JP5822442B2 (ja) 情報処理装置、制御方法及びプログラム
JP4579799B2 (ja) 画像形成装置及びその制御方法、プログラム、画像形成システム
US20080186532A1 (en) Print system, print program, and recording medium
JP3903024B2 (ja) 出力管理方法及び情報処理装置
JP2006227908A (ja) 印刷指令装置、印刷実行装置、印刷指令印刷実行システム、それらの方法及びプログラム
JP5039331B2 (ja) 情報処理装置、削除方法及びプログラム
US8514427B2 (en) Information processing method and apparatus equipped with a monitoring unit
US7941571B2 (en) Peripheral device control system
JP4871675B2 (ja) 画像処理装置、画像処理装置の制御方法、及びコンピュータプログラム
JP4865885B2 (ja) 印刷システム、ネットワークインターフェース装置、ネットワークインターフェース装置の制御方法、及び記憶媒体
US11983445B2 (en) Information processing apparatus, control method, and storage medium storing program
JP4262007B2 (ja) ネットワーク装置及びデータ処理システムの制御方法
JP2007199770A (ja) 情報処理装置、アンインストール方法、記憶媒体、プログラム
JP2006235721A (ja) 画像形成システム、情報処理装置、方法、及び制御プログラム
JPH11191047A (ja) 印刷システムおよび印刷システムのドライバ管理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
KR100851117B1 (ko) 정보 처리 방법 및 장치
JP2012059280A (ja) 印刷装置、データ処理装置、印刷制御方法、及びプログラム
JP2004220192A (ja) 印刷システム
JP2001043043A (ja) プリンタ接続装置および該装置を用いるプリントシステム
JP2004185534A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080623

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110210

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110913

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140922

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140922

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees