JP2010039684A - 画像形成装置、情報処理装置、データ処理方法及びプログラム - Google Patents

画像形成装置、情報処理装置、データ処理方法及びプログラム Download PDF

Info

Publication number
JP2010039684A
JP2010039684A JP2008200653A JP2008200653A JP2010039684A JP 2010039684 A JP2010039684 A JP 2010039684A JP 2008200653 A JP2008200653 A JP 2008200653A JP 2008200653 A JP2008200653 A JP 2008200653A JP 2010039684 A JP2010039684 A JP 2010039684A
Authority
JP
Japan
Prior art keywords
storage device
configuration data
device configuration
driver
information
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.)
Withdrawn
Application number
JP2008200653A
Other languages
English (en)
Inventor
Katsuichi Sugano
勝一 菅野
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 JP2008200653A priority Critical patent/JP2010039684A/ja
Priority to US12/510,556 priority patent/US20100027041A1/en
Publication of JP2010039684A publication Critical patent/JP2010039684A/ja
Withdrawn legal-status Critical Current

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/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • 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/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • 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
    • H04N1/00236Connection 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 using an image reading or reproducing device, e.g. a facsimile reader or printer, as a local input to or local output from a computer
    • 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
    • H04N1/00236Connection 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 using an image reading or reproducing device, e.g. a facsimile reader or printer, as a local input to or local output from a computer
    • H04N1/00238Connection 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 using an image reading or reproducing device, e.g. a facsimile reader or printer, as a local input to or local output from a computer using an image reproducing device as a local output from a computer
    • 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/00962Input arrangements for operating instructions or parameters, e.g. updating internal software
    • H04N1/00965Input arrangements for operating instructions or parameters, e.g. updating internal software using a plug-in memory module, e.g. memory card, memory stick
    • 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/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0034Details of the connection, e.g. connector, interface
    • H04N2201/0036Detecting or checking connection
    • 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/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0034Details of the connection, e.g. connector, interface
    • H04N2201/0037Topological details of the connection
    • H04N2201/0041Point to point
    • 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/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0034Details of the connection, e.g. connector, interface
    • H04N2201/0046Software interface details, e.g. interaction of operating systems
    • 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/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0034Details of the connection, e.g. connector, interface
    • H04N2201/0048Type of connection
    • H04N2201/0049By wire, cable or the like
    • 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/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0072Detecting the status of a connected apparatus
    • 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
    • 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/0098User intervention not otherwise provided for, e.g. placing documents, responding to an alarm

Abstract

【課題】 ユーザが意図するデバイスドライバを特定するデバイス情報を画像形成装置に保管することで、ユーザが必要としないデバイスドライバを情報処理装置にインストールしてしまうことを防止することである。
【解決手段】 コンピュータ201から送信されて保管デバイスに保管されるデバイス構成データで指定されるデバイスに対応するPDL処理デバイスがアクティブ状態となるデバイス情報が作成して、保管デバイスに転送する。そして、デバイス再構成ステップ204では、コンピュータ201で作成されたデバイス構成データを取得し、当該取得したデバイス構成情報に基づいて、複合装置206のComposite USBを構成するデバイスの再構成を行う。
【選択図】 図2

Description

