説明

画像形成装置

【課題】 バイトコードのアプリケーションによってHIDを制御することができる画像形成装置を提供する。
【解決手段】 複合機は、USBデバイスが接続されるUSBポートと、USBデバイスのうちHIDのためのLinux(登録商標)の標準のデバイスドライバである標準ドライバを記憶するROMと、HIDがUSBポートに接続されたときに標準ドライバによるHIDの制御である標準制御をLinuxに開始させる制御部とを備えており、制御部は、標準制御を終了させ(ステップS35)、標準制御が終了させられたHIDをJava(登録商標)アプリケーションに制御させる(ステップS37)ことを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バイトコードのアプリケーションを実行する画像形成装置に関する。
【背景技術】
【0002】
従来、利用者が開発したアプリケーションを実行することができる画像形成装置が知られている。そのような画像形成装置においては、利用者がアプリケーションを開発した開発環境と、そのアプリケーションを画像形成装置が実行する実行環境とが異なっていたとしても、利用者が開発したアプリケーションを画像形成装置が実行することができるように、CPU(Central Processing Unit)などのハードウェアやOS(Operating System)に依存しないバイトコードのアプリケーションを実行することができるようになっている。
【0003】
そのようなバイトコードのアプリケーションを実行する画像形成装置として、Java(登録商標)のコンパイラが生成したJavaバイトコードのアプリケーションを実行する複合機が知られている(例えば、特許文献1参照。)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−252135号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、バイトコードのアプリケーションは、ハードウェアに依存しない性質を持つので、ハードウェアであるUSB(Universal Serial Bus)デバイスを制御することが容易ではない。特に、USBデバイスのうちマウスやキーボードなどのHID(Human Interface Device)は、画像形成装置のUSBポートに接続されたときに画像形成装置のOSの標準のデバイスドライバによる制御がOSによって開始されるので、バイトコードのアプリケーションによって制御されることが容易ではない。
【0006】
そこで、本発明は、バイトコードのアプリケーションによってHIDを制御することができる画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の画像形成装置は、USBデバイスが接続されるUSBポートと、前記USBデバイスのうちHIDのためのOSの標準のデバイスドライバである標準ドライバを記憶する記憶部と、前記HIDが前記USBポートに接続されたときに前記標準ドライバによる前記HIDの制御である標準制御を前記OSに開始させる制御部とを備えており、前記制御部は、前記標準制御を終了させる標準制御終了手段と、前記標準制御終了手段によって前記標準制御が終了させられた前記HIDをバイトコードのアプリケーションに制御させるバイトアプリ制御手段とを備えていることを特徴とする。
【0008】
この構成により、本発明の画像形成装置は、標準ドライバによってOSに制御されているHIDをバイトコードのアプリケーションに制御させる場合に、標準ドライバによるHIDの制御を終了させた後でHIDをバイトコードのアプリケーションに制御させるので、バイトコードのアプリケーションによってHIDを制御することができる。
【0009】
また、本発明の画像形成装置の前記制御部は、前記USBポートに接続された前記USBデバイスが前記HIDであるか否かを判断するHID判断手段を備えており、前記USBポートに接続された前記USBデバイスが前記HIDであると前記HID判断手段によって判断されたときに、前記標準制御終了手段が前記標準制御を終了させた後で前記バイトアプリ制御手段が前記HIDを前記アプリケーションに制御させ、前記USBポートに接続された前記USBデバイスが前記HIDではないと前記HID判断手段によって判断されたときに、前記バイトアプリ制御手段が前記USBデバイスを前記アプリケーションに制御させることが好ましい。
【0010】
この構成により、本発明の画像形成装置は、USBポートに接続されたUSBデバイスがHIDではない場合にも、バイトコードのアプリケーションによってUSBデバイスを制御することができる。
【0011】
また、本発明の画像形成装置の前記記憶部は、前記USBポートに接続された前記USBデバイスにアクセス可能なネイティブコードのプログラムを記憶し、前記バイトアプリ制御手段は、前記プログラムを利用して前記アプリケーションに前記USBデバイスを制御させることが好ましい。
【0012】
この構成により、本発明の画像形成装置は、ハードウェアに依存するネイティブコードのプログラムを利用して、ハードウェアに依存しないバイトコードのアプリケーションに、ハードウェアであるUSBデバイスを制御させるので、バイトコードのアプリケーションの構成を簡素化することができる。
【0013】
また、本発明の画像形成装置の前記制御部は、前記USBポートに接続された前記USBデバイスに対するバイトコードのデバイスドライバであるバイトドライバを前記プログラムを利用して作成するバイトドライバ作成手段を備えており、前記バイトアプリ制御手段は、前記バイトドライバ作成手段によって作成された前記バイトドライバを介して前記アプリケーションに前記USBデバイスを制御させることが好ましい。
【0014】
この構成により、本発明の画像形成装置は、バイトコードのアプリケーションにバイトコードのデバイスドライバを介してUSBデバイスを制御させるので、バイトコードのアプリケーションの構成を簡素化することができる。
【発明の効果】
【0015】
本発明の画像形成装置は、バイトコードのアプリケーションによってHIDを制御することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施の形態に係る複合機の構成を示すブロック図である。
【図2】図1に示す複合機のシステム構成を示すブロック図である。
【図3】JavaアプリケーションによってUSBデバイスの制御を開始するときの図1に示す複合機の動作のフローチャートである。
【図4】図2に示すJavaアプリケーションを開発するパーソナルコンピュータの構成を示すブロック図である。
【図5】図4に示すパーソナルコンピュータのシステム構成を示すブロック図である。
【発明を実施するための形態】
【0017】
以下、本発明の一実施の形態について、図面を用いて説明する。
【0018】
まず、本実施の形態に係る画像形成装置としての複合機の構成について説明する。
【0019】
図1は、本実施の形態に係る複合機10の構成を示すブロック図である。
【0020】
図1に示すように、複合機10は、装置全体を制御する制御部11と、プログラムおよび各種のデータを記憶する記憶装置12と、利用者によって種々の操作が入力される操作パネル上の操作部13と、種々の情報を表示する操作パネル上のモニタ14と、画像を読み取るスキャナ15と、印刷ジョブを印刷するプリンタ16と、図示していない外部のホストコンピュータと通信を行うための通信部17と、USBデバイス90が接続されるUSBポート18とを備えている。
【0021】
制御部11は、CPU11aと、プログラムおよび各種のデータを予め記憶している不揮発性のメモリであるROM(Read Only Memory)11bと、CPU11aの作業領域として用いられるRAM(Random Access Memory)11cとから構成されているコンピュータである。CPU11aは、ROM11bに記憶されているプログラムや記憶装置12に記憶されているプログラムを実行することによって制御部11を動作させる演算処理装置である。RAM11cは、CPU11aによってプログラムが実行されるときにプログラムや各種のデータを一時的に記憶するようになっている。
【0022】
記憶装置12は、例えばハードディスクなどから構成されている。
【0023】
操作部13は、モニタ14とともにタッチパネルを形成するボタンや、操作パネル上のボタンなどの入力デバイスから構成されている。制御部11は、操作部13から入力される利用者の操作に応じてプログラムを実行するようになっている。
【0024】
モニタ14は、例えばLCD(Liquid Crystal Display)などの表示デバイスから構成されている。制御部11は、例えば、利用者による操作部13への操作を受け付け中であることを示す画面や、動作の結果を示す画面などをモニタ14に表示させるようになっている。
【0025】
スキャナ15は、原稿から画像データを読み取る読取デバイスである。
【0026】
プリンタ16は、図示していない外部のホストコンピュータから通信部17を介して受信された印刷データや、スキャナ15によって読み取られた画像データを印刷する印刷デバイスである。
【0027】
通信部17は、例えば、スキャナ15によって読み取られた画像データをLAN(Local Area Network)を介して外部のホストコンピュータに送信したり、プリンタ16で印刷されるための印刷データをLANを介して外部のホストコンピュータから受信したりする。
【0028】
USBポート18に接続されるUSBデバイス90としては、マウスやキーボードなどのHIDだけでなく、HID以外の各種のUSBデバイスが考えられる。
【0029】
図2は、複合機10のシステム構成を示すブロック図である。
【0030】
図2に示すように、複合機10は、USBデバイス90などの各種のハードウェアを制御するためのデバイスドライバ21と、OSであるLinux(登録商標)22とをROM11bに記憶している。また、複合機10は、Linux22上で動作するJavaの実行環境であるJavaプラットフォーム23を記憶装置12に記憶している。また、複合機10は、Javaプラットフォーム23上で動作するJavaバイトコードのデバイスドライバであるJavaデバイスドライバ24と、Javaプラットフォーム23上で動作するJavaバイトコードのアプリケーションであるJavaアプリケーション25とを記憶装置12に記憶するようになっている。
【0031】
デバイスドライバ21は、USBデバイスのうちHIDのためのLinux22の標準のデバイスドライバである標準ドライバ21aと、USBポート18に接続されたUSBデバイス90にアクセス可能なネイティブコードのプログラムであるlibusbライブラリ21bとを備えている。libusbライブラリ21bは、公知のライブラリであるC言語用のlibusbライブラリのうちLinux版のものである。
【0032】
なお、標準ドライバ21aおよびlibusbライブラリ21bがデバイスドライバ21に含まれているので、上述したようにデバイスドライバ21を記憶しているROM11bは、標準ドライバ21aおよびlibusbライブラリ21bをも記憶していることになる。すなわち、ROM11bは、本発明の記憶部を構成している。
【0033】
Linux22は、デバイスドライバ21を介して各種のハードウェアを制御するようになっている。
【0034】
Javaプラットフォーム23は、libusbライブラリ21bを覆い隠すために存在するクラスであるJavaラッパー(Wrapper)23aと、ユーザーモードでUSBデバイス90にアクセスするためのJavaAPI(Application Program Interface)であるJavaUSBライブラリ23bと、Javaデバイスドライバ24の管理を行うデバイスドライバ管理部23cとを備えている。また、Javaプラットフォーム23は、Javaデバイスドライバ24やJavaアプリケーション25などのJavaバイトコードをCPU11aが実行可能なネイティブコードに変換する図示していない仮想マシンも備えている。
【0035】
Javaラッパー23aは、JNI(Java Native Interface)を使ってlibusbライブラリ21bに対して作成されたクラスである。ここで、JNIとは、Java言語で開発されたプログラムから、Java言語以外の言語で開発されたネイティブコードのプログラムを利用するためのAPIである。Javaラッパー23aは、Java言語で開発されたJavaUSBライブラリ23bから、C言語で開発されたネイティブコードのlibusbライブラリ21bを利用することができる。
【0036】
なお、Javaアプリケーション25が例えば利用者のパーソナルコンピュータなどの開発環境で開発される場合、Javaラッパー23aは、Javaアプリケーション25の開発環境であるパーソナルコンピュータと、Javaアプリケーション25の実行環境である複合機10とでCPUが異なるので、複合機10でのコンパイルが必要であり、複合機10でのみ動作することができる。
【0037】
Javaデバイスドライバ24は、USBポート18に接続されたUSBデバイス90に応じてJavaUSBライブラリ23bによって作成されるようになっている。
【0038】
Javaアプリケーション25は、例えば利用者のパーソナルコンピュータなどの開発環境において、JavaソースコードがJavaコンパイラによってコンパイルされることによって作成されるものである。
【0039】
次に、複合機10の動作について説明する。
【0040】
制御部11は、HIDがUSBポート18に接続されたときに標準ドライバ21aによるHIDの制御である標準制御をLinux22に開始させる。
【0041】
また、利用者が操作部13を介してJavaアプリケーション25の実行を制御部11に指示すると、制御部11によって実行されたJavaアプリケーション25は、制御部11に様々な機能を実現させる。
【0042】
例えば、制御部11は、Javaアプリケーション25の記述に従って、モニタ14に各種の情報を表示させたり、スキャナ15によって読み取られた画像データを処理したり、プリンタ16に印刷を実行させたり、通信部17を介して外部の装置と通信を行ったり、USBポート18に接続されているUSBデバイス90を制御したりすることができる。
【0043】
図3は、Javaアプリケーション25によってUSBデバイス90の制御を開始するときの複合機10の動作のフローチャートである。
【0044】
Javaアプリケーション25がUSBデバイス90の制御をJavaUSBライブラリ23bに要求すると、JavaUSBライブラリ23bは、図3に示す処理を開始する。
【0045】
図3に示すように、まず、JavaUSBライブラリ23bは、Javaラッパー23aを介してlibusbライブラリ21bを利用してUSBデバイスの情報である「Vender ID」および「Product ID」を調べることによって、USBポート18に接続されているUSBデバイス90を探す(ステップS31)。そして、JavaUSBライブラリ23bは、USBポート18に接続されているUSBデバイス90があるか否かを判断する(ステップS32)。
【0046】
JavaUSBライブラリ23bは、USBポート18に接続されているUSBデバイス90がないとステップS32において判断すると、USBポート18に接続されているUSBデバイス90がないという旨の情報をモニタ14に表示させて(ステップS33)、図3に示す処理を終了する。
【0047】
JavaUSBライブラリ23bは、USBポート18に接続されているUSBデバイス90があるとステップS32において判断すると、Javaラッパー23aを介してlibusbライブラリ21bを利用して、USBポート18に接続されているUSBデバイス90がHIDであるか否かを判断する(ステップS34)。このように、制御部11は、本発明のHID判断手段を構成している。
【0048】
JavaUSBライブラリ23bは、USBポート18に接続されているUSBデバイス90がHIDであるとステップS34において判断すると、USBポート18に接続されているHIDから標準ドライバ21aを解放する(ステップS35)。この解放によって、標準ドライバ21aによるHIDの制御である標準制御が終了する。すなわち、制御部11は、本発明の標準制御終了手段を構成している。
【0049】
なお、複合機10のOSがLinuxであるので、JavaUSBライブラリ23bは、Javaラッパー23aを介してlibusbライブラリ21bを利用して、libusbライブラリ21bの関数である「usb_detach_kernel_driver_np()」を実行することによって、USBポート18に接続されているHIDから標準ドライバ21aをステップS35において解放することができる。
【0050】
JavaUSBライブラリ23bは、USBポート18に接続されているHIDから標準ドライバ21aをステップS35において解放すると、USBポート18に接続されているHIDに対するJavaデバイスドライバ24を、Javaラッパー23aを介してlibusbライブラリ21bを利用して作成する(ステップS36)。したがって、USBポート18に接続されているHIDは、ユーザーモードで動作しているJavaアプリケーション25から扱われることができるようになる。
【0051】
同様に、JavaUSBライブラリ23bは、USBポート18に接続されているUSBデバイス90がHIDではないとステップS34において判断した場合も、USBポート18に接続されているUSBデバイス90に対するJavaデバイスドライバ24を、Javaラッパー23aを介してlibusbライブラリ21bを利用して作成する(ステップS36)。
【0052】
このように、制御部11は、USBポート18に接続されたUSBデバイス90に対するバイトコードのデバイスドライバであるJavaデバイスドライバ24をlibusbライブラリ21bを利用してステップS36において作成するようになっており、本発明のバイトドライバ作成手段を構成している。
【0053】
そして、Javaアプリケーション25は、JavaUSBライブラリ23bによってステップS36においてJavaデバイスドライバ24が作成されると、Javaデバイスドライバ24を介してUSBデバイス90を制御することができる。つまり、JavaUSBライブラリ23bは、USBデバイス90に対する指示がJavaデバイスドライバ24を介してJavaアプリケーション25から送られてくると、Javaラッパー23aを介してlibusbライブラリ21bを利用して、Javaアプリケーション25からの指示に応じてUSBデバイス90を制御する(ステップS37)。すなわち、制御部11は、標準制御が終了させられたHIDをバイトコードのアプリケーションであるJavaアプリケーション25に制御させるようになっており、本発明のバイトアプリ制御手段を構成している。
【0054】
JavaUSBライブラリ23bは、ステップS37の処理が終了すると、図3に示す処理を終了する。
【0055】
なお、Javaデバイスドライバ24は、JavaUSBライブラリ23bによってステップS36において作成されると、デバイスドライバ管理部23cによって管理される。したがって、Javaアプリケーション25は、図3に示す処理が終了した後も、ステップS37の処理と同様に、デバイスドライバ管理部23cによって管理されているJavaデバイスドライバ24を介してUSBデバイス90を制御することができる。
【0056】
上述したJavaアプリケーション25は、例えば利用者のパーソナルコンピュータによって開発される。以下、Javaアプリケーション25の開発について説明する。
【0057】
図4は、Javaアプリケーション25を開発するパーソナルコンピュータ50の構成を示すブロック図である。
【0058】
図4に示すように、パーソナルコンピュータ50は、装置全体を制御する制御部51と、プログラムおよび各種のデータを記憶する記憶装置52と、利用者によって種々の操作が入力される操作部53と、種々の情報を表示するモニタ54と、USBデバイス90が接続されるUSBポート55とを備えている。
【0059】
制御部51は、CPU51aと、BIOS(Basic Input/Output System)プログラムおよび各種のデータを予め記憶している不揮発性のメモリであるROM51bと、CPU51aの作業領域として用いられるRAM51cとから構成されているコンピュータである。CPU51aは、ROM51bに記憶されているBIOSプログラムや記憶装置52に記憶されているプログラムを実行することによって制御部51を動作させる演算処理装置である。RAM51cは、CPU51aによってプログラムが実行されるときにプログラムや各種のデータを一時的に記憶するようになっている。
【0060】
記憶装置52は、例えばハードディスクなどから構成されている。
【0061】
操作部53は、キーボードやマウスなどの入力デバイスから構成されている。制御部51は、操作部53から入力される利用者の操作に応じてプログラムを実行するようになっている。
【0062】
モニタ54は、例えばLCDなどの表示デバイスから構成されている。制御部51は、例えば、利用者による操作部53への操作を受け付け中であることを示す画面や、動作の結果を示す画面などをモニタ54に表示させるようになっている。
【0063】
図5は、パーソナルコンピュータ50のシステム構成を示すブロック図である。
【0064】
図5に示すように、パーソナルコンピュータ50は、USBデバイス90などの各種のハードウェアを制御するためのデバイスドライバ61と、OSであるWindows(登録商標)62と、Windows62上で動作するJavaの開発環境や実行環境であるJavaプラットフォーム63とを記憶装置52に記憶している。また、パーソナルコンピュータ50は、Javaプラットフォーム63上で動作するJavaバイトコードのデバイスドライバであるJavaデバイスドライバ64と、Javaアプリケーション25とを記憶装置52に記憶するようになっている。
【0065】
デバイスドライバ61は、USBデバイスのうちHIDのためのWindows62の標準のデバイスドライバである標準ドライバ61aと、USBポート55に接続されたUSBデバイス90にアクセス可能なネイティブコードのプログラムであるlibusb-win32ライブラリ61bとを備えている。libusb-win32ライブラリ61bは、公知のライブラリであるC言語用のlibusbライブラリのうちWindows版のものである。
【0066】
Windows62は、デバイスドライバ61を介して各種のハードウェアを制御するようになっている。
【0067】
Javaプラットフォーム63は、Javaプラットフォーム23(図2参照。)と同様に、Javaラッパー63a、JavaUSBライブラリ63b、デバイスドライバ管理部63cおよび図示していない仮想マシンを備えている。また、Javaプラットフォーム63は、利用者が作成したJavaソースコードをJavaバイトコードにコンパイルする図示していないJavaコンパイラも備えている。
【0068】
次に、パーソナルコンピュータ50の動作について説明する。
【0069】
制御部51は、HIDがUSBポート55に接続されたときに標準ドライバ61aによるHIDの制御である標準制御をWindows62に開始させる。
【0070】
また、利用者は、モニタ54を見ながら操作部53を操作することによって、Javaアプリケーション25の元になるJavaソースコードを作成し、作成したJavaソースコードをJavaコンパイラによってコンパイルしてJavaアプリケーション25を開発することができる。
【0071】
また、利用者は、開発したJavaアプリケーション25を複合機10に導入する前に、Javaアプリケーション25の動作をパーソナルコンピュータ50によってシミュレーションやエミュレーションを実行することができる。
【0072】
ここで、制御部51は、Javaアプリケーション25の記述に従って、USBポート55に接続されているUSBデバイス90を制御する場合、上述した複合機10の図3に示す処理と同様の処理を行う。
【0073】
ただし、パーソナルコンピュータ50のOSがLinuxではなくWindowsであるので、制御部51は、ステップS35と、ステップS35の直後に実行されるステップS36とを次のように実行する。
【0074】
JavaUSBライブラリ63bは、USBポート55に接続されているUSBデバイス90がHIDであるとステップS34において判断すると、ステップS31において調べたUSBデバイス90の「Vender ID」および「Product ID」と、libusb-win32ライブラリ61bの「inf-wizard.exe」とを使用して、libusb-win32ライブラリ61bのドライバである「.infファイル」を作成する。
【0075】
そして、JavaUSBライブラリ63bは、作成した「.infファイル」と、libusb-win32ライブラリ61bの関数である「usb_install_driver_np_rundll()」とを使用して、デバイスドライバを差し替える。つまり、JavaUSBライブラリ63bは、USBポート55に接続されているHIDから標準ドライバ61aを解放して(ステップS35)、USBポート55に接続されているHIDに対するJavaデバイスドライバ64を作成する(ステップS36)。
【0076】
なお、JavaUSBライブラリ63bは、USBポート55に接続されているUSBデバイス90がHIDではないとステップS34において判断したとき、複合機10のJavaUSBライブラリ23bと同様に、USBポート55に接続されているUSBデバイス90に対するJavaデバイスドライバ64を、Javaラッパー63aを介してlibusb-win32ライブラリ61bを利用して作成する(ステップS36)。
【0077】
以上に説明したように、複合機10は、標準ドライバ21aによってLinux22に制御されているHIDをJavaアプリケーション25に制御させる場合に、標準ドライバ21aによるHIDの制御を終了させた(ステップS35)後でHIDをJavaアプリケーション25に制御させる(ステップS37)ので、Javaアプリケーション25によってHIDを制御することができる。
【0078】
また、複合機10は、USBポート18に接続されたUSBデバイス90がHIDであると判断されたとき(ステップS34でYES)に、標準制御を終了させた(ステップS35)後でHIDをJavaアプリケーション25に制御させ(ステップS37)、USBポート18に接続されたUSBデバイス90がHIDではないと判断されたとき(ステップS34でNO)に、USBデバイス90をJavaアプリケーション25に制御させる(ステップS37)ので、USBポート18に接続されたUSBデバイス90がHIDではない場合にも、Javaアプリケーション25によってUSBデバイス90を制御することができる。
【0079】
また、複合機10は、ハードウェアに依存するネイティブコードのlibusbライブラリ21bを利用して、ハードウェアに依存しないバイトコードのJavaアプリケーション25に、ハードウェアであるUSBデバイス90を制御させるので、Javaアプリケーション25の構成を簡素化することができる。
【0080】
また、複合機10は、バイトコードのJavaアプリケーション25にバイトコードのJavaデバイスドライバ24を介してUSBデバイス90を制御させるので、Javaアプリケーション25の構成を簡素化することができる。
【0081】
また、複合機10は、OSとしてLinuxが採用されているが、OSとしてWindowsが採用されているパーソナルコンピュータ50で開発されたJavaアプリケーション25を実行することができる。
【0082】
なお、Javaアプリケーション25を実行する複合機10のOSは、Linux以外のOSであっても良い。同様に、Javaアプリケーション25を開発するパーソナルコンピュータ50のOSも、Windows以外のOSであっても良い。
【0083】
また、複合機10は、バイトコードのアプリケーションとして、Javaバイトコードのアプリケーションを備えているが、バイトコードで記述されるプログラミング言語のアプリケーションであれば、Java以外のプログラミング言語のアプリケーションを備えるようになっていても良い。
【0084】
また、本発明の画像形成装置は、本実施の形態において複合機について説明しているが、コピー機、プリンタ、ファクシミリ機などの複合機以外の画像形成装置であっても良い。
【符号の説明】
【0085】
10 複合機(画像形成装置)
11 制御部(標準制御終了手段、バイトアプリ制御手段、HID判断手段、バイトドライバ作成手段)
11b ROM(記憶部)
18 USBポート
21a 標準ドライバ
21b libusbライブラリ(ネイティブコードのプログラム)
22 Linux(OS)
24 Javaデバイスドライバ(バイトドライバ)
25 Javaアプリケーション(バイトコードのアプリケーション)
90 USBデバイス


