(57)【特許請求の範囲】
【請求項１】
デバイスが電気的に着脱可能な本体と、前記本体に設けられて前記デバイスを制御するコントローラーと、前記コントローラーによって実行されるプログラムを記憶しているプログラム記憶部とを備えている画像形成装置であって、
前記本体は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）コネクターを介してＵＳＢメモリーと電気的に着脱可能であり、
前記本体は、印刷を実行するプリンターを前記デバイスとして備えており、
前記本体は、原稿から画像を読み取るスキャナーと、ＦＡＸの送受信を行うＦＡＸ通信装置とが前記デバイスとして電気的に着脱可能であり、
前記本体は、スキャナー用コネクターを介して前記スキャナーと電気的に着脱可能であり、
前記本体は、ＦＡＸ通信装置用コネクターを介して前記ＦＡＸ通信装置と電気的に着脱可能であり、
前記プログラム記憶部は、前記プリンターを制御するためのダイナミックリンクライブラリーであるプリンター用ＤＬＬと、前記本体に電気的に着脱可能な前記デバイスの種類別に設けられたダイナミックリンクライブラリーであるデバイス別ＤＬＬと、複数の前記デバイス別ＤＬＬが前記デバイスの種類別にダイナミックリンクされる実行ファイルとを前記プログラムとして備えており、
前記プログラム記憶部は、不揮発性記憶装置と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）とを備えており、
前記不揮発性記憶装置は、前記スキャナーを制御するためのスキャナー用ＤＬＬと、前記ＦＡＸ通信装置を制御するためのＦＡＸ通信装置用ＤＬＬとを前記デバイス別ＤＬＬとして記憶しており、
前記不揮発性記憶装置は、前記デバイス別ＤＬＬが書き換え可能であり、
前記プリンター用ＤＬＬであるｌｉｂｐｒｎ．ｓｏは、前記画像形成装置のデバイスに依存しない共通の処理および前記画像形成装置のデバイスのうち前記プリンターに特化した処理を担当するｐｒｉｎｔｅｒクラスのソースファイルであるｐｒｉｎｔｅｒ．ｃｐｐがコンパイルされることによってダイナミックリンクライブラリーとして作成されて前記不揮発性記憶装置上に記憶され、
前記スキャナー用ＤＬＬであるｌｉｂｓｃｎ．ｓｏは、前記画像形成装置のデバイスのうち前記スキャナーが装着されていない場合に使用されるｓｃａｎｎｅｒ＿ｄｕｍｍｙクラスのソースファイルであるｓｃａｎｎｅｒ＿ｄｕｍｍｙ．ｃｐｐがコンパイルされることによってダイナミックリンクライブラリーとして作成されて前記不揮発性記憶装置上に記憶され、
前記ＦＡＸ通信装置用ＤＬＬであるｌｉｂｆａｘ．ｓｏは、前記画像形成装置のデバイスのうち前記ＦＡＸ通信装置が装着されていない場合に使用されるｆａｘ＿ｄｕｍｍｙクラスのソースファイルであるｆａｘ＿ｄｕｍｍｙ．ｃｐｐがコンパイルされることによってダイナミックリンクライブラリーとして作成されて前記不揮発性記憶装置上に記憶され、
前記実行ファイルは、処理の実行を要求するｃｌｉｅｎｔクラスのソースファイルであるｃｌｉｅｎｔ．ｃｐｐがコンパイルされることによって作成されたｃｌｉｅｎｔ．ｏと、前記画像形成装置の各デバイスの処理を実行するクラスを前記ｃｌｉｅｎｔクラスからの要求を受けて生成するｆａｃｔｏｒｙクラスのソースファイルであるｆａｃｔｏｒｙ．ｃｐｐがコンパイルされることによって作成されたｆａｃｔｏｒｙ．ｏと、前記画像形成装置の各デバイスの処理を実行するクラスの抽象クラスであるｄｅｖｉｃｅクラスのソースファイルであるｄｅｖｉｃｅ．ｃｐｐがコンパイルされることによって作成されたｄｅｖｉｃｅ．ｏと、前記ｃｌｉｅｎｔクラスの処理を開始するメソッドをコールするためのｍａｉｎ．ｃｐｐがコンパイルされることによって作成されたｍａｉｎ．ｏとがリンクされるとともに、前記ｌｉｂｐｒｎ．ｓｏと、前記ｌｉｂｓｃｎ．ｓｏと、前記ｌｉｂｆａｘ．ｓｏとがダイナミックリンクされることによって作成されて前記ＲＯＭ上に記憶され、
前記コントローラーは、前記スキャナーに特化した処理を担当するｓｃａｎｎｅｒクラスのソースファイルであるｓｃａｎｎｅｒ．ｃｐｐがコンパイルされることによってダイナミックリンクライブラリーとして作成された前記ｌｉｂｓｃｎ．ｓｏが記憶されている前記ＵＳＢメモリーが前記ＵＳＢコネクターに電気的に接続されることによって、このｌｉｂｓｃｎ．ｓｏを前記不揮発性記憶装置上の前記ｌｉｂｓｃｎ．ｓｏに上書きし、
前記コントローラーは、前記ＦＡＸ通信装置に特化した処理を担当するｆａｘクラスのソースファイルであるｆａｘ．ｃｐｐがコンパイルされることによってダイナミックリンクライブラリーとして作成された前記ｌｉｂｆａｘ．ｓｏが記憶されている前記ＵＳＢメモリーが前記ＵＳＢコネクターに電気的に接続されることによって、このｌｉｂｆａｘ．ｓｏを前記不揮発性記憶装置上の前記ｌｉｂｆａｘ．ｓｏに上書きし、
前記スキャナーは、前記スキャナー用コネクターを介して前記本体に電気的に装着されている場合に、前記ｓｃａｎｎｅｒ．ｃｐｐがコンパイルされることによってダイナミックリンクライブラリーとして作成された前記ｌｉｂｓｃｎ．ｓｏが前記不揮発性記憶装置に記憶されているとき、前記スキャナーによって原稿から画像を読み取って画像データを生成するスキャナー機能を前記画像形成装置に備えさせ、
前記ＦＡＸ通信装置は、前記ＦＡＸ通信装置用コネクターを介して前記本体に電気的に装着されている場合に、前記ｆａｘ．ｃｐｐがコンパイルされることによってダイナミックリンクライブラリーとして作成された前記ｌｉｂｆａｘ．ｓｏが前記不揮発性記憶装置に記憶されているとき、前記ＦＡＸ通信装置によってＦＡＸ受信したＦＡＸデータに基づいた画像を用紙に印刷するＦＡＸ受信機能を前記画像形成装置に備えさせ、
前記スキャナーおよび前記ＦＡＸ通信装置は、前記スキャナーが前記スキャナー用コネクターを介して前記本体に電気的に装着されているとともに、前記ＦＡＸ通信装置が前記ＦＡＸ通信装置用コネクターを介して前記本体に電気的に装着されている場合に、前記ｓｃａｎｎｅｒ．ｃｐｐがコンパイルされることによってダイナミックリンクライブラリーとして作成された前記ｌｉｂｓｃｎ．ｓｏと、前記ｆａｘ．ｃｐｐがコンパイルされることによってダイナミックリンクライブラリーとして作成された前記ｌｉｂｆａｘ．ｓｏとが前記不揮発性記憶装置に記憶されているとき、前記スキャナーによって原稿から読み取った画像に基づいて生成したＦＡＸデータを前記ＦＡＸ通信装置によってＦＡＸ送信するＦＡＸ送信機能を前記画像形成装置に備えさせることを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスの着脱によって機能がカスタマイズされることができる画像形成装置に関する。
【背景技術】
【０００２】
従来、画像形成装置としては、印刷機能専用のプリンター専用機や、印刷機能だけでなく、複写機能、ＦＡＸ機能などの印刷機能以外の機能も備えている複合機などが知られている（例えば、特許文献１（第１図、第８図）参照。）。そして、例えば、プリンター専用機と、複合機とは、印刷機能を発揮する印刷デバイスとして同一の型式の印刷デバイスを備えていることがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２６８２５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のプリンター専用機は、たとえ複合機と同一の型式の印刷デバイスを備えている場合であっても、プリンター専用機自身を制御する実行ファイルが複合機を制御する実行ファイルとは異なるので、読取デバイスやＦＡＸデバイスなどの新たなデバイスが単に電気的に接続されただけでは、新たに接続されたデバイスを制御するプログラムが存在しないので、複合機として動作することができない。そのため、従来の画像形成装置は、デバイスの着脱によって機能がカスタマイズされる場合、画像形成装置自身を制御する実行ファイルが型式毎に製造されなければならない。
【０００５】
そこで、本発明は、デバイスの着脱によって従来より容易に機能がカスタマイズされることができる画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像形成装置は、デバイスが電気的に着脱可能な本体と、前記本体に設けられて前記デバイスを制御するコンピューターと、前記コンピューターによって実行されるプログラムを記憶しているプログラム記憶部とを備えており、前記プログラム記憶部は、前記本体に電気的に着脱可能な前記デバイスの種類別に設けられたダイナミックリンクライブラリーであるデバイス別ＤＬＬと、前記デバイス別ＤＬＬがダイナミックリンクされる実行ファイルとを前記プログラムとして備えており、前記プログラム記憶部は、前記デバイス別ＤＬＬが書き換え可能であることを特徴とする。
【０００７】
この構成により、本発明の画像形成装置は、デバイスが本体に対して着脱される場合、デバイス別ＤＬＬが書き換えられれば良く、実行ファイルが再ビルドされる必要がない。したがって、本発明の画像形成装置は、デバイスの着脱によって従来より容易に機能がカスタマイズされることができる。
【０００８】
また、本発明の画像形成装置の前記プログラム記憶部は、前記本体に対して電気的に着脱可能であって前記デバイス別ＤＬＬを記憶している記憶媒体を備えていても良い。
【０００９】
この構成により、本発明の画像形成装置は、デバイス別ＤＬＬを記憶している記憶媒体が本体に電気的に接続されるだけでデバイス別ＤＬＬが書き換えられるので、容易に機能がカスタマイズされることができる。
【００１０】
また、本発明の画像形成装置の前記記憶媒体は、前記デバイスと一体であり、前記デバイスが前記本体に電気的に接続されることによって前記本体に電気的に接続されても良い。
【００１１】
この構成により、本発明の画像形成装置は、デバイスが本体に電気的に接続されるだけでデバイス別ＤＬＬが書き換えられるので、容易に機能がカスタマイズされることができる。
【発明の効果】
【００１２】
本発明の画像形成装置は、デバイスの着脱によって従来より容易に機能がカスタマイズされることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施の形態に係る画像形成装置の正面図である。
【図２】図１に示す画像形成装置の構成を示すブロック図である。
【図３】スキャナーを備えていない場合の図１に示す画像形成装置の正面図である。
【図４】スキャナーおよびＦＡＸ通信装置を備えていない場合の図１に示す画像形成装置の構成を示すブロック図である。
【図５】図４に示す画像形成装置のプログラムのクラス図である。
【図６】図４に示す実行ファイル、プリンター用ＤＬＬ、スキャナー用ＤＬＬおよびＦＡＸ通信装置用ＤＬＬの作成手順を示す図である。
【図７】スキャナーを備えていてＦＡＸ通信装置を備えていない場合の図１に示す画像形成装置の構成を示すブロック図である。
【図８】図７に示す画像形成装置のプログラムのクラス図である。
【図９】ＦＡＸ通信装置を備えていてスキャナーを備えていない場合の図１に示す画像形成装置の構成を示すブロック図である。
【図１０】図９に示す画像形成装置のプログラムのクラス図である。
【図１１】図２に示す画像形成装置のプログラムのクラス図である。
【図１２】本発明の第２の実施の形態に係る画像形成装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、図面を用いて説明する。
【００１５】
（第１の実施の形態）
【００１６】
図１は、本実施の形態に係る画像形成装置１０の正面図である。
【００１７】
図１に示すように、画像形成装置１０は、本体２０と、本体２０に電気的に接続されたスキャナー４７ａと、本体２０およびスキャナー４７ａを支持する台５０とを備えている。
【００１８】
図２は、画像形成装置１０の構成を示すブロック図である。
【００１９】
図２に示すように、画像形成装置１０は、画像形成装置１０全体を制御するコンピューターであるコントローラー３０と、コントローラー３０に接続されていて種々の情報を表示する表示部４１と、コントローラー３０に接続されていて利用者によって種々の操作が入力される操作部４２と、コントローラー３０に接続されていてＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの図示していない外部の装置と直接またはネットワーク経由で通信を行うための通信インターフェイス４３と、コントローラー３０に接続されているＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの不揮発性記憶装置４４と、本体２０に対して電気的に着脱可能であって種々の情報を記憶している記憶媒体であるＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリー４５ａと、コントローラー３０に接続されていてＵＳＢメモリー４５ａが電気的に接続されるＵＳＢコネクター４５ｂと、コントローラー３０に接続されていて用紙に印刷を実行する印刷デバイスであるプリンター４６と、用紙から画像を読み取る読取デバイスであるスキャナー４７ａと、コントローラー３０に接続されていてスキャナー４７ａが電気的に接続されるスキャナー用コネクター４７ｂと、ＦＡＸの送受信を行うＦＡＸデバイスであるＦＡＸ通信装置４８ａと、コントローラー３０に接続されていてＦＡＸ通信装置４８ａが電気的に接続されるＦＡＸ通信装置用コネクター４８ｂとを備えている。
【００２０】
なお、コントローラー３０、表示部４１、操作部４２、通信インターフェイス４３、不揮発性記憶装置４４、ＵＳＢコネクター４５ｂ、プリンター４６、スキャナー用コネクター４７ｂおよびＦＡＸ通信装置用コネクター４８ｂは、本体２０に備えられている。
【００２１】
コントローラー３０は、プリンター４６、スキャナー４７ａおよびＦＡＸ通信装置４８ａを制御するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１と、プログラムおよび各種のデータを予め記憶しているＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３２と、ＣＰＵ３１の作業領域として用いられる書き換え可能な揮発性の記憶装置であるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３３とを備えている。ＣＰＵ３１は、ＲＯＭ３２に記憶されているプログラムを実行することによってコントローラー３０を動作させる演算処理装置である。ＲＡＭ３３は、ＣＰＵ３１によってプログラムが実行されるときにプログラムや各種のデータを一時的に記憶するようになっている。ＲＯＭ３２は、実行ファイル１１を記憶している。
【００２２】
表示部４１は、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などの表示デバイスである。
【００２３】
操作部４２は、表示部４１とともにタッチパネルを形成するボタンなどの入力デバイスである。
【００２４】
通信インターフェイス４３は、例えば、プリンター４６で印刷されるための印刷データを外部の装置から受信したり、スキャナー４７ａによって生成された画像データを外部の装置に送信したりする。
【００２５】
不揮発性記憶装置４４は、プリンター４６を制御するためのダイナミックリンクライブラリーであるプリンター用ＤＬＬ１２と、スキャナー４７ａを制御するためのダイナミックリンクライブラリーであるスキャナー用ＤＬＬ１３と、ＦＡＸ通信装置４８ａを制御するためのダイナミックリンクライブラリーであるＦＡＸ通信装置用ＤＬＬ１４とを記憶している。スキャナー用ＤＬＬ１３およびＦＡＸ通信装置用ＤＬＬ１４は、本体２０に電気的に着脱可能なデバイスの種類別に設けられており、本発明のデバイス別ＤＬＬを構成している。ここで、不揮発性記憶装置４４は、スキャナー用ＤＬＬ１３およびＦＡＸ通信装置用ＤＬＬ１４が書き換え可能である。
【００２６】
なお、ＲＯＭ３２に記憶されている実行ファイル１１は、不揮発性記憶装置４４に記憶されているプリンター用ＤＬＬ１２、スキャナー用ＤＬＬ１３およびＦＡＸ通信装置用ＤＬＬ１４がダイナミックリンクされるようにパスが設定されている。つまり、実行ファイル１１、プリンター用ＤＬＬ１２、スキャナー用ＤＬＬ１３およびＦＡＸ通信装置用ＤＬＬ１４は、コントローラー３０によって実行されるプログラムである。したがって、ＲＯＭ３２および不揮発性記憶装置４４は、本発明のプログラム記憶部を構成している。
【００２７】
ＵＳＢメモリー４５ａは、スキャナー用ＤＬＬ１３およびＦＡＸ通信装置用ＤＬＬ１４の少なくとも一方を記憶している。
【００２８】
プリンター４６は、通信インターフェイス４３を介して外部の装置から受信された印刷データ、スキャナー４７ａによって生成された画像データ、ＦＡＸ通信装置４８ａを介して外部のファクシミリ装置からＦＡＸ受信されたＦＡＸデータなどのデータに基づいて、用紙に印刷を実行する。
【００２９】
スキャナー４７ａは、通信インターフェイス４３を介して外部の装置に送信されるための画像データ、プリンター４６によって印刷されるための画像データ、ＦＡＸ通信装置４８ａを介して外部のファクシミリ装置にＦＡＸ送信されるための画像データなどの画像データを生成する。スキャナー４７ａは、スキャナー用コネクター４７ｂを介して本体２０に電気的に着脱可能なデバイスである。
【００３０】
ＦＡＸ通信装置４８ａは、外部のファクシミリ装置からＦＡＸデータをＦＡＸ受信したり、外部のファクシミリ装置にＦＡＸデータをＦＡＸ送信したりする。ＦＡＸ通信装置４８ａは、ＦＡＸ通信装置用コネクター４８ｂを介して本体２０に電気的に着脱可能なデバイスである。
【００３１】
以下においては、実行ファイル１１、プリンター用ＤＬＬ１２、スキャナー用ＤＬＬ１３およびＦＡＸ通信装置用ＤＬＬ１４が実行されるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）がＬｉｎｕｘ（登録商標）であり、実行ファイル１１、プリンター用ＤＬＬ１２、スキャナー用ＤＬＬ１３およびＦＡＸ通信装置用ＤＬＬ１４のプログラミング言語がＣ＋＋であるとして説明する。しかしながら、ＯＳやプログラミング言語としては、任意のものが採用可能である。
【００３２】
＜画像形成装置１０がスキャナー４７ａおよびＦＡＸ通信装置４８ａを備えていない場合＞
【００３３】
図３は、スキャナー４７ａを備えていない場合の画像形成装置１０の正面図である。図４は、スキャナー４７ａおよびＦＡＸ通信装置４８ａを備えていない場合の画像形成装置１０の構成を示すブロック図である。
【００３４】
画像形成装置１０は、スキャナー４７ａおよびＦＡＸ通信装置４８ａを備えていない場合、すなわち、プリンター専用機としてカスタマイズされる場合、図３および図４に示す状態である。画像形成装置１０は、図３に示す状態である場合、外部の装置から通信インターフェイス４３を介して受信した印刷データに基づいた画像をプリンター４６によって用紙に印刷する印刷機能を備えている。
【００３５】
図５は、図４に示す画像形成装置１０のプログラムのクラス図である。
【００３６】
図５に示すように、画像形成装置１０のプログラムは、処理の実行を要求するclientクラス６１と、画像形成装置１０の各デバイスの処理を実行するクラスをclientクラス６１からの要求を受けて生成するfactoryクラス６２と、画像形成装置１０の各デバイスの処理を実行するクラスの抽象クラスであるdeviceクラス６３と、画像形成装置１０のデバイスに依存しない共通の処理および画像形成装置１０のデバイスのうちプリンター４６に特化した処理を担当するprinterクラス６４と、画像形成装置１０のデバイスのうちスキャナー４７ａが装着されていない場合に使用されるscanner_dummyクラス６５ａと、画像形成装置１０のデバイスのうちＦＡＸ通信装置４８ａが装着されていない場合に使用されるfax_dummyクラス６６ａとによって構成されている。
【００３７】
ここで、clientクラス６１、factoryクラス６２、deviceクラス６３、printerクラス６４、scanner_dummyクラス６５ａ、fax_dummyクラス６６ａのソースファイルをそれぞれclient.cpp、factory.cpp、device.cpp、printer.cpp、scanner_dummy.cpp、fax_dummy.cppとする。また、clientクラス６１の処理を開始するメソッドをコールするためにmain.cppが用意される。
【００３８】
図６は、図４に示す実行ファイル１１、プリンター用ＤＬＬ１２、スキャナー用ＤＬＬ１３およびＦＡＸ通信装置用ＤＬＬ１４の作成手順を示す図である。
【００３９】
図６に示すように、main.cpp、client.cpp、factory.cpp、device.cppがそれぞれコンパイルされることによって、main.o、client.o、factory.o、device.oが作成される。また、printer.cpp、scanner_dummy.cpp、fax_dummy.cppがそれぞれコンパイルされることによって、libprn.so、libscn.so、libfax.soという名称でライブラリーが作成される。そして、main.o、client.o、factory.o、device.oがリンクされるとともに、libprn.so、libscn.so、libfax.soがダイナミックリンクされることによって、test.exeが作成される。このようにして作成されたtest.exe、libprn.so、libscn.so、libfax.soがそれぞれ実行ファイル１１、プリンター用ＤＬＬ１２、スキャナー用ＤＬＬ１３、ＦＡＸ通信装置用ＤＬＬ１４である。
【００４０】
＜画像形成装置１０がスキャナー４７ａを備えていてＦＡＸ通信装置４８ａを備えていない場合＞
【００４１】
図７は、スキャナー４７ａを備えていてＦＡＸ通信装置４８ａを備えていない場合の画像形成装置１０の構成を示すブロック図である。
【００４２】
画像形成装置１０は、スキャナー４７ａを備えていてＦＡＸ通信装置４８ａを備えていない場合、図１および図７に示す状態である。画像形成装置１０は、図７に示す状態である場合、上述した印刷機能だけでなく、例えば、スキャナー４７ａによって原稿から画像を読み取って画像データを生成するスキャナー機能や、スキャナー４７ａによって原稿から読み取った画像をプリンター４６によって用紙に印刷する複写機能を備えている。
【００４３】
図８は、図７に示す画像形成装置１０のプログラムのクラス図である。
【００４４】
図８に示すように、画像形成装置１０のプログラムは、図５に示す構成と異なり、画像形成装置１０のデバイスのうちスキャナー４７ａに特化した処理を担当するscannerクラス６５ｂを、scanner_dummyクラス６５ａに代えて備えている。
【００４５】
ここで、scannerクラス６５ｂのソースファイルをscanner.cppとする。そして、scanner.cppがコンパイルされることによって、上述したscanner_dummy.cppがコンパイルされたときと同一の名称であるlibscn.soというライブラリーが作成される。このようにして作成されたlibscn.soがスキャナー用ＤＬＬ１３である。
【００４６】
なお、scanner.cppから作成されたスキャナー用ＤＬＬ１３は、このスキャナー用ＤＬＬ１３が記憶されているＵＳＢメモリー４５ａがＵＳＢコネクター４５ｂに電気的に接続されることによって、コントローラー３０によって不揮発性記憶装置４４上のスキャナー用ＤＬＬ１３に上書きされる。
【００４７】
したがって、利用者は、画像形成装置１０が図４に示す状態である場合、スキャナー４７ａを本体２０のスキャナー用コネクター４７ｂに電気的に接続するとともに、scanner.cppから作成されたスキャナー用ＤＬＬ１３が記憶されたＵＳＢメモリー４５ａをＵＳＢコネクター４５ｂに電気的に接続することによって、画像形成装置１０を図７に示す状態にカスタマイズすることができる。
【００４８】
＜画像形成装置１０がＦＡＸ通信装置４８ａを備えていてスキャナー４７ａを備えていない場合＞
【００４９】
図９は、ＦＡＸ通信装置４８ａを備えていてスキャナー４７ａを備えていない場合の画像形成装置１０の構成を示すブロック図である。
【００５０】
画像形成装置１０は、ＦＡＸ通信装置４８ａを備えていてスキャナー４７ａを備えていない場合、図３および図９に示す状態である。画像形成装置１０は、図９に示す状態である場合、上述した印刷機能だけでなく、例えば、外部のファクシミリ装置からＦＡＸ通信装置４８ａによってＦＡＸ受信したＦＡＸデータに基づいた画像をプリンター４６によって用紙に印刷するＦＡＸ受信機能、外部のファクシミリ装置からＦＡＸデータをＦＡＸ通信装置４８ａによってＦＡＸ受信して通信インターフェイス４３を介して外部の装置に送信するネットワークＦＡＸ受信機能、外部の装置から通信インターフェイス４３を介して受信したＦＡＸデータを外部のファクシミリ装置にＦＡＸ通信装置４８ａによってＦＡＸ送信するネットワークＦＡＸ送信機能を備えている。
【００５１】
図１０は、図９に示す画像形成装置１０のプログラムのクラス図である。
【００５２】
図１０に示すように、画像形成装置１０のプログラムは、図５に示す構成と異なり、画像形成装置１０のデバイスのうちＦＡＸ通信装置４８ａに特化した処理を担当するfaxクラス６６ｂを、fax_dummyクラス６６ａに代えて備えている。
【００５３】
ここで、faxクラス６６ｂのソースファイルをfax.cppとする。そして、fax.cppがコンパイルされることによって、上述したfax_dummy.cppがコンパイルされたときと同一の名称であるlibfax.soというライブラリーが作成される。このようにして作成されたlibfax.soがＦＡＸ通信装置用ＤＬＬ１４である。
【００５４】
なお、fax.cppから作成されたＦＡＸ通信装置用ＤＬＬ１４は、このＦＡＸ通信装置用ＤＬＬ１４が記憶されているＵＳＢメモリー４５ａがＵＳＢコネクター４５ｂに電気的に接続されることによって、コントローラー３０によって不揮発性記憶装置４４上のＦＡＸ通信装置用ＤＬＬ１４に上書きされる。
【００５５】
したがって、利用者は、画像形成装置１０が図４に示す状態である場合、ＦＡＸ通信装置４８ａを本体２０のＦＡＸ通信装置用コネクター４８ｂに電気的に接続するとともに、fax.cppから作成されたＦＡＸ通信装置用ＤＬＬ１４が記憶されたＵＳＢメモリー４５ａをＵＳＢコネクター４５ｂに電気的に接続することによって、画像形成装置１０を図９に示す状態にカスタマイズすることができる。
【００５６】
＜画像形成装置１０がスキャナー４７ａおよびＦＡＸ通信装置４８ａを備えている場合＞
【００５７】
画像形成装置１０は、スキャナー４７ａおよびＦＡＸ通信装置４８ａを備えている場合、図１および図２に示す状態である。画像形成装置１０は、図２に示す状態である場合、上述した印刷機能、スキャナー機能、複写機能、ＦＡＸ受信機能、ネットワークＦＡＸ受信機能、ネットワークＦＡＸ送信機能だけでなく、例えば、スキャナー４７ａによって原稿から読み取った画像に基づいて生成したＦＡＸデータを外部のファクシミリ装置にＦＡＸ通信装置４８ａによってＦＡＸ送信するＦＡＸ送信機能を備えている。
【００５８】
図１１は、図２に示す画像形成装置１０のプログラムのクラス図である。
【００５９】
図１１に示すように、画像形成装置１０のプログラムは、図５に示す構成と異なり、画像形成装置１０のデバイスのうちスキャナー４７ａに特化した処理を担当するscannerクラス６５ｂ、画像形成装置１０のデバイスのうちＦＡＸ通信装置４８ａに特化した処理を担当するfaxクラス６６ｂを、それぞれscanner_dummyクラス６５ａ、fax_dummyクラス６６ａに代えて備えている。
【００６０】
ここで、scannerクラス６５ｂ、faxクラス６６ｂのソースファイルをそれぞれscanner.cpp、fax.cppとする。そして、scanner.cppがコンパイルされることによって、上述したscanner_dummy.cppがコンパイルされたときと同一の名称であるlibscn.soというライブラリーが作成される。このようにして作成されたlibscn.soがスキャナー用ＤＬＬ１３である。また、fax.cppがコンパイルされることによって、上述したfax_dummy.cppがコンパイルされたときと同一の名称であるlibfax.soというライブラリーが作成される。このようにして作成されたlibfax.soがＦＡＸ通信装置用ＤＬＬ１４である。
【００６１】
なお、scanner.cppから作成されたスキャナー用ＤＬＬ１３は、このスキャナー用ＤＬＬ１３が記憶されているＵＳＢメモリー４５ａがＵＳＢコネクター４５ｂに電気的に接続されることによって、コントローラー３０によって不揮発性記憶装置４４上のスキャナー用ＤＬＬ１３に上書きされる。同様に、fax.cppから作成されたＦＡＸ通信装置用ＤＬＬ１４は、このＦＡＸ通信装置用ＤＬＬ１４が記憶されているＵＳＢメモリー４５ａがＵＳＢコネクター４５ｂに電気的に接続されることによって、コントローラー３０によって不揮発性記憶装置４４上のＦＡＸ通信装置用ＤＬＬ１４に上書きされる。
【００６２】
したがって、利用者は、画像形成装置１０が図４に示す状態である場合、スキャナー４７ａ、ＦＡＸ通信装置４８ａをそれぞれ本体２０のスキャナー用コネクター４７ｂ、ＦＡＸ通信装置用コネクター４８ｂに電気的に接続するとともに、scanner.cppから作成されたスキャナー用ＤＬＬ１３と、fax.cppから作成されたＦＡＸ通信装置用ＤＬＬ１４とが記憶されたＵＳＢメモリー４５ａをＵＳＢコネクター４５ｂに電気的に接続することによって、画像形成装置１０を図２に示す状態にカスタマイズすることができる。
【００６３】
なお、以上においては、図４に示す状態から図２、図７または図９に示す状態への変更について説明しているが、図７または図９に示す状態から図２に示す状態への変更など、図４に示す状態から図２、図７または図９に示す状態への変更以外の変更についても同様である。また、スキャナー４７ａやＦＡＸ通信装置４８ａを電気的に接続する変更だけでなく、電気的な接続を解除する変更についても同様である。どのような変更であっても、不揮発性記憶装置４４上のスキャナー用ＤＬＬ１３、ＦＡＸ通信装置用ＤＬＬ１４が変更後のスキャナー４７ａおよびＦＡＸ通信装置４８ａの状態に応じたものになっていれば良い。
【００６４】
以上に説明したように、画像形成装置１０は、スキャナー４７ａ、ＦＡＸ通信装置４８ａが本体２０に対して着脱される場合、不揮発性記憶装置４４上のスキャナー用ＤＬＬ１３、ＦＡＸ通信装置用ＤＬＬ１４が書き換えられれば良く、実行ファイル１１が再ビルドされる必要がない。したがって、画像形成装置１０は、スキャナー４７ａ、ＦＡＸ通信装置４８ａの着脱によって従来より容易に機能がカスタマイズされることができる。
【００６５】
また、画像形成装置１０は、スキャナー用ＤＬＬ１３、ＦＡＸ通信装置用ＤＬＬ１４を記憶しているＵＳＢメモリー４５ａがＵＳＢコネクター４５ｂに電気的に接続されるだけでスキャナー用ＤＬＬ１３、ＦＡＸ通信装置用ＤＬＬ１４が書き換えられるので、容易に機能がカスタマイズされることができる。
【００６６】
なお、ＲＯＭ３２に記憶されている実行ファイル１１は、本実施の形態において、不揮発性記憶装置４４に記憶されているスキャナー用ＤＬＬ１３およびＦＡＸ通信装置用ＤＬＬ１４がダイナミックリンクされるようにパスが設定されているが、ＵＳＢコネクター４５ｂに電気的に接続されているＵＳＢメモリー４５ａに記憶されているスキャナー用ＤＬＬ１３およびＦＡＸ通信装置用ＤＬＬ１４がダイナミックリンクされるようにパスが設定されていても良い。そのように構成されている場合、不揮発性記憶装置４４にスキャナー用ＤＬＬ１３およびＦＡＸ通信装置用ＤＬＬ１４が記憶される必要がない。
【００６７】
また、変更後のスキャナー用ＤＬＬ１３およびＦＡＸ通信装置用ＤＬＬ１４は、本実施の形態において、ＵＳＢメモリー４５ａを介して本体２０に導入されるようになっているが、ＵＳＢメモリー４５ａ以外の記憶媒体を介して本体２０に導入されるようになっていても良い。
【００６８】
（第２の実施の形態）
【００６９】
図１２は、本実施の形態に係る画像形成装置１１０の構成を示すブロック図である。なお、画像形成装置１１０の構成のうち、第１の実施の形態に係る画像形成装置１０（図１および図２参照。）の構成と同様な構成については画像形成装置１０の構成と同一の符号を付して説明を省略する。
【００７０】
図１２に示すように、画像形成装置１１０の構成は、画像形成装置１０（図２参照。）がＵＳＢメモリー４５ａおよびＵＳＢコネクター４５ｂを備えておらず、スキャナー４７ａ、スキャナー用コネクター４７ｂ、ＦＡＸ通信装置４８ａ、ＦＡＸ通信装置用コネクター４８ｂに代えてスキャナー１４７ａ、スキャナー用コネクター１４７ｂ、ＦＡＸ通信装置１４８ａ、ＦＡＸ通信装置用コネクター１４８ｂを備えている構成と同様である。
【００７１】
スキャナー１４７ａは、スキャナー用ＤＬＬ１３を記憶している記憶媒体として不揮発性記憶装置１４７ｃを備えている。つまり、不揮発性記憶装置１４７ｃは、スキャナー１４７ａと一体である。
【００７２】
スキャナー用コネクター１４７ｂは、スキャナー１４７ａが電気的に接続されることによって不揮発性記憶装置１４７ｃが電気的に接続される。
【００７３】
ＦＡＸ通信装置１４８ａは、ＦＡＸ通信装置用ＤＬＬ１４を記憶している記憶媒体として不揮発性記憶装置１４８ｃを備えている。つまり、不揮発性記憶装置１４８ｃは、ＦＡＸ通信装置１４８ａと一体である。
【００７４】
ＦＡＸ通信装置用コネクター１４８ｂは、ＦＡＸ通信装置１４８ａが電気的に接続されることによって不揮発性記憶装置１４８ｃが電気的に接続される。
【００７５】
以上の構成により、画像形成装置１１０は、スキャナー１４７ａ、ＦＡＸ通信装置１４８ａが本体２０に電気的に接続されるだけでスキャナー用ＤＬＬ１３、ＦＡＸ通信装置用ＤＬＬ１４が書き換えられるので、容易に機能がカスタマイズされることができる。
【００７６】
なお、上述した各実施の形態において、本体２０に電気的に着脱可能なデバイスとしてスキャナーおよびＦＡＸ通信装置について説明したが、これらのデバイス以外のデバイスであっても良い。
【符号の説明】
【００７７】
１０  画像形成装置
１１  実行ファイル
１３  スキャナー用ＤＬＬ（デバイス別ＤＬＬ）
１４  ＦＡＸ通信装置用ＤＬＬ（デバイス別ＤＬＬ）
２０  本体
３０  コントローラー（コンピューター）
３２  ＲＯＭ（プログラム記憶部）
４４  不揮発性記憶装置（プログラム記憶部）
４５ａ  ＵＳＢメモリー（記憶媒体）
４７ａ  スキャナー（デバイス）
４８ａ  ＦＡＸ通信装置（デバイス）
１１０  画像形成装置
１４７ａ  スキャナー（デバイス）
１４７ｃ  不揮発性記憶装置（記憶媒体）
１４８ａ  ＦＡＸ通信装置（デバイス）
１４８ｃ  不揮発性記憶装置（記憶媒体）
【図１】
0005819624.tif 000002
【図２】
0005819624.tif 000003
【図３】
0005819624.tif 000004
【図４】
0005819624.tif 000005
【図５】
0005819624.tif 000006
【図６】
0005819624.tif 000007
【図７】
0005819624.tif 000008
【図８】
0005819624.tif 000009
【図９】
0005819624.tif 000010
【図１０】
0005819624.tif 000011
【図１１】
0005819624.tif 000012
【図１２】
0005819624.tif 000013