本発明は、複数のデバイスドライバを備える画像形成装置と通信可能な情報処理装置におけるデータ処理に関するものである。
例えばデバイスとして、スキャナ装置や複数のPDL印刷装置を搭載した複合装置において、クライアントコンピュータ(以下、コンピュータと呼ぶ)との接続形態としてComposite USBを採用する製品がある。つまり、USBケーブルを介して情報処理装置と複合装置とが接続されるシステム形態となる製品は、デバイス内部にUSB Hubを搭載しないで複数の機能を搭載できることから、主に低価格の複合デバイスで採用される傾向にある。なお、ここで、USBとは、双方向通信可能なインタフェースであるところのUniversal Serial Busの略である。また、PDLとはPage Description Languageの略である。
また、Composite USBを採用したデバイスは、その特性上、クライアントコンピュータと接続してPlug and Playを実行すると、デバイス内部に定義された全ての論理デバイスが順次出現してくる。
従って、全てのドライバをInstallしないと、不明なデバイスが残ってしまうという特徴がある。
また、デバイスが複合装置が情報処理装置に接続される場合、複数PDLを搭載したデバイスの複数PDL分のドライバが情報処理装置にInstallされてしまうと、複数のプリンタアイコンが表示されてしまうことになる。
さらに、初心者のユーザなどでは、複数のプリンタアイコンが情報処理装置に表示されてしまうと、どのPDLデバイス(プリンタアイコン)を使うべきか迷ってしまうこともあった。
このような複数のPDLを搭載したデバイスから、所望のPDLを選択する方法が下記特許文献1に記載されている。特許文献1では、PDLオプションを追加した結果、複数PDLが混在するようになった環境でPlug and Playを正常に動作させる為にPlug and PlayでIEEE1284のCMDも参照することが記載されている。
特開2005−258661号公報
なお、下記特許文献1では、デバイスに搭載されているPDLをPlug and PlayでOSが検出しないようにする手段については記載されていない。
また、Composite USBを採用した製品の正しいドライバのInstall手順は複合デバイスをクライアントコンピュータに接続する前に、クライアントコンピュータ上にドライバをInstallしてから接続するというが操作手順である。
しかし、初心者のユーザなどは製品を購入した後、デバイスドライバをInstallすることなしに、デバイスを付属するUSBケーブルを用いてクライアントコンピュータに接続する操作を行う傾向がある。このような接続処理が実行された場合には、結果として不明なデバイスが残ってしまうという場合があり、ユーザの望むドライバ環境とは異なる状態になっていた。この結果、ユーザが意図するドライバを選択するための操作を難しくしてしまっていた。
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、ユーザが必要としないデバイスドライバを情報処理装置にインストールしてしまうことを防止する仕組みを提供することである。
上記目的を達成する本発明の複合装置は以下に示す構成を備える。
複数のデバイスドライバを備える画像形成装置であって、情報処理装置と通信する通信手段と、前記情報処理装置から取得する情報を保管する保管デバイスと、前記通信手段の通信状態が変化することに応じて、前記保管デバイスに基づくデバイス情報を構成するデバイス構成手段と、を備え、前記デバイス構成手段は、前記複数のデバイスドライバの中からユーザにより選択されるデバイスドライバで特定されるデバイス構成データを前記情報処理装置から取得して、前記デバイス情報を再構成することを特徴とする。
本発明によれば、ユーザが意図するデバイスドライバを特定するデバイス情報を画像形成装置に保管することで、ユーザが必要としないデバイスドライバを情報処理装置にインストールしてしまうことを防止できる。
次に本発明を実施するための最良の形態について図面を参照して説明する。
<システム構成の説明>
〔第1実施形態〕
図1は、本実施形態を示す情報処理装置と画像形成装置を含む印刷システムの構成を説明するブロック図である。本例は、情報処理装置と画像形成装置とが双方向通信可能なUSBインタフェースで接続される印刷システム例である。
また、本実施形態を示す情報処理装置は、通信手段としてUSBインタフェースを介して複合装置が接続された場合に、複合装置が備えるメモリを自身のメモリとして参照可能に管理する。そして、情報処理装置は、複合装置が備えるメモリを保管デバイスと認識できるように構成されている。
この保管デバイスとは、後述するStorageデバイスに対応し、本実施形態では、複合装置が備える外部メモリ、RAM等を用いて構成される例を示す。保管デバイスには、情報処理装置から転送される印刷データ、あるいはユーザが選択するデバイスドライバに対応するデバイス構成データを保管可能に構成されている。
複合装置は、複数のデバイスドライバ、例えばページ記述言語データを処理するプリンタドライバを備える。そして、情報処理装置から取得する保管デバイスに保管されたデバイス構成データに従って、デバイス情報を構成する処理を行う。
また、デバイス構成データには、後述するような所定の疑似乱数で生成される情報処理装置のOSを特定するための識別情報が設定されている。さらに、本実施形態では、USBインタフェースとして機能するUSBケーブルの状態が接続状態となっているのか、非接続状態となっているかを認識して監視する処理を行う。
なお、本実施形態では、インタフェースとして有線のUSBインタフェースの一例を示すが、無線インタフェースで接続される印刷システムにも適用可能である。同様に、デバイスドライバとして、PDLドライバの例を示すが、デバイスドライバは、PDLドライバに限定されず、原稿読み取りを行うスキャナドライバ、ファクシミリ送受信処理を行うファクシミリドライバ等の各種のドライバが含まれる。なお、ここで、デバイスドライバは、OSのPlug and Play機能で、かつ後述するデバイスの保管デバイスに保持されるデバイスの構成に従いインストールされる。
図1において、201はクライアントコンピュータ(コンピュータ)で、CPU1が外部メモリ11に記憶されるオペレーティングシステム(OS)をRAM2にロードした後、所定のアプリケーションをRAM2にロードすることで各種の情報処理を行う。
3はROMで、プログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行する。なお、CPU1は、システムバス4に接続される各デバイスを総括的に制御する。RAM2は、CPU1の主メモリ、ワークエリア等として機能する。
また、このROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるOS等を記憶し、ROM3のフォント用ROMあるいは外部メモリ11には上記文書処理の際に使用するフォントデータ等を記憶する。更に、ROM3のデータ用ROMあるいは外部メモリ11には上記文書処理等を行う際に使用する各種データを記憶する。
5はキーボードI/Fで、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。6はディプレイI/Fで、ディスプレイ10の表示を制御する。
7は外部メモリI/Fで、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ11とのアクセスを制御する。外部メモリ11には、ハードディスク(HD)、フレキシブルディスク(FD)、コンパクトディスク(CD)等が含まれる。
8はプリンタI/Fで、所定の双方向インタフェース(USB)21を介して複合装置206に接続されて、複合装置206との通信制御処理を実行する。なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、ディスプレイ10上でのWYSIWYGを可能としている。
また、CPU1は、ディスプレイ10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
複合装置206において、12はプリンタCPU(CPU)で、ROM13のプログラム用ROM又は外部メモリ14に記憶された制御プログラムをRAM19にロードして実行する。CPU12はロードしたプログラム等に基づいてシステムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。
また、このROM13のプログラムROMには、CPU12の制御プログラム等を記憶する。ROM13のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等を記憶する。さらに、ROM13のデータ用ROMにはハードディスク等の外部メモリ14がないプリンタの場合には、クライアントコンピュータ上で利用される情報等を記憶している。
CPU12は、入出力部18を介してコンピュータ201との通信処理が可能となっており、複合装置206内の情報等をコンピュータ201に通知することが可能に構成されている。
19はRAMで、CPU12の主メモリ、ワークエリア等として機能する。RAM19は図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM、Storageデバイス等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ14は、メモリコントローラ20によりアクセスを制御される。なお、Storageデバイスとは、後述するデバイス構成データを保管する保管デバイスであり、本実施形態では、コンピュータ201からは、自分の外部メモリとして認識されるように構成されている。
外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、22は操作部で、複合装置206の操作のためのスイッチおよびLED表示器等が配され、大型液晶表示装置を備えたタッチパネルを備えている。
また、前述した外部メモリ14は、1個に限らず、少なくとも1個以上備える構成としてもよい。また、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリ14を複数接続できるように構成されていてもよい。
さらに、外部メモリ14は、プリンタ本体内部のRAM19上に格納されているデータをコピーして格納できるようになっていても良い。また、図示しないNVRAMを有し、操作部22からのプリンタモード設定情報を記憶するようにしてもよい。
読み取り部24は、スキャナインターフェース23、システムバス15を介して、読み込んだデータをRAM19に転送する。
図2は、図1に示した印刷システムにおけるデータ処理ステップを説明する概念図である。本例は、複合装置206とコンピュータ201とがUSBインタフェースを介して通信可能な印刷システムの例を示す。
図2において、201は複合装置で、Scannerとして機能する読み取り部24や種別の異なるPDLデータを解析して印刷データを生成するためのPDL処理デバイスを備える。ここで、PDL処理デバイスは、モジュールとして記憶され、CPU12が当該PDL処理デバイスを実行することでPDLデータの処理が実現される。
なお、本実施形態において、PDLとはページ記述言語(Page Description Language)の略で、プリンタが解釈できる、印刷データ用の言語のことである。広く知られているところでは、Hewlett-Packard社のPCLやアドビ社のPostScriptなどが上げられる。以下の説明において、印刷データ用の言語をPDLと略する。
複合装置206は、PDLデバイス監視ステップ202、データ印刷ステップ203、デバイス再構成ステップ204、USB/Storageデバイス監視ステップ205から成る。
PDLデバイス監視ステップ202では、コンピュータ201からUSBインタフェース経由で複合装置206に送られてきた印刷用データの監視を行うステップである。PDLデバイス監視ステップ202では、印刷用データが送信されてくるのを監視し、印刷データがコンピュータ201から送信された場合に、そのデータをデータ印刷ステップ203に送信する。
データ印刷ステップ203では、コンピュータ201からUSBインタフェース経由で複合装置206に送られてきた印刷用データを解釈し印刷部17で印刷する印刷制御ステップである。
複合装置206に複数のPDLデータを解析して印刷データを生成する複数のPDL処理デバイスが搭載されている場合、コンピュータ201から送られてくる印刷情報の形式(PDL)に応じて、最適なPDL処理デバイスでラスタ変換処理を行い、印刷を行う。本実施形態では、PDL処理デバイスとして、複数のページ記述言語に基づく印刷情報を処理可能に構成されている。ここで、ページ記述言語には、PCL5e、PCL6等が含まれる。また、複数のPDL処理デバイスは、コンピュータ201から保管デバイスに保管されるデバイス構成データに従い、いずれかのPDL処理デバイスがアクティブ状態となるようにデバイス構成処理が実行される。これにより、ユーザがコンピュータ201で選択した以外のデバイスドライバに対応するPDL処理デバイスは有効とならない。
デバイス再構成ステップ204では、後述するデバイス構成データに基づいて、複合装置206のComposite USBを構成するデバイスの再構成を行うステップである。具体的には、コンピュータ201から送信されて保管デバイスに保管されるデバイス構成データで指定されるデバイスに対応するPDL処理デバイスがアクティブ状態となるデバイス情報が作成される。
ここで、作成されるデバイス情報に基づくデバイスの構成の一例を、図9,図10等に示す。本例は、複合装置206の保管デバイス上で管理されるComposite USB構成の一例を示す。ここで、Composite USB構成は、複合装置206にUSBケーブルが接続されていると認識した場合に以下のように作成される。具体的には、デバイス監視ステップ205が保管デバイスにデバイス構成情報が投入されたのを検出して、それを基にデバイス再構成ステップ204でデバイスの構成を変更した後に作成される。
USB/Storageデバイス監視ステップ205は、複合装置206とコンピュータ201との間のUSBケーブルの接続状況の監視と複合装置206上にある、Storageデバイスの監視を行うステップである。
また、USB/Storageデバイスを監視する監視ステップ205は、USBケーブルが入出力部18に通信可能な接続状態であるのか、非通信可能な非接続状態であるのかを監視する。さらに、監視ステップ205は、USBケーブルが入出力部18に非通信状態から通信状態に遷移して接続状態であるのか、通信状態から非通信状態に遷移して非接続状態であるのかを監視している。
また、USB/Storageデバイス監視ステップ205は、USBケーブルの接続が解除された場合や、Storageデバイスにデバイス構成データが投入された場合にデバイス再構成ステップ204に制御を移す。
さらに、USB/Storageデバイス監視ステップ205は、StorageデバイスにPDLで作成された印刷データが投入された場合には、そのデータをデータ印刷ステップ203に送信する。
201はクライアントコンピュータ(コンピュータ)で、印刷データ作成ステップ207、デバイス構成データ作成ステップ208、Storageデバイス監視ステップ209から成る。
印刷データ作成ステップ207は、コンピュータ201上で動作するアプリケーションソフトで作成した印刷データを、各種PDLドライバでPDLデータに変換して複合装置206に送信するステップである。通常の印刷処理では、この印刷データ作成ステップ207で作成したPDLデータは、複合装置206のPDLデバイス監視ステップ202に送信され、そこで処理された後、データ印刷ステップ203に渡って印刷される。
しかし、一度PDLドライバでPDLに変換したデータを作成して、それをコンピュータ201上の外部メモリ11に格納しておき、後にコンピュータ201から複合装置206のStorageデバイスに送信しても良い。この場合、USB/Storageデバイス監視ステップ205が、いずれかのPDLに基づいて作成された印刷情報を解析して生成される印刷データをデータ印刷ステップ203に送信する。デバイス構成データ作成ステップ208は、コンピュータ201上でユーザの指示に従って、利用したいScannerやPDLデバイスを選択して、その結果をデバイス構成データという形で作成して、複合装置206に送信するステップである。このデバイス構成データ作成ステップ208で作成したデバイス構成データを複合装置206のStorageデバイスに送信する。すると、複合装置206のUSB/Storageデバイス監視ステップ205がこれを検知して、デバイス側の制御がデバイス再構成ステップ204に移る。その結果、複合装置206のComposite USBの構成が変更される。
Storageデバイス監視ステップ209は、複合装置206に存在するStorageデバイスがコンピュータ201から見えなくなったか否かを監視するステップである。Storageデバイス監視ステップ209は、Storageデバイスの存在を監視することで、USBケーブルの接続が切れたか否かを判断する。Storageデバイス監視ステップ209は、Storageデバイスの存在が一度無くなり、再び存在が復活した場合には、デバイス構成データをStorageに再投入する。
これにより、デバイス構成データをUSB/Storageデバイス監視ステップ205に検知させ、デバイス側の制御をデバイス再構成ステップ204に移させる。
図3は、図1に示した複合装置206の通常のインタフェース構成を説明する図である。本例は、本発明との対比の為、本発明を採用していない通常のComposite USBの構成を示している。
図3において、401は、複合装置206全体のComposite USBを示している。その中に1つのコンフィギュレーション402が存在し、更にその中に複数のインタフェース403、404、405、406、407が存在する。本例では、インタフェース403、404、405、406、407の個々のインタフェースが複合デバイスを構成する個々の要素になっている。
インタフェース403は、Scannerデバイスに対応するインタフェースである。インタフェース404はPDL1のデバイスに対応するインタフェースである。インタフェース405はPDL2のデバイスに対応するインタフェースである。インタフェース406はPDL3のデバイスに対応するインタフェースである。インタフェース407はPDL4のデバイスに対応するインタフェースである。
図4は、本実施形態を示す情報処理装置におけるデータ処理を説明するフローチャートである。本例は、コンピュータ201による通常のComposite USBデバイスに対する旧来のドライバInstall処理例である。ここで、旧来のドライバInstall処理例とは、本発明を適用しない通常のドライバInstall処理例を意味する。なお、S302〜S307は各ステップを示し、各ステップは、CPU1が外部メモリ11、ROM3に格納されるドライバInstallプログラム、データをRAM2にロードして実行することで実現される。
図5は、本実施形態を示す画像形成装置によるドライバインストールモジュールの構成を説明する図である。
図5において、2301はドライバInstallプログラムで、外部メモリ11であるCDやHDDやメモリデバイスなどに格納されている。通常、1つのInstallプログラムは1つないし複数のドライバプログラムをInstallする作業を行う。2302はドライバプログラムであり、ドライバセットとも言う。ドライバプログラムはInstall時に参照される固有情報を記述したinfファイルと各種実行モジュール(各種dll(Dynamic Link Library))とリソース(Resource)で構成される。
ドライバInstallプログラム2301が起動されて旧来のドライバInstall処理から処理がスタートすると、S302へ進む。そして、S302で、ドライバInstallプログラム2301が外部メモリ11であるCDやHDDやメモリデバイスに格納されているドライバプログラム2302を外部メモリ11であるHDDの一時領域にCopyする。これにより、Plug and Playでドライバプログラム2302を参照できるように準備する。
次に、S303で、ユーザが複合装置206のUSBケーブルをコンピュータ201に接続されたことを、CPU1がプリンタI/F8を介して検知したら、その結果、Plug and Playが発生したことをOSが検知する。
そして、S304で、コンピュータ201のOSがPlug and Playの結果、最初に通知してきたデバイス(ScannerもしくはPDL)のinfファイルをHDDの一時領域から発見する。
そして、S305で、コンピュータ201のOSは、発見したinfファイルに従って、そのドライバプログラムをOSにInstallして、OSがデバイスドライバとして登録する。
次に、S306で、最初のデバイスドライバのInstall完了に伴い、複合装置206に、次のデバイスが無いか否かをコンピュータ201のOSが確認する。ここで、デバイスが複合装置である場合、通常では、1つのデバイスドライバのInstallが完了すると、次のデバイスが順次出現してくるようになっている。
そして、次のデバイスが定義されていることをOSが確認した場合は、S307に進み、次のデバイスが定義されていないことをOSが確認した場合は、S308に進み、本処理を終了する。
そして、S307では、次のデバイス(ScannerもしくはPDL)のinfファイルをHDDの一時領域からOSが発見したら、S305へ処理を戻す。
以上の処理により、複合装置206に搭載されている全ての論理デバイスに対するデバイスドライバをOSにInstallする処理が完了する。
図3に示す例では、複合装置206に対して、Scannerが1つ、PDLが4つ定義されているので、結果として、図6に示すユーザインタフェース1901ように4つのPDLに対応したプリンタアイコン1902が作成されることになる。各プリンタアイコン1902が図3に示した各々のPDLに対応している。また、Scannerドライバは、1つ登録されることになる。ここでは、Scannerドライバに対応するアイコンは図示しない。ここで、本実施形態に対応するPlug and Playの仕組みについて、図7を用いて説明する。
図7は、一般的なコンピュータシステムにおけるPlug and Playの仕組みを説明する図である。
図7において、1701はIEEE1284で規定されているデバイス情報で、Class1702、MFC(製造者名)、1703、MDL(製品モデル)1704、CMD(コマンド)1705で構成される。
図1に示した外部メモリ11であるHDDの一時領域などに格納されているドライバプログラム(図5の2302)はドライバInstall時に参照される固有情報を記述したinfファイルと各種実行モジュールとリソースによって構成される。
プリンタドライバのInfファイルの中にはPlug and Play時に参照されるDeviceIDが記述されている。このDeviceIDは、図7のMFC1703とMDL1704を組み合わせて構成されるものと一致する値が記載されている。スキャナドライバのinfファイルの中にはUSBの構成として図1のROM13のプログラムROM上に定義されているVendor ID(製造者ID)とProduct ID(製品ID) とインタフェース番号が一致する値が記述されている。
図4に示したS303で複合装置206のUSBケーブルをコンピュータ201に接続すると複合装置206から、図3の各種インタフェースの情報が順次コンピュータ201に送信される。ここで、各種インタフェースの情報がOSが実行するPlug and Play機能で参照されて、必要なデバイスのデバイスドライバがインストールされる。
ここで、インタフェースがスキャナである場合は、Vendor IDとProduct ID とインタフェース番号を複合装置206から入手する。ここで、入手したVendor IDとProduct ID とインタフェース番号と一致する情報が記載さているinfファイルを外部メモリ11であるHDDの一時領域に格納されているinfファイルの中から探索する。なお、Vendor ID(製造者ID)とProduct ID(製品ID)は製品単位に付くものなので、インタフェース403〜407全てのインタフェース間で共通の値となる。
また、複合装置206から通知されるインタフェースの情報がプリンタである場合は、コンピュータ201のOSは以下の処理を行う。まず、コンピュータ201のOSは、IEEE1284に準拠したDeviceIDを複合装置206から取得する。そして、ンピュータ201のOSは、取得したDeviceIDと一致する情報が記載さているinfファイルを外部メモリ11に対応する同じHDDの一時領域に格納されているinfファイルの中から探索する。
このように、コンピュータ201のOSは、Plug and Playを実行して、デバイスに対応したドライバを正確に対応付けてInstallすることが可能となっている。なお、本実施形態では、保管デバイスに保管されたデバイス構成データに従って作成された上記デバイス情報がコンピュータ201に通知される。
これにより、コンピュータ201のOSが上記Plug and Playを実行した場合に、ユーザが図11に示すユーザインタフェースであらかじめ選択したデバイスドライバに対応するデバイスドライバに限定される。そして、インストール後は、インストールされたデバイスドライバに対応するプリンタアイコンのみが表示されることとなる。
図8〜図10は、図1に示した複合装置206のインタフェース構成を説明する図である。本例は、本発明に対応するComposite USBの構成を示している。また、本例は、最大構成(複合装置206に存在する全てのデバイスがActive)になった場合の例を示している。
ここで、図3に示したインタフェースの構成との差異を説明する。
図3に示したインタフェースと、図8〜図10に示すインタフェースとの構成との大きな違いは、図8にはインタフェース0としてStorageデバイスが定義されていることである。なお、インタフェース0の情報をインタフェース503と示す。
図8において、501は、複合装置206全体のComposite USBを示している。その中に1つのコンフィギュレーション502が存在し、更にその中に複数のインタフェース503、504、505、506、507、508が存在し、この個々のインタフェースが複合デバイスを構成する個々の要素になっている。
図8のインタフェース503がStorageデバイスに対応する。インタフェース504がScannerデバイスに対応する。インタフェース505がPDL1のデバイスに対応する。インタフェース506がPDL2のデバイスに対応する。インタフェース507がPDL3のデバイスに対応する。インタフェース508がPDL4のデバイスに対応する。
図9は、本発明のComposite USBの構成を示しているが、これは製品出荷時や、複合装置206とコンピュータ201との間の双方向インタフェース21に対応するUSBケーブルを抜いて接続を解除した時の構成を示している。
特徴としてはインタフェース0に対応するインタフェース603のStorageデバイスだけ存在している複合装置206となっている。
図9において、601は、複合装置206全体のComposite USBを示している。その中に、1つのコンフィギュレーション602が1つ存在し、更にその中に1つのインタフェース603が存在し、これが複合デバイスを構成する要素になっている。
図10も本実施形態を示すComposite USBの構成を示しているが、これは以下に説明する本発明を適用した結果得ることのできる構成の一例を示している。
図10において、701は、複合装置206全体のComposite USBを示している。その中に1つのコンフィギュレーション702が存在し、更にその中に複数のインタフェース703、704が存在し、この個々のインタフェースが複合デバイスを構成する個々の要素になっている。
図10に示すインタフェース703がStorageデバイスに対応し、インタフェース704がPDL1のデバイスに対応している。この例では、結果として、図11に示すユーザインタフェース1903で示すように、1つのPDLに対応したプリンタアイコン1904が作成されることになる。プリンタアイコン1904のみが選択可能な状態で表示されることで、ユーザは、ページ記述言語を処理するデバイスを確認することができる。本実施形態では、後述するように、ユーザが選択したページ記述言語処理手段(PDL処理デバイス)に対応するプリンタアイコンのみが表示される。
図11は、図1に示したコンピュータ201で表示可能なユーザインタフェースの一例を示す図である。
図11において、1904はプリンタアイコンで、デバイスとしてPDL1に対応している。なお、このインタフェースの組み合わせは一例であり、Storageデバイスを必ず含んで図5に記述されているインタフェース個々の組み合わせで構成すれば、どの組み合わせでも問題なく構成することができる。
なお、図11に示すアイコンの数と、コンピュータ201でユーザが図16に示すユーザインタフェースで選択したデバイスの数とが整合して表示される。つまり、ユーザが選択したデバイスに基づくデバイス構成データが保管デバイスに保管された後は、ユーザが選択した以外のデバイスに対応するアイコンは表示されることはない。
図12は、本実施形態を示す画像形成装置におけるデータ処理の一例を示すフローチャートである。本例は、複合装置206とコンピュータ201とを双方向に接続するためのUSBケーブル(図1に示した双方向インタフェース21に対応する)の接続状況の監視とRAM19を割り当てたStorageデバイスの状態を監視する処理例である。なお、S802〜S811は各ステップを示し、各ステップは、図1に示した複合装置206上に存在するROM13もしくは外部メモリ14上に格納されたプログラムをRAM19にロードしてCPU12が実行することで実現される。
なお、ここで言うStorageデバイスとは、図8に示したインタフェース503、図9に示したインタフェース603、図10に示したインタフェース703の各インタフェースが管理するStorageデバイスを指す。具体的には図1に示した複合装置206が備えるRAM19の一部を利用して構成される。
このStorageデバイスは、図1に示したコンピュータ201上からはOS(不図示)の機能を利用することにより外部メモリ11の一種として見ることができる。
つまり、コンピュータ201上でStorageデバイスを参照すると、実際には複合装置206のRAM19上を参照していることになる。
また、図12において、S802〜S811は各ステップを示し、各ステップは、CPU12が外部メモリ14、ROM13に格納されるプログラム、データをRAM19にロードして実行することで実現される。
USB/Storage監視処理が開始されると、S802で、CPU12は、入出力部18に接続されていたUSBケーブル(図1に示した双方向インタフェース21)が複合装置206から抜かれたか否かを判断する。
ここで、CPU12が一度接続されていたUSBケーブルが抜かれたと判断した場合、S803に進み、USBケーブルの接続状態に変化が無いとCPU12が判断した場合にはS805に進む。ここで、USBケーブルの接続状態に変化が無い状態とは、例えば抜かれていたUSBケーブルが抜かれたままの場合や、接続されていたUSBケーブルが接続されたままの場合である。
そして、S803では、一度接続されたUSBケーブルが抜かれたので新しいデバイスの構成をStorageデバイスのみにするべく、New構成をStorageデバイスのみとする。
そして、S804では、デバイスの構成を新しくするためにデバイス再構成処理に制御を移す。そして、デバイス再構成処理が終了した後、S802に戻り、CPU12は、入出力部18に接続されるUSBケーブルの状態に変化があったか否かを再び監視する。
先にも述べたが、S802では、すでにUSBケーブルが抜かれており、その状態に変化がない状態であるとCPU12が判断した場合は、CPU12は、USBケーブルが抜かれた状態であるとは判断しない。つまり、一度この判断を行った時点でUSBケーブルが接続されており、その後、USBケーブルが抜かれた状態に変化した場合にのみ、USBケーブルが抜かれたとCPU12は判断する。
そして、S805で、CPU12は、Storageデバイスに何か新しく格納されたか否か判断する。ここも、S802と同様に状態変化をCPU12は監視する。ここで、状態に変化が無いとCPU12が判断した場合(格納されていたものがそのまま格納されている場合)は何か入ったとは判断しない。つまり、新規に新しいものが投入された場合や、一度格納されていたものが消えた後、再び格納された場合などに何か入ったとCPU12は判断する。
ここで、Storageデバイスに何か入ったとCPU12が判断した場合には、S806に進み、入っていないと判断した場合には、S802に戻る。なお、必要に応じて再度、S802に戻る前に適度な空き時間を入れて、図1のCPU12の能力を無駄にしないように制御しても良い。
S806では、Storageデバイスに新しく入ったデータが印刷データであるか否かをCPU12が判断する。なお、本実施形態に示す複合装置206においては、Storageデバイスは、コンピュータ201上からはOS(不図示)の機能を利用することにより、コンピュータ201が備える外部メモリ11の一種と見ることができる。
コンピュータ201の利用者は、Install済みのPDLドライバの印刷情報を複合装置206に送信して直接印刷することもできるし、PDLドライバの出力結果を外部メモリ11に出力することもできる。この場合、外部メモリ11上に格納したPDLドライバの出力結果を外部メモリ11の一部として見ることのできるStorageデバイスに移動する。すると、その情報は双方向インタフェース21に対応するUSBケーブルを介して複合装置206に送られ、RAM19のStorageデバイス上に記憶される。
そこで、S806では、Storageデバイスに格納された情報がPDLドライバの出力結果に対応する印刷情報であるか否かをCPU12が判断する。ここで、PDLドライバの出力結果に対応する印刷情報であるとCPU12が判断した場合には、S807に進み、通常の印刷処理と同様に印刷情報を解析して生成した印刷データを印刷して、S802へ戻る。
なお、複合装置206のStorageデバイスは、OS(不図示)の機能により、1つのFolderとしても扱うことができる。FolderにJobを投げると印刷することのできるFolderを一般的にHot Folderと言うので、本実施形態でもHot Folderの機能が実現されていることになる。また、印刷データは印刷した後、Storageデバイスから削除される。
一方、S806で、Storageデバイスに新しく入ったデータがPDLドライバの出力結果でないとCPU12が判断した場合には、S808に進む。
そして、S808で、Storageデバイスに新しく入ったデータがデバイス構成データであるか否かを複合装置206のCPU12が判断する。
図13は、図1に示した複合装置206に保持されるデバイス構成データの一例を示す図である。
図13において、1801〜1804はデバイス構成データである。デバイス構成データ1801〜1803は、データのファイル名にコンピュータ201上で動作しているOSのGUID(Globally Unique Identifier)をそのファイル名称に利用してその拡張子として .guid と付けている。ここで、GUIDは128bitの2進数で構成される所定の擬似乱数で、一般的に同じ値を持つものは2つとないと言われている数値である。個々のOSを一意に識別するのに役に立つ数字であり、本実施形態でも、所定の疑似乱数で生成される2進数の値を用いてコンピュータ201上で動作しているOSを一意に識別する情報としている。本実施形態では、上記GUIDにより、転送元となるクライアントコンピュータのOSを一意に認識して、デバイス構成データを管理することができる。
図13において、デバイス構成データ1801、1802、1803、1804の先頭行に示されている 0x01, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 はTagである。このTagは、データがデバイス構成データであること示すものであり、ファイルの先頭数バイトを検査すればそれがデバイス構成データであると判断するのに利用できる。
デバイス構成データ1801、1802、1803のようにファイル名がGUID.guidとなる場合でも、ファイルの先頭数バイトをCheckすることで最終的にそれがデバイス構成データであると、複合装置206のCPU12が判断できる。なお、デバイス構成データ1804のようにファイル名がDeciceCFG01.cfgとなる場合でも同様である。この値と長さは、上記これに限ったものではなく、ファイルの内容を一意に識別可能と思われる値であれば、これに限るものではない。
デバイス構成データ1801は、Vendor ID(製造者ID)が0000h、Product ID(製品ID)が00001hとインタフェース番号0のデバイスがStorageデバイスである事を示している。
更に、インタフェース番号1のデバイスがScannerであり、インタフェース番号2のデバイスがPDL1、インタフェース番号3のデバイスがPDL2であることを示している。同様に、インタフェース番号4のデバイスがPDL3、インタフェース番号5のデバイスがPDL4であることを示している。
デバイス構成データ1802は、Vendor ID(製造者ID)が0000h、Product ID(製品ID)が00001hとインタフェース番号が0のデバイスがStorageデバイスであることを示している。さらに、インタフェース番号1のデバイスがPDL1であることを示したデバイス構成データである。このデバイス構成データ1802でデバイスの再構成を行うと結果として、図10で示したデバイスが構成されることになる。
なお、この図13で示したデバイス構成データはあくまでも一例であり、本発明はこの形式に限定されるものではない。以下、図12に基づいて説明する。
一方、図12に示すS808で、Storageデバイスに新しく保管されたデータがデバイス構成データであると複合装置206のCPU12が判断した場合には、S809に進む。そして、S809で、デバイス構成データではないとCPU12が判断した場合には、S811に進む。
そして、S809では、新しいデバイスの構成(図中では、New構成と記す)をStorageデバイスに加えて選択されたデバイス構成データのみにするべく、New構成をStorageデバイスと選択されたデバイス構成データとする。
次に、S810では、デバイスの構成を新しくするためにデバイス再構成処理に制御を移し、S802へ戻る。この際、デバイス構成データはデバイス再構成後も削除されずにStorageデバイス上に残る。
そして、S802に戻ったら、再びUSBケーブルの状態に変化があったか否かをCPU12が監視する。先にも述べたが、S802では、すでにUSBケーブルが抜かれて非接続状態であり、その状態に変化がない状態の場合は抜かれた状態であるとはCPU12は判断しない。
一度、S802に示す判断を行った時点でUSBケーブルが接続されており、その後、抜かれた状態に変化した場合にのみ、USBケーブルが抜かれて非接続状態であるとCPU12は判断する。
一方、S808で、デバイス構成データでないとCPU12が判断した場合、そのデータはデバイス構成データでもなく、PDLドライバが出力した印刷データでもないことが明らかである。なお、複合装置206のRAM19のStorageデバイスで受け付けるデータは、デバイス構成データもしくは、PDLドライバが出力した印刷情報なので、この場合、Storageデバイスに格納されたのは処理できないデータであることになる。
従って、S811で、CPU12は、RAM19上のStorageデバイスに格納されたデータを単純に削除する処理を行い、S802に移動して再びUSBケーブルの状態に変化があったか否かを監視する。
なお、この図12に示すフローには終了がない。それは、複合装置206が起動した時点から、この図12に示すフローが動き出し、デバイスが動作している限り、終了することなく動き続ける処理であるため、このフローには終了がない。
以上述べたように図12に示す処理で、USBケーブルが抜かれて接続状態が通信が途切れた状態に遷移した場合に、Storageデバイスだけのデバイスに構成を変化させることができる。また、RAM19上のStorageデバイスにコンピュータ201から投入されたデバイス構成データの指示に従ったデバイスに構成を変化させることができる。
また、Storageデバイスに投入されたPDLドライバが出力した印刷情報を解析して生成した印刷データを印刷することができる。更に、Storageデバイスに投入された上記以外のデータを削除して無視することができる。
これにより、複合装置は、最初に情報処理装置と通信可能に接続されて、保管デバイスにデバイス構成データを保管した後、USBケーブルが情報処理装置或いは複合装置から抜かれた場合、保管デバイスからデバイス構成データを削除する。なお、USBケーブルが一度接続された後、一旦USBケーブルが抜かれて、再接続される場合における保管デバイス内のデバイス構成データの処理については後述する。
図14は、本実施形態を示す情報処理装置におけるデータ処理の一例を示すフローチャートである。本例は、S810における複合装置206上に存在する論理デバイスの状態をActiveもしくは非Activeに変化させ、デバイスの構成を再構成する処理の詳細処理例である。なお、S902はステップを示し、当該ステップは、図1に示した複合装置206上に存在するプログラムROM13もしくは外部メモリ14上に格納されたプログラムをCPU12が実行することで実現される。
S902で、CPU12は、コンピュータ201から取得するNew構成に対応するデバイス構成データに従ってデバイスの再構成を行い、本処理を終了する。
例えば、New構成に対応するデバイス構成データがStorageデバイスのみならば、CPU12は、Composite USBの構成を、S910、S902において、図9で示したように変化させ、複合装置206をリスタートさせる。
また、New構成に対応するデバイス構成データがStorageデバイスとPDL1で構成されていれば、CPU12は、Composite USBの構成を、S910、S902で変化させ、複合装置206をリスタートさせる。
なお、本実施形態において、本処理は複合装置206がリスタートの場合のみで実行されるものではない。本実施形態は、New構成に対応するデバイス構成データに従ってデバイスの再構成を行い、USBを論理的に再構成する方法も本発明には含まれる。
以上述べたように図14に示した処理で、New構成に対応するデバイス構成データに従ってデバイスを再構成することができる。
図15は、本実施形態を示す情報処理装置におけるデータ処理の一例を示すフローチャートである。本例は、コンピュータ201がデバイスドライバをインストールする際に、デバイス構成データを作成して複合装置206のStorageデバイス(RAM19)に格納する処理である。なお、S1002〜S1015は各ステップを示し、各ステップは、コンピュータ201上に存在する外部メモリ11に格納されたプログラムをCPU1が実行することで実現される。
CPU1は、コンピュータ201の外部メモリ11であるCDやHDDやメモリデバイスなどに格納されている、図5に示すドライバInstallプログラム2301を起動する。
そして、S1002で、コンピュータ201の外部メモリ11上の一時領域にドライバセットが存在するか否かをCPU1が確認する。この外部メモリ11上の一時領域はPlug and Playの時にコンピュータ201上のOS(不図示)からinfファイルの存在確認がなされる領域である。ここで、ドライバセットがあるとCPU1が判断した場合にはS1004に進み、無いと判断した場合には、S1003に進む。
なお、ここでは、すでにドライバセットがある場合、S1003をスキップしているが、この判断を行わず、強制的にS1003を実行しても良い。この様な処理は、例えばVersion違いの新しいドライバを入手した時などにより新しいVersionのドライバを使う為に有効な処理である。
そして、S1003では、コンピュータ201の外部メモリ11であるCDやHDDやメモリデバイスなどに格納されているドライバプログラムを外部メモリ11上の一時領域にコピーしておく。この処理をしておくことにより、後ほどPlug and Playを行ったときに、OSによりinfファイルの検索が行えるようになる。
そして、S1004で、CPU1は、図16に一例を示したような利用するデバイスドライバを選択するためのメニュー画面をディスプレイ10上に表示する。そして、当該メニュー画面を介して、コンピュータ201の利用者に利用したいデバイスドライバの選択を行ってもらう。
図16は、図1に示したディスプレイ10に表示されるユーザインタフェースの一例を示す図である。本例は、利用するデバイスドライバを選択するためのメニュー画面例である。
図16に示すメニュー画面1201において、1202はScannerドライバを利用するときに選択すべきCheck項目である。1203はPDL1ドライバを利用するときに選択すべきCheck項目である。
1204はPDL2ドライバを利用するときに選択すべきCheck項目である。1205はPDL3ドライバを利用するときに選択すべきCheck項目である。1206はPDL4ドライバを利用するときに選択すべきCheck項目である。
1207はデバイスドライバを選択せずに先に処理を進めるためのキャンセルボタンである。1208は選択したデバイスドライバで処理を先に進めるためのOKボタンである。なお、図16に示すメニュー画面はあくまでも一例であり、このメニュー画面に示しされる選択項目に限定されるものではない。このように構成されたメニュー画面1201上でユーザが利用したいドライバを選択することで、Storageデバイスに設定すべきデバイス構成データの作成を指示できる。
次に、S1005で、図16に示したメニュー画面で、デバイスドライバがコンピュータ201の利用者によって選択されたか否かをCPU1が判断する。具体的には、OKボタン1208が押下されてかつ、図16に示すCheck項目1202からCheck項目1206のうち、1つ以上のCheck項目に対応するチェックボックスに対してCheckされていればデバイスドライバが選択されていると判断して、S1006に進む。
一方、図16に示すメニュー画面において、Check項目1202〜1206のいずれもCheckされていないか、又は図16に示すのメニュー画面で、キャンセルボタン1207が押下されているとCPU1が判断した場合は、S1013に進む。この場合は、デバイスドライバが選択されていないことになる。
そして、S1006で、図16に示すメニュー画面で選択したCheck項目に従って、図13に示したデバイス構成データ1801、1802を作成するが、この時点のデータにはStorageデバイスに関する情報はセットされていない。
次に、S1007では、コンピュータ201のCPU1は、Storageデバイスの存在をCheckする。ここで、複合装置206のStorageデバイス(RAM19の一部)はコンピュータ201から見ると、あたかも外部メモリ11の1つとして認識可能となる。
なお、Storageデバイスの存在をCheckする方法は、一例としては図17に示すように、Storageデバイス内に非表示属性のStorage認識用のTagファイル(図17のファイル名2202のファイル)を予め格納しておく。
その上で、CPU1が複数存在する外部メモリ11を順次調べて行き、このStorage認識用のTagファイルのあるデバイスが複合装置206のStorageデバイスであると認識する方法がある。
別の例としては、Storageデバイスのボリューム名として予め決めておいて文字列を埋め込むことで、その文字列がボリューム名となっているデバイスが複合装置206のStorageデバイスであると認識する方法もある。この例を図17のボリューム名2204に示す。
図17は、図1に示したディスプレイ10に表示されるユーザインタフェースの一例を示す図である。本例は、Storageデバイスの確認画面の例である。
図17において、2201はボリューム画面で、OS(不図示)の機能を利用して、コンピュータ201上で外部メモリ11の状況を参照する画面の例である。
なお、ボリューム画面2201では、複合装置206のStorageデバイス(RAM19の一部)がコンピュータ201から見て、Hドライブとして見えている例を示している。
2202はファイルで、そのHドライブの中に StorageDistinguisher.stgdis というファイル名で存在していることを示している。このStorageDistinguisher.stgdisというファイル名2202は、これに限るものではない。おおよそ他のシステムでは作成しそうにない名称をそのファイルに付けて中身を空にしておくことで、該当ファイル名称のファイルがあるか否かを確認できる。もちろんファイルの中身を定義しておき、ファイル名称の確認と内容の確認の両方を行うことで確認しても良い。
2203はStorageデバイスのボリューム画面で、Storageデバイスのボリューム名2204として、例えばLBP-XXXX_Storage という名称を定義した例である。この場合、LBP-XXXX_Storage というボリューム名2204のデバイスが存在すれば、それが複合装置206のStgorageデバイス(RAM19の一部)であるとCPU1は判断できる。
なお、Storageデバイスの存在をCheckの結果、StorageデバイスがないとCPU1が判断した場合には、USBケーブル(図1の双方向インタフェース21)でコンピュータ201と複合装置206とが接続されていない可能性がある。従って、USBケーブルの接続を促すための図18に示すユーザインタフェースを表示するべく、S1014に進む。
図18は、図1に示したディスプレイ10に表示されるユーザインタフェースの一例を示す図である。
図18において、2001は、ユーザに対してUSBケーブルを複合装置206に接続を促す画面の一例である。
なお、接続する意思がない場合には、ユーザが画面2001に対して、キャンセルボタン2002を押下し、接続した後では、OKボタン2003を押下すると、各々次の状態に移ることができる。なお、この画面は一例であり、この画面に限定されるものではない。
一方、S1007で、StorageデバイスがあるとCPU1が判断された場合には、S1008に進む。そして、S1008では、存在の確認がとれた複合装置206のStorageデバイスの内部にデバイス構成データが存在するか否かをCPU1が判断する。ここで、存在するとCPU1が判断した場合には、S1009に進み、存在しないとCPU1が判断した場合には、S1011に進む。
そして、S1009では、Storageデバイスに格納されているデバイス構成データが自分のGUIDと一致するファイル名として作成されているか否かをCPU1が確認する。ここで、一致するとCPU1が判断した場合は、S1010に進み、一致しないと判断した場合は、S1011に進む。
なお、S1010に進んだ場合、複合装置206のStorageデバイスに自分のGUIDと一致するデバイス構成データが存在していることが明らかとなっている。これは、コンピュータ201が一度このデバイス構成データ作成処理を行い、Storageデバイスに自分のGUIDのデバイス構成データを複合装置206に格納しているということに他ならない。つまり、コンピュータ201によるデバイス構成データの作成処理が少なくとも初めての実行ではないことを示している。
一度デバイス構成を決めて運用を開始した後に別の機能を使用したくなり、再びこのデバイス構成データ作成処理を実行したような場合にこのようなことが発生し得る。
そこで、S1010で、複合装置206のStorageデバイスにすでに格納されている自分のGUIDのデバイス構成データを一度削除する。このように、複合装置206のStorageから自分のGUIDのデバイス構成データを削除することにより、図8の802のUSB/Storage確認処理を一度リセットすることが可能となる。これにより、再び、Storageデバイスに自分のGUIDのデバイス構成データを投入することにより、図12に示したS802でStorageデバイスに何か入ったことを検出できるようになる。なお、Storageデバイスに格納されているデバイス構成データを削除するには、コンピュータ201が複合装置206に対して、当該デバイス構成データを特定する情報と、削除を指示するコマンドを送信する。これにより、複合装置206のCPU12がStorageデバイスを構成するRAM19上から削除することができる。
次に、S1011で、CPU1は、双方向インタフェース21を介して、新しい構成に従って作成したデバイス構成データを複合装置206のStorageデバイスに転送する。この時、デバイス構成データのファイル名として自分のGUIDを使用して例えばGUID.guidという名称で非表示属性と読み取り専用属性を付けて複合装置206に格納する。なお、図13に示すデバイス構成データ1801、1802などはその一例である。
ここで、非表示属性を付けるのは複合装置206のStorageデバイスがコンピュータ201上では、外部メモリ11の一部として見ることができる為、その内部も容易に参照することが可能な為である。また、ユーザによる不用意な修正を防止する目的で、非表示属性を付けておく。
さらに、誤って削除されてしまうと、デバイス構成が消えてしまうので、不用意な削除を防止する目的で、読み取り専用属性も付けておく。
この例では、複合装置206はファイル名称の拡張子.guid をもってそのファイルがデバイス構成データであることを識別することが可能となる。拡張子の前のGUIDの部分は、それを作成した4000クライアントコンピュータが自分の作成したデータであることを識別するために用いる。
また、図13に示すデバイス構成データでは、ファイルの内部の先頭行には 0x00, 0x01, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 が記載されている。これら数バイトからなるファイルがデバイス構成データであることを示している。この値と長さはこの例に限ったものではなく、ファイルの内容を一意に識別可能と思われる値であれば、これに限るものではない。なお、ここでは、デバイス構成データであることを識別する為にGUIDをファイル名称として用い、拡張子に .guid を用いているが、この拡張子はこれに限るものではない。
更に、デバイス構成データのファイル名称にGUIDを用いない構成も可能であり、図13に示すデバイス構成データ1804で示した例も考えられる。このデバイス構成データ1804では、ファイル名称に DeviceCFG01.cfg と付けている。この DeviceCFG の部分は一例であり、これに限るものではない。
また、その後の 01 は一連番号で、複合装置206のStorageデバイスに転送された順番に01から順次カウントアップされてゆく数字である。この部分も数字2桁に限定するものではなく、ファイルを一意に識別可能であれば、他の内容でもかまわない。
ファイルの内部の先頭行には 0x00, 0x01, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 が記載されており、この数バイトでこのファイルがデバイス構成データであることを示している。この値と長さはこの例に限ったものではなく、ファイルの内容を一意に識別可能と思われる値であれば、これに限るものではない。
ファイルの2行目にはGUIDの値である12340001-4980-1920-6788-123456789012 が記載されている。
このデバイス構成データ1804で示した例の形式でデバイス構成データを作成した場合には、S1008及びS1009で以下の確認処理が実行される。この確認作業では複合装置206のStorageに格納されている複数のデバイス構成データを順次読み込み、記載されているGUIDの内容を順次確認しながら、処理を進めてゆく。
また、この例でも先の例と同様な理由で、デバイス構成ファイルには非表示属性と読み取り専用属性を付けて格納しておく。
次に、S1012では、CPU1は、Storageデバイス監視処理が起動されていない場合にそれを起動する。ここで、Storageデバイス監視処理とは、図2に示したStorageデバイス監視ステップ209に対応する。なお、図15に示す処理を初めて実行した場合には、Storageデバイス監視処理は起動されていないが、2回目以降に実行した場合には、すでに実行されている場合があり得る。そのような場合には、同じ処理を2重に起動しないように、CPU1が制御しながら、必要な場合にのみ起動をかける。その後、処理を終了する。
なお、この後、複合装置206側では、図12に示したS809及びS810の処理が実行され、USBの構成が、図16で指定した通りになる。その後、コンピュータ201上で動いているOS(不図示)がPlug and Playの機能により外部メモリ11上の一時領域をCheckして、S1003でセットされたドライバのinfファイルが検出される。その結果、ユーザが選択したデバイスドライバのみがInstallされて使えるようになる。
一方、S1005で、デバイスドライバが選択されていないとCPU1が判断した場合は、S1013では、図16に示した画面でデバイスドライバを選択しなかったか又はキャンセルボタン1207を押した場合の処理である。そこで、デバイスドライバを選択せずに処理を終了させたいという意思を再確認する意味で、図19に示す処理終了確認画面をディスプレイ10に表示してユーザの判断に基づく指示を判断する。
図19は、図1に示したディスプレイ10に表示されるユーザインタフェースの一例を示す図である。本例は、ユーザに処理終了を確認するための画面2101の一例である。
図19において、ユーザがこの画面2101に対して、処理を終了させない場合には、キャンセルボタン2102を押下し、終了させても良い場合には、OKボタン2103を押下する。
なお、これは一例であり、この画面に限定されるものではない。この結果処理を終了させるOKボタン2103が押下されているとCPU1が判断した場合には、処理を終了する。
一方、S1013で、処理を終了させないキャンセルボタン2102が押下されているとCPU1が判断した場合は、S1004に戻る。そして、再度、図16に一例を示したようなメニュー画面をディスプレイ10に表示して、コンピュータ201の利用者に利用したいデバイスドライバの選択を行ってもらう処理に移る。
一方、S1007で、デバイス構成データ作成後にStorageデバイスの存在確認を行った結果、StorageデバイスがないとCPU1が判断した場合は、S1014へ進む。そして、S1014で、デバイス構成データの処理を正しく進める為に、USBケーブルをコンピュータ201の利用者に複合装置206に対して接続する要求をユーザに促す図18に一例を示す画面をディスプレイ10に表示する。ここで、USBケーブルとは、図1に示した双方向インタフェース21に対応する。
そして、S1015では、S1014においてディスプレイ10に表示された図18に示した画面に対して、利用者の指示を仰いだ結果、終了を指示するキャンセルボタン2002をユーザが押下しているかどうかをCPU1が判断する。ここで、キャンセルボタン2002がユーザにより押下されているとCPU1が判断した場合には、処理を終了する。
一方、S1015で、キャンセルボタン2002がユーザにより押下されていないとCPU1が判断した場合は、S1007に戻り、Storageデバイスの存在確認処理に移る。つまり、処理を終了させることなく、ユーザが双方向インタフェース21に対応するUSBケーブルを接続した場合には、S1007に戻り、Storageデバイスの存在確認処理に移る。
以上述べたように図15に示す一連の処理で、デバイス構成データを作成して複合装置206のStorageデバイス(RAM19)に格納することができる。その後、複合装置206でUSBの再構成処理が行われる。更にその結果Play and Platが発生して、図16に示すユーザインタフェースで指示したデバイスドライバがOSにInstallされて使えるようになる。
図20は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、Storageデバイス監視ステップ209に対応する処理であって、複合装置206のStorageデバイス(RAM19の一部)の存在状況を監視し、その内容をCheckする処理例である。なお、S1102〜S1107は各ステップを示し、各ステップは、コンピュータ201上に存在する外部メモリ11に格納されたプログラムをCPU1が実行することで実現される。
コンピュータ201のCPU1が外部メモリ11上にあるStorageデバイス監視処理を起動する。そして、S1102で、複合装置206のStorageデバイス(RAM19の一部)がコンピュータ201から外部メモリ11の一つとして見ることができるか否かをCPU1が確認する。ここで、Storageデバイスが無いとCPU1が判断した場合、つまり、コンピュータ201から外部メモリ11の一つとして見ることができないとCPU1が判断した場合には、S1102に戻り、再度存在状況の確認を行う。なお、必要に応じて、再度、S1102の処理に移る前に、適度な空き時間を入れて、図1の1CPUの能力を無駄に浪費しないように制御しても良い。
一方、S1102で、StorageデバイスがあるとCPU1が判断した場合は、S1103で、見つかったStorageデバイスの内部にデバイス構成データがあるか否かの確認をCPU1が行う。なお、CPU1は、デバイス構成データの形式に応じて適切な方式で確認を行う。
なお、図15の処理の説明において、デバイス構成データの形式にファイル名として自分のGUIDを使用して、例えばGUID.guidという名称で非表示属性と読み取り専用属性を付けて格納する方式を説明した。同様に、図13に示したデバイス構成データ1804で示した例のように、DeviceCFG01.cfg というファイル名で格納する方式を説明した。
従って、CPU1は、S1103で、上記のいずれかの形式に従って、最適な方法でデバイス構成データが存在するか否かを確認する。ここで、デバイス構成データが無いとCPU1が判断した場合は、S1102に戻り、再び、Storageデバイスの存在Checkを行う。
一方、S1103で、デバイス構成データが有ると判断した場合は、S1104に進み、Storageデバイスの内部に見つかったデバイス構成データが自分のGUIDと一致するのか否かをCPU1が判別する。ここで、自分のGUIDと一致しないものであるとCPU1が判別した場合は、S1102に戻り、再び、Storageデバイスの存在Checkを行う。
一方、S1104で、Storageデバイスの内部に見つかったデバイス構成データが自分のGUIDと一致するとCPU1が判別した場合には、S1105に進む。
そして、S1105では、デバイス構成データが自分のGUIDと一致するものであるので、デバイス構成データに記載されている全てのデバイスがActiveであり、そこに記載されていないデバイスが全て非Activeであるか否かをCPU1が判別する。ここで、全てのデバイスがActiveで、記載されていないデバイスが全て非ActiveであるとCPU1が判断した場合には、デバイス再構成処理は必要ないので、S1102に戻る。
一方、S1105で、記載されている全てのデバイスがActiveでない場合や、記載されていないデバイスが全て非ActiveでないとCPU1が判断した場合には、デバイス再構成処理が必要なので、S1106に進む。なお、図20において、S1106に処理が進むケースとは、一度デバイス構成データを作成して複合装置206の構成を決定した後、USBケーブルを抜いて再度接続する場合が考えられる。あるいはコンピュータ201の電源を再投入した場合などに再び、Storageデバイスの存在を確認した場合などが考えられる。
そして、S1106で、複合装置206のStorageデバイスから自分のGUIDのデバイス構成データを一度コンピュータ201上に移動させる。なお、本処理は、情報処理装置内のメモリ、例えばRAM2或いは外部メモリ11にデバイス構成データを移動する処理なので、自分のGUIDのデバイス構成データは、元あった場所(複合装置206のRAM19)からは削除されることになる。
このように複合装置206のStorageデバイスから自分のGUIDのデバイス構成データを削除することにより、図12に示したS802のUSB/Storage確認処理を一度リセットすることが可能となる。そして、再び、Storageデバイスに自分のGUIDのデバイス構成データを投入することにより、図12に示したS802はStorageデバイスに何か入ったことを検出できるようになる。
次に、S1107で、一度コンピュータ201のメモリ上に移動させた自分のGUIDのデバイス構成データを再び複合装置206のStorageデバイスに移動させて、S1102へ戻る。この処理により、図12に示したS802で複合装置206のStorageデバイスに何か入ったことを検出して、デバイス再構成処理が実行され、USBの構成がデバイス構成ファイルに示された形になる。
なお、この図20に示すフローには終了がないが、これはコンピュータ201上で最初にこの処理が起動した時点から、コンピュータ201が動作している限り、終了することなく動き続ける処理であるため、このフローには終了がない。
また、コンピュータ201を一度終了させて再起動した場合にも、再起動後から終了することなく動き続ける処理の為、やはりこのフローには終了がない。
以上のことにより、複合装置206上にUSB/Storageデバイス監視ステップとデバイス再構成ステップを持ち、クライアントコンピュータ上にデバイス構成データ作成ステップとStorageデバイス監視ステップを持つシステムにおいて、ユーザの所望するデバイスを使用可能なように構成することが可能となる。またこの構成処理は複合装置上の操作部での操作ではなく、クライアントコンピュータ上の操作で可能となる。
また、一旦USBケーブルが接続された後、何らかの理由でUSBケーブルを抜いた後、再び同じクライアントコンピュータとUSBケーブルを介して複合装置に再接続する場合がある。この場合には、保管デバイスで保持されているデバイス構成データを参照することで、その都度一度構成したデバイス構成に自動的に戻すことができる。さらに、複数のコンピュータでUSBケーブルをつなぎ変えて複合装置を使用する場合には、接続するコンピュータのデバイスに適応してデバイス構成を変化させることが可能となる。
また、ユーザが複合装置を購入した直後にドライバのInstallなしでクライアントコンピュータにUSBケーブルを接続しても、OSが標準でデバイスドライバを持っているStorageデバイスしかActiveとはならない。これにより、不明なデバイスが発生することがなくなる。
〔第2実施形態〕
図21は、本実施形態を示す画像形成装置におけるComposite USBの構成を示す図である。
図21において、1301は、複合装置206全体のComposite USBを示し、1つのコンフィギュレーション1302と、更にコンフィギュレーション1302の中にインタフェース0に対応するインタフェース1303が存在する例である。このインタフェース1303が複合デバイスを構成する要素になっている。インタフェース1303はPDL1のデバイスを示している。
この例では、結果として図11に示すユーザインタフェース1903で示したように、1つのPDLに対応したプリンタアイコン1904が作成されることになる。ここで、プリンタアイコン1904はPDL1に対応している。
本例は、図10に示すコンフィギュレーションと比較して、この図21に示すComposite USBにはStorageデバイスがないのが特徴となっている。なお、このインタフェースの組み合わせは一例であり、Storageデバイス以外の図8に記述されているインタフェースの別の組み合わせで構成すれば、どの組み合わせでも問題なく構成することができる。
なお、第2実施形態においても、製品出荷時や、複合装置206とコンピュータ201の間のUSBケーブルを抜いて接続を解除した時の構成は図9に示した1つのStorageデバイスだけ存在している複合装置206となる。
図22は、本実施形態を示す画像形成装置におけるデータ処理手順を示すフローチャートである。本例は、USBケーブル(図1の双方向インタフェース21に対応する)の接続状況の監視とRAM19を割り当てたStorageデバイスの状態を監視する処理例である。なお、S1402〜S1410は各ステップを示し、各ステップは、図1に示した複合装置206上に存在するROM13のプログラムROMもしくは14外部メモリ上に格納されたプログラムをCPU12が実行することで実現される。また、ここで言うStorageデバイスとは、図9に示したインタフェース0に対応するインタフェース603が管理するStorageデバイスのことを指し、具体的には図1のRAM19の一部を利用して構成される。
このStorageデバイスは、図1に示したコンピュータ201上からはOS(不図示)の機能を利用することにより、外部メモリ11の一種として見ることができる。
USB/Storage監視処理が開始されると、S1402で、CPU12は、USBケーブル(図1に示した双方向インタフェース21に対応する)が複合装置206上から抜かれたか否かをCheckする。ここで、一度接続されていたUSBケーブルが抜かれたとCPU12が判断した場合、S1403に進み、状態に変化が無いとCPU12が判断した場合には、S1405に進む。ここで、状態に変化が無いとは、抜かれていたUSBケーブルが抜かれたままの場合や、接続されていたUSBケーブルが接続されたままの場合である。
そして、S1403で、CPU12は、一度接続されたUSBケーブルが抜かれたので新しいデバイスの構成をStorageデバイスのみにするべく、New構成をStorageデバイスのみとする。そして、S1404で、CPU12は、デバイスの構成を新しくするためにデバイス再構成する処理に制御を移す。
そして、CPU12によるデバイス再構成処理が終了した後、S1402に戻り、再びUSBケーブルの状態に変化があったか否かを監視する。先にも述べたが、S1402ではすでにUSBケーブルが抜かれており、その状態に変化がない状態の場合は抜かれたとは判断しない。一度この判断を行った時点でUSBケーブルが接続されており、その後、抜かれた状態に変化した場合にのみ、USBケーブルが抜かれたと判断する。
一方、S1402でUSBケーブルが抜かれたとCPU12が判断した場合は、S1405で、Storageデバイス自体が存在するか否かをCPU12が確認する。第2実施形態では、Storageデバイスが存在しない状態があり得るので、まず初めにその状態を確認する。
具体的には、複合装置206上のUSB構成(図9や図21)を確認し、StorageデバイスがActiveであるか否かをCPU12が確認する。ここで、StorageデバイスがActiveで有るとCPU12が判断した場合は、S1406に進み、StorageデバイスがActiveで無いとCPU12が判断した場合には、S1402に戻る。
そして、S1406では、Storageデバイスに何か新しく格納されたか否かをCPU12が判断する。ここでも、S1402と同様に状態変化をCPU12が監視する。ここで、状態に変化が無いとCPU12が判断した場合(格納されていたものがそのまま格納されている場合)は、何か入ったとは判断しない。
一方、Storageデバイスに対して、新規に新しいものが投入された場合や、一度格納されていたものが消えた後、再び、Storageデバイスに対して格納された場合などには、何か入ったとCPU12が判断する。
ここで、何か入ったとCPU12が判断した場合には、S1407に進み、入っていないとCPU12が判断した場合には、S1402に戻る。なお、必要に応じて再度、S1402に戻る前に適度な空き時間を入れる制御をCPU12が行うことで、CPU12の能力を無駄にしないように制御しても良い。
そして、S1407では、Storageデバイスに新しく入ったデータが、コンピュータ201から取得する上述した図13に示すデバイス構成データであるか否かをCPU12が判断する。なお、判断手法は、第1実施形態と同様であるので説明は省略する。
ここで、新しく入ったデータがデバイス構成データであるとCPU12が判断した場合には、S1408に進み、デバイス構成データではないとCPU12が判断した場合には、S1410に進む。
そして、S1408では、新しいデバイスの構成を選択されたデバイス構成データのみにするべく、CPU12は、New構成を選択されたデバイス構成データとする。そして、S1409で、CPU12は、デバイスの構成を新しくするためにデバイス再構成処理に制御を移す。本実施形態では、S1409のデバイス再構成を行った後は、Storageデバイスがなくなるので、Storageデバイスに投入されたデバイス構成データも同時に消えてなくなる。そして、デバイス再構成処理を終了したら、S1402に移動して再びUSBケーブルの状態に変化があったか否かを監視する。
なお、先にも述べたが、S1402ではすでにUSBケーブルが抜かれており、その状態に変化がない状態の場合は抜かれたとは判断しない。一度この判断を行った時点でUSBケーブルが接続されており、その後、抜かれた状態に変化した場合にのみ、USBケーブルが抜かれたと判断する。
一方、S1407でNOとCPU12が判定された後、S1410に処理が移ってきた時点で、コンピュータ201から取得したデータはデバイス構成データではないことが明らかである。
本実施形態において、RAM19のStorageデバイスで受け付けるデータはデバイス構成データなので、この場合、Storageデバイスに格納されたのは処理できないデータであることになる。
従って、S1410では、CPU12がStorageデバイスに格納されたデータを単純に削除する処理を行い、S1402に移動して、再びUSBケーブルの状態に変化があったか否かをCPU12が監視する。
なお、複合装置206が起動した時点からこの図14のフローが動き出し、デバイスが動作している限り、終了することなく動き続ける処理であるため、図22に示すフローには終了がない。
以上述べたように、本実施形態では、図22の処理で、USBの接続が切れた場合に、Storageデバイスだけのデバイスに構成を変化させることができる。また、Storageデバイスに投入されたデバイス構成データの指示に従ったデバイス構成に変化させることができる。
さらに、Storageデバイスに投入されたデバイス構成データ以外のデータを削除して無視することができる。
また、図14に示したデバイス再構成処理は、第2実施形態でもそのまま有効であり、S902で、New構成に従ったデバイスの構成にデバイスを再構成することができる。なお、詳細な説明は省略する。
図23は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、複合装置に対するデバイスドライバを印刷する際に、デバイス構成データを作成して複合装置206のStorageデバイス(RAM19)に格納する処理例である。なお、S1502〜S1513は各ステップを示し、各ステップは、コンピュータ201上に存在する外部メモリ11に格納されたプログラムをCPU1が実行することで実現される。なお、図15に示す処理との違いは、作成されたデバイス構成データをコンピュータ201に一時保存し、Storageデバイスの存在をチェックした後、複合装置に転送する点が異なる。
本処理は、CPU1がコンピュータ201の外部メモリ11であるCDやHDDやメモリデバイス上に格納されている図5に示したドライバInstallプログラム2301を起動すると開始される。
ます、S1502では、コンピュータ201の外部メモリ11上の一時領域にドライバセットが存在するか否かをCPU1が判断する。この外部メモリ11上の一時領域は、Plug and Playの時にコンピュータ201上のOS(不図示)からinfファイルの存在確認がなされる領域である。ここで、ドライバセットがあるとCPU1が判断した場合には、S1504に進み、無いとCPU1が判断した場合は、S1503に進む。
なお、ここでは、すでにドライバセットがある場合、S1503をスキップしているが、この判断を行わず、強制的にS1503を実行しても良い。この様な処理は、例えばVersion違いの新しいドライバを入手した時などにより新しいVersionのドライバを使う為に有効な処理である。
そして、S1503で、コンピュータ201の外部メモリ11上であるCDやHDDやメモリデバイスにあるドライバプログラムを外部メモリ11上の一時領域にコピーしておく。この処理を実行することにより、後ほどPlug and Playを行ったときに OSからinfファイルの検索が行えるようになる。
次に、S1504で、図16に一例を示したようなメニュー画面をディスプレイ10上にCPU1の制御で表示して、コンピュータ201の利用者に利用したいデバイスドライバの選択を行ってもらう。なお、ディスプレイ10に表示される図16に示した画面は、第2実施形態においてもそのまま有効である。
次に、S1505では、図16に示した画面でデバイスドライバが選択されたか否かCPU1が判断する。ここで、デバイスドライバが選択する条件は、例えば図16に示す画面において、ユーザの操作に基づいて、OKボタン1208が押下されていること。並びに、図16に示したCheck項目1202〜1206のうち1つ以上のCheck項目に対応するチェックボックスに対してCheckがなされていればデバイスドライバが選択されていることである。そこで、これらの条件を満足しているとCPU1が判断した場合は、S1506に進む。
一方、以下の条件を満足しているとCPU1が判断した場合は、デバイスドライバが選択されていないと判断する。具体的には、図16において、Check項目1202〜1206のうちのいずれのCheckに対応するチェックボックスにCheckがなされていないこと。並びに、図16に示す画面でキャンセルボタン1207がユーザの操作に基づいて押下されているとCPU1が判断した場合は、デバイスドライバが選択されていないと判断して、S1511に進む。
そして、S1506では、図16に示す画面において、ユーザが選択したCheck項目に従って、図13に示したデバイス構成データ1803をCPU1がデバイス構成データ作成ステップ208を実行して作成する。
そして、S1507では、CPU1が作成したデバイス構成データをコンピュータ201の外部メモリ11上の領域に一時保管しておく。なお、ここでは外部メモリ11上の領域に一時保管したが、デバイス構成データはPlug and Playで参照される訳ではない。このため、後ほど参照するときに同じ場所を参照することが可能であれば、上記外部メモリ11上の領域でなくても他の場所でも構わない。
そして、S1508では、CPU1は、複合装置206のStorageデバイスの存在をCheckする。複合装置206のStorage(RAM19の一部)はコンピュータ201から見ると、あたかも外部メモリ11の1つとして見ることができる。ここで、存在Checkの方法であるが、一例としては、Storageデバイス内に非表示属性のStorage認識用のTagファイル(図17に示したファイル2202)を予め格納しておく。そして、システムとして複数存在する外部メモリ11を順次調べて行き、このStorage認識用のTagファイルのあるデバイスが複合装置206のStorageデバイスであると認識する方法がある。
また、別の例としては、Storageデバイスのボリューム名として予め決めておいた文字列を埋め込むことで、その文字列が図17に示すボリューム名2204となっているデバイスが複合装置206のStorageであると認識する方法もある。なお、判断手法については、第1実施形態と同様であるので説明を省略する。
上記S1508で、Storageデバイスの存在をCheckの結果、StorageデバイスがないとCPU1が判断した場合には、USBケーブルでコンピュータ201と複合装置206が接続されていない可能性がある。従って、接続を促す図18に示した画面2001を表示するべく、S1512に進む。
一方、S1508で、StorageデバイスがあるとCPU1が判断した場合には、S1509に進む。そして、S1509で、CPU1は、双方向インタフェース21を介して、新しい構成に従って作成したデバイス構成データを複合装置206のStorageデバイスに転送する。この時、図13に一例を示すデバイス構成データ1803のように、ファイル名として自分のGUIDを使用して、例えばGUID.guidという名称で非表示属性と読み取り専用属性を付けて格納する。なお、図13に一例を示すデバイス構成データ1803、1804は、第1実施形態で説明した通りである。
ここで、非表示属性属性を付けるのは複合装置206のStorageデバイスがコンピュータ201上では、外部メモリ11の一部として見ることができる為、その内部も容易に参照することが可能な為である。つまり、ユーザによる不用意な修正を防止する目的で、非表示属性を付けておく。また、削除されてしまうと、デバイス構成が消えてしまうので、不用意な削除を防止する目的で、読み取り専用属性も付けておく。
これにより複合装置206では、ファイル名称の拡張子.guidをもってそのファイルがデバイス構成データであることを識別することが可能となる。
また、拡張子の前のGUIDの部分は、それを作成したコンピュータ201が自分の作成したデータであることを識別するために用いる。
なお、ファイルの内部の先頭行には 0x00, 0x01, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 が記載されており、この数バイトでこのファイルがデバイス構成データであることを示している。この値と長さはこの例に限ったものではなく、ファイルの内容を一意に識別可能と思われる値であれば、これに限るものではない。
なお、ここでは、デバイス構成データであることを識別する為にGUIDをファイル名称として用い、拡張子に.guidを用いているが、この拡張子はこれに限るものではない。
更に、デバイス構成データのファイル名称にGUIDを用いない構成も可能であり、図13に一例を示すデバイス構成データ1804で示した例も考えられる。デバイス構成データ1804の構成は、第1実施形態と同様である。また、この例でも先の例と同様な理由で、ファイルには非表示属性と読み取り専用属性を付けて格納しておく。
次に、S1510では、Storageデバイス監視処理が起動されていない場合、CPU1はStorageデバイス監視処理(Storageデバイス監視ステップ209に対応する)を起動する。この図23に示す処理を初めて実行した場合には、Storageデバイス監視処理は起動されていない。しかし、2回目以降に実行した場合には、すでに実行されている場合があり得る、そのような場合には、同じ処理を2重に起動しないように、制御しながら、必要な場合にのみ起動をかける。その後、処理を終了する。
なお、この後、複合装置206側では、図22に示したS1408及びS1409の処理が実行され、USBの構成が図16で指定した通りになる。その後、コンピュータ201上で動いているOS(不図示)がPlug and Playの機能により外部メモリ11上の一時領域をCheckして、S1503で、外部メモリ11上の一時領域にセットされたドライバのinfファイルが検出される。その結果、デバイスドライバがInstallされて使えるようになる。
一方、S1505で、図16に示した画面でデバイスドライバが選択されないとCPU1が判断した場合は、S1511へ進む。そして、S1511で、デバイスドライバ選択せず処理を終了させたいという意思を再確認する意味で、図19に一例を示した処理終了確認画面をディスプレイ10にCPU1の制御で表示して、ユーザの判断に基づく指示をまつ。
そして、図19に示す画面において、OKボタン2103が押下されているとCPU1が判断した場合は、処理を終了する。
一方、S1511で、図19に示す画面において、キャンセルボタン2102が押下されているとCPU1が判断した場合は、処理を終了させずに、S1504に戻り、再度図16で一例を示したようなメニュー画面をディスプレイ10に表示する。そして、図16に示す画面において、コンピュータ201の利用者に利用したいデバイスドライバの選択を行ってもらう処理に移る。
一方、S1508では、デバイス構成データ作成後にStorageデバイスの存在確認を行った結果、Storageデバイスが存在しないとCPU1が判断した場合は、S1512へ進む。そして、S1512で、デバイス構成データの処理を正しく進める為に、USBケーブル(図1の双方向インタフェース21)を接続させる指示をユーザに通知するため図18に一例を示す画面をCPU1の制御で表示する。コンピュータ201の利用者は、図18に示す画面を確認して、複合装置206に対してUSBケーブル(図1の双方向インタフェース21)を接続する必要があることを確認する。
そして、S1513で、S1512で表示された図18に一例を示す画面において、利用者の指示が終了を示すキャンセルボタン2002を押下しているかどうかをCPU1が判断する。ここで、キャンセルボタン2002を押下しているとCPU1が判断した場合は、処理を終了する。
一方、S1513で、USBケーブルを接続してOKボタン2003を押下しているとCPU1が判断した場合には、S1508に戻り、Storageデバイスの存在確認処理に移る。
以上述べたように図23の処理で、デバイス構成データを作成して複合装置206のStorageデバイス(RAM19)に格納した後、複合装置206でUSBの再構成処理が行われる。更にその結果、Play and Platが発生して図16に示す画面において、ユーザが指示したデバイスドライバがOSにInstallされて使えるようになる。
図24は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、複合装置206のStorageデバイス(19RAMの一部)の存在状況を監視し、その内容をCheckする処理例である。なお、S1602、S1603は各ステップを示し、各ステップは、コンピュータ201上に存在する外部メモリ11に格納されたプログラムをCPU1が実行することで実現される。
まず、CPU1は、コンピュータ201の外部メモリ11上にあるStorageデバイス監視処理を起動する。
そして、S1602で、複合装置206のStorageデバイス(RAM19の一部)がコンピュータ201から外部メモリ11の一つとして見ることができるか否かを確認する。ここで、Storageデバイスが無いとCPU1が判断した場合、つまり、コンピュータ201から外部メモリ11の一つとして見ることができないと判断した場合には、S1602に戻り、再度存在状況の確認を行う。なお、必要に応じて、再度S1602の処理に戻る前に、適度な空き時間を入れて、図1に示したCPU1の能力を無駄に浪費しないように制御しても良い。
一方、S1602で、StorageデバイスがあるとCPU1が判断した場合は、S1603に処理を移す。なお、S1603に進む場合は、一度Storageデバイスにデバイス構成データを格納してデバイスの構成処理を実行させた後、USBケーブルを抜くなどしてデバイス構成がStorageデバイスのみに戻ってしまった場合が考えられる。
本実施形態では、一度デバイス構成データを作成して、デバイス再構成を実施するとStorageデバイスがなくなるので、再びStorageが出現するときには、そこには何も入っていないことが明らかである。
そこで、S1603では、コンピュータ201の外部メモリ11の一時領域にある、デバイス構成データを複合装置206のStorageデバイスへコピーして、S1602へ戻る。この後、複合装置206では、図22に示すS1408及びS1409の処理が実行され、USBの構成が図16で指定した通りの形になる。
なお、この図16のフローには終了がない。それは、コンピュータ201上で最初にこの処理が起動した時点から、コンピュータ201が動作している限り、終了することなく動き続ける処理であるため、このフローには終了がない。
また、コンピュータ201を一度終了させて再起動した場合にも、再起動後から終了することなく動き続ける処理の為、やはりこのフローには終了がない。
上述したように本システムにおいて、複合装置206上でUSB/Storageデバイス監視ステップ205とデバイス再構成ステップ204を実行する。一方、コンピュータ201上ではデバイス構成データ作成ステップ208とStorageデバイス監視ステップ209を実行する。これにより、デバイスが情報処理装置に接続された場合に、インストール可能な複数のデバイスドライバのうち、ユーザが所望するデバイスを使用可能なようにデバイスドライバをインストールすることが可能となる。
また、ユーザによるデバイスの構成を選択する処理は、複合装置上の操作部での操作ではなく、コンピュータ上のユーザインタフェースを介して行うことができる。
また、同じクライアントコンピュータとのUSBケーブルの再接続では、その都度一度構成したデバイス構成に自動的に戻すことができる。また、複数のクライアントコンピュータでUSBケーブルをつなぎ変えて使用する場合には、接続するクライアントコンピュータでの構成に応じてその構成を変化させることが可能となる。
さらに、複合装置購入直後にドライバのInstallなしでクライアントコンピュータに接続しても、OSが標準でデバイスドライバを持っているStorageデバイスしかActiveとはなっていない。このため、クライアントコンピュータにおいて、不明なデバイスが発生することを防ぐことが可能となる。
以下、図25,図26に示すメモリマップを参照して本発明に係る情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
図25は、本発明に係る画像形成装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
図26は、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
本実施形態における機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやftpサーバ等も本発明の請求項に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
本実施形態を示す情報処理装置、画像形成装置を含む印刷システムの構成を説明するブロック図である。 図1に示した印刷システムにおけるデータ処理ステップを説明する概念図である。 図1に示した複合装置206の通常のインタフェース構成を説明する図である。 本実施形態を示す情報処理装置におけるデータ処理を説明するフローチャートである。 本実施形態を示す画像形成装置によるドライバインストールモジュールの構成を説明する図である。 図1に示したコンピュータ201で表示可能なユーザインタフェースの一例を示す図である。 一般的なコンピュータシステムにおけるPlug and Playの仕組みを説明する図である。 図1に示した複合装置206のインタフェース構成を説明する図である。 図1に示した複合装置206のインタフェース構成を説明する図である。 図1に示した複合装置206のインタフェース構成を説明する図である。 図1に示したコンピュータ201で表示可能なユーザインタフェースの一例を示す図である。 本実施形態を示す画像形成装置におけるデータ処理の一例を示すフローチャートである。 図1に示した複合装置206におけるデバイス構成データの一例を示す図である。 本実施形態を示す画像形成装置におけるデータ処理の一例を示すフローチャートである。 本実施形態を示す情報処理装置におけるデータ処理の一例を示すフローチャートである。 図1に示したディスプレイ10に表示されるユーザインタフェースの一例を示す図である。 図1に示したディスプレイ10に表示されるユーザインタフェースの一例を示す図である。 図1に示したディスプレイ10に表示されるユーザインタフェースの一例を示す図である。 図1に示したディスプレイ10に表示されるユーザインタフェースの一例を示す図である。 本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。 本実施形態を示す画像形成装置におけるComposite USBの構成を示す図である。 本実施形態を示す画像形成装置におけるデータ処理手順を示すフローチャートである。 本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。 本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。 本発明に係る画像形成装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。 本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
符号の説明
1、12 CPU
2、19 RAM
3、13 ROM
201 クライアントコンピュータ
206 複合装置

