(57)【要約】【課題】ハードウェアを有する電子機器をシミュレートする。【解決手段】第１の電子機器のハードウェア制御モジュールが、ハードウェア制御信号を第１のハードウェアに出力してから、動作終了信号を第１のハードウェアから入力するまでに掛かった時間である遅延時間を記述した第１の設定ファイルを生成し、第２の電子機器に固有の係数を記述した第２の設定ファイルを生成し、ハードウェア非依存モジュールから第２の電子機器の第２のハードウェアにより機能を実行するための要求である第２の機能実行要求を入力すると、第２の機能実行要求を入力してから第１の設定ファイルに記述された遅延時間に第２の設定ファイルに記述された係数を乗算して得られた時間に達したタイミングで、機能実行応答をハードウェア非依存モジュールに出力するよう、シミュレーター装置の制御回路を動作させる、シミュレータープログラムを製造する。【選択図】図４
2020173586.tif 000002
【特許請求の範囲】
【請求項１】
特定の機能を実現するために動作する第１のハードウェアと、
前記第１のハードウェアを制御するための情報処理プログラムであるハードウェア制御プログラムを実行する、ハードウェア制御モジュールと、
前記機能を実現するために前記ハードウェア制御モジュールを制御するための情報処理プログラムであって、前記第１のハードウェアの制御を伴わない情報処理プログラムであるハードウェア非依存プログラムを実行する、ハードウェア非依存モジュールと
を有する第１の電子機器の、
前記ハードウェア非依存モジュールが、前記第１の電子機器の前記第１のハードウェアにより前記機能を実行するための要求である第１の機能実行要求を、前記ハードウェア制御モジュールに出力し、
前記ハードウェア制御モジュールが、前記第１の機能実行要求を、前記ハードウェア非依存モジュールから入力すると、前記機能を実行するために前記第１のハードウェアを制御するための信号であるハードウェア制御信号を、前記第１のハードウェアに出力し、
前記第１のハードウェアが、前記ハードウェア制御信号を、前記ハードウェア制御モジュールから入力すると、前記ハードウェア制御信号に従って動作し、前記動作を終了すると、前記動作を終了したことを示す信号である動作終了信号を、前記ハードウェア制御モジュールに出力し、
前記ハードウェア制御モジュールが、前記動作終了信号を、前記第１のハードウェアから入力すると、前記機能を実行の完了の応答である機能実行応答を、前記ハードウェア非依存モジュールに出力する
よう動作させ、
前記ハードウェア制御モジュールが、前記ハードウェア制御信号を前記第１のハードウェアに出力してから、前記動作終了信号を前記第１のハードウェアから入力するまでに掛かった時間である遅延時間を記述した第１の設定ファイルを生成し、
前記第１のハードウェアと異なり前記特定の機能を実現するために動作する第２のハードウェアと、前記ハードウェア制御モジュールと、前記ハードウェア非依存モジュールとを有する第２の電子機器に固有の係数を記述した第２の設定ファイルを生成し、
前記ハードウェア非依存モジュールから前記第２の電子機器の前記第２のハードウェアにより前記機能を実行するための要求である第２の機能実行要求を入力すると、前記第２の機能実行要求を入力してから前記第１の設定ファイルに記述された前記遅延時間に前記第２の設定ファイルに記述された前記係数を乗算して得られた時間に達したタイミングで、前記機能実行応答を前記ハードウェア非依存モジュールに出力するよう、シミュレーター装置の制御回路を動作させる、シミュレータープログラムを製造する
シミュレータープログラムの製造方法。
【請求項２】
請求項１に記載のシミュレータープログラムの製造方法であって、
前記ハードウェア非依存モジュールが、異なる複数の第１の機能実行要求を、前記ハードウェア制御モジュールに出力し、
前記遅延時間は、前記異なる複数の第１の機能実行要求毎に異なり、
前記第１の設定ファイルには、前記異なる複数の第１の機能実行要求に関して異なる前記遅延時間が記述され、
前記シミュレータープログラムは、入力した前記第２の機能実行要求に関する前記遅延時間を前記第１の設定ファイルから読み出し、読み出した前記遅延時間に前記第２の設定ファイルに記述された前記係数を乗算して得られた時間に達したタイミングで、前記機能実行応答を前記ハードウェア非依存モジュールに出力するよう、前記シミュレーター装置の制御回路を動作させる
シミュレータープログラムの製造方法。
【請求項３】
請求項１又は２に記載のシミュレータープログラムの製造方法であって、
前記第１の電子機器は、
前記機能を実現するために動作する複数の第１のハードウェアと、
前記複数の第１のハードウェアをそれぞれ制御するための複数のハードウェア制御プログラムをそれぞれ実行する、複数のハードウェア制御モジュールと
を有し、
前記ハードウェア非依存プログラムは、前記複数のハードウェア制御モジュールをそれぞれ制御するための複数のサブプログラムを含み、
前記ハードウェア非依存モジュールに含まれる前記複数のサブプログラムそれぞれから前記第２の機能実行要求を入力すると、前記第２の機能実行要求を入力してから前記第１の設定ファイルに記述された前記遅延時間に前記第２の設定ファイルに記述された前記係数を乗算して得られた時間に達したタイミングで、前記機能実行応答を前記ハードウェア非依存モジュールに含まれる前記複数のサブプログラムにそれぞれ出力するよう、前記シミュレーター装置の制御回路を動作させる、複数のシミュレータープログラムを製造する
シミュレータープログラムの製造方法。
【請求項４】
特定の機能を実現するために動作する第１のハードウェアと、
前記第１のハードウェアを制御するための情報処理プログラムであるハードウェア制御プログラムを実行する、ハードウェア制御モジュールと、
前記機能を実現するために前記ハードウェア制御モジュールを制御するための情報処理プログラムであって、前記第１のハードウェアの制御を伴わない情報処理プログラムであるハードウェア非依存プログラムを実行する、ハードウェア非依存モジュールと
を有する第１の電子機器の、
前記ハードウェア非依存モジュールが、前記第１の電子機器の前記第１のハードウェアにより前記機能を実行するための要求である第１の機能実行要求を、前記ハードウェア制御モジュールに出力し、
前記ハードウェア制御モジュールが、前記第１の機能実行要求を、前記ハードウェア非依存モジュールから入力すると、前記機能を実行するために前記第１のハードウェアを制御するための信号であるハードウェア制御信号を、前記第１のハードウェアに出力し、
前記第１のハードウェアが、前記ハードウェア制御信号を、前記ハードウェア制御モジュールから入力すると、前記ハードウェア制御信号に従って動作し、前記動作を終了すると、前記動作を終了したことを示す信号である動作終了信号を、前記ハードウェア制御モジュールに出力し、
前記ハードウェア制御モジュールが、前記動作終了信号を、前記第１のハードウェアから入力すると、前記機能を実行の完了の応答である機能実行応答を、前記ハードウェア非依存モジュールに出力する
よう動作させたときの、
前記ハードウェア制御モジュールが、前記ハードウェア制御信号を前記第１のハードウェアに出力してから、前記動作終了信号を前記第１のハードウェアから入力するまでに掛かった時間である遅延時間を記述した第１の設定ファイルと、
前記第１のハードウェアと異なり前記特定の機能を実現するために動作する第２のハードウェアと、前記ハードウェア制御モジュールと、前記ハードウェア非依存モジュールとを有する第２の電子機器に固有の係数を記述した第２の設定ファイルとを参照して、
前記ハードウェア非依存モジュールから前記第２の電子機器の前記第２のハードウェアにより前記機能を実行するための要求である第２の機能実行要求を入力すると、前記第２の機能実行要求を入力してから前記第１の設定ファイルに記述された前記遅延時間に前記第２の設定ファイルに記述された前記係数を乗算して得られた時間に達したタイミングで、前記機能実行応答を前記ハードウェア非依存モジュールに出力するよう、シミュレーター装置の制御回路を動作させる
シミュレータープログラム。
【請求項５】
特定の機能を実現するために動作する第１のハードウェアと、
前記第１のハードウェアを制御するための情報処理プログラムであるハードウェア制御プログラムを実行する、ハードウェア制御モジュールと、
前記機能を実現するために前記ハードウェア制御モジュールを制御するための情報処理プログラムであって、前記第１のハードウェアの制御を伴わない情報処理プログラムであるハードウェア非依存プログラムを実行する、ハードウェア非依存モジュールと
を有する第１の電子機器の、
前記ハードウェア非依存モジュールが、前記第１の電子機器の前記第１のハードウェアにより前記機能を実行するための要求である第１の機能実行要求を、前記ハードウェア制御モジュールに出力し、
前記ハードウェア制御モジュールが、前記第１の機能実行要求を、前記ハードウェア非依存モジュールから入力すると、前記機能を実行するために前記第１のハードウェアを制御するための信号であるハードウェア制御信号を、前記第１のハードウェアに出力し、
前記ハードウェアが、前記ハードウェア制御信号を、前記ハードウェア制御モジュールから入力すると、前記ハードウェア制御信号に従って動作し、前記動作を終了すると、前記動作を終了したことを示す信号である動作終了信号を、前記ハードウェア制御モジュールに出力し、
前記ハードウェア制御モジュールが、前記動作終了信号を、前記第１のハードウェアから入力すると、前記機能を実行の完了の応答である機能実行応答を、前記ハードウェア非依存モジュールに出力する
よう動作させたときの、
前記ハードウェア制御モジュールが、前記ハードウェア制御信号を前記第１のハードウェアに出力してから、前記動作終了信号を前記第１のハードウェアから入力するまでに掛かった時間である遅延時間を記述した第１の設定ファイルと、
前記第１のハードウェアと異なり前記特定の機能を実現するために動作する第２のハードウェアと、前記ハードウェア制御モジュールと、前記ハードウェア非依存モジュールとを有する第２の電子機器に固有の係数を記述した第２の設定ファイルとを参照して、
前記ハードウェア非依存モジュールから前記第２の電子機器の前記第２のハードウェアにより前記機能を実行するための要求である第２の機能実行要求を入力すると、前記第２の機能実行要求を入力してから前記第１の設定ファイルに記述された前記遅延時間に前記第２の設定ファイルに記述された前記係数を乗算して得られた時間に達したタイミングで、前記機能実行応答を前記ハードウェア非依存モジュールに出力するためのシミュレータープログラムを実行する制御回路を有する
シミュレーター装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェアを有する電子機器をシミュレートするためのシミュレータープログラムに関する。本発明は、さらに、このシミュレータープログラムの製造方法に関する。本発明は、さらに、このシミュレータープログラムを実行するシミュレーター装置に関する。
【背景技術】
【０００２】
ハードウェアを有する電子機器（例えば、カセットから給紙するための搬送ローラーを有する画像形成装置）をシミュレートする技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−４９３５５号公報
【特許文献２】国際公開第２０１１／００７４６３号
【特許文献３】特開２０１２−１７４１９６号公報
【特許文献４】特開２０１８−１５６２９４号公報
【特許文献５】特開２０１０−１５７１０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ハードウェアを有する電子機器をシミュレートする技術においては、実際の電子機器の挙動に対して出来るだけ正確にシミュレートすることが望ましい。
【課題を解決するための手段】
【０００５】
本発明の一形態に係るシミュレータープログラムの製造方法は、
特定の機能を実現するために動作する第１のハードウェアと、
前記第１のハードウェアを制御するための情報処理プログラムであるハードウェア制御プログラムを実行する、ハードウェア制御モジュールと、
前記機能を実現するために前記ハードウェア制御モジュールを制御するための情報処理プログラムであって、前記第１のハードウェアの制御を伴わない情報処理プログラムであるハードウェア非依存プログラムを実行する、ハードウェア非依存モジュールと
を有する第１の電子機器の、
前記ハードウェア非依存モジュールが、前記第１の電子機器の前記第１のハードウェアにより前記機能を実行するための要求である第１の機能実行要求を、前記ハードウェア制御モジュールに出力し、
前記ハードウェア制御モジュールが、前記第１の機能実行要求を、前記ハードウェア非依存モジュールから入力すると、前記機能を実行するために前記第１のハードウェアを制御するための信号であるハードウェア制御信号を、前記第１のハードウェアに出力し、
前記第１のハードウェアが、前記ハードウェア制御信号を、前記ハードウェア制御モジュールから入力すると、前記ハードウェア制御信号に従って動作し、前記動作を終了すると、前記動作を終了したことを示す信号である動作終了信号を、前記ハードウェア制御モジュールに出力し、
前記ハードウェア制御モジュールが、前記動作終了信号を、前記第１のハードウェアから入力すると、前記機能を実行の完了の応答である機能実行応答を、前記ハードウェア非依存モジュールに出力する
よう動作させ、
前記ハードウェア制御モジュールが、前記ハードウェア制御信号を前記第１のハードウェアに出力してから、前記動作終了信号を前記第１のハードウェアから入力するまでに掛かった時間である遅延時間を記述した第１の設定ファイルを生成し、
前記第１のハードウェアと異なり前記特定の機能を実現するために動作する第２のハードウェアと、前記ハードウェア制御モジュールと、前記ハードウェア非依存モジュールとを有する第２の電子機器に固有の係数を記述した第２の設定ファイルを生成し、
前記ハードウェア非依存モジュールから前記第２の電子機器の前記第２のハードウェアにより前記機能を実行するための要求である第２の機能実行要求を入力すると、前記第２の機能実行要求を入力してから前記第１の設定ファイルに記述された前記遅延時間に前記第２の設定ファイルに記述された前記係数を乗算して得られた時間に達したタイミングで、前記機能実行応答を前記ハードウェア非依存モジュールに出力するよう、シミュレーター装置の制御回路を動作させる、シミュレータープログラムを製造する。
【０００６】
（１）本実施形態に係るシミュレータープログラムの製造方法によれば、本実施形態に係るシミュレータープログラムによれば、実際の電子機器の遅延時間と同じ遅延時間に達したタイミングで応答を出力するので、実際の遅延時間に対して出来るだけ正確に電子機器をシミュレートすることを図れる。より具体的には、第１の電子機器の遅延時間を実際に計測しておけば、異なる第２の電子機器の遅延時間を実際に計測することなく、係数を乗算するだけで、実際の遅延時間に対して出来るだけ正確に第２の電子機器をシミュレートすることを図れる。
【０００７】
シミュレータープログラムの製造方法は、
前記ハードウェア非依存モジュールが、異なる複数の第１の機能実行要求を、前記ハードウェア制御モジュールに出力し、
前記遅延時間は、前記異なる複数の第１の機能実行要求毎に異なり、
前記第１の設定ファイルには、前記異なる複数の第１の機能実行要求に関して異なる前記遅延時間が記述され、
前記シミュレータープログラムは、入力した前記第２の機能実行要求に関する前記遅延時間を前記第１の設定ファイルから読み出し、読み出した前記遅延時間に前記第２の設定ファイルに記述された前記係数を乗算して得られた時間に達したタイミングで、前記機能実行応答を前記ハードウェア非依存モジュールに出力するよう、前記シミュレーター装置の制御回路を動作させる。
【０００８】
（２）本実施形態によれば、第１の設定ファイルには、異なる複数の第１の機能実行要求に関して異なる遅延時間が記述される。これにより、共通のハードウェア制御モジュールが実行する異なる複数の第１の機能実行要求それぞれについて、共通の設定ファイル及び共通のシミュレータープログラムを用いることができる。さらに、異なる複数の機能実行要求毎に適切な遅延時間を採用することができるので、実際の遅延時間に対して出来るだけ正確に電子機器をシミュレートすることを図れる。
【０００９】
シミュレータープログラムの製造方法は、
前記第１の電子機器は、
前記機能を実現するために動作する複数の第１のハードウェアと、
前記複数の第１のハードウェアをそれぞれ制御するための複数のハードウェア制御プログラムをそれぞれ実行する、複数のハードウェア制御モジュールと
を有し、
前記ハードウェア非依存プログラムは、前記複数のハードウェア制御モジュールをそれぞれ制御するための複数のサブプログラムを含み、
前記ハードウェア非依存モジュールに含まれる前記複数のサブプログラムそれぞれから前記第２の機能実行要求を入力すると、前記第２の機能実行要求を入力してから前記第１の設定ファイルに記述された前記遅延時間に前記第２の設定ファイルに記述された前記係数を乗算して得られた時間に達したタイミングで、前記機能実行応答を前記ハードウェア非依存モジュールに含まれる前記複数のサブプログラムにそれぞれ出力するよう、前記シミュレーター装置の制御回路を動作させる、複数のシミュレータープログラムを製造する。
【００１０】
（３）本実施形態によれば、電子機器は、１つの機能を実現するために、複数のハードウェアを動作させる。この場合、１つの機能を実現するための複数のハードウェアに関して、異なる複数の第１の設定ファイルが生成される。これにより、１つの機能を実現するために複数のハードウェアを動作させる場合に、ハードウェア毎に適切な遅延時間を採用することができるので、実際の遅延時間に対して出来るだけ正確に電子機器をシミュレートすることを図れる。
【００１１】
本発明の一形態に係るシミュレータープログラムは、
特定の機能を実現するために動作する第１のハードウェアと、
前記第１のハードウェアを制御するための情報処理プログラムであるハードウェア制御プログラムを実行する、ハードウェア制御モジュールと、
前記機能を実現するために前記ハードウェア制御モジュールを制御するための情報処理プログラムであって、前記第１のハードウェアの制御を伴わない情報処理プログラムであるハードウェア非依存プログラムを実行する、ハードウェア非依存モジュールと
を有する第１の電子機器の、
前記ハードウェア非依存モジュールが、前記第１の電子機器の前記第１のハードウェアにより前記機能を実行するための要求である第１の機能実行要求を、前記ハードウェア制御モジュールに出力し、
前記ハードウェア制御モジュールが、前記第１の機能実行要求を、前記ハードウェア非依存モジュールから入力すると、前記機能を実行するために前記第１のハードウェアを制御するための信号であるハードウェア制御信号を、前記第１のハードウェアに出力し、
前記第１のハードウェアが、前記ハードウェア制御信号を、前記ハードウェア制御モジュールから入力すると、前記ハードウェア制御信号に従って動作し、前記動作を終了すると、前記動作を終了したことを示す信号である動作終了信号を、前記ハードウェア制御モジュールに出力し、
前記ハードウェア制御モジュールが、前記動作終了信号を、前記第１のハードウェアから入力すると、前記機能を実行の完了の応答である機能実行応答を、前記ハードウェア非依存モジュールに出力する
よう動作させたときの、
前記ハードウェア制御モジュールが、前記ハードウェア制御信号を前記第１のハードウェアに出力してから、前記動作終了信号を前記第１のハードウェアから入力するまでに掛かった時間である遅延時間を記述した第１の設定ファイルと、
前記第１のハードウェアと異なり前記特定の機能を実現するために動作する第２のハードウェアと、前記ハードウェア制御モジュールと、前記ハードウェア非依存モジュールとを有する第２の電子機器に固有の係数を記述した第２の設定ファイルとを参照して、
前記ハードウェア非依存モジュールから前記第２の電子機器の前記第２のハードウェアにより前記機能を実行するための要求である第２の機能実行要求を入力すると、前記第２の機能実行要求を入力してから前記第１の設定ファイルに記述された前記遅延時間に前記第２の設定ファイルに記述された前記係数を乗算して得られた時間に達したタイミングで、前記機能実行応答を前記ハードウェア非依存モジュールに出力するよう、シミュレーター装置の制御回路を動作させる。
【００１２】
本発明の一形態に係るシミュレーター装置は、
特定の機能を実現するために動作する第１のハードウェアと、
前記第１のハードウェアを制御するための情報処理プログラムであるハードウェア制御プログラムを実行する、ハードウェア制御モジュールと、
前記機能を実現するために前記ハードウェア制御モジュールを制御するための情報処理プログラムであって、前記第１のハードウェアの制御を伴わない情報処理プログラムであるハードウェア非依存プログラムを実行する、ハードウェア非依存モジュールと
を有する第１の電子機器の、
前記ハードウェア非依存モジュールが、前記第１の電子機器の前記第１のハードウェアにより前記機能を実行するための要求である第１の機能実行要求を、前記ハードウェア制御モジュールに出力し、
前記ハードウェア制御モジュールが、前記第１の機能実行要求を、前記ハードウェア非依存モジュールから入力すると、前記機能を実行するために前記第１のハードウェアを制御するための信号であるハードウェア制御信号を、前記第１のハードウェアに出力し、
前記ハードウェアが、前記ハードウェア制御信号を、前記ハードウェア制御モジュールから入力すると、前記ハードウェア制御信号に従って動作し、前記動作を終了すると、前記動作を終了したことを示す信号である動作終了信号を、前記ハードウェア制御モジュールに出力し、
前記ハードウェア制御モジュールが、前記動作終了信号を、前記第１のハードウェアから入力すると、前記機能を実行の完了の応答である機能実行応答を、前記ハードウェア非依存モジュールに出力する
よう動作させたときの、
前記ハードウェア制御モジュールが、前記ハードウェア制御信号を前記第１のハードウェアに出力してから、前記動作終了信号を前記第１のハードウェアから入力するまでに掛かった時間である遅延時間を記述した第１の設定ファイルと、
前記第１のハードウェアと異なり前記特定の機能を実現するために動作する第２のハードウェアと、前記ハードウェア制御モジュールと、前記ハードウェア非依存モジュールとを有する第２の電子機器に固有の係数を記述した第２の設定ファイルとを参照して、
前記ハードウェア非依存モジュールから前記第２の電子機器の前記第２のハードウェアにより前記機能を実行するための要求である第２の機能実行要求を入力すると、前記第２の機能実行要求を入力してから前記第１の設定ファイルに記述された前記遅延時間に前記第２の設定ファイルに記述された前記係数を乗算して得られた時間に達したタイミングで、前記機能実行応答を前記ハードウェア非依存モジュールに出力するためのシミュレータープログラムを実行する制御回路を有する。
【発明の効果】
【００１３】
ハードウェアを有する電子機器をシミュレートする技術において、実際の電子機器の挙動に対して出来るだけ正確にシミュレートすることを図れる。
【００１４】
なお、ここに記載された効果は必ずしも限定されるものではなく、本発明中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に係る画像形成装置のハードウェア構成を示す。
【図２】シミュレーター装置のハードウェア構成を示す。
【図３】画像形成装置の機能的構成を示す。
【図４】シミュレーター装置の機能的構成を示す。
【図５】シミュレータープログラムの製造方法を示す。
【図６】第１の設定ファイルの一例を示す。
【図７】シミュレーター装置の動作フローを示す。
【図８】変形例に係るシミュレーター装置の機能的構成を示す。
【図９】第２の設定ファイルの一例を示す。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら、本発明の実施形態を説明する。
【００１７】
１．画像形成装置のハードウェア構成
【００１８】
図１は、本発明の一実施形態に係る画像形成装置のハードウェア構成を示す。
【００１９】
本実施形態において、電子機器を、画像形成装置（Multifunction Peripheral）として説明する。画像形成装置１０は、制御回路１００を備える。制御回路１００は、プロセッサーであるＣＰＵ１１ａ（Central Processing Unit）、ＲＡＭ１１ｂ（Random Access Memory）、メモリーであるＲＯＭ１１ｃ（Read Only Memory）及び専用のハードウェア回路等から構成され、画像形成装置１０の全体的な動作制御を司る。ＣＰＵ１１ａは、ＲＯＭ１１ｃが記憶する情報処理プログラムをＲＡＭ１１ｂにロードして実行する。ＲＯＭ１１ｃは、ＣＰＵ１１ａが実行するプログラムやデータなどを固定的に記憶する。ＲＯＭ１１ｃは、非一過性のコンピューター読み取り可能な記録媒体の一例である。
【００２０】
制御回路１００は、Bluetooth（登録商標）送受信部１１、画像読取部１２（イメージスキャナー）、画像処理部１４（ＧＰＵ（Graphics Processing Unit）を含む）、画像メモリー１５、画像形成部１６（プリンター）、表示部１７ａ（表示装置）を備える操作部１７（操作装置）（タッチパネル）、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の大容量の不揮発性の記憶装置１８、ファクシミリ通信部１９及びネットワーク通信インターフェース１３等と接続されている。制御回路１００は、接続されている上記各部の動作制御や、各部との間での信号又はデータの送受信を行う。操作部１７（タッチパネル）は、入力装置の一形態であり、入力装置として、マイクロフォンを含む音声入力装置が設けられてもよい。
【００２１】
２．シミュレーター装置のハードウェア構成
【００２２】
図２は、シミュレーター装置のハードウェア構成を示す。
【００２３】
シミュレーター装置２０は、例えば、パーソナルコンピューター等の情報処理装置である。シミュレーター装置２０は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＨＤＤやＳＳＤ等の大容量の不揮発性の記憶装置２４、ネットワーク通信インターフェース２５、操作装置２６及び表示装置２７と、これらを相互に接続するバス２８とを有する。
【００２４】
ＣＰＵ２１、ＲＯＭ２２、及びＲＡＭ２３は、制御回路２００を構成する。ＣＰＵ２１は、ＲＯＭ２２が記憶する情報処理プログラムをＲＡＭ２３にロードして実行する。ＲＯＭ２２は、ＣＰＵ２１が実行するプログラムやデータなどを固定的に記憶する。ＲＯＭ２２は、非一過性のコンピューター読み取り可能な記録媒体の一例である。
【００２５】
３．画像形成装置の機能的構成
【００２６】
図３は、画像形成装置の機能的構成を示す。
【００２７】
画像形成装置１０（第１の電子機器）は、市場で販売される前のテスト機である。画像形成装置１０は、複数のハードウェア１３０（第１のハードウェア）と、複数のハードウェア制御モジュール１２０と、ハードウェア非依存モジュール１１０とを有する。ハードウェア非依存モジュール１１０が実行するハードウェア非依存プログラム１１１（後述）は、テスト機である画像形成装置１０が実行する情報処理プログラムのうちテスト対象のプログラムである。以下、特記しない限り、単数のハードウェア１３０及び単数のハードウェア制御モジュール１２０を説明する。
【００２８】
ハードウェア１３０は、特定の機能１１１Ａを実現するために動作する。例えば、特定の機能１１１Ａは、給紙機能である。ハードウェア１３０は、メカニカルな挙動を伴うハードウェアである。例えば、ハードウェア１３０は、カセットに収納された用紙を給紙するための搬送ローラーを駆動するモーター（メカニカルな挙動を伴う）であって、ＣＰＵ（メカニカルな挙動を伴わない）ではない。以下、「メカニカルな挙動を伴うハードウェア」を単に「ハードウェア」と称する。
【００２９】
ハードウェア制御モジュール１２０は、制御回路１００において、ＣＰＵ１１ａが、ＲＯＭ１１ｃが記憶するハードウェア制御プログラム１２１をＲＡＭ１１ｂにロードして実行することにより実現される。ハードウェア制御プログラム１２１は、特定の機能１１１Ａを実現するためにハードウェア１３０を制御するための情報処理プログラムである。
【００３０】
ハードウェア非依存モジュール１１０は、制御回路１００において、ＣＰＵ１１ａが、ＲＯＭ１１ｃが記憶するハードウェア非依存プログラム１１１をＲＡＭ１１ｂにロードして実行することにより実現される。ハードウェア非依存プログラム１１１は、機能１１１Ａを実現するためにハードウェア制御モジュール１２０を制御するための情報処理プログラムである。ハードウェア非依存プログラム１１１は、ハードウェア１３０の制御を伴わない。ハードウェア非依存プログラム１１１は、機能１１１Ａを実現するための複数のサブプログラム１１１Ｂを含む。複数のサブプログラム１１１Ｂは、複数のハードウェア制御モジュール１２０をそれぞれ制御するための情報処理プログラムである。従って、より具体的には、ハードウェア非依存モジュール１１０は、ハードウェア非依存プログラム１１１に含まれるサブプログラム１１１Ｂを実行することにより、ハードウェア制御モジュール１２０を制御する。以下、特記しない限り単数のサブプログラム１１１Ｂを説明する。
【００３１】
４．シミュレーター装置の機能的構成
【００３２】
図４は、シミュレーター装置の機能的構成を示す。
【００３３】
シミュレーター装置２０は、テスト機である画像形成装置１０（第１の電子機器）と、画像形成装置１０（第１の電子機器）とは異なる機種の画像形成装置１０（第２の電子機器）（図示せず）とをシミュレートするために、開発者が使用するパーソナルコンピューター等である。
【００３４】
画像形成装置１０（第２の電子機器）は、ハードウェア（第２のハードウェア）と、ハードウェア制御モジュール１２０と、ハードウェア非依存モジュール１１０とを有する。画像形成装置１０（第２の電子機器）のハードウェア制御モジュール１２０及びハードウェア非依存モジュール１１０は、テスト機である画像形成装置１０（第１の電子機器）のハードウェア制御モジュール１２０及びハードウェア非依存モジュール１１０（図３）と同じである。
【００３５】
一方、画像形成装置１０（第２の電子機器）のハードウェア（第２のハードウェア）は、ハードウェア１３０（第１のハードウェア）と同じ機能１１１Ａ（例えば、給紙機能）を実現するために動作するが、テスト機である画像形成装置１０（第１の電子機器）のハードウェア１３０（第１のハードウェア）とは異なる。例えば、画像形成装置１０（第１の電子機器）のハードウェア１３０（第１のハードウェア）は、標準カセットから給紙するための搬送ローラーである。一方、画像形成装置１０（第２の電子機器）のハードウェア（第２のハードウェア）は、大容量カセットから給紙するための搬送ローラーである。
【００３６】
異なる機種の画像形成装置１０（第２の電子機器）は１台でも複数でもよい。本実施形態では、説明の便宜のために１台の画像形成装置１０（第２の電子機器）を説明する。
【００３７】
シミュレーター装置２０は、複数のシミュレーターモジュール２２０と、ハードウェア非依存モジュール２１０とを有する。以下、特記しない限り、単数のシミュレーターモジュール２２０を説明する。
【００３８】
ハードウェア非依存モジュール２１０は、制御回路２００において、ＣＰＵ２１が、ＲＯＭ２２が記憶するハードウェア非依存プログラム１１１をＲＡＭ２３にロードして実行することにより実現される。ハードウェア非依存プログラム１１１は、画像形成装置１０のハードウェア非依存モジュール１１０が実行するハードウェア非依存プログラム１１１と同一である。即ち、ハードウェア非依存プログラム１１１は、機能１１１Ａを実現するための複数のサブプログラム１１１Ｂを含む。
【００３９】
シミュレーターモジュール２２０は、制御回路２００において、ＣＰＵ２１が、ＲＯＭ２２が記憶するシミュレータープログラム２２１及び設定ファイル２２２をＲＡＭ２３にロードして実行することにより実現される。シミュレータープログラム２２１は、画像形成装置１０のハードウェア制御モジュール１２０が実行するハードウェア制御プログラム１２１の役割を持つ。要するに、本来は、画像形成装置１０がハードウェア非依存プログラム１１１を実行するときハードウェア制御プログラム１２１を実行するところ、シミュレーター装置２０は、ハードウェア非依存プログラム１１１を実行するときシミュレータープログラム２２１を実行する。設定ファイル２２２は、第１の設定ファイル２２２Ａと、第２の設定ファイル２２２Ｂとを含む。
【００４０】
要するに、シミュレーター装置２０は、画像形成装置１０が実行する特定の機能のうち、ハードウェアの制御を伴わない情報処理プログラム（ハードウェア非依存プログラム１１１）の挙動をシミュレートする。具体的には、シミュレーター装置２０は、シミュレート対象であるハードウェア非依存プログラム１１１を実行する。本来、画像形成装置１０がハードウェア非依存プログラム１１１を実行する際には、ハードウェア非依存プログラム１１１がハードウェア制御プログラム１２１を制御し、ハードウェア制御プログラム１２１がハードウェア１３０を制御する。これに対して、シミュレーター装置２０がハードウェア非依存プログラム１１１を実行する際には、ハードウェア非依存プログラム１１１は、実際のハードウェア制御プログラム１２１ではなく、シミュレータープログラム２２１を制御する。これにより、シミュレーター装置２０は、画像形成装置１０のハードウェア非依存モジュール１１０をシミュレートする。
【００４１】
５．シミュレータープログラムの製造方法
【００４２】
図５は、シミュレータープログラムの製造方法を示す。
【００４３】
まず、テスト対象の画像形成装置１０（第１の電子機器）に、ステップＳ１０１乃至ステップＳ１０８の動作を実行させる。
【００４４】
画像形成装置１０において、ハードウェア非依存モジュール１１０は、特定の機能１１１Ａを実行するためのハードウェア非依存プログラム１１１に含まれるサブプログラム１１１Ｂを実行することにより、機能１１１Ａを実行するための要求（以下、機能実行要求と称する）を、ハードウェア制御モジュール１２０に出力する（ステップＳ１０１）。具体的には、画像形成装置１０（第１の電子機器）が出力する機能実行要求は、画像形成装置１０（第１の電子機器）のハードウェア１３０（第１のハードウェア）により機能１１１Ａを実行するための要求（第１の機能実行要求）である
【００４５】
ハードウェア制御モジュール１２０は、第１の機能実行要求を、ハードウェア非依存モジュール１１０から入力する（ステップＳ１０２）。すると、ハードウェア制御モジュール１２０は、機能１１１Ａを実行するためにハードウェア１３０を制御するための信号（以下、ハードウェア制御信号と称する）を、ハードウェア１３０（第１のハードウェア）に出力する（ステップＳ１０３）。
【００４６】
ハードウェア１３０は、ハードウェア制御信号を、ハードウェア制御モジュール１２０から入力する（ステップＳ１０４）。すると、ハードウェア１３０は、ハードウェア制御信号に従って動作する（ステップＳ１０５）。ハードウェア１３０に含まれるセンサー１３１は、ハードウェア１３０が動作を終了したことを検出する。すると、ハードウェア１３０に含まれるセンサー１３１は、動作を終了したことを示す信号（以下、動作終了信号と称する）を、ハードウェア制御モジュール１２０に出力する（ステップＳ１０６）。
【００４７】
ハードウェア制御モジュール１２０は、動作終了信号を、ハードウェア１３０（に含まれるセンサー１３１）から入力する（ステップＳ１０７）。すると、ハードウェア制御モジュール１２０は、機能実行の完了の応答（以下、機能実行応答と称する）を、ハードウェア非依存モジュール１１０に出力する（ステップＳ１０８）。
【００４８】
ハードウェア非依存モジュール１１０は、機能実行応答を、ハードウェア制御モジュール１２０から取得する。
【００４９】
次に、画像形成装置１０又は情報処理装置（開発者が使用するパーソナルコンピューター等。図示せず）が、ハードウェア制御モジュール１２０が、ハードウェア制御信号をハードウェア１３０に出力（ステップＳ１０３）してから、動作終了信号をハードウェア１３０（に含まれるセンサー１３１）から入力（ステップＳ１０７）するまでに掛かった時間（以下、遅延時間と称する）を記述した第１の設定ファイル２２２Ａを生成する（ステップＳ１０９）。
【００５０】
次に、情報処理装置（開発者が使用するパーソナルコンピューター等。図示せず）が、第２の設定ファイル２２２Ｂを生成する（ステップＳ１１１）。第２の設定ファイル２２２Ｂには、テスト対象の画像形成装置１０（第１の電子機器）と、異なる画像形成装置１０（第２の電子機器）との、それぞれに固有の係数が記述される。
【００５１】
次に、情報処理装置（開発者が使用するパーソナルコンピューター等。図示せず）が、シミュレータープログラム２２１を製造する（ステップＳ１１０）。シミュレータープログラム２２１は、ハードウェア非依存モジュール１１０から第２の電子機器１０の第２のハードウェア１３０により機能１１１Ａを実行するための要求である第２の機能実行要求を入力すると、第２の機能実行要求を入力してから第１の設定ファイル２２２Ａに記述された遅延時間に第２の設定ファイル２２２Ｂに記述された係数を乗算して得られた時間に達したタイミングで、機能実行応答をハードウェア非依存モジュール１１０に出力するよう、シミュレーター装置２０の制御回路２００（シミュレーターモジュール２２０）を動作させるための情報処理プログラムである。
【００５２】
ところで、典型的には、ハードウェア非依存モジュール１１０は、共通の機能１１１Ａ（例えば、給紙機能）を実行するために、異なる複数の機能実行要求（例えば、Ａ３用紙の給紙機能実行要求、Ａ５用紙の給紙機能実行要求）を、画像形成装置１０の共通のハードウェア制御モジュール１２０に出力する。この場合、画像形成装置１０の共通のハードウェア制御モジュール１２０に、異なる複数の機能実行要求それぞれについてステップＳ１０１乃至ステップＳ１０８の動作を実行させる。典型的には、例えば、用紙サイズが大きい給紙機能の遅延時間は長く、用紙サイズが小さい給紙機能の遅延時間は短い。結果的に、異なる複数の機能実行要求に関して、異なる遅延時間が記述された第１の設定ファイル２２２Ａが生成される（ステップＳ１０９）。これにより、共通のハードウェア制御モジュール１２０が実行する異なる複数の機能実行要求それぞれについて、第１の共通の設定ファイル２２２Ａ及び共通のシミュレータープログラム２２１を用いることができる。
【００５３】
また、典型的には、画像形成装置１０は、１つの機能１１１Ａを実現するために、複数のハードウェア１１３を動作させる。この場合、画像形成装置１０のハードウェア非依存モジュール１１０に、１つの機能１１１Ａを実現するためのハードウェア非依存プログラム１１１に含まれる複数のサブプログラム１１１Ｂそれぞれについて、ステップＳ１０１乃至ステップＳ１０８の動作を実行させる。結果的に、１つの機能１１１Ａを実現するための複数のハードウェア１１３に関して、異なる複数の設定ファイル２２２（図４の複数の設定ファイル２２２）が生成される（ステップＳ１０９）。これにより、１つの機能１１１Ａを実現するために複数のハードウェア１１３を動作させる場合に、ハードウェア１１３毎に適切な遅延時間を採用することができるので、実際の遅延時間に対して出来るだけ正確に画像形成装置１０をシミュレートすることを図れる。
【００５４】
６．設定ファイルの一例
【００５５】
図６は、第１の設定ファイルの一例を示す。
【００５６】
第１の設定ファイル２２２Ａには、機能実行要求２２４に対して、遅延時間２２５が関連付けて記述される。
【００５７】
図９は、第２の設定ファイルの一例を示す。
【００５８】
第２の設定ファイル２２２Ｂには、画像形成装置１０を識別する画像形成装置識別子２２３と機能実行要求２２４との組み合わせに対して、係数２２６が関連付けて記述される。
【００５９】
本例では、第１の識別子により識別される画像形成装置１０（第１の電子機器）が給紙機能（標準カセットから給紙）を実行する場合の係数２２６は「１」である。一方、第２の識別子により識別される画像形成装置１０（第２の電子機器）が給紙機能（大容量カセットから給紙）を実行する場合の係数２２６は「２」である。係数２２６は、例えば、各カセットからの給紙搬送距離に依存して決定すればよい。
【００６０】
７．シミュレーター装置の動作フロー
【００６１】
図７は、シミュレーター装置の動作フローを示す。
【００６２】
シミュレーター装置２０において、ハードウェア非依存モジュール２１０は、機能１１１Ａを実行するため、ハードウェア非依存プログラム１１１に含まれる各サブプログラム１１１Ｂを実行することにより、シミュレーション対象の画像形成装置１０のハードウェア１３０により機能１１１Ａを実行するための要求である機能実行要求を、シミュレーターモジュール２２０に出力する。
【００６３】
シミュレーターモジュール２２０は、機能実行要求を、ハードウェア非依存モジュール２１０から入力する（ステップＳ２０１）。すると、シミュレーターモジュール２２０は、第１の設定ファイル２２２Ａ（図６）から、入力した機能実行要求２２４に対して関連付けられた、遅延時間２２５を読み出す（ステップＳ２０２）。
【００６４】
シミュレーターモジュール２２０は、さらに、第２の設定ファイル２２２Ｂ（図９）から、シミュレート対象の画像形成装置１０を識別する画像形成装置識別子２２３と、入力した機能実行要求２２４との組み合わせに対して関連付けられた、係数２２６を読み出す（ステップＳ２０５）。
【００６５】
シミュレーターモジュール２２０は、ハードウェア非依存モジュール２１０から機能実行要求を入力してから、第１の設定ファイル２２２Ａに記述された遅延時間２２５に第２の設定ファイル２２２Ｂに記述された係数２２６を乗算して得られた時間に達したと判断する（ステップＳ２０３）。すると、シミュレーターモジュール２２０は、機能実行応答を、ハードウェア非依存モジュール２１０に出力する（ステップＳ２０４）。ハードウェア非依存モジュール２１０は、シミュレーターモジュール２２０から、機能実行応答を入力する。
【００６６】
具体例を述べる。シミュレーターモジュール２２０は、画像形成装置１０（第２の電子機器）のハードウェア１３０（第２のハードウェア）により機能１１１Ａを実行するための要求（第２の機能実行要求）を、ハードウェア非依存モジュール２１０から入力する（ステップＳ２０１）。シミュレーターモジュール２２０は、第２の機能実行要求を入力してから第１の設定ファイルに記述された遅延時間（ステップＳ２０２）に第２の設定ファイルに記述された係数（ステップＳ２０５）を乗算して得られた時間に達したタイミングで（ステップＳ２０３）、機能実行応答をハードウェア非依存モジュールに出力する（ステップＳ２０２）。
【００６７】
８．変形例
【００６８】
図８は、変形例に係るシミュレーター装置の機能的構成を示す。
【００６９】
図４に示すシミュレーター装置２０は、シミュレーターモジュール２２０と、ハードウェア非依存モジュール２１０とを有する。これに替えて、図８に示すシミュレーター装置２０は、シミュレーターモジュール２２０を有し、ハードウェア非依存モジュール２１０を有さない。この場合、シミュレーターモジュール２２０は、画像形成装置１０が有するハードウェア非依存モジュール１１０（図３のハードウェア非依存モジュール１１０と同じ）との間で、例えばＵＳＢ接続等を介して、機能実行要求を入力し（ステップＳ２０１）、機能実行応答を出力する（ステップＳ２０４）。図８に示すシミュレーター装置２０のシミュレーターモジュール２２０が実行するシミュレータープログラム２２１及び設定ファイル２２２は、図４のシミュレータープログラム２２１及び設定ファイル２２２と同じである。逆に言えば、本実施形態のシミュレータープログラムの製造方法（図５）により製造されたシミュレータープログラム２２１及び設定ファイル２２２を実行するシミュレーター装置２０のシミュレーターモジュール２２０は、図４及び図８の何れのシミュレーターモジュール２２０であってもよい。
【００７０】
９．結語
【００７１】
典型的に、複数の機種の電子機器で動作するハードウェア非依存プログラムをテスト（例えば、動作テスト）するとき、シミュレータープログラムを用いることがある。シミュレータープログラムは、ハードウェア非依存プログラムから要求を入力し、ハードウェア非依存プログラムに応答を出力する（所謂、疑似応答）。これにより、シミュレータープログラムを用いて、テスト対象の機器である電子機器の制御を再現する。しかしながら、シミュレータープログラムの疑似応答に掛かる時間は、実際の電子機器の応答に係る時間である遅延時間と異なるケースがある。特に、実際の電子機器の動作が、メカニカルな挙動を伴うハードウェアを制御する動作である場合、実際の電子機器の遅延時間の方がシミュレータープログラムの疑似応答に掛かる時間よりも、はるかに長い。このため、実際の電子機器がハードウェア非依存プログラムを実行すると、シミュレータープログラムの疑似応答では想定し得なかった、タイミングの問題が発生するおそれがある。そこで、要求受信後に直ちに疑似応答するのではなく、一定時間経過後に疑似応答することが考えられる。しかしながら、実際の遅延時間は、ハードウェアのメカニカルな挙動に大きく依存するため、一定時間経過後に疑似応答するとしても、正確なシミュレートを行うことができず、実際の電子機器でタイミングの問題が発生するおそれは未だ残る。
【００７２】
（１）以上のような事情に鑑み、本実施形態に係るシミュレータープログラム２２１の製造方法によれば、画像形成装置１０（第１の電子機器）のハードウェア制御モジュール１２０が、ハードウェア制御信号をハードウェア１３０に出力（ステップＳ１０３）してから、動作終了信号をハードウェア１３０から入力（ステップＳ１０７）するまでに掛かった遅延時間を記述した第１の設定ファイル２２２Ａを生成する（ステップＳ１０９）。さらに、テスト対象の画像形成装置１０（第１の電子機器）と、異なる画像形成装置１０（第２の電子機器）との、それぞれに固有の係数が記述される第２の設定ファイル２２２Ｂが生成される（ステップＳ１１１）。次に、ハードウェア非依存モジュール１１０から、異なる画像形成装置１０（第２の電子機器）のハードウェア１３０により機能１１１Ａを実行するための第２の機能実行要求を入力すると、第２の機能実行要求を入力してから第１の設定ファイル２２２Ａに記述された遅延時間に第２の設定ファイル２２２Ｂに記述された係数を乗算して得られた時間に達したタイミングで、機能実行応答をハードウェア非依存モジュール１１０に出力するよう、シミュレーター装置２０の制御回路２００を動作させるためのシミュレータープログラム２２１を製造する（ステップＳ１１０）。これにより、本実施形態に係るシミュレータープログラム２２１によれば、実際の画像形成装置１０の遅延時間と同じ遅延時間に達したタイミングで応答を出力するので、実際の遅延時間に対して出来るだけ正確に画像形成装置１０をシミュレートすることを図れる。より具体的には、画像形成装置１０（第１の電子機器）の遅延時間を実際に計測しておけば、異なる画像形成装置１０（第２の電子機器）の遅延時間を実際に計測することなく、係数を乗算するだけで、実際の遅延時間に対して出来るだけ正確に画像形成装置１０（第２の電子機器）をシミュレートすることを図れる。
【００７３】
（２）本実施形態によれば、第１の設定ファイル２２２Ａには、異なる複数の機能実行要求に関して異なる遅延時間が記述される。これにより、共通のハードウェア制御モジュール１２０が実行する異なる複数の機能実行要求それぞれについて、共通の設定ファイル２２２及び共通のシミュレータープログラム２２１を用いることができる。さらに、異なる複数の機能実行要求毎に適切な遅延時間を採用することができるので、実際の遅延時間に対して出来るだけ正確に画像形成装置１０をシミュレートすることを図れる。
【００７４】
（３）本実施形態によれば、画像形成装置１０は、１つの機能１１１Ａを実現するために、複数のハードウェア１１３を動作させる。この場合、１つの機能１１１Ａを実現するための複数のハードウェア１１３に関して、異なる複数の第１の設定ファイル２２２Ａ（図４の複数の第１の設定ファイル２２２Ａ）が生成される（ステップＳ１０９）。これにより、１つの機能１１１Ａを実現するために複数のハードウェア１１３を動作させる場合に、ハードウェア１１３毎に適切な遅延時間を採用することができるので、実際の遅延時間に対して出来るだけ正確に画像形成装置１０をシミュレートすることを図れる。
【００７５】
本技術の各実施形態及び各変形例について上に説明したが、本技術は上述の実施形態にのみ限定されるものではなく、本技術の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【００７６】
画像形成装置１０
シミュレーター装置２０
制御回路１００，２００
ハードウェア非依存モジュール１１０
ハードウェア非依存プログラム１１１
機能１１１Ａ
サブプログラム１１１Ｂ
ハードウェア制御モジュール１２０
ハードウェア制御プログラム１２１
ハードウェア１３０
センサー１３１
シミュレーターモジュール２２０
シミュレータープログラム２２１
設定ファイル２２２
【図１】
2020173586.tif 000003
【図２】
2020173586.tif 000004
【図３】
2020173586.tif 000005
【図４】
2020173586.tif 000006
【図５】
2020173586.tif 000007
【図６】
2020173586.tif 000008
【図７】
2020173586.tif 000009
【図８】
2020173586.tif 000010
【図９】
2020173586.tif 000011