【特許請求の範囲】
【請求項1】
USBデバイスが接続されるUSBポートと、前記USBデバイスのうちHIDのためのOSの標準のデバイスドライバである標準ドライバを記憶する記憶部と、前記HIDが前記USBポートに接続されたときに前記標準ドライバによる前記HIDの制御である標準制御を前記OSに開始させる制御部とを備えており、
前記制御部は、前記標準制御を終了させる標準制御終了手段と、前記標準制御終了手段によって前記標準制御が終了させられた前記HIDをバイトコードのアプリケーションに制御させるバイトアプリ制御手段とを備えていることを特徴とする画像形成装置。
【請求項2】
前記制御部は、前記USBポートに接続された前記USBデバイスが前記HIDであるか否かを判断するHID判断手段を備えており、
前記USBポートに接続された前記USBデバイスが前記HIDであると前記HID判断手段によって判断されたときに、前記標準制御終了手段が前記標準制御を終了させた後で前記バイトアプリ制御手段が前記HIDを前記アプリケーションに制御させ、
前記USBポートに接続された前記USBデバイスが前記HIDではないと前記HID判断手段によって判断されたときに、前記バイトアプリ制御手段が前記USBデバイスを前記アプリケーションに制御させることを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記記憶部は、前記USBポートに接続された前記USBデバイスにアクセス可能なネイティブコードのプログラムを記憶し、
前記バイトアプリ制御手段は、前記プログラムを利用して前記アプリケーションに前記USBデバイスを制御させることを特徴とする請求項1または請求項2に記載の画像形成装置。
【請求項4】
前記制御部は、前記USBポートに接続された前記USBデバイスに対するバイトコードのデバイスドライバであるバイトドライバを前記プログラムを利用して作成するバイトドライバ作成手段を備えており、
前記バイトアプリ制御手段は、前記バイトドライバ作成手段によって作成された前記バイトドライバを介して前記アプリケーションに前記USBデバイスを制御させることを特徴とする請求項3に記載の画像形成装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−95940(P2011−95940A)
【公開日】平成23年5月12日(2011.5.12)
【国際特許分類】
【出願番号】特願2009−248327(P2009−248327)
【出願日】平成21年10月28日(2009.10.28)
【出願人】(000006150)京セラミタ株式会社 (13,173)
【Fターム(参考)】