Claims (24)

  1. 複数のデバイスドライバを備える画像形成装置であって、
    情報処理装置と通信する通信手段と、
    前記情報処理装置から取得する情報を保管する保管デバイスと、
    前記通信手段の通信状態が変化することに応じて、前記保管デバイスに基づくデバイス情報を構成するデバイス構成手段と、を備え、
    前記デバイス構成手段は、前記複数のデバイスドライバの中からユーザにより選択されるデバイスドライバで特定されるデバイス構成データを前記情報処理装置から取得して、前記デバイス情報を再構成することを特徴とする画像形成装置。
  2. 前記デバイス構成手段は、
    前記通信手段の通信状態が非通信状態から通信状態に変化したことを認識した後、通信状態が通信状態から非通信状態に遷移した場合に、前記保管デバイスに基づくデバイス情報を再構成することを特徴とする請求項1に記載の画像形成装置。
  3. 前記デバイス構成手段が前記保管デバイスに基づくデバイス情報を再構成する場合、前記保管デバイスに保管されていた前記デバイス構成データを非表示属性にして前記保管デバイス上で管理する管理手段を備えることを特徴とする請求項2に記載の画像形成装置。
  4. 前記デバイス構成データは、前記情報処理装置のオペレーティングシステムを識別するための識別情報を含むことを特徴とする請求項1又は3に記載の画像形成装置。
  5. 前記識別情報は、所定の疑似乱数に基づいて生成されることを特徴とする請求項4記載の画像形成装置。
  6. 前記通信手段は、前記情報処理装置と無線又は有線のインタフェースを介して通信することを特徴とする1又は2に記載の画像形成装置。
  7. 前記デバイスドライバは、印刷処理を行うプリンタドライバ、原稿読み取りを行うスキャナドライバを含むことを特徴とする請求項1に記載の画像形成装置。
  8. 複数のデバイスドライバを備える画像形成装置と通信可能な情報処理装置であって、
    前記複数のデバイスドライバの中から使用するデバイスドライバを選択する選択手段と、
    前記選択手段により選択されたデバイスドライバにより特定されるデバイス構成データを作成する作成手段と、
    前記作成手段により作成されたデバイス構成データを前記画像形成装置の保管デバイスに転送する転送手段と、
    前記保管デバイスに保管されるデバイス情報に基づいて前記複数のデバイスドライバの中から特定されるいずれかのデバイスドライバをインストールするインストール手段と、
    を備えることを特徴とする情報処理装置。
  9. 前記作成手段により作成されたデバイス構成データに一致するデバイス構成データが前記保管デバイスに保管されているかどうかを判別する判別手段と、
    前記判別手段が保管されていると判別した場合、前記保管デバイスに保管されている前記デバイス構成データを削除する削除手段とを備え、
    前記転送手段は、
    前記削除手段による削除が終了した後、前記作成手段が作成したデバイス構成データを前記保管デバイスに転送することを特徴とする請求項8に記載の情報処理装置。
  10. 前記作成手段により作成されたデバイス構成データに一致するデバイス構成データが前記保管デバイスに保管されているかどうかを判別する判別手段と、
    前記判別手段が保管されていると判別した場合、前記保管デバイスに保管されていた前記デバイス構成データを取得して一時保管する一時保管手段とを備え、
    前記転送手段は、
    前記一時保管手段に前記デバイス構成データを保管した後、前記作成手段が作成したデバイス構成データを前記保管デバイスに転送することを特徴とする請求項8に記載の情報処理装置。
  11. 前記作成手段は、前記デバイス構成データの名称に、転送元の情報処理装置のオペレーティングシステムを識別する識別情報を設定することを特徴とする請求項8乃至10のいずれか1項に記載の情報処理装置。
  12. 前記識別情報は、所定の疑似乱数に基づいて生成されることを特徴とする請求項11記載の情報処理装置。
  13. 情報処理装置との通信で取得する情報を保管する保管デバイスと、複数のデバイスドライバとを備える画像形成装置におけるデータ処理方法であって、
    前記情報処理装置との通信状態が変化することに応じて、前記保管デバイスに基づくデバイス情報を構成するデバイス構成ステップを備え、
    前記デバイス構成ステップは、前記複数のデバイスドライバの中からユーザにより選択されるデバイスドライバで特定されるデバイス構成データを前記情報処理装置から取得して、前記デバイス情報を再構成することを特徴とするデータ処理方法。
  14. 前記デバイス構成ステップは、
    前記情報処理装置との通信状態が非通信状態から通信状態に変化したことを認識した後、通信状態が通信状態から非通信状態に遷移した場合に、前記保管デバイスに基づくデバイス情報を再構成することを特徴とする請求項13に記載のデータ処理方法。
  15. 前記デバイス構成ステップが前記保管デバイスに基づくデバイス情報を再構成する場合、前記保管デバイスに保管されていた前記デバイス構成データを非表示属性にして前記保管デバイス上で管理する管理ステップを備えることを特徴とする請求項14記載のデータ処理方法。
  16. 前記デバイス構成データは、前記情報処理装置のオペレーティングシステムを識別するための識別情報を含むことを特徴とする請求項13又は15に記載のデータ処理方法。
  17. 前記識別情報は、所定の疑似乱数に基づいて生成されることを特徴とする請求項16記載のデータ処理方法。
  18. 前記デバイスドライバは、印刷処理を行うプリンタドライバ、原稿読み取りを行うスキャナドライバを含むことを特徴とする請求項13記載のデータ処理方法。
  19. 複数のデバイスドライバを備える画像形成装置と通信可能な情報処理装置におけるデータ処理方法であって、
    前記複数のデバイスドライバの中から使用するデバイスドライバを選択する選択ステップと、
    前記選択ステップにより選択されたデバイスドライバにより特定されるデバイス構成データを作成する作成ステップと、
    前記作成ステップにより作成されたデバイス構成データを前記画像形成装置の保管デバイスに転送する転送ステップと、
    前記保管デバイスに保管されるデバイス情報に基づいて前記複数のデバイスドライバの中から特定されるいずれかのデバイスドライバをインストールするインストールステップと、
    を備えることを特徴とするデータ処理方法。
  20. 前記作成ステップにより作成されたデバイス構成データに一致するデバイス構成データが前記保管デバイスに保管されているかどうかを判別する判別ステップと、
    前記判別ステップが保管されていると判別した場合、前記保管デバイスに保管されている前記デバイス構成データを削除する削除ステップとを備え、
    前記転送ステップは、
    前記削除ステップによる削除が終了した後、前記作成ステップが作成したデバイス構成データを前記保管デバイスに転送することを特徴とする請求項19記載のデータ処理方法。
  21. 前記作成ステップにより作成されたデバイス構成データに一致するデバイス構成データが前記保管デバイスに保管されているかどうかを判別する判別ステップと、
    前記判別ステップが保管されていると判別した場合、前記保管デバイスに保管されていた前記デバイス構成データを取得して一時保管する一時保管ステップとを備え、
    前記転送ステップは、
    前記一時保管ステップに前記デバイス構成データを保管した後、前記作成ステップが作成したデバイス構成データを前記保管デバイスに転送することを特徴とする請求項19記載のデータ処理方法。
  22. 前記作成ステップは、前記デバイス構成データの名称に、転送元の情報処理装置のオペレーティングシステムを識別する識別情報を設定することを特徴とする請求項19乃至21のいずれか1項に記載のデータ処理方法。
  23. 前記識別情報は、所定の疑似乱数に基づいて生成されることを特徴とする請求項22に記載のデータ処理方法。
  24. 請求項13乃至23のいずれか1項に記載のデータ処理方法をコンピュータに実行させることを特徴とするプログラム。
