JP6602053B2 - 情報処理装置、制御方法及びプログラム - Google Patents

情報処理装置、制御方法及びプログラム Download PDF

Info

Publication number
JP6602053B2
JP6602053B2 JP2015110385A JP2015110385A JP6602053B2 JP 6602053 B2 JP6602053 B2 JP 6602053B2 JP 2015110385 A JP2015110385 A JP 2015110385A JP 2015110385 A JP2015110385 A JP 2015110385A JP 6602053 B2 JP6602053 B2 JP 6602053B2
Authority
JP
Japan
Prior art keywords
information
external
information processing
connection
receiving step
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.)
Active
Application number
JP2015110385A
Other languages
English (en)
Other versions
JP2016224703A5 (ja
JP2016224703A (ja
Inventor
智広 宮川
弘明 守本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2015110385A priority Critical patent/JP6602053B2/ja
Priority to US15/156,799 priority patent/US9836258B2/en
Publication of JP2016224703A publication Critical patent/JP2016224703A/ja
Publication of JP2016224703A5 publication Critical patent/JP2016224703A5/ja
Application granted granted Critical
Publication of JP6602053B2 publication Critical patent/JP6602053B2/ja
Active 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/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection 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/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/121Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
    • 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/1232Transmitting printer device capabilities, e.g. upon request or periodically
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、情報処理装置、制御方法及びプログラムに関する。
従来から、プリンタ等の外部装置と接続し、当該接続によって取得した外部装置の情報を利用するパーソナルコンピュータ(以下、PCという。)等の情報処理装置が知られている。外部装置の情報を取得することは、情報処理装置及び外部装置の双方にとって負荷がかかる。そのため、情報処理装置は、取得した情報をキャッシュメモリーにキャッシュ情報として保存し、外部装置の情報を利用する際には当該キャッシュ情報を利用することで、外部装置の情報を取得する回数を抑える形態をとることが一般的である。しかしながら、このようにしてキャッシュ情報を利用する形態は、外部装置の情報を取得する負荷を減らすことができる一方で、現在の正確な外部装置の情報と乖離している情報を利用してしまう可能性があるという課題がある。そこで、特許文献1では、キャッシュ情報を利用するか否かを情報のカテゴリごとに切り替えることで、情報の乖離を回避しながらキャッシュ情報を活用する技術が開示されている。
特開2006−048155
しかしながら、特許文献1は、キャッシュ情報を利用するか否かの判断において、現在接続している外部装置の状態を考慮していない。このようなことから、特許文献1に開示された技術では、キャッシュ情報が有効でないにもかかわらず、キャッシュ情報を利用する処理が行われてしまう可能性があるという課題がある。
本発明は、上記の課題を解決するためになされたもので、適切にキャッシュ情報を利用することができる情報処理装置、制御方法及びプログラムを提供することを目的とする。
そこで、上記目的を達成するために、本発明のプログラムは、外部装置に係る装置情報を前記外部装置との接続の確立に応じて取得する第1接続方式又は前記装置情報を前記外部装置との接続の確立に応じて取得せず、前記装置情報を前記外部装置との接続の確立とは異なるタイミングに応じて取得する第2接続方式によって前記外部装置と接続可能な情報処理装置のコンピュータに、
前記装置情報に基づく処理の実行のための実行指示を受け付ける受け付けステップと、
前記情報処理装置が前記第1接続方式によって前記外部装置と接続している場合、前記外部装置との接続の確立に応じて前記受け付けステップの前に取得された前記装置情報に基づく処理を前記受け付けステップの後に実行し、
前記情報処理装置が前記第2接続方式によって前記外部装置と接続しており、且つ前記受け付けステップの前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じである場合、前記装置情報を前記受け付けステップの後に取得することなく、前記受け付けステップの前に取得された前記装置情報に基づく処理を前記受け付けステップの後に実行し、
前記情報処理装置が前記第2接続方式によって前記外部装置と接続しており、且つ前記受け付けステップの前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じでない場合、前記装置情報を前記受け付けステップの後に取得し、前記受け付けステップの後に取得された前記装置情報に基づく処理を前記受け付けステップの後に実行する処理ステップと、を実行させることを特徴とする。
そこで、上記目的を達成するために、本発明の制御方法は、外部装置に係る装置情報を前記外部装置との接続の確立に応じて取得する第1接続方式又は前記装置情報を前記外部装置との接続の確立に応じて取得せず、前記取得情報を前記外部装置との接続の確立とは異なるタイミングに応じて取得する第2接続方式によって前記外部装置と接続可能な情報処理装置の制御方法であって、
前記装置情報に基づく処理の実行のための実行指示を受け付ける受け付けステップと、
記情報処理装置が前記第1接続方式によって前記外部装置と接続している場合、前記外部装置との接続の確立に応じて前記受け付けステップの前に取得された前記装置情報に基づく処理を前記受け付けステップの後に実行し、
前記情報処理装置が前記第2接続方式によって前記外部装置と接続しており、且つ前記受け付けステップの前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じである場合、前記装置情報を前記受け付けステップの後に取得することなく、前記受け付けステップの前に取得された前記装置情報に基づく処理を前記受け付けステップの後に実行し、
記情報処理装置が前記第2接続方式によって前記外部装置と接続しており、且つ前記受け付けステップの前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じでない場合、前記装置情報を前記受け付けステップの後に取得し、前記受け付けステップのに取得された前記装置情報に基づく処理を前記受け付けステップの後に実行する処理ステップと、を有することを特徴とする。
本発明の情報処理装置、制御方法及びプログラムによれば、適切にキャッシュ情報を利用することができる。
本実施形態における情報処理装置と外部装置とによって構成された通信システムの構成を示すブロック図 本実施形態における情報処理装置が備えるプリンタドライバの構成を示す概念図 本実施形態における情報処理装置が行うポート初期化処理を示すフローチャート 本実施形態における情報処理装置が行う能力情報の取得処理を示すフローチャート 本実施形態における情報処理装置が行うジョブの送信時の処理を示すフローチャート 本実施形態における情報処理装置が行うキャッシュ情報が有効か無効かを判断する処理を示すフローチャート 本実施形態における情報処理装置が行うキャッシュ情報読み込み処理を示すフローチャート 本実施形態における情報処理装置が行うジョブ保持処理を実行するか否かを判断する処理を示すフローチャート 本実施形態における情報処理装置が行うジョブ保持処理を示すフローチャート 本実施形態における情報処理装置が扱う能力情報の記載例
以下に図面を参照して、本発明の好適な実施形態を例示的に説明する。ただし、本発明については、その趣旨を逸脱しない範囲で、当業者の通常の知識に基づいて、以下に記載する実施形態に対して適宜変更、改良が加えられたものについても本発明の範囲に入ることが理解されるべきである。
(第1実施形態)
本発明を適用した情報処理装置及び、本発明を適用した情報処理装置と接続する外部装置について説明する。本実施形態においては、情報処理装置として、パーソナルコンピュータ(以下、PCという。)を例示している。なお、情報処理装置は、PCのみならず、画像処理装置、携帯端末、スマートフォン、ノートPC、タブレット端末、PDA(Personal Digital Assistant)、デジタルカメラなど種々のものを適用可能である。また、本発明を適用した情報処理装置と接続する外部装置として、情報処理装置と通信可能なインクジェット方式のプリンタを例示している。なお、他にも外部装置として、インクジェット方式のプリンタ以外の画像処理装置、PC、携帯端末、スマートフォン、タブレット端末、PDA、デジタルカメラ、テレビ、スキャナ等を利用可能である。また、インクジェット方式のプリンタ以外の画像処理装置は、例えば、フルカラーレーザービームプリンタ、モノクロプリンタ、複写機やファクシミリ装置等の装置である。さらに、それらの装置は、マルチファンクションであってもシングルファンクションであっても良い。
本実施形態における情報処理装置と、本実施形態における外部装置とによって構成された通信システムの構成について図1のブロック図を参照して説明する。また、本実施形態では以下の構成を例に記載するが、本実施形態は外部装置と通信を行うことが可能な情報処理装置に関して適用可能なものであり、特にこの図のとおりに機能を限定するものではない。
PC110は、本実施形態における情報処理装置である。PC110は、入力I/F111、CPU112、ROM113、出力I/F114、外部記憶装置115、RAM116、入力装置117、出力装置118、入出力I/F119を有する。
CPU112は、システム制御部であり、PC110の全体を制御する。
ROM113は、CPU112が実行する制御プログラムやデータテーブル等の固定データを格納する。
外部記憶装置115は、オペレーティングシステム(以下、OSという。)やプリンタドライバ、その他各種のデータやソフトウェアを格納する。なお、本実施形態においては、例としてOSにWindows(登録商標)を使用しているものとする。
RAM116は、バックアップ電源を必要とするSRAM(Static Random Access Memory)等で構成され、図示しないデータバックアップ用の1次電池によってデータが保持されている。なお、RAM116は、データが消去されては困るプログラム制御変数等を格納する。また、RAM116は、ROM113や外部記憶装置115に保存される各種プログラムによってワークメモリーとして使用される。
入力装置117は、ユーザからの操作を受け付ける操作部に該当し、数値入力キー、モード設定キー、決定キー、取り消しキー、電源キー等のキー等から構成される。なお、入力装置117は、入力I/F111に接続されている。入力I/F111は、入力装置117を介してユーザからのデータ入力や動作指示を受け付けるためのインタフェースである。出力装置118は、データやPC110の状態を表示する表示部に該当し、LED(発光ダイオード)やLCD(液晶ディスプレイ)などから構成される。なお、出力装置118は、出力I/F114に接続されている。出力I/F114は、出力装置118がデータ表示やPC110の状態の通知を行うための制御を行うインタフェースである。なお、情報の表示と操作の受付を同一部材で行うことで、入力装置117及び出力装置118を同一の構成としても良い。
入出力I/F119は、接続インタフェース130を介して入出力I/F125と接続する。入出力I/F119と入出力I/F125とが接続することで、PC110とプリンタ120は相互に通信可能となる。なお、入出力I/F119は、本実施形態におけるポートに対応する。ポートとは、ポート同士を接続インタフェース130を介して接続することで、ポートを備える装置同士を通信可能にするためのものである。ポートの種類として、例えば、ネットワークを介した接続を行うためのネットワークポートや、プリンタとUSBによる接続を行うためのUSBポートがある。なお、ネットワークを介した接続において、ネットワークポートは、無線接続でダイレクトに接続しても良いし、有線ネットワーク上に設置したアクセスポイントを介して接続しても良い。また、ネットワークを介した接続は、例えば、有線LAN又はWireless LANによって行われる。また、接続のための通信方式としては、例えば、Wi−Fi(WirelessFidelity)やBluetooth(登録商標)や、NFC(Near Field Communication;ISO/IEC IS 18092)等が挙げられる。なお、ネットワークポートは、それぞれの通信方式、接続方式に応じて、個別に用意されていても良い。なお、本実施形態においては、PC110は、ポート1を用いてプリンタ120と接続しているものとする。
接続インタフェース130は、例えば、USB、LAN等であるが、これらに限定されない。なお、通信は無線通信でダイレクトに通信しても良いし、有線ネットワーク上に設置したアクセスポイントを介して通信しても良い。通信方式としては、例えば、Wi−Fi(WirelessFidelity)やBluetooth(登録商標)や、NFC(Near Field Communication;ISO/IEC IS 18092)等が挙げられる。
プリンタ120は、本実施形態における外部装置である。プリンタ120は、RAM121、ROM122、プリントエンジン123、CPU124、入出力I/F125を有する。
CPU124は、システム制御部であり、プリンタ120の全体を制御する。
ROM122は、CPU124が実行する制御プログラムやデータテーブル等の固定データを格納する。
RAM121は、バックアップ電源を必要とするSRAM(Static Random Access Memory)等で構成され、図示しないデータバックアップ用の1次電池によってデータが保持されている。なお、RAM121は、データが消去されては困るプログラム制御変数等を格納する。また、RAM121は、CPU124のワークメモリーとして使用され、受信したデータの一時保存用バッファとしても利用される。
プリントエンジン123は、RAM121に保存されたデータ及び、PC110から受信した印刷ジョブに基づいて、インク等の記録剤を用いて紙等の記録媒体上に画像を形成し、印刷結果を出力する。
入出力I/F125は、接続インタフェース130を介して入出力I/F119と接続する。
外部記憶装置115に格納されているソフトウェアの構成について、図2のブロック図を参照して説明する。図2に示す構成のうち、構成202、204乃至206がOSのモジュール、構成203、207及び208がプリンタドライバのモジュールとしているが、それぞれの構成は、OSとプリンタドライバのうちいずれのモジュールであってもいい。それぞれの構成が実行する処理は、CPU112が、それぞれの構成に対応するプログラムを外部記憶装置115から読みだしてRAM116にロードし、そのプログラムを実行することにより実現されるものとする。アプリケーション201は、外部記憶装置115に保存されており、印刷する有償コンテンツ等の画像情報や文字情報を含む描画情報、用紙サイズやレイアウト等の印刷設定情報等を含む印刷データを作成する。アプリケーション201が作成した印刷データは、OSの印刷サポート機能202を介しUIモジュール203から返却される印刷設定情報が付加され、スプールデータ206としてスプーラ204のジョブキュー205に一時的に保存される。スプーラ204は、ジョブ管理機能を有し、渡されたスプールデータ206を、スプールデータ206に応じた印刷ジョブの送信が完了したと認識するまで保持し管理する。具体的には、スプーラ204は、例えば、プリンタ毎に、印刷ジョブのサイズ、ジョブ名等を管理し、管理している情報をステータス表示アプリケーションに伝達することで、当該情報を出力装置118等に表示する。また、紙ジャムなどのエラー発生時に備え、印刷データを含むジョブそのものをジョブ終了まで保持するようにしても良い。なお、ジョブキュー205に保存されているスプールデータ206の情報は、例えば、グラフィックスドライバ207やUIモジュール203、アプリケーション201などを介して所定のインタフェース関数を用いて参照することできる。スプールデータ206は、グラフィックスドライバ207により、プリンタ120が解釈可能な印刷コマンドへ変換され、印刷ジョブが生成される。生成された印刷ジョブはスプーラ204からランゲージモニタ208へ送信される。ランゲージモニタ208は、印刷ジョブを特定サイズのパケットに区切り、入出力I/F119及び入出力I/F125を介して、プリンタ120に逐一送信する。なお、このとき、一回に送信するデータの大きさは、スプーラ204によって指示される。なお、スプーラ204は、当該指示を、アプリケーション201やUIモジュール203によって指示されることで実行する。また、ランゲージモニタ208の機能として、プリンタ120又はプリンタ120に投入されたジョブの状態の情報を取得する機能がある。なお、ジョブとは、例えば、印刷ジョブやスキャンジョブ、メンテナンスジョブ等である。PC110は、プリンタ120にジョブを送信することで、ジョブに応じた印刷やスキャン、メンテナンス等の処理を実行させる。
図3は、本実施形態におけるポート初期化処理を示すフローチャートである。ポート初期化処理とは、PC110が、PC110が備えるポートに接続されているプリンタの能力情報及びDevice IDを取得し、取得した情報を、初期化を行うポートに対応付けて記憶する処理である。
能力情報とは、プリンタの設定状況やケーパブリティを示す情報である。能力情報は、例えば、プリンタのシリアル番号等のプリンタに関する静的な情報や、プリンタの設定情報、プリンタがサポートしている機能の情報等で構成され、図10のようなXMLデータによって記載される。図10のXMLデータにおいて、statusタグは、問い合わせに対する応答結果を返しており、この例では問い合わせが成功したことを表している。また、deviceタグは、プリンタの基本情報を表しており、例えばmodelタグはプリンタの機種名を、serial numberタグはプリンタの識別番号を表している。さらに、silentmodeタグがプリンタがサイレントモードをサポートしているか否かを、queueタグが、プリンタがジョブキューを備えているか否かを表している。ジョブキューとは、ジョブをキューイングして保持するための構成であり、ジョブキューを備えているプリンタは、受信したジョブをジョブキューにキューイングし、キューイングした順番にジョブを処理することができる。さらに、printqualityタグが、プリンタがサポートしている印刷の品位レベルを、papersizeタグが、プリンタがサポートしている記録媒体のサイズを表している。さらに、optionhddタグが、オプションをサポートしているか否かを表している。オプションとは、プリンタ120に着脱できる装置のことであり、プリンタ120に装着することで、当該オプション装置に対応した機能をプリンタ120に付加させたり、従来の機能を拡張することができる。プリンタ120のオプションとして、例えば、増設メモリや給紙ユニット、Bluetooth(登録商標)ユニット等がある。また、プリンタ120に付加/拡張可能な機能として、例えば、保持可能な記録媒体の種類や枚数、Bluetooth(登録商標)通信、ジョブのキューイング機能等がある。
なお、能力情報には、この他にも、カラー印刷やモノクロ印刷、両面印刷、フチ無し印刷、スキャン機能等に対応しているか否かの情報や、プリンタが対応している印刷データ形式の情報等を表しても良い。また、XML以外の記載方式によってこれらの情報を表しても良い。
また、Device IDとは、プリンタを識別するためのプリンタ固有の情報であり、例えば、シリアルナンバー等である。
ポート初期化処理は、例えば、OSが起動した場合や、プリンタドライバがインストールされた場合、PC110に接続されているプリンタが繋ぎ直された場合等に実行される。他にも、プリンタに対してジョブが送信される場合、プリンタドライバのUIが開かれた場合、アプリケーション201からプリンタの能力情報の取得要求が行われた場合等に実行される。ポート初期化処理を行うポートは、ポート初期化処理の実行要因によって決まる。例えば、OSが起動した場合にポート初期化処理が実行される場合は、ポート初期化処理は、プリンタが接続されている全てのポートに対して実行される。また、PC110に接続されているプリンタが繋ぎ直された場合やプリンタに対してジョブが送信される場合にポート初期化処理が実行される場合は、ポート初期化処理は、処理対象のプリンタが接続されているポートに対して実行される。
以下の説明において、ランゲージモニタ208が行う処理は、実際には、CPU112が、外部記憶装置115に格納されているランゲージモニタ208に対応するプログラムを実行することにより実現されるものとする。また、以下の説明においては、ポート初期化処理はポート1に対して行われるものとする。
まず、S301にて、ランゲージモニタ208は、ポート1に接続されているプリンタ(プリンタ120)の能力情報の取得処理を実行する。S301の処理の詳細は、図4を用いて後述する。
続いて、S302にて、ランゲージモニタ208は、プリンタ120のDevice IDを取得し、S301で取得した能力情報とポート1とに対応付けて、外部記憶装置115に不揮発に保存する。なお、Device IDは、例えば、ランゲージモニタ208がDevice IDを取得するためのコマンドをプリンタ120に送信することで、取得することができる。
次に、図4を用いて能力情報の取得処理の詳細を説明する。図4は、能力情報の取得処理の詳細を示すフローチャートである。以下の説明において、ランゲージモニタ208が行う処理は、実際には、CPU112が、外部記憶装置115に格納されているランゲージモニタ208に対応するプログラムを実行することにより実現されるものとする。なお、能力情報の取得処理の対象となるプリンタは、能力情報の取得処理の実行要因によって決まる。ポート初期化処理の際に実行される場合は、能力情報の取得処理は、初期化対象のポートに接続されているプリンタに対して実行される。後述するようなジョブの送信時に実行される場合は、能力情報の取得処理は、ジョブの送信先のプリンタに対して実行される。また、以下の説明においては、能力情報の取得処理はプリンタ120に対して実行されるものとする。
まず、S401にて、ランゲージモニタ208は、プリンタ120の能力情報を取得する。本実施形態では、ランゲージモニタ208は、能力情報取得プロトコルに従ったXMLデータを含むユニキャストをプリンタ120に対して送信し、その後TCP通信を介してXMLデータを送受信することで、プリンタ120の能力情報を取得するものとする。なお、このとき、ランゲージモニタ208は、プリンタ120の能力情報を読み込みも行っている。
続いて、S402にて、ランゲージモニタ208は、S401の処理が成功し、能力情報が取得できたか否かを判定する。能力情報が取得できたと判定した場合には、ランゲージモニタ208は、S403にて、取得した能力情報をキャッシュ情報として、プリンタ120が接続しているポート(ポート1)と対応付けて外部記憶装置115に不揮発に保存し、その後処理を終了する。一方、データ通信に失敗した等、能力情報が取得できなかったと判定した場合には、ランゲージモニタ208は、S404にて、ポート1に対応付けられて保存されているキャッシュ情報からプリンタ120の能力情報を読み込む。その後、ランゲージモニタ208は処理を終了する。なお、このとき、ランゲージモニタ208は、キャッシュ情報の読み込みに失敗した場合も、キャッシュ情報の読み込みに失敗した状態で処理を終了する。
図5は、ジョブの送信時の処理を示すフローチャートである。以下の説明において、ランゲージモニタ208が行う処理は、実際には、CPU112が、外部記憶装置115に格納されているランゲージモニタ208に対応するプログラムを実行することにより実現されるものとする。また、以下の説明においては、図5のフローチャートが示す処理は、ジョブをプリンタ120に送信する際に行われるものとする。
まず、S501にて、ランゲージモニタ208は、プリンタ120のDevice IDを取得し、プリンタ120のDevice IDをプリンタ120が接続しているポート(ポート1)と対応付けて外部記憶装置115に不揮発に保存する。なお、このとき、ポート1と対応付けて前回保存したDevice IDは、S502の処理において利用するため、削除せずに保存しておく。
続いて、S502にて、ランゲージモニタ208は、ポート1と対応付けて外部記憶装置115に不揮発に保存してある能力情報のキャッシュ情報が有効か無効かを判断する処理を実行する。キャッシュ情報が有効か無効かを判断する処理の詳細は、図6を用いて後述する。
続いて、S503では、ランゲージモニタ208は、S501の処理の結果、キャッシュ情報が有効と判断されたか否かを判定する。S501において、キャッシュ情報が無効と判断された場合には、ランゲージモニタ208は、キャッシュ情報を参照すべきではないので、S50にてキャッシュ情報を削除し、S50にてプリンタ120の能力情報の取得処理を実行する。S50の能力情報の取得処理は、図4のフローチャートに示す処理と同様であるので説明を省略する。S501において、キャッシュ情報が有効と判断された場合には、ランゲージモニタ208は、S509にて、プリンタ120の能力情報が読み込まれているか否かを判定する。例えば、ポート1のポート初期化処理等の際に、プリンタ120の能力情報をすでに読み込んでいる場合には、ランゲージモニタ208は、プリンタ120の能力情報が読み込まれていると判定し、S506の処理を行う。一方、ポート1のポート初期化処理等の際に、プリンタ120の能力情報の読み込みに失敗している場合は、プリンタ120の能力情報が読み込まれていないと判定し、S510のキャッシュ情報読み込み処理を実行する。キャッシュ情報読み込み処理の詳細は、図7を用いて後述する。
続いて、S506では、ランゲージモニタ208は、ジョブ保持処理を実行するか否かを判断する処理を実行する。ジョブ保持処理とは、実際にはジョブの送信が完了していても、スプーラ204に対しては、ジョブの送信が完了していないと通知することで、ジョブをジョブキュー205に残す処理をいう。ジョブ保持処理を実行することで、ランゲージモニタ208は、ランゲージモニタ208の機能によってプリンタ120がジョブの処理を完了するまで、当該ジョブの状態を監視することができる。具体的には、ランゲージモニタ208は、ジョブの状態として、ジョブ処理におけるエラーの有無やジョブの処理が完了したか否かを監視することができる。なお、ジョブ保持処理を実行するか否かを判断する処理の詳細は、図8を用いて後述する。
続いて、S507では、ランゲージモニタ208は、S506における処理の結果に応じて、ジョブの送信及びジョブ保持処理を行う。ジョブの送信及びジョブ保持処理の詳細は、図9を用いて後述する。
続いて、S508では、ランゲージモニタ208は、プリンタ120のDevice IDをプリンタ120が接続しているポートと対応付けて外部記憶装置115に不揮発に保存し、処理を終了する。
また、近年、オプションを脱着させることにより、ケーパビリティを任意にカスタマイズできるプリンタが知られている。このようなオプションをサポートしているプリンタの能力情報は、オプションの脱着によって変化することがある。そのため、現在接続しているプリンタがオプションをサポートしているプリンタである場合、キャッシュ情報として保存した能力情報と、プリンタの現在の能力情報とが乖離している可能性があり、ランゲージモニタ208は、キャッシュ情報を利用すべきでない。また、PC110に接続されているプリンタが入れ替わった際には、当該プリンタが接続していたポートに対応付けて保存されていた能力情報は、新たに接続したプリンタの能力情報に更新される必要がある。しかし、所定の接続方式によって外部装置と接続するポートは、接続するプリンタが入れ替わったことを検知できない。そのようなポートは、接続するプリンタが入れ替わった場合でも、ポート初期化処理が実行されず、そのポートに対応付けられた能力情報が更新されない。現在接続しているプリンタが、接続するプリンタが入れ替わったことを検知できないポートに接続しているプリンタである場合、事前にキャッシュ情報として保存した能力情報と、プリンタの現在の能力情報とが乖離している可能性がある。そのため、ランゲージモニタ208は、キャッシュ情報を利用すべきでない。そこで、本実施形態では、能力情報のキャッシュ情報を利用する処理を行う場合は、まず、キャッシュ情報が有効か無効かを判断する処理を実行し、無効と判断した場合に、再度能力情報の取得処理を実行する。
図6を用いて、キャッシュ情報が有効か無効かを判断する処理の詳細を説明する。以下の説明において、ランゲージモニタ208が行う処理は、実際には、CPU112が、外部記憶装置115に格納されているランゲージモニタ208に対応するプログラムを実行することにより実現されるものとする。また、以下の説明においては、図6のフローチャートが示す処理は、ジョブをプリンタ120に送信する際に行われるものとする。
まず、S601では、ランゲージモニタ208は、保存されている能力情報のキャッシュ情報から、プリンタ120がオプションをサポートしているか否かを判定する。S601にて、オプションをサポートしていると判定した場合には、当該判定に用いた能力情報がプリンタ120の能力情報であってもキャッシュ情報を利用すべきでないため、ランゲージモニタ208は、S606にてキャッシュ情報は無効と判断する。また、S601にて、オプションをサポートしていないと判定した場合には、ランゲージモニタ208は、S602の処理を行う。
S602では、ランゲージモニタ208は、プリンタ120が、プリンタの接続時にポート初期化処理が実行されるポートに接続されているか否かを判定する。前述したように、ポートの種類によっては、接続するプリンタが入れ替わったことを検知できないものがある。そのようなポートは、接続するプリンタが入れ替わった場合でも、ポート初期化処理が実行されず、そのポートに対応付けられた能力情報が更新されない。接続するプリンタが入れ替わったことを検知でき、プリンタの接続時にポート初期化処理が起動されるポートは、例えば、USBポートである。一方、接続するプリンタが入れ替わったことを検知できず、プリンタの接続時にポート初期化処理が起動されないポートは、例えば、ネットワークポートである。プリンタ120が、プリンタの接続時にポート初期化処理が起動されるポートに接続している場合には、当該プリンタが接続した時にポート初期化処理が行われ、キャッシュ情報の更新が行われている。さらに、S601の判定によって、ポート初期化処理が行われた後に、オプションの着脱によってプリンタの能力情報が変化することがないことも確認されている。よって、ランゲージモニタ208は、S601にて、ポート初期化処理が実行されるポートに接続されていると判定した場合には、S605にて、キャッシュ情報は有効と判断する。一方、ランゲージモニタ208は、S601にて、ポート初期化処理が実行されるポートに接続されていないと判定した場合には、S603の処理を行う。なお、S601における判定は、例えば、ポート名やポートモニタのモジュール名から、プリンタ120が接続しているポートの種別を識別した後、プリンタ120が接続しているポート(ポート1)がUSBポートか否かを判定することによって行われる。または、キャッシュ情報がいずれのポートに対応付けられて保存されているかを識別し、そのポートがUSBポートか否かを判定することによって行われても良い。
プリンタ120が、プリンタの接続時にポート初期化処理が実行されるポートに接続されていない場合は、プリンタの入れ替えが行われたにもかかわらず、キャッシュ情報として保存している能力情報の更新が行われていない可能性がある。そこで、S603では、ランゲージモニタ208は、プリンタ120と、キャッシュ情報として保存している能力情報の提供元であるプリンタが同一か否かを判定する。プリンタが同一でないと判定した場合、キャッシュ情報として保存している能力情報の更新が行われていないことから新たに能力情報を取得する必要があるため、ランゲージモニタ208は、S604にて、キャッシュ情報は無効と判断する。一方、プリンタが同一であると判定した場合、ランゲージモニタ208は、S605にて、キャッシュ情報は有効と判定する。この判定は、例えば、ランゲージモニタ208が、S501にて直前に取得したDevice IDと、S501にて取得する前に保存していたDevice IDとを比較することで行われる。S501にて直前に取得したDevice IDは、プリンタ120のDevice IDに対応する。また、S501にて取得する前に保存していたDevice IDは、キャッシュ情報として保存している能力情報の提供元であるプリンタのDevice IDに対応する。なお、この判定は、ランゲージモニタ208が、プリンタのシリアルナンバー等、プリンタを一意に示す識別情報や、プリンタの機種名で比較することによって行われても良い。また、シリアルナンバーや機種名の等の情報は、Device IDに含まれる情報であっても良い。
なお、S603の処理を行わない構成としても良い。この場合、キャッシュ情報が有効か無効かの判断の精度は下がるが、S501の処理を実行する必要がなくなり、PC110の負荷を減らすことができる。
本実施形態では、ランゲージモニタ208は、ジョブの送信先のプリンタの能力情報が変化するか否かを判定することで、キャッシュ情報が有効か無効かを判断する。さらに、本実施形態では、ランゲージモニタ208は、ジョブの送信先のプリンタとキャッシュ情報として保存している能力情報の提供元であるプリンタが同一か否かを判定することで、キャッシュ情報が有効か無効かを判断する。このような形態とすることで、ランゲージモニタ208は、現在の情報と乖離した無効な情報を利用してしまうことを回避することができる。さらに、本実施形態では、S504及びS505に示したように、図6のフローチャートが示す処理においてキャッシュ情報が無効と判断された場合は、能力情報の取得処理を実行する。このような形態とすることで、キャッシュ情報が無効であった場合にも、有効な情報を再度取得することができる。さらに、本実施形態では、図6のフローチャートが示す処理においてキャッシュ情報が有効と判断された場合は、能力情報の取得処理を実行しない。能力情報の取得処理は、PC110及び能力情報を提供するプリンタの双方にとって負荷がかかる。しかし、このように、キャッシュ情報が有効であり能力情報の取得処理が必要ない場合には能力情報の取得処理を実行しない形態とすることで、本実施形態では、PC110及びプリンタの負荷を軽減することができる。
なお、キャッシュ情報が有効か無効かを判断する処理は、ジョブを送信する情報処理装置だけでなく、接続している外部装置に関するキャッシュ情報を利用する種々の処理を実行する情報処理装置に適用することが可能である。キャッシュ情報を利用する処理として、例えば、情報処理装置に接続している外部装置の状態をユーザに通知する処理等が挙げられる。
図7を用いて、キャッシュ情報読み込み処理の詳細を説明する。以下の説明において、ランゲージモニタ208が行う処理は、実際には、CPU112が、外部記憶装置115に格納されているランゲージモニタ208に対応するプログラムを実行することにより実現されるものとする。また、以下の説明においては、図7のフローチャートが示す処理は、ジョブがプリンタ120に送信される際に行われるものとする。
まず、S701では、ランゲージモニタ208は、能力情報の取得処理において保存した、プリンタ120に接続されているポート(ポート1)に対応付けられて保存されているキャッシュ情報を読み込む。なお、このとき、キャッシュ情報がユーザにより意図的に削除された場合や、外部記憶装置115の空き容量不足などで一度もキャッシュ情報の生成に成功していない場合等、キャッシュ情報の読み込みに失敗する場合がある。そこで、ランゲージモニタ208は、S702にて、キャッシュ情報の読み込みに成功したか否かを判定する。キャッシュ情報の読み込みに成功した場合には、ランゲージモニタ208は、キャッシュ情報読み込み処理を終了する。一方、キャッシュ情報の読み込みに成功しなかった場合には、ランゲージモニタ208は、S703にて、前述した方法と同様にしてプリンタ120から能力情報を取得する。その後、ランゲージモニタ208は、S704にて、取得した能力情報をキャッシュ情報としてポート1に対応付けて不揮発に保存する。
図8を用いて、ジョブ保持処理を実行するか否かを判断する処理の詳細を説明する。以下の説明において、ランゲージモニタ208が行う処理は、実際には、CPU112が、外部記憶装置115に格納されているランゲージモニタ208に対応するプログラムを実行することにより実現されるものとする。また、以下の説明においては、図8のフローチャートが示す処理は、ジョブをプリンタ120に送信する際に行われるものとする。
ランゲージモニタ208は、プリンタ120と双方向通信できない場合、ジョブの状態を監視することができない。そのため、まず、ランゲージモニタ208は、S801にて、プリンタ120と双方向通信できるか否かを判定する。S801の判定は、例えば、ランゲージモニタ208が、プリンタドライバの設定が片方向通信でプリンタ120と通信する設定になっていないか否かを判定することによって行われる。なお、S801の判定は、ランゲージモニタ208が、プリンタ120が接続しているポート(ポート1)が、ランゲージモニタ208がサポートしているポートであるか否かを判定することによって行われても良い。このとき、例えば、ランゲージモニタ208は、ポート1のポート名が、ランゲージモニタ208がサポートしているポートを示す所定の文字列を含むか否かを判定する。また、S801の判定は、ランゲージモニタ208が、期待する全ての情報をプリンタ120から取得できたか否かを判定することによって行われても良い。ランゲージモニタ208が期待する情報には、例えば、プリンタ120が備えるインクの残量情報や、仕向け情報などがある。ランゲージモニタ208は、双方向通信できると判定した場合、S802の処理を行い、双方向通信できないと判定した場合、S804にて、ジョブ保持処理を実行しないと判断する。
受信したジョブをジョブキューにキューイングし、キューイングした順番にジョブを処理するプリンタ(ジョブキューを備えているプリンタ)にジョブを送信する場合にジョブ保持処理が実行されると、ジョブの処理順番の追い越しが発生する可能性がある。このため、ランゲージモニタ208は、プリンタ120がジョブキューを備えている場合には、ジョブ保持処理を実行すべきでない。そこで、ランゲージモニタ208は、S802にて、S50又はS510にて読み込んだプリンタ120の能力情報を参照して、プリンタ120がジョブキューをサポート(ジョブをキューイングできる機能を保持)しているか否かを判定する。ランゲージモニタ208は、プリンタ120がキューを備えていると判定した場合には、S804にて、ジョブ保持処理を実行しないと判断する。一方、ランゲージモニタ208は、プリンタ120がキューを備えていないと判定した場合には、S803にて、ジョブ保持処理を実行すると判断する。なお、このとき、ネットワークトラブル等でプリンタ120から能力情報を取得できない場合や、能力情報にキューを備えているか否かの情報が含まれていない場合等、プリンタ120がキューを備えているか否かを判定できない場合がある。この場合には、ランゲージモニタ208は、S805にて、ジョブ保持処理を実行しないと判断する。
このように、本実施形態では、ランゲージモニタ208は、ジョブの送信先のプリンタがジョブキューを備えているか否かによってジョブ保持処理を実行するか否かを切り替える。さらに、本実施形態では、ランゲージモニタ208は、ジョブの送信先のプリンタがジョブキューを備えているか不明な場合は、ジョブ保持処理を実行しない。このような形態とすることで、ランゲージモニタ208は、ジョブキューを備えているプリンタにジョブを送信する場合にジョブ保持処理を実行した際に生じえる課題を回避することができ、適切な場合にジョブ保持処理を実行できる。なお、S502の処理を実行しない場合は、ジョブ保持処理を実行するか否かを判断する処理は、キャッシュ情報を参照することによって行われても良いし、直前に能力情報の取得処理を行い、取得した能力情報を参照することによって行われても良い。
図9を用いてジョブの送信の処理及びジョブ保持処理の詳細を説明する。以下の説明において、スプーラ204又はランゲージモニタ208が行う処理は、実際には、CPU112が、外部記憶装置115に格納されているスプーラ204又はランゲージモニタ208に対応するプログラムを実行することにより実現されるものとする。また、以下の説明においては、図9のフローチャートが示す処理は、スプーラ204から、プリンタ120へのジョブの送信の開始の指示を表すコマンドが出力され、ランゲージモニタ208がその出力を受信した際に行われるものとする。なお、その後は、実際の印刷データやメンテナンスコマンドなどのデータがランゲージモニタ208に対して出力されることとなる。また、ランゲージモニタ208は、スプーラ204から、データ送信を指示するためのコマンドを受信し、当該コマンドによって指示されるサイズのデータを逐一送信することで、ジョブを分割しながらプリンタ120に送信する。
まず、ランゲージモニタ208は、S901にて、ジョブをプリンタ120に送信するための最後のデータ送信か否かを判定する。この処理は、ランゲージモニタ208が、スプーラ204から受信する、データ送信を指示するためのコマンドを解析することにより判別することができる。
最後のデータ送信でないと判定した場合は、まだジョブ保持処理を実行する必要はないため、ランゲージモニタ208は、S902にて、指示されたサイズのデータをプリンタ120に送信し、再びS901の処理を行う。
一方、S901〜S902の処理が繰り返されることにより、最後のデータ送信であると判定した場合は、ランゲージモニタ208は、S903にて、ジョブの全てのデータを送信したか否かを判定する。最初にS903の判定を行う場合においては、最後のデータ送信が完了していないので、ランゲージモニタ208は、S904にて、指示されたサイズのデータをプリンタ120に送信する。
その後、ランゲージモニタ208は、S905にて、S506の処理において、ジョブ保持処理を実行すると判断されたか否かを判定する。S506の処理において、ジョブ保持処理を実行すると判断されなかった場合、ランゲージモニタ208は、S910にて、ジョブの送信が完了したことをスプーラ204に通知する。スプーラ204は、ランゲージモニタ208から当該通知を受けることで、対象のジョブを管理外とする。具体的には、スプーラ204は、ジョブキュー205から対象とするジョブそのもの又はジョブの情報を削除/無効化する。一方、S506の処理において、ジョブ保持処理を実行すると判断された場合、ランゲージモニタ208は、S906にて、プリンタ120からジョブの状態の情報を取得する。
その後、ランゲージモニタ208は、S907にて、S906にて取得した情報をステータス表示アプリケーションに伝達するべく、S906にて取得した情報を所定の記憶領域に書き込む。なお、ステータス表示アプリケーションは、印刷要求元のアプリケーション201であっても良いし、印刷要求元のアプリケーション201とは別のアプリケーションであっても良いし、UIモジュール203であっても良い。ステータス表示アプリケーションは、S906にて取得した情報を表示することで、出力装置118等に表示し、ユーザにジョブの状態の情報を通知する。
続いて、ランゲージモニタ208は、S908にて、プリンタ120によってジョブの処理が完了したか否かを判定する。この判定は、例えば、プリンタ120から取得される、印刷中のデータのページ番号を示すステータスを取得することによって行われる。このステータスは、印刷を行っていない間は値を持たない(例えば零)ため、それによりジョブの処理が完了したか否かを判定することができる。ジョブの処理が完了していないと判定した場合、ランゲージモニタ208は、S909にて、ジョブの送信が完了していないことをスプーラ204に通知する。この処理は、例えば、ランゲージモニタ208がデータ送信を指示するためのコマンドに対する戻り値として、指定されたサイズ未満のバイトの値をスプーラ204に対して返すことで行われる。通常、ランゲージモニタ208が戻り値としてプリンタ120へ送信した正確なバイト数を返す。このようにすることで、スプーラ204は、ジョブの送信が正しく行われたことを認識することができる。しかし、ここでは、ランゲージモニタ208は、戻り値として、指定されたサイズ未満のバイトの値をスプーラ204に対して返すことで、スプーラ204にジョブの送信が正しく行われなかったと認識させる。スプーラ204は、データの送信が完了していないと認識しているため、最後の未出力バイトのデータの送信指示を再び出力してくる。しかし、ランゲージモニタ208は、既に全データを送信済みであるため、(S903でYes)、実際のプリンタ120へのデータ送信は行わず、再びジョブの状態を取得する(S906)ことができる。このような形態とすることで、ランゲージモニタ208は、ジョブ保持処理を実行している間は、ユーザにジョブの状態の情報を通知することができる。
ランゲージモニタ208は、S901乃至S907の処理を繰り返し、プリンタ120がジョブの処理を完了したことに応じて(S908でYES)、ジョブの送信が完了したことをスプーラ204に通知する。具体的には、ランゲージモニタ208は、スプーラ204への戻り値として、正確な値を返信する。このような形態とすることで、スプーラ204が管理しているジョブの送信の完了時間と、プリンタ120による実際のジョブの処理の完了時間をほぼ一致させることができ、ユーザにジョブの処理の完了時間を通知することができる。
以上で説明したように、本実施形態では、送信先のプリンタがジョブキューを備えているか否かに応じて、ジョブ保持処理を実行するか否かを切り替える。このような形態とすることで、PC110は、適切な場合にジョブ保持処理を実行することができ、ユーザの利便性を向上させることができる。
<その他の実施形態>
上述の実施形態では、図2に示されるような、PC110にインストールされる各ソフトウェアモジュールが協働した形態を説明してきたが、これを応用した形態も想定される。例えば、ランゲージモニタ208が別のPCにインストールされている形態であっても良い。この場合には、ランゲージモニタ208とスプーラ204とがプロセス間通信を行うことにより、上述の実施形態と同様の効果を得ることが出来る。
上述の実施形態では、ランゲージモニタ208や、スプーラ204の各々のソフトウェアモジュールを別々に示したが、例えば、1プロセスで実行される1ソフトウェアモジュールによっても、上述の実施形態と同様の効果を得ることが出来る。
上述の実施形態では、Version3プリンタドライバを用いた形態を説明した。なお、近年、Windows(登録商標)8では、Version4プリンタドライバと呼ばれる、Version3プリンタドライバと異なるプリンタドライバ構成が採用された。新しいプリンタドライバを構成するモジュール群はランゲージモニタが含まれていない。そこで、Version4プリンタドライバにおいては、フィルタと呼ばれる構成によってランゲージモニタと同様の機能を実現しても良い。
上述の実施形態のジョブ保持処理を実行するか否かの判断において、送信するジョブの種類を参照しても良い。例えば、プリンタ120の電源のON又はOFFを指示する電源制御処理、動作音モード等のプリンタ120の動作モード設定処理等をプリンタ120に実行させるためのメンテナンスジョブを送信する場合は、ジョブ保持処理を実行しないように判断しても良い。
上述の実施形態の効果を実現できれば、上述の実施形態のフローチャートの処理の順番を入れ替えても良いし、その全ての処理を実行しなくても良いし、処理の内容を変更しても良い。例えば、ランゲージモニタ208は、S506の処理を実行せず、S905の処理においてS506と同様の処理を実行してもいい。
上述の実施形態は、上述の実施形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを実行する処理でも実現可能である。また、上述の実施形態は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
110 PC
120 プリンタ
204 スプーラ
208 ランゲージモニタ

Claims (19)

  1. 外部装置に係る装置情報を前記外部装置との接続の確立に応じて取得する第1接続方式又は前記装置情報を前記外部装置との接続の確立に応じて取得せず、前記装置情報を前記外部装置との接続の確立とは異なるタイミングに応じて取得する第2接続方式によって前記外部装置と接続可能な情報処理装置のコンピュータに、
    前記装置情報に基づく処理の実行のための実行指示を受け付ける受け付けステップと、
    前記情報処理装置が前記第1接続方式によって前記外部装置と接続している場合、前記外部装置との接続の確立に応じて前記受け付けステップの前に取得された前記装置情報に基づく処理を前記受け付けステップの後に実行し、
    前記情報処理装置が前記第2接続方式によって前記外部装置と接続しており、且つ前記受け付けステップの前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じである場合、前記装置情報を前記受け付けステップの後に取得することなく、前記受け付けステップの前に取得された前記装置情報に基づく処理を前記受け付けステップの後に実行し、
    前記情報処理装置が前記第2接続方式によって前記外部装置と接続しており、且つ前記受け付けステップの前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じでない場合、前記装置情報を前記受け付けステップの後に取得し、前記受け付けステップの後に取得された前記装置情報に基づく処理を前記受け付けステップの後に実行する処理ステップと、を実行させることを特徴とするプログラム。
  2. 前記情報処理装置が接続している外部装置がオプション装置を装着可能な装置である場合、前記装置情報が前記受け付けステップの後に取得され、前記受け付けステップの後に取得された前記装置情報に基づく処理が前記受け付けステップの後に実行されることを特徴とする請求項1に記載のプログラム。
  3. さらに、前記情報処理装置が接続している前記外部装置にジョブを送信する送信ステップを実行させ、
    前記装置情報に基づく処理は、前記送信したジョブの処理が前記外部装置によって完了するまで、前記情報処理装置が備えるスプーラが管理するジョブキューから前記送信したジョブを削除しないように制御する処理を実行するか否かを前記装置情報に基づいて判断する処理であることを特徴とする請求項1又は2に記載のプログラム。
  4. 前記装置情報に基づく処理は、前記情報処理装置の備える表示部に、前記情報処理装置が接続している前記外部装置の情報を表示する処理であることを特徴とする請求項1乃至3のいずれか1項に記載のプログラム。
  5. 前記装置情報は、前記情報処理装置が接続している前記外部装置の能力情報であることを特徴とする請求項1乃至4のいずれか1項に記載のプログラム。
  6. 前記装置情報は、前記情報処理装置が接続している前記外部装置がオプション装置を装着可能か否かを示す情報であることを特徴とする請求項1乃至5のいずれか1項に記載のプログラム。
  7. 前記装置情報と異なり、前記情報処理装置が接続している前記外部装置を識別するための識別情報を、前記受け付けステップの後に取得する情報取得ステップと、
    前記受け付けステップの前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じであるか否かを、前記識別情報に基づいて判定する判定ステップと、をさらに実行させ、
    前記情報処理装置が前記第2接続方式によって前記外部装置と接続しており、且つ前記受け付けステップの前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じであると判定された場合、前記装置情報が前記受け付けステップの後に取得されることなく、前記受け付けステップの前に取得された前記装置情報に基づく処理が前記受け付けステップの後に実行され、
    前記情報処理装置が前記第2接続方式によって前記外部装置と接続しており、且つ前記受け付けステップの前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じでないと判定された場合、前記装置情報が前記受け付けステップの後に取得され、前記受け付けステップの後に取得された前記装置情報に基づく処理が前記受け付けステップの後に実行されることを特徴とする請求項1乃至6のいずれか1項に記載のプログラム。
  8. 前記外部装置に対し、前記外部装置に印刷を実行させるための印刷ジョブが送信されることを特徴とする請求項1乃至7のいずれか1項に記載のプログラム。
  9. 前記プログラムは、プリンタドライバであることを特徴とする請求項1乃至8のいずれか1項に記載のプログラム。
  10. 前記プログラムは、ランゲージモニタであることを特徴とする請求項1乃至9のいずれか1項に記載のプログラム。
  11. 外部装置に係る装置情報を前記外部装置との接続の確立に応じて取得する第1接続方式又は前記装置情報を前記外部装置との接続の確立に応じて取得せず、前記装置情報を前記外部装置との接続の確立とは異なるタイミングに応じて取得する第2接続方式によって前記外部装置と接続可能な情報処理装置であって
    前記装置情報に基づく処理の実行のための実行指示を受け付ける受け付け手段と、
    前記情報処理装置が前記第1接続方式によって前記外部装置と接続している場合、前記外部装置との接続の確立に応じて前記実行指示が受け付けられる前に取得された前記装置情報に基づく処理を前記実行指示が受け付けられた後に実行し、
    前記情報処理装置が前記第2接続方式によって前記外部装置と接続しており、且つ前記実行指示が受け付けられる前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じである場合、前記実行指示が受け付けられた後に前記装置情報を取得することなく、前記実行指示が受け付けられる前に取得された前記装置情報に基づく処理を前記実行指示が受け付けられた後に実行し、
    前記情報処理装置が前記第2接続方式によって前記外部装置と接続しており、且つ前記実行指示が受け付けられる前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じでない場合、前記装置情報を前記実行指示が受け付けられた後に取得し、前記実行指示が受け付けられた後に取得された前記装置情報に基づく処理を前記実行指示が受け付けられた後に実行する処理手段と、を有することを特徴とする情報処理装置。
  12. 外部装置に係る装置情報を前記外部装置との接続の確立に応じて取得する第1接続方式又は前記装置情報を前記外部装置との接続の確立に応じて取得せず、前記装置情報を前記外部装置との接続の確立とは異なるタイミングに応じて取得する第2接続方式によって前記外部装置と接続可能な情報処理装置の制御方法であって、
    前記装置情報に基づく処理の実行のための実行指示を受け付ける受け付けステップと、
    前記情報処理装置が前記第1接続方式によって前記外部装置と接続している場合、前記外部装置との接続の確立に応じて前記受け付けステップの前に取得された前記装置情報に基づく処理を前記受け付けステップの後に実行し、
    前記情報処理装置が前記第2接続方式によって前記外部装置と接続しており、且つ前記受け付けステップの前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じである場合、前記装置情報を前記受け付けステップの後に取得することなく、前記受け付けステップの前に取得された前記装置情報に基づく処理を前記受け付けステップの後に実行し、
    前記情報処理装置が前記第2接続方式によって前記外部装置と接続しており、且つ前記受け付けステップの前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じでない場合、前記装置情報を前記受け付けステップの後に取得し、前記受け付けステップの後に取得された前記装置情報に基づく処理を前記受け付けステップの後に実行する処理ステップと、を有することを特徴とする制御方法。
  13. 前記情報処理装置が接続している外部装置がオプション装置を装着可能な装置である場合、前記装置情報が前記受け付けステップの後に取得され、前記受け付けステップの後に取得された前記装置情報に基づく処理が前記受け付けステップの後に実行されることを特徴とすることを特徴とする請求項12に記載の制御方法。
  14. さらに、前記情報処理装置が接続している前記外部装置にジョブを送信する送信ステップを有し、
    前記装置情報に基づく処理は、前記送信したジョブの処理が前記外部装置によって完了するまで、前記情報処理装置が備えるスプーラが管理するジョブキューから前記送信したジョブを削除しないように制御する処理を実行するか否かを前記装置情報に基づいて判断する処理であることを特徴とする請求項12又は13に記載の制御方法。
  15. 前記装置情報に基づく処理は、前記情報処理装置の備える表示部に、前記情報処理装置が接続している前記外部装置の情報を表示する処理であることを特徴とする請求項12乃至14のいずれか1項に記載の制御方法。
  16. 前記装置情報は、前記情報処理装置が接続している前記外部装置の能力情報であることを特徴とする請求項12乃至15のいずれか1項に記載の制御方法。
  17. 前記装置情報は、前記情報処理装置が接続している前記外部装置がオプション装置を装着可能か否かを示す情報であることを特徴とする請求項12乃至16のいずれか1項に記載の制御方法。
  18. 前記装置情報と異なり、前記情報処理装置が接続している前記外部装置を識別するための識別情報を、前記受け付けステップの後に取得する情報取得ステップと、
    前記受け付けステップの前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じであるか否かを、前記識別情報に基づいて判定する判定ステップと、をさらに有し、
    前記情報処理装置が前記第2接続方式によって前記外部装置と接続しており、且つ前記受け付けステップの前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じであると判定された場合、前記装置情報が前記受け付けステップの後に取得されることなく、前記受け付けステップの前に取得された前記装置情報に基づく処理が前記受け付けステップの後に実行され、
    前記情報処理装置が前記第2接続方式によって前記外部装置と接続しており、且つ前記受け付けステップの前に取得された前記装置情報の提供元の前記外部装置と前記情報処理装置が前記第2接続方式によって接続している前記外部装置とが同じでないと判定された場合、前記装置情報が前記受け付けステップの後に取得され、前記受け付けステップの後に取得された前記装置情報に基づく処理が前記受け付けステップの後に実行されることを特徴とする請求項12乃至17のいずれか1項に記載の制御方法。
  19. 前記外部装置に対し、前記外部装置に印刷を実行させるための印刷ジョブが送信されることを特徴とする請求項12乃至18のいずれか1項に記載の制御方法。
JP2015110385A 2015-05-29 2015-05-29 情報処理装置、制御方法及びプログラム Active JP6602053B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015110385A JP6602053B2 (ja) 2015-05-29 2015-05-29 情報処理装置、制御方法及びプログラム
US15/156,799 US9836258B2 (en) 2015-05-29 2016-05-17 Information processing apparatus, control method, and non-transitory computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015110385A JP6602053B2 (ja) 2015-05-29 2015-05-29 情報処理装置、制御方法及びプログラム

Publications (3)

Publication Number Publication Date
JP2016224703A JP2016224703A (ja) 2016-12-28
JP2016224703A5 JP2016224703A5 (ja) 2018-07-12
JP6602053B2 true JP6602053B2 (ja) 2019-11-06

Family

ID=57398603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015110385A Active JP6602053B2 (ja) 2015-05-29 2015-05-29 情報処理装置、制御方法及びプログラム

Country Status (2)

Country Link
US (1) US9836258B2 (ja)
JP (1) JP6602053B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020036083A (ja) * 2018-08-27 2020-03-05 シャープ株式会社 画像処理装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203787B2 (en) * 1999-01-25 2007-04-10 Canon Kabushiki Kaisha Information processing apparatus and method that utilizes stored information about a mountable device
US7197580B2 (en) * 2003-05-29 2007-03-27 Microsoft Corporation Computer system and method for supporting network-enabled devices
JP3891167B2 (ja) * 2003-10-24 2007-03-14 ブラザー工業株式会社 ネットワーク装置管理システム、ネットワーク装置管理装置、およびネットワーク装置管理プログラム
JP2006048155A (ja) 2004-07-30 2006-02-16 Ricoh Co Ltd プリントシステム
JP4389820B2 (ja) * 2005-03-22 2009-12-24 ブラザー工業株式会社 画像形成装置、管理用情報処理端末、ステータス情報管理プログラム、およびステータス情報管理システム
JP2007183894A (ja) * 2005-12-06 2007-07-19 Canon Inc 情報処理装置、印刷制御方法、記憶媒体およびプログラム
KR100695011B1 (ko) * 2006-03-15 2007-03-14 한국전자통신연구원 주변장치 자동 설치/제거 장치 및 그를 이용한 주변장치자동 발견 시스템 및 그 방법
JP4665813B2 (ja) * 2006-03-30 2011-04-06 ヤマハ株式会社 電子楽器、音楽コンテンツ配信装置およびプログラム
JP4874859B2 (ja) * 2006-05-31 2012-02-15 株式会社リコー 情報処理装置、情報処理システム、プログラム及びその記録媒体
JP4222393B2 (ja) * 2006-08-09 2009-02-12 ソニー株式会社 画像記録システム
JP4367664B2 (ja) * 2007-05-30 2009-11-18 セイコーエプソン株式会社 変換装置、および変換装置の制御方法
JP4961317B2 (ja) * 2007-10-03 2012-06-27 キヤノン株式会社 仮想デバイスの管理方法、管理装置および記憶媒体
JP5566054B2 (ja) * 2009-06-24 2014-08-06 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
JP5427014B2 (ja) * 2009-12-18 2014-02-26 キヤノン株式会社 制御装置、及びその制御方法
JP4943520B2 (ja) * 2010-02-02 2012-05-30 シャープ株式会社 プリンタ制御装置、プリンタ制御方法、印刷システム、プログラムおよび記録媒体
JP2012038076A (ja) * 2010-08-06 2012-02-23 Canon Inc 情報処理装置、ジョブ処理システム、ジョブ送信経路制御方法、及びプログラム、並びに記録媒体
JP5679740B2 (ja) * 2010-08-26 2015-03-04 キヤノン株式会社 周辺装置制御システム、周辺装置、情報処理装置及び制御方法
JP2013149244A (ja) * 2011-12-20 2013-08-01 Panasonic Corp デバイス自動制御装置及び方法、並びに情報処理装置
US8560016B2 (en) * 2012-01-04 2013-10-15 Motorola Mobility Llc Method and apparatus to prevent receiver desensitization from radiated HDMI signals in accessor or computing devices
JP6007620B2 (ja) * 2012-06-29 2016-10-12 富士通株式会社 中継装置、ストレージシステムおよび中継装置の制御方法
CN104216840B (zh) * 2014-09-11 2018-03-23 青岛海信移动通信技术股份有限公司 一种usb设置和对外部设备进行操作的方法及装置

Also Published As

Publication number Publication date
JP2016224703A (ja) 2016-12-28
US9836258B2 (en) 2017-12-05
US20160350038A1 (en) 2016-12-01

Similar Documents

Publication Publication Date Title
JP7355147B2 (ja) アプリケーションプログラム
JP6501624B2 (ja) 情報処理装置、制御方法及びプログラム
CN111251732A (zh) 控制方法和存储介质
JP2023053961A (ja) システムおよび制御方法
JP5926514B2 (ja) 印刷制御装置、印刷制御方法、およびプログラム
JP6371697B2 (ja) 情報処理装置、印刷制御方法、およびプログラム
JP2017204139A (ja) 更新アプリケーション及び更新方法
JP2012155401A (ja) 印刷システム、印刷装置、印刷システムの制御方法、印刷装置の制御方法、プログラム
JP2012164138A (ja) 画像処理制御装置、画像処理装置及び画像処理制御プログラム
JP6602053B2 (ja) 情報処理装置、制御方法及びプログラム
US10277765B2 (en) Information processing device, control method, and program
JP6608175B2 (ja) 情報処理装置、制御方法及びプログラム
JP2019174999A (ja) 印刷システム、印刷方法、画像形成装置およびその制御方法、及びプログラム
JP2012038076A (ja) 情報処理装置、ジョブ処理システム、ジョブ送信経路制御方法、及びプログラム、並びに記録媒体
JP2014108545A (ja) 印刷装置、印刷装置の制御方法、及びプログラム
JP2013196259A (ja) データ処理装置、データ処理システムおよびプログラム
JP7439973B2 (ja) プログラムセット、プログラム、および情報処理装置
JP2016018226A (ja) ユーザ端末、画像形成装置、サーバ装置、印刷システム、ユーザ端末の制御方法、画像形成装置の制御方法、サーバ装置の制御方法及びプログラム
JP2022109423A (ja) サポートプログラム
JP2022109424A (ja) サポートプログラム
JP2019101567A (ja) 印刷システム、印刷制御装置とその制御方法、及びプログラム
JP2011221889A (ja) 印刷システム、印刷装置、インストーラ、インストール方法、およびインストールプログラム
JP2001216105A (ja) 画像形成装置
JP2017129961A (ja) 印刷制御方法、プログラム、及び情報処理装置
JP2015230491A (ja) クライアント端末、プログラム、出力システム及び出力方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180528

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190705

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191008

R151 Written notification of patent or utility model registration

Ref document number: 6602053

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151