(57)【要約】【目的】  他の計算機システムを利用することなく、画像形成装置で動作するプログラムを開発出来るようにする。【構成】  ＨＤＤ１１にソースコードファイル２０とコンパイラプログラムオブジェクト２３とデバッガプログラムオブジェクト２４を格納し、ＣＰＵ８がコンパイラプログラムオブジェクト２３を実行してソースコードファイル２０をコンパイルして動作可能な形式のオブジェクトを作成し、そのオブジェクトファイル２１をＨＤＤ１１に格納し、そのオブジェクトファイル２１を動作させると共に、デバッガプログラムオブジェクト２４を実行してデバッグを行い、デバッグ情報ファイル２２をＨＤＤ１１に格納し、そのデバッグ情報ファイル２２の内容を解析することによってオブジェクトの実行結果を解析し、異常終了の原因になったアドレス値等の情報を操作パネル２の出力表示部７に表示する。【選択図】        図１
2006319698.tif 000002
【特許請求の範囲】
【請求項１】
プログラムのソースコードを格納するソースコード格納手段と、該ソースコード格納手段に格納されたソースコードをコンパイルして動作可能な形式のオブジェクトを作成するコンパイル手段と、該コンパイル手段によって作成されたオブジェクトを格納するオブジェクト格納手段と、該オブジェクト格納手段に格納されたオブジェクトを動作させる実行手段と、該実行手段によって実行したオブジェクトの実行結果を保存する保存手段と、該保存手段に保存したオブジェクトの実行結果を解析する解析手段を備えたことを特徴とする画像形成装置。
【請求項２】
前記ソースコードを編集する編集手段を設けたことを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記各手段のいずれかひとつの手段、いずれか複数の手段、又は全ての手段をオプションとして搭載可能にしたことを特徴とする請求項２記載の画像形成装置。
【請求項４】
入力操作部と出力表示部を有し、前記各手段のいずれかひとつの手段、いずれか複数の手段、又は全ての手段を使用する際に、前記入力操作部と前記出力表示部を利用するようにしたことを特徴とする請求項２記載の画像形成装置。
【請求項５】
入力操作部を有し、出力表示部を持つ出力装置を接続可能であり、前記各手段のいずれかひとつの手段、いずれか複数の手段、又は全ての手段を使用する際に、前記入力操作部と前記出力装置の出力表示部を利用するようにしたことを特徴とする請求項２記載の画像形成装置。
【請求項６】
出力表示部を有し、入力操作部を持つ入力装置を接続可能であり、前記各手段のいずれかひとつの手段、いずれか複数の手段、又は全ての手段を使用する際に、前記入力装置の入力操作部と前記出力表示部を利用するようにしたことを特徴とする請求項２記載の画像形成装置。
【請求項７】
入力操作部と出力表示部を持つ端末装置を接続可能であり、前記各手段のいずれかひとつの手段、いずれか複数の手段、又は全ての手段を使用する際に、前記端末装置を利用するようにしたことを特徴とする請求項２記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複写機、画像読取装置、印刷装置を含む画像形成装置に関する。
【背景技術】
【０００２】
従来、画像形成装置で動作するプログラムは、当該画像形成装置以外の計算機を利用してソースコードをコンパイルし、作成したオブジェクトを当該画像形成装置内部の記憶媒体に格納するという手順で開発されていた。
例えば、特許文献１では、ソースコードをコンパイルしてオブジェクトを生成する処理をプリンタ内部で実行する方式が説明されているが、その方式は異なるプリンタ間でエミュレーションプログラムのソースコードを共通使用することが目的であり、エミュレーションプログラムそのものの開発は不可能である。
【０００３】
そこで、画像形成装置自体が高性能化し、搭載するメモリやＨＤＤなど記憶媒体の容量が増加するとともに、画像形成装置に対するユーザからの機能要求も多岐に渡るため、より個々のユーザ要望に合致した機能を提供する手段としてソフトウエア開発キット（Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ：ＳＤＫ）が用意されるようになった。
そのＳＤＫは、画像形成装置本体では無く他の計算機にインストールされ、ソースコードの作成や編集やコンパイル等のソフトウエア開発作業のほとんどが、ＳＤＫをインストールした計算機システム上で実施される。
そのようなＳＤＫを使って作成した、画像形成装置上で動作するプログラムを画像形成装置上に格納して実行させることにより、画像形成装置の機能や動作のカスタマイズが可能になる。
【特許文献１】特開２００１−２７７６１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来のＳＤＫは画像形成装置以外の計算機が必要であるために、ソフトウエア開発の初期投資費用が高いという問題があった。
また、ユーザがＳＤＫを使ってソフトウエア開発する場合、ソースコード作成に必要なヘッダファイルや、オブジェクト生成に必要なライブラリファイルが必要だが、それらのヘッダファイルやライブラリファイルが画像形成装置以外の計算機にインストールされているために、ＳＤＫに含まれていた内容と、画像形成装置に搭載されている内容とでバージョンが一致せずに動作不具合が発生する可能性があるという問題もあった。
【０００５】
さらに、ヘッダファイルやライブラリファイルに、画像形成装置の開発元の非公開情報が含まれている場合、ＳＤＫの使用を希望するユーザに対して、機密保持契約の締結を求めなければならず、ＳＤＫによるソフトウエア開発の普及の障壁になっているという問題もあった。。
この発明は上記の点に鑑みてなされたものであり、他の計算機システムを利用することなく、画像形成装置で動作するプログラムを開発出来るようにすることを目的とする。
【課題を解決するための手段】
【０００６】
この発明は上記の目的を達成するため、次の画像形成装置を提供する。
（１）プログラムのソースコードを格納するソースコード格納手段と、そのソースコード格納手段に格納されたソースコードをコンパイルして動作可能な形式のオブジェクトを作成するコンパイル手段と、そのコンパイル手段によって作成されたオブジェクトを格納するオブジェクト格納手段と、そのオブジェクト格納手段に格納されたオブジェクトを動作させる実行手段と、その実行手段によって実行したオブジェクトの実行結果を保存する保存手段と、その保存手段に保存したオブジェクトの実行結果を解析する解析手段を備えた画像形成装置。
（２）上記（１）の画像形成装置において、上記ソースコードを編集する編集手段を設けた画像形成装置。
【０００７】
（３）上記（２）の画像形成装置において、上記各手段のいずれかひとつの手段、いずれか複数の手段、又は全ての手段をオプションとして搭載可能にした画像形成装置。
（４）上記（２）の画像形成装置において、入力操作部と出力表示部を有し、上記各手段のいずれかひとつの手段、いずれか複数の手段、又は全ての手段を使用する際に、上記入力操作部と上記出力表示部を利用するようにした画像形成装置。
（５）上記（２）の画像形成装置において、入力操作部を有し、出力表示部を持つ出力装置を接続可能であり、上記各手段のいずれかひとつの手段、いずれか複数の手段、又は全ての手段を使用する際に、上記入力操作部と上記出力装置の出力表示部を利用するようにした画像形成装置。
【０００８】
（６）上記（２）の画像形成装置において、出力表示部を有し、入力操作部を持つ入力装置を接続可能であり、上記各手段のいずれかひとつの手段、いずれか複数の手段、又は全ての手段を使用する際に、上記入力装置の入力操作部と上記出力表示部を利用するようにした画像形成装置。
（７）上記（２）の画像形成装置において、入力操作部と出力表示部を持つ端末装置を接続可能であり、上記各手段のいずれかひとつの手段、いずれか複数の手段、又は全ての手段を使用する際に、上記端末装置を利用するようにした画像形成装置。
【発明の効果】
【０００９】
この発明による画像形成装置は、他の計算機システムを利用することなく、画像形成装置で動作するプログラムを開発することができる。
【発明を実施するための最良の形態】
【００１０】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
図１は、この発明の実施例の画像形成装置の機能構成を示すブロック図である。
この画像形成装置１は、操作パネル２、スキャナ部３、印字部４、コントローラ５から成り、操作パネル２は押下スイッチ又はキーボードを含む入力操作部６とＣＲＴ又はＬＣＤを含む出力表示部７を備えている。また、コントローラ５は、ＣＰＵ８、フラッシュ（ＦＬＡＳＨ）ＲＯＭ９、ＲＡＭ１０、ハードディスク装置（ＨＤＤ）１１、ＡＳＩＣ１２、ＳＤカード（ＣＡＲＤ）インタフェース（Ｉ／Ｆ）１３、ＬＡＮインタフェース（Ｉ／Ｆ）１４、シリアル（ｓｅｒｉａｌ）インタフェース（Ｉ／Ｆ）１５、ＵＳＢインタフェース（Ｉ／Ｆ）１６を備えている。
そして、上記ＨＤＤ１１が、ソースコード格納手段、オブジェクト格納手段、保存手段の各手段の機能を果たす。また、上記ＣＰＵ８が、コンパイル手段、実行手段、解析手段、編集手段の各手段の機能を果たす。
【００１１】
〔実施例１〕
図２は、図１に示す画像形成装置における実施例１の説明に供する図である。
実施例１の画像形成装置１は、ＨＤＤ１１に、プログラムのソースコードであるソースコードファイル２０が格納されている。
また、コントローラ５のＣＰＵ８がＨＤＤ１１に格納されているコンパイラプログラムオブジェクト２３とデバッガプログラムオブジェクト２４を実行することによってそれぞれコンパイラとデバッガの機能を実現している。
まず、操作パネル２の入力操作部６からユーザが指示を与えることにより、ＣＰＵ８はコンパイルプログラムオブジェクト２３を実行することによってコンパイラの動作を開始し、ＨＤＤ１１のソースコードファイル２０のソースコードをコンパイルして動作可能な形式のオブジェクトを作成し、その作成したオブジェクトファイル２１をＨＤＤ１１に格納する。
【００１２】
上記コンパイラが参照するヘッダファイルやライブラリファイルもやはりＨＤＤ１１に格納されている。
また、オブジェクトの作成が完了したことは、操作パネル２の出力表示部７に表示されるので、ユーザは処理完了を即座に知ることができる。
次に、操作パネル２の入力操作部６からユーザが指示を与えることにより、ＣＰＵ８はＨＤＤ１１に格納されたオブジェクトファイル２１を動作させて実行する。その際、操作パネル２の出力表示部７にオブジェクトファイル２１中のデバッグ表示出力をさせることも可能である。
ＣＰＵ８は、オブジェクトファイル２１の実行途中に不正なアドレスにアクセスした等の理由で異常終了した場合、実行したオブジェクトの実行結果として異常終了の原因になったアドレス値等の情報をデバッグ情報ファイル２２をＨＤＤ１１に保存する。
【００１３】
また、オブジェクトの実行が終了したことが、操作パネル２の出力表示部７に表示されるので、ユーザは実行完了を即座に知ることができる。
オブジェクトファイル２１の実行が異常終了した場合、操作パネル２の入力操作部６からユーザが指示を与えることにより、ＣＰＵ８は、デバッガプログラムオブジェクト２４を実行することによってデバッガを動作させてデバッグを実行する。デバッガの実行が開始され、デバッグ情報ファイル２２の内容を解析することによってオブジェクトの実行結果を解析し、異常終了の原因になったアドレス値等の情報を、操作パネル２の出力表示部７に表示する。
【００１４】
こうして、操作パネル２の出力表示部７に表示された情報に基づいて、ユーザはソースコードファイル２０のソースコードの瑕疵を発見することが可能になる。
また、より高度な解析手段を搭載すれば、デバッグ情報ファイル２２の内容に基づいて、ソースコードファイル２０のソースコードのどの箇所でエラーが発生したかを表示することも可能になる。
さらに、より高度な実行手段を搭載すれば、ソースコードファイル２０のソースコードとオブジェクトファイル２１のオブジェクトとを対比させながら、ソースコード一行毎に少しづつソースコードファイル２０のプログラムを実行させるステップ実行と呼ばれる方式も可能になる。
【００１５】
実施例１の画像形成装置によれば、画像形成装置以外の計算機に、コンパイラやヘッダファイルやライブラリ等の画像形成装置に依存した情報をインストールすること無く、画像形成装置で動作するプログラムを開発できるので、画像形成装置の内部に機密情報を隠蔽しておけるため、ソフトウエア開発者に機密保持契約を求める必要が無くなり、ユーザによるソフトウエア開発が容易になる。
また、ソフトウエア開発に不可欠な画像形成装置専用のライブラリやヘッダファイル等の固有情報を当該画像形成装置自体に収められるため、バージョン不整合による不具合が発生せず、ユーザによるソフトウエア開発が容易になる。
さらに、ユーザによるソフトウエア開発が容易になることにより、当該画像形成装置の機能をユーザ自身でカスタマイズ可能になり、当該画像形成装置のユーザに対する利便性が向上する。
【００１６】
〔実施例２〕
図３は、図１に示す画像形成装置における実施例２の説明に供する図である。
実施例２の画像形成装置１は、ＬＡＮ・Ｉ／Ｆ１４にパーソナルコンピュータ（ＰＣ）を含む端末装置３０を接続している。その端末装置３０は、入力操作部と出力表示部（いずれも図示を省略する）を持っている。
この画像形成装置１では、ユーザは画像形成装置１に対して端末装置３０からネットワーク経由で各種の指示を与える。
ＬＡＮ・Ｉ／Ｆ１４を介してネットワーク接続された端末装置３０から、画像形成装置１にログインすると、端末装置３０の出力表示部にはコマンド入力待ちを示すプロンプトが表示される。
【００１７】
ここでユーザが端末装置３０の入力操作部から、コンパイラの実行を意味するコマンドと、当該コマンドの引数としてソースコード（ソースコードファイル２０）のファイル名と生成するオブジェクト（オブジェクトファイル２１）のファイル名を入力することにより、ＣＰＵ８が上述の実施例１の画像形成装置と同じようにしてコンパイラの実行を開始し、ソースコードファイル２０からオブジェクトを生成してユーザから指定されたファイル名を持つオブジェクトファイル２１をＨＤＤ１１に格納する。
また、オブジェクトの作成が完了したことは、端末装置３０にコマンド入力待ちを示すプロンプトが表示されることで、ユーザは即座に知ることができる。
次に、ユーザが端末装置３０の入力操作部から、先に生成したオブジェクトの実行を意味するコマンドを入力することにより、ＣＰＵ８が上述の実施例１の画像形成装置と同じようにして先に生成したオブジェクトファイル２１の実行を開始する。
【００１８】
ＣＰＵ８は、オブジェクトファイル２１の実行を開始すると、オブジェクトファイル２１中のデバッグ表示出力を、操作パネル２の出力表示部７やＬＡＮ・Ｉ／Ｆ１４を介してネットワーク接続された端末装置３０の出力表示部７上に表示させることも可能である。
ＣＰＵ８は、オブジェクトファイル２１の実行途中に、不正なアドレスにアクセスした等の理由で異常終了した場合、異常終了の原因になったアドレス値等の情報をＨＤＤ１１にデバッグ情報ファイル２２として保存する。
また、オブジェクトの実行が終了したことが、端末装置３０の出力表示部にコマンド入力待ちを示すプロンプトが表示されることで、ユーザは即座に知ることができる。
【００１９】
オブジェクトファイル２１が異常終了した場合、ユーザが端末装置３０の入力操作部からデバッガの実行を意味するコマンドと、当該コマンドの引数として、先に異常終了したオブジェクトのファイル名を入力することにより、ＣＰＵ８は、デバッガの実行を開始し、デバッガがＨＤＤ１１のデバッグ情報ファイル２２の内容を解析し、異常終了の原因になったアドレス値等の情報を端末装置３０の出力表示部に表示する。
また、端末装置３０の入力操作部からユーザが指示を与える方法については、コマンド入力である必要は無く、指示に必要なボタンだけがグラフィック表示され、そのボタンを端末装置３０に付属のマウスでクリックすることで指示を与える等の方式でも良い。
【００２０】
このようにして、ソフトウエア開発の効率を上げるために、画像形成装置以外に端末装置を利用する場合においても、画像形成装置に特化したソフトウエアを別途用意する必要が無い。
また、画像形成装置内部の情報が画像形成装置から外に出ないため、画像形成装置の制御に関するノウハウが外部に流出する危険が無い。
実施例２の画像形成装置によれば、画像形成装置以外の計算機を用意する必要無く、ソフトウエアのソースコードの作成や修正が可能になるため、ユーザによるソフトウエア開発が一層容易になる。
【００２１】
〔実施例３〕
図４は、図１に示す画像形成装置における実施例３の説明に供する図である。
実施例３の画像形成装置１は、ＨＤＤ１１にＣＰＵ８が実行することによってソースコードを編集する編集手段の機能を実現するエディタプログラムオブジェクト２５を格納しており、ユーザは端末装置３０からネットワーク経由でソースコードの編集の指示を与え、ＣＰＵ８がソースコードの編集を行う。
この画像形成装置１では、ユーザは画像形成装置１に対して端末装置３０からネットワーク経由でソースコードの編集の指示を与える。
ＬＡＮ・Ｉ／Ｆ１４を介してネットワーク接続された端末装置３０から、画像形成装置１にログインすると、端末装置３０の出力表示部にはコマンド入力待ちを示すプロンプトが表示される。
【００２２】
ここでユーザが端末装置３０の入力操作部から、エディタの実行を意味するコマンドと、当該コマンドの引数としてソースコード（ソースコードファイル２０）のファイル名を入力することにより、ＣＰＵ８がＨＤＤ１１のエディタプログラムオブジェクト２５を実行してエディタの動作を開始し、ユーザは端末装置３０の出力表示部の画面表示と入力操作部からの入力操作により画像形成装置１に格納されたソースコードを自由に編集することができる。
このようにして、編集手段も画像形成装置内部で動作するプログラムであるため、ユーザが編集可能なファイルと編集不可能なファイルを区別したり、ファイルの存在自体をユーザから隠す機能を、編集手段に設けるのは容易である。
そうすれば、画像形成装置内部の重要な情報やファイルをユーザが誤って書き換える危険を避けることができる。
【００２３】
実施例３の画像形成装置によれば、画像形成装置でのソフトウエア開発に必要な機能や情報を、当該画像形成装置に後から追加することが可能になるため、ソフトウエア開発を希望するユーザに対してのみ、必要なソフトウエア開発機能を提供することができ、ユーザ満足度の向上につながる。
また、ソフトウエア開発機能をあらかじめ標準搭載しておいたり、画像形成装置のバージョンアップ作業時に同時にソフトウエア開発機能もインストールすることも可能であり、ＳＤＫの提供が容易になる。
【００２４】
〔実施例４〕
図５は、図１に示す画像形成装置における実施例４の説明に供する図である。
実施例４の画像形成装置１では、ＳＤカードからＨＤＤにＳＤＫをインストールする。
ここでは、画像形成装置１の標準状態では、コンパイラ、デバッガ、エディタ等のオブジェクトであるコンパイラプログラムオブジェクト２３、デバッガプログラムオブジェクト２４、エディタプログラムオブジェクト２５がＨＤＤ１１にインストールされていないものとする。
ユーザが別途ＳＤＫを購入すると、ＳＤカード３１にコンパイラプログラムオブジェクト２３、デバッガプログラムオブジェクト２４、エディタプログラムオブジェクト２５が収められて納入される。
【００２５】
画像形成装置１のＳＤカードＩ／Ｆ１３にＳＤカード３１を装着した後、操作パネル２の入力操作部６からユーザが指示を与えることにより、ＣＰＵ８はＳＤカード３１に格納されたコンパイラプログラムオブジェクト２３、デバッガプログラムオブジェクト２４、エディタプログラムオブジェクト２５を読み出し、ＡＳＩＣ１２を経由してＨＤＤ１１に転送し、コンパイラプログラムオブジェクト２３、デバッガプログラムオブジェクト２４、エディタプログラムオブジェクト２５を実行可能にＨＤＤ１１に格納する。
その時、ＳＤＫの内容であるコンパイラプログラムオブジェクト２３、デバッガプログラムオブジェクト２４、エディタプログラムオブジェクト２５を暗号化していても良く、暗号化している場合には、ＳＤカード３１からＨＤＤ１１に転送する処理の中で、必要な復号処理を行えば良い。
【００２６】
また、ＳＤＫの内容は、オブジェクトだけに限らず、コンパイルに必要なライブラリファイルやヘッダファイルを含むファイルを含めても良い。
さらに、画像形成装置１が通常動作している状態において、ＳＤカード３１をＳＤカードＩ／Ｆ１３に装着すると、ＣＰＵ８が自動的にＳＤカード３１の内容をＨＤＤ１１に転送するようにしても良い。
さらにまた、上述の説明ではＳＤカード３１の内容をＳＤカード３１からＨＤＤ１１に転送しているが、ネットワーク接続された外部の端末装置からＬＡＮ・Ｉ／Ｆ１４を介してネットワーク経由でＨＤＤ１１に転送する方式も考えられる。
【００２７】
〔実施例５〕
図６は、図１に示す画像形成装置における実施例５の説明に供する図である。
実施例５の画像形成装置１では、コントローラ５のＵＳＢ・Ｉ／Ｆ１６を使い、画像形成装置１にキーボード３２を接続し、そのキーボード３２を使って入力操作を行うことにより、画像形成装置１の操作パネル２の押下スイッチを含む入力操作部６を使用するよりも、効率的な操作が可能になる。
〔実施例６〕
図７は、図１に示す画像形成装置における実施例６の説明に供する図である。
実施例６の画像形成装置１では、コントローラ５のシリアルＩ／Ｆ１５を使い、画像形成装置１に端末装置３０を接続し、その端末装置３０の入力操作部を使って入力操作を、出力表示部を使って出力表示をそれぞれ行うことにより、効率的なソフトウエア開発が可能になる。
【００２８】
実施例４〜６の画像形成装置によれば、画像形成装置単体だけでソフトウエア開発を行うことが可能であり、また必要であれば、より大きな表示領域を持つ表示出力部や、より快適に操作可能な入力操作部を利用することができるので、ソフトウエア開発作業の効率が向上する。
【産業上の利用可能性】
【００２９】
この発明による画像形成装置は、デスクトップパソコン，ノートブックパソコン等のパーソナルコンピュータにおいても適用することができる。
【図面の簡単な説明】
【００３０】
【図１】この発明の実施例の画像形成装置の機能構成を示すブロック図である。
【図２】図１に示す画像形成装置における実施例１の説明に供する図である。
【図３】図１に示す画像形成装置における実施例２の説明に供する図である。
【図４】図１に示す画像形成装置における実施例３の説明に供する図である。
【図５】図１に示す画像形成装置における実施例４の説明に供する図である。
【図６】図１に示す画像形成装置における実施例５の説明に供する図である。
【図７】図１に示す画像形成装置における実施例６の説明に供する図である。
【符号の説明】
【００３１】
１：画像形成装置    ２：操作パネル    ３：スキャナ部    ４：印字部    ５：コントローラ    ６：入力操作部    ７：出力表示部    ８：ＣＰＵ    ９：フラッシュ（ＦＬＡＳＨ）ＲＯＭ    １０：ＲＡＭ    １１：ハードディスク装置（ＨＤＤ）    １２：ＡＳＩＣ    １３：ＳＤカード（ＣＡＲＤ）インタフェース（Ｉ／Ｆ）    １４：ＬＡＮインタフェース（Ｉ／Ｆ）    １５：シリアル（ｓｅｒｉａｌ）インタフェース（Ｉ／Ｆ）    １６：ＵＳＢインタフェース（Ｉ／Ｆ）    ２０：ソースコードファイル    ２１：オブジェクトファイル    ２２：デバッグ情報ファイル    ２３：コンパイラプログラムオブジェクト    ２４：デバッガプログラムオブジェクト    ２５：エディタプログラムオブジェクト    ３０：端末装置    ３１：ＳＤカード    ３２：キーボード
【図１】
2006319698.tif 000003
【図２】
2006319698.tif 000004
【図３】
2006319698.tif 000005
【図４】
2006319698.tif 000006
【図５】
2006319698.tif 000007
【図６】
2006319698.tif 000008
【図７】
2006319698.tif 000009