JP2008200653A 2008-08-04 2008-08-04 画像形成装置、情報処理装置、データ処理方法及びプログラム Withdrawn JP2010039684A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008200653A JP2010039684A (ja) 2008-08-04 2008-08-04 画像形成装置、情報処理装置、データ処理方法及びプログラム
US12/510,556 US20100027041A1 (en) 2008-08-04 2009-07-28 Image forming apparatus, information processing apparatus, data processing method, and storage medium storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008200653A JP2010039684A (ja) 2008-08-04 2008-08-04 画像形成装置、情報処理装置、データ処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2010039684A true JP2010039684A (ja) 2010-02-18

Family

ID=41608023

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008200653A Withdrawn JP2010039684A (ja) 2008-08-04 2008-08-04 画像形成装置、情報処理装置、データ処理方法及びプログラム

Country Status (2)

Country Link
US (1) US20100027041A1 (ja)
JP (1) JP2010039684A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762582B2 (en) 2010-09-17 2014-06-24 Brother Kogyo Kabushiki Kaisha Data processing apparatus capable of communicating with external device via a plurality of logical lines, data processing system, data processing device storing data processing program, and device driver

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5195212B2 (ja) * 2008-09-17 2013-05-08 株式会社リコー 管理システム、管理装置、管理方法、管理プログラム、および記録媒体
WO2011146349A2 (en) * 2010-05-17 2011-11-24 Piasecki Aircraft Corp. Modular and morphable air vehicle
JP5640556B2 (ja) * 2010-08-23 2014-12-17 富士ゼロックス株式会社 画像形成装置及び画像形成プログラム
EP3726283A1 (en) 2012-01-25 2020-10-21 Dexerials Corporation Method of manufacturing image display device
TWI451272B (zh) * 2012-05-02 2014-09-01 Arcadyan Technology Corp 整合週邊裝置之通用型驅動方法與系統
JP2015039805A (ja) * 2013-08-21 2015-03-02 キヤノン株式会社 画像形成装置、制御方法およびプログラム
WO2018186855A1 (en) * 2017-04-05 2018-10-11 Hewlett-Packard Development Company, L.P. Remote device configurations

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6854121B2 (en) * 2001-02-16 2005-02-08 Canon U.S.A., Inc. Command interface to object-based architecture of software components for extending functional and communicational capabilities of network devices
JP4464029B2 (ja) * 2001-04-19 2010-05-19 キヤノン株式会社 情報処理方法および制御プログラムおよび情報処理装置および周辺装置および応答方法および代理応答装置およびネットワークシステム
EP1398694B1 (en) * 2002-07-26 2013-09-11 Canon Kabushiki Kaisha Information processing method
JP4827388B2 (ja) * 2003-07-31 2011-11-30 キヤノン株式会社 通信システム、情報処理装置、印刷制御方法、及びプログラム
JP4273024B2 (ja) * 2004-03-10 2009-06-03 キヤノン株式会社 情報処理装置、画像形成装置、該装置における方法、システム
JP4703210B2 (ja) * 2005-02-15 2011-06-15 株式会社沖データ 画像形成装置及び画像形成システム
JP2006285750A (ja) * 2005-04-01 2006-10-19 Matsushita Electric Ind Co Ltd 印刷処理装置、印刷処理システム及び印刷処理方法
JP4636933B2 (ja) * 2005-05-09 2011-02-23 キヤノン株式会社 印刷制御装置および印刷制御方法
KR100694124B1 (ko) * 2005-06-08 2007-03-12 삼성전자주식회사 화상형성장치의 드라이버 갱신 방법 및 장치
US8179538B2 (en) * 2005-08-31 2012-05-15 Canon Kabushiki Kaisha Image processing apparatus, information processing apparatus and control method
US8085417B2 (en) * 2006-03-14 2011-12-27 Seiko Epson Corporation Multifunction peripheral unit that executes a selected processing function using two selected devices
JP4182116B2 (ja) * 2006-04-28 2008-11-19 キヤノン株式会社 印刷制御装置及びその制御方法及びコンピュータプログラム
JP4805116B2 (ja) * 2006-12-11 2011-11-02 株式会社日立製作所 情報処理システム、情報処理システムの制御方法、サービス利用装置及びサービス提供装置
JP4996272B2 (ja) * 2007-01-31 2012-08-08 キヤノン株式会社 情報処理装置及びその制御方法及び該方法を実行するプログラム
JP4333764B2 (ja) * 2007-03-28 2009-09-16 ブラザー工業株式会社 デバイス制御システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762582B2 (en) 2010-09-17 2014-06-24 Brother Kogyo Kabushiki Kaisha Data processing apparatus capable of communicating with external device via a plurality of logical lines, data processing system, data processing device storing data processing program, and device driver

Also Published As

Publication number Publication date
US20100027041A1 (en) 2010-02-04

Similar Documents

Publication Publication Date Title
JP2010039684A (ja) 画像形成装置、情報処理装置、データ処理方法及びプログラム
US7580398B2 (en) Information processing device, printing device, printing system, system setting method, storage medium storing computer-readable program, and program
US8850459B2 (en) Information processing apparatus, information processing method, and program
US8717599B2 (en) Peripheral device and image reading device
US11789676B2 (en) Information apparatus, controlling method for information apparatus, and storage medium
US7979600B2 (en) Multifunction peripheral and device control system
KR101337160B1 (ko) 정보 처리 장치, 정보 처리 방법 및 기억 매체
JP4378323B2 (ja) 情報処理装置および印刷装置および印刷システムおよび設定方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
US20110075207A1 (en) Information processing apparatus and method thereof
JP2004127252A (ja) 情報処理装置、情報処理方法、制御プログラム
JP3903024B2 (ja) 出力管理方法及び情報処理装置
JP4579799B2 (ja) 画像形成装置及びその制御方法、プログラム、画像形成システム
JP7439207B2 (ja) プログラム
US9250850B2 (en) Information processing apparatus, information processing method, and program
WO2014136429A1 (en) Information processing apparatus and method for the same
JP2008015912A (ja) 情報処理装置及びデバイスドライバ削除方法
US8363236B2 (en) Information processing apparatus, device management method, and computer-readable storage medium
JP5596376B2 (ja) 周辺装置
JP7387342B2 (ja) アプリケーション、情報処理装置及び制御方法
JP2001326766A (ja) 画像処理システム、画像データ処理方法及び記憶媒体
JP2006293638A (ja) 情報処理装置及び周辺装置
JP2010102500A (ja) 印刷システム、情報処理装置及びその制御方法、並びにプログラム
JP6057740B2 (ja) 画像形成装置、情報処理方法及びプログラム
JP2009151678A (ja) 画像形成装置及び画像形成システム
JP2008310674A (ja) 情報処理装置、操作処理方法、記憶媒体、プログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20111004