(57)【特許請求の範囲】
【請求項１】
画像情報処理装置に搭載される端末エミュレータであって、
前記画像情報処理装置は、印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションを複数搭載可能であり、オペレーティングシステム、制御プログラム及び端末アプリを搭載し、オペレーションパネルを備えるものであり、
前記制御プログラムは、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うものであり、
前記オペレーションパネルは、描画表示および入力操作を行うものであり、
前記端末アプリは、前記オペレーションパネルのオペパネ表示部を仮想端末として使用し、ＷＥＢブラウザ機能を有するものであり、
前記端末エミュレータは、解析部を含み、かつ、前記端末アプリと前記制御プログラムとの間で前記オペパネ表示部を仮想端末として動作させるものであって、グラフィック関数ライブラリと前記端末エミュレータのオブジェクトファイルとから、実行形式プログラムとして生成されたものであり、
前記解析部は、前記端末アプリから送出された表示データに含まれるテキスト情報を解析して、前記テキスト情報の属性がハイパーリンクを示す文字属性か否かを判断するものであり、
前記グラフィック関数ライブラリは、描画処理関数群が登録されたものであり、
前記描画処理関数群は、表示要求関数を含むものであり、
前記表示要求関数は、前記テキスト情報の属性がハイパーリンクを示す文字属性である場合に、前記テキスト情報をハイパーリンクとして押下可能な形式に変換し、変換された結果を前記表示データに含まれる位置情報に基づいて前記オペパネ表示部に描画するものであり、
前記ハイパーリンクとして押下可能な形式は、前記オペパネ表示部からの入力位置座標を取得可能な形式である
ことを特徴とする画像情報処理装置用端末エミュレータ。
【請求項２】
前記表示要求関数は、前記テキスト情報をボタン形式で前記オペパネ表示部に描画することを特徴とする請求項１に記載の画像情報処理装置用端末エミュレータ。
【請求項３】
前記表示要求関数は、前記表示データにハイパーリンクを示す文字属性が含まれる場合に、前記テキスト情報を、前記文字属性とともにボタン形式で前記オペパネ表示部に描画することを特徴とする請求項２に記載の画像情報処理装置用端末エミュレータ。
【請求項４】
前記表示要求関数は、前記テキスト情報を、前記テキスト情報に含まれる文字属性に基づいて、ボタン形式かつ反転形式で前記オペパネ表示部に描画することを特徴とする請求項２に記載の画像情報処理装置用端末エミュレータ。
【請求項５】
前記表示要求関数は、さらに、前記表示データに入力フィールドを示す文字属性が含まれる場合に、前記テキスト情報を、前記文字属性とともに反転形式で前記オペパネ表示部に描画することを特徴とする請求項４に記載の画像情報処理装置用端末エミュレータ。
【請求項６】
前記表示要求関数は、さらに、前記表示データにインライン画像を示す文字属性が含まれる場合に、前記テキスト情報を、前記文字属性とともに反転形式で前記オペパネ表示部に描画することを特徴とする請求項４または５に記載の画像情報処理装置用端末エミュレータ。
【請求項７】
前記グラフィック関数ライブラリは、前記オペパネ表示部の画面レイアウトを管理するレイアウト関数を含む画面管理関数群がさらに登録されたことを特徴とする請求項１〜６のいずれか一つに記載の画像情報処理装置用端末エミュレータ。
【請求項８】
前記表示要求関数または前記レイアウト関数は、前記オペパネ表示部に描画表示を行うオペパネ描画関数の呼び出しを行うものであり、
前記端末エミュレータの実行形式プログラムは、前記オペパネ描画関数が登録されたＯＣＳ関数ライブラリと、前記グラフィック関数ライブラリと、前記各関数の呼び出しを行う前記端末エミュレータのオブジェクトファイルとから、生成されたことを特徴とする請求項１〜７のいずれか一つに記載の画像情報処理装置用端末エミュレータ。
【請求項９】
前記グラフィック関数ライブラリは、さらにイベント変換関数群が登録されたものであり、
前記イベント変換関数群は、イベント通知関数を含むものであり、
前記イベント通知関数は、前記オペパネ表示部から送出されるタッチキーコードを、前記タッチキーコードに含まれるイベント種別に基づいて、前記オペパネ表示部に描画されたボタンを押下することにより送出されたボタンイベントか、前記オペパネ表示部に描画されたソフトウェアキーボードのキーを押下することにより送出されたキーイベントかを判断し、前記タッチキーコードが前記ボタンイベントである場合には、前記タッチキーコードを、前記タッチキーコードに含まれる位置情報とともにマウスによるクリック動作を示すマウスイベントとして前記端末アプリに通知するものであることを特徴とする請求項２〜８のいずれか一つに記載の画像情報処理装置用端末エミュレータ。
【請求項１０】
前記イベント通知関数は、前記オペパネ表示部から送出されるタッチキーコードが、前記キーイベントである場合には、前記タッチキーコードに含まれるキー識別情報に対応する制御コードを前記端末アプリに通知することを特徴とする請求項９に記載の画像情報処理装置用端末エミュレータ。
【請求項１１】
前記端末エミュレータの実行形式プログラムは、前記端末エミュレータのオブジェクトファイルと、前記グラフィック関数ライブラリの呼び出し処理モジュールとを結合して生成されたことを特徴とする請求項１〜１０のいずれか一つに記載の画像情報処理装置用端末エミュレータ。
【請求項１２】
画像情報処理装置に搭載される端末アプリであって、
前記画像情報処理装置は、印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションを複数搭載可能であり、オペレーティングシステム、制御プログラム及び前記端末アプリを搭載し、オペレーションパネルを備えるものであり、
前記制御プログラムは、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うものであり、
前記オペレーションパネルは、描画表示および入力操作を行うものであり、
前記端末アプリは、解析部を含み、かつ、前記オペレーションパネルのオペパネ表示部を仮想端末として使用し、ＷＥＢブラウザ機能を有するものであって、グラフィック関数ライブラリと、前記端末アプリのオブジェクトファイルとから、実行形式プログラムとして生成されたものであり、
前記解析部は、前記オペパネ表示部に描画する表示データに含まれるテキスト情報を解析して、前記テキスト情報の属性がハイパーリンクを示す文字属性か否かを判断するものであり、
前記グラフィック関数ライブラリは、描画処理関数群が登録されたものであり、
前記描画処理関数群は、表示要求関数を含むものであり、
前記表示要求関数は、前記テキスト情報の属性がハイパーリンクを示す文字属性である場合に、前記テキスト情報をハイパーリンクとして押下可能な形式に変換し、変換された結果を前記表示データに含まれる位置情報に基づいて前記オペパネ表示部に描画するものであり、
前記ハイパーリンクとして押下可能な形式は、前記オペパネ表示部からの入力位置座標を取得可能な形式である
ことを特徴とする画像情報処理装置用端末アプリ。
【請求項１３】
前記表示要求関数は、前記テキスト情報をボタン形式で前記オペパネ表示部に描画することを特徴とする請求項１２に記載の画像情報処理装置用端末アプリ。
【請求項１４】
前記表示要求関数は、前記テキスト情報を、前記テキスト情報に含まれる文字属性に基づいて、ボタン形式かつ反転形式で前記オペパネ表示部に描画することを特徴とする請求項１３に記載の画像情報処理装置用端末アプリ。
【請求項１５】
前記グラフィック関数ライブラリは、前記オペパネ表示部の画面レイアウトを管理するレイアウト関数を含む画面管理関数群がさらに登録されたことを特徴とする請求項１２〜１４のいずれか一つに記載の画像情報処理装置用端末アプリ。
【請求項１６】
前記グラフィック関数ライブラリは、さらにイベント変換関数群が登録されたものであり、
前記イベント変換関数群は、イベント通知関数を含むものであり、
前記イベント通知関数は、前記オペパネ表示部から送出されるタッチキーコードを、前記タッチキーコードに含まれるイベント種別に基づいて、前記オペパネ表示部に描画されたボタンを押下することにより送出されたボタンイベントか、前記オペパネ表示部に描画されたソフトウェアキーボードのキーを押下することにより送出されたキーイベントかを判断し、前記タッチキーコードが前記ボタンイベントである場合には、前記タッチキーコードを、前記タッチキーコードに含まれる位置情報とともにマウスによるクリック動作を示すマウスイベントとして前記端末アプリに通知するものであることを特徴とする請求項１３〜１５のいずれか一つに記載の画像情報処理装置用端末アプリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、画像情報処理装置用端末エミュレータおよび画像情報処理装置用端末アプリに関するものである。
【０００２】
【従来の技術】
近年では、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を１つの筐体内に収納した画像形成装置（以下、「複合機」という。）が知られている。この複合機は、１つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応した３種類のソフトウェアを設け、これらのソフトウェアを切り替えることによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。
【０００３】
このような従来の画像形成装置におけるオペレーションパネルとしては、操作部としての操作キーと、操作表示やエラー表示を行うための表示部としてのＬＣＤ画面（ディスプレイ）が設けられたもの、あるいはＬＣＤ画面上に操作表示やエラー表示を行うと共に、操作キーを表示パネル上に表示し、これに直接触れて操作することができるタッチパネルタイプのものなどがある。これらのオペレーションパネルのＬＣＤ画面は、いずれも操作表示や操作キーあるいはエラー表示を行うためのものであり、ＰＣ（パーソナルコンピュータ）やワークステーションのようにキーボードやディスプレイなどの端末としての機能を有するものではない。
【０００４】
このため、例えば、ＷｅｂブラウザのようなＷｅｂページの閲覧およびデータ入力、ハイパーリンクなどの機能をオペレーションパネルのＬＣＤ画面で実現したものではなかった。
【０００５】
【発明が解決しようとする課題】
ところで、このような従来の複合機では、プリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェアをそれぞれ別個に設けているため、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも２つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置（複合機）を発明した。
【０００６】
この複合機によれば、アプリケーションの少なくとも２つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行うプラットホームを備えた構成とすることによって、ソフトウェア開発の効率化を図るとともに、装置全体としての生産性を向上させることが可能となる。
【０００７】
このような新規な複合機では、アプリケーションとコントロールサービスとを別個に設け、コントロールサービスがアプリケーションに対してアプリケーションプログラミングインタフェース（ＡＰＩ）によって各種サービスを提供する構成となっているため、複合機の出荷後にユーザもしくは第三者であるサードベンダーが新規なアプリケーションを開発して複合機に搭載することが可能となる。
【０００８】
このため、サードベンダーなどがＷｅｂブラウジング機能を実現する新規アプリケーションを開発する場合も多くなる。特にこのようなＷｅｂブラウザは、ＵＮＩＸ（登録商標）などの汎用ＯＳ上で動作する既存のアプリケーションが多数存在するため、このような既存のＷｅｂブラウザのアプリケーションを複合機上に移植した新規アプリケーションを開発する場合が考えられる。
【０００９】
また、この際に、オペレーションパネルのＬＣＤ画面を仮想端末として動作させる端末エミュレータを開発したり、あるいはこのような端末エミュレータ機能を下位層に組み込んだ新規アプリケーションを開発する必要がある。
【００１０】
このようなＷｅｂブラウザは、ハイパーリンク、ＦＯＲＭ入力フィールドなどＷｅｂページごとに任意な位置に表示される表示項目をユーザにマウスなどによりクリック操作を行わせ、クリック位置の位置座標を取得して次の処理を行うような機能を備えている。
【００１１】
しかしながら、複合機のオペレーションパネルでは、ＬＣＤ画面にタッチパネル形式を採用しているため、ＬＣＤ画面上でユーザが任意の位置をマウスのように指定（クリック）することができず、また、任意の位置座標をタッチパネルのＬＣＤ画面から取得することができない。このため、ハイパーリンク、ＦＯＲＭ入力フィールドなどＷｅｂページごとに任意な位置に表示される表示項目をオペレーションパネルのＬＣＤ画面から指定しても、その位置座標を取得することができない。このため、端末エミュレータには、ＬＣＤ画面からの入力位置の位置座標を取得する機能が必要となってくる。
【００１２】
また、既存のＷｅｂブラウザを複合機に移植する場合、既存のＷｅｂブラウザにはキャラクタデータしか扱えないものがある。一方、オペレーションパネルのＬＣＤ画面はグラフィックデータの描画が可能であるため、端末エミュレータの機能として、Ｗｅｂブラウザから送出されるキャラクタデータをグラフィック形式で表示する処理が必要となる。
【００１３】
このように端末エミュレータを複合機上で開発する場合には、ＬＣＤ画面からの任意の入力位置座標を取得する機能や、キャラクタデータのグラフィック表示の機能を端末エミュレータに実装しなければならず、オペレーションパネルのＬＣＤ画面をＷｅｂブラウザなどの端末として使用する場合には、通常のコンピュータ上で動作させる端末エミュレータには存在しなかった複合機特有の新規な課題が生じてくる。また、このため、既存のＷｅｂブラウザを複合機に移植することが困難にあるという問題がある。
【００１４】
この発明は上記に鑑みてなされたもので、画像情報処理装置のオペレーションパネルの表示部を仮想端末として動作させる端末エミュレータを、グラフィック関数ライブラリを利用して生成することにより、端末エミュレータを容易に開発することができるとともに、端末アプリを画像情報処理装置に容易に移植することができる画像情報処理装置用端末エミュレータおよび画像情報処理装置用端末アプリを得ることを目的とする。
【００１５】
【課題を解決するための手段】
上記目的を達成するため、請求項１にかかる発明は、画像情報処理装置に搭載される端末エミュレータであって、前記画像情報処理装置は、印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションを複数搭載可能であり、オペレーティングシステム、制御プログラム及び端末アプリを搭載し、オペレーションパネルを備えるものであり、前記制御プログラムは、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うものであり、前記オペレーションパネルは、描画表示および入力操作を行うものであり、前記端末アプリは、前記オペレーションパネルのオペパネ表示部を仮想端末として使用し、ＷＥＢブラウザ機能を有するものであり、前記端末エミュレータは、解析部を含み、かつ、前記端末アプリと前記制御プログラムとの間で前記オペパネ表示部を仮想端末として動作させるものであって、グラフィック関数ライブラリと前記端末エミュレータのオブジェクトファイルとから、実行形式プログラムとして生成されたものであり、前記解析部は、前記端末アプリから送出された表示データに含まれるテキスト情報を解析して、前記テキスト情報の属性がハイパーリンクを示す文字属性か否かを判断するものであり、前記グラフィック関数ライブラリは、描画処理関数群が登録されたものであり、前記描画処理関数群は、表示要求関数を含むものであり、前記表示要求関数は、前記テキスト情報の属性がハイパーリンクを示す文字属性である場合に、前記テキスト情報をハイパーリンクとして押下可能な形式に変換し、変換された結果を前記表示データに含まれる位置情報に基づいて前記オペパネ表示部に描画するものであり、前記ハイパーリンクとして押下可能な形式は、前記オペパネ表示部からの入力位置座標を取得可能な形式であることを特徴とする。
【００１６】
この請求項１にかかる発明によれば、グラフィック関数ライブラリで提供される表示要求関数を呼び出すことによって、テキスト情報を、オペパネ表示部からの入力位置座標を取得可能な形式でオペパネ表示部に描画することができるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００１７】
本発明における「オペパネ表示部からの入力位置座標を取得可能な形式」とは、オペパネから入力の位置座標を取得できるような形式であればいずれの形式でもよく、例えば座標を予め特定したボタン表示、キーイベントを予め特定したキーなどが該当する。
【００１８】
また、請求項２にかかる発明は、請求項１に記載の画像情報処理装置用端末エミュレータにおいて、前記表示要求関数は、前記テキスト情報をボタン形式で前記オペパネ表示部に描画することを特徴とする。
【００１９】
この請求項２にかかる発明によれば、表示要求関数を呼び出すことによって、テキスト情報を、予め位置座標が特定されたボタン表示でオペパネ表示部に描画することができるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００２０】
また、請求項３にかかる発明は、請求項２に記載の画像情報処理装置用端末エミュレータにおいて、表示要求関数は、前記表示データにハイパーリンクを示す文字属性が含まれる場合に、前記テキスト情報を、前記文字属性とともにボタン形式で前記オペパネ表示部に描画することを特徴とする。
【００２１】
この請求項３にかかる発明によれば、表示要求関数を呼び出すことによって、テキスト情報を、ハイパーリンクとして、予め位置座標が特定されたボタン表示、かつ例えば色や下線などの文字属性でオペパネ表示部に描画することができるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００２２】
また、請求項４にかかる発明は、請求項２に記載の画像情報処理装置用端末エミュレータにおいて、前記表示要求関数は、前記テキスト情報を、前記テキスト情報に含まれる文字属性に基づいて、ボタン形式かつ反転形式で前記オペパネ表示部に描画することを特徴とする。
【００２３】
この請求項４にかかる発明によれば、表示要求関数を呼び出すことによって、テキスト情報を、予め位置座標が特定されたボタン表示かつ反転文字でオペパネ表示部に描画することができるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００２４】
また、請求項５にかかる発明は、請求項４に記載の画像情報処理装置用端末エミュレータにおいて、前記表示要求関数は、さらに、前記表示データに入力フィールドを示す文字属性が含まれる場合に、前記テキスト情報を、前記文字属性とともに反転形式で前記オペパネ表示部に描画することを特徴とする。
【００２５】
この請求項５にかかる発明によれば、表示要求関数を呼び出すことによって、テキスト情報を、入力フィールドとして、予め位置座標が特定された反転文字のボタン表示、かつ例えば色や下線などの文字属性でオペパネ表示部に描画することができるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００２６】
また、請求項６にかかる発明は、請求項４または５に記載の画像情報処理装置用端末エミュレータにおいて、表示要求関数は、さらに、前記表示データにインライン画像を示す文字属性が含まれる場合に、前記テキスト情報を、前記文字属性とともに反転形式で前記オペパネ表示部に描画することを特徴とする。
【００２７】
この請求項６にかかる発明によれば、表示要求関数を呼び出すことによって、テキスト情報を、インライン画像として、予め位置座標が特定された反転文字のボタン表示、かつ例えば色や下線などの文字属性でオペパネ表示部に描画することができるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００２８】
また、請求項７にかかる発明は、請求項１〜６のいずれか一つに記載の画像情報処理装置用端末エミュレータにおいて、前記グラフィック関数ライブラリは、前記オペパネ表示部の画面レイアウトを管理するレイアウト関数を含む画面管理関数群がさらに登録されたことを特徴とする。
【００２９】
この請求項７にかかる発明によれば、レイアウト関数を呼び出すことによって、オペパネ表示部の画面レイアウトを管理することができるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００３０】
また、請求項８にかかる発明は、請求項１〜７のいずれか一つに記載の画像情報処理装置用端末エミュレータにおいて、前記表示要求関数または前記レイアウト関数は、前記オペパネ表示部に描画表示を行うオペパネ描画関数の呼び出しを行うものであり、前記端末エミュレータの実行形式プログラムは、前記オペパネ描画関数が登録されたＯＣＳ関数ライブラリと、前記グラフィック関数ライブラリと、前記各関数の呼び出しを行う前記端末エミュレータのオブジェクトファイルとから、生成されたことを特徴とする。
【００３１】
この請求項８にかかる発明によれば、グラフィック関数ライブラリの関数呼び出しをすれば、ＯＣＳ関数ライブラリのオペパネ描画関数を介してオペパネ表示部への描画が実現できるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００３２】
また、請求項９にかかる発明は、請求項２〜８のいずれか一つに記載の画像情報処理装置用端末エミュレータにおいて、前記グラフィック関数ライブラリは、さらにイベント変換関数群が登録されたものであり、前記イベント変換関数群は、イベント通知関数を含むものであり、前記イベント通知関数は、前記オペパネ表示部から送出されるタッチキーコードを、前記タッチキーコードに含まれるイベント種別に基づいて、前記オペパネ表示部に描画されたボタンを押下することにより送出されたボタンイベントか、前記オペパネ表示部に描画されたソフトウェアキーボードのキーを押下することにより送出されたキーイベントかを判断し、前記タッチキーコードが前記ボタンイベントである場合には、前記タッチキーコードを、前記タッチキーコードに含まれる位置情報とともにマウスによるクリック動作を示すマウスイベントとして前記端末アプリに通知するものであることを特徴とする。
【００３３】
この請求項９にかかる発明によれば、イベント通知関数呼び出しによって、オペパネ表示部に描画されたボタン表示のタッチ入力を入力位置座標におけるマウス入力イベントとして端末アプリに通知することができ、マウスによる任意位置による入力ができないオペパネ表示部でも、擬似的なマウス入力が可能となり、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００３４】
また、請求項１０にかかる発明は、請求項９に記載の画像情報処理装置用端末エミュレータにおいて、前記イベント通知関数は、前記オペパネ表示部から送出されるタッチキーコードが、前記キーイベントである場合には、前記タッチキーコードに含まれるキー識別情報に対応する制御コードを前記端末アプリに通知することを特徴とする。
【００３５】
この請求項１０にかかる発明によれば、イベント通知関数呼び出しによって、オペパネ表示部に描画されたソフトウェアキーのタッチ入力をキー入力イベントとして端末アプリに通知することができ、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００３６】
請求項１１にかかる発明は、請求項１〜１０のいずれか一つに記載の画像情報処理装置用端末エミュレータにおいて、前記端末エミュレータの実行形式プログラムは、前記端末エミュレータのオブジェクトファイルと、前記グラフィック関数ライブラリの呼び出し処理モジュールとを結合して生成されたことを特徴とする。
【００３７】
この請求項１１にかかる発明によれば、端末エミュレータの実行時にグラフィック関数ライブラリがリンクされるので、端末エミュレータのようなグラフィック関数ライブラリを使用するアプリを複数実行する場合でも、各アプリ内にグラフィック関数ライブラリを実装する必要がなく、またグラフィック関数ライブラリを一つ複合機に実装しておけば良いので、端末エミュレータやアプリのサイズを減少させることができる。
【００３８】
また、請求項１２にかかる発明は、画像情報処理装置に搭載される端末アプリであって、前記画像情報処理装置は、印刷部または撮像部を有するハードウェア資源を利用した画像情報処理にかかるアプリケーションを複数搭載可能であり、オペレーティングシステム、制御プログラム及び前記端末アプリを搭載し、オペレーションパネルを備えるものであり、前記制御プログラムは、前記オペレーティングシステム上で動作し、複数の前記アプリケーションからアクセスされて前記ハードウェア資源の制御を行うものであり、前記オペレーションパネルは、描画表示および入力操作を行うものであり、前記端末アプリは、解析部を含み、かつ、前記オペレーションパネルのオペパネ表示部を仮想端末として使用し、ＷＥＢブラウザ機能を有するものであって、グラフィック関数ライブラリと、前記端末アプリのオブジェクトファイルとから、実行形式プログラムとして生成されたものであり、前記解析部は、前記オペパネ表示部に描画する表示データに含まれるテキスト情報を解析して、前記テキスト情報の属性がハイパーリンクを示す文字属性か否かを判断するものであり、前記グラフィック関数ライブラリは、描画処理関数群が登録されたものであり、前記描画処理関数群は、表示要求関数を含むものであり、前記表示要求関数は、前記テキスト情報の属性がハイパーリンクを示す文字属性である場合に、前記テキスト情報をハイパーリンクとして押下可能な形式に変換し、変換された結果を前記表示データに含まれる位置情報に基づいて前記オペパネ表示部に描画するものであり、前記ハイパーリンクとして押下可能な形式は、前記オペパネ表示部からの入力位置座標を取得可能な形式であることを特徴とする。
【００３９】
この請求項１２にかかる発明によれば、グラフィック関数ライブラリで提供される表示要求関数を呼び出すことによって、テキスト情報を、オペパネ表示部からの入力位置座標を取得可能な形式でオペパネ表示部に描画することができるので、端末アプリを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００４０】
また、請求項１３にかかる発明は、請求項１２に記載の画像情報処理装置用端末アプリにおいて、前記表示要求関数は、前記テキスト情報をボタン形式で前記オペパネ表示部に描画することを特徴とする。
【００４１】
この請求項１３にかかる発明によれば、表示要求関数を呼び出すことによって、テキスト情報を、予め位置座標が特定されたボタン表示でオペパネ表示部に描画することができるので、端末アプリを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００４２】
また、請求項１４にかかる発明は、請求項１３に記載の画像情報処理装置用端末アプリにおいて、前記表示要求関数は、前記テキスト情報を、前記テキスト情報に含まれる文字属性に基づいて、ボタン形式かつ反転形式で前記オペパネ表示部に描画することを特徴とする。
【００４３】
この請求項１４にかかる発明によれば、表示要求関数を呼び出すことによって、テキスト情報を、予め位置座標が特定されたボタン表示かつ反転文字でオペパネ表示部に描画することができるので、端末アプリを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００４４】
また、請求項１５にかかる発明は、請求項１２〜１４のいずれか一つに記載の画像情報処理装置用端末アプリにおいて、前記グラフィック関数ライブラリは、前記オペパネ表示部の画面レイアウトを管理するレイアウト関数を含む画面管理関数群がさらに登録されたことを特徴とする。
【００４５】
この請求項１５にかかる発明によれば、レイアウト関数を呼び出すことによって、オペパネ表示部の画面レイアウトを管理することができるので、端末アプリを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００４６】
また、請求項１６にかかる発明は、請求項１３〜１５のいずれか一つに記載の画像情報処理装置用端末アプリにおいて、前記グラフィック関数ライブラリは、さらにイベント変換関数群が登録されたものであり、前記イベント変換関数群は、イベント通知関数を含むものであり、前記イベント通知関数は、前記オペパネ表示部から送出されるタッチキーコードを、前記タッチキーコードに含まれるイベント種別に基づいて、前記オペパネ表示部に描画されたボタンを押下することにより送出されたボタンイベントか、前記オペパネ表示部に描画されたソフトウェアキーボードのキーを押下することにより送出されたキーイベントかを判断し、前記タッチキーコードが前記ボタンイベントである場合には、前記タッチキーコードを、前記タッチキーコードに含まれる位置情報とともにマウスによるクリック動作を示すマウスイベントとして前記端末アプリに通知するものであることを特徴とする。
【００４７】
この請求項１６にかかる発明によれば、イベント通知関数呼び出しによって、オペパネ表示部に描画されたボタン表示のタッチ入力を入力位置座標におけるマウス入力イベントとして端末アプリに通知することができ、マウスによる任意位置による入力ができないオペパネ表示部でも、擬似的なマウス入力が可能となり、端末アプリを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【００６９】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる画像情報処理装置用端末エミュレータおよび画像情報処理装置用端末アプリの好適な実施の形態を詳細に説明する。
【００７０】
（実施の形態１）
まず、この発明の実施の形態であるグラフィック関数ライブラリおよびこのグラフィック関数ライブラリを利用した画像形成装置用端末エミュレータ生成方法により生成される端末エミュレータの画像形成装置（以下、「複合機」という。）上での位置付けおよびその構成について説明する。図１は、実施の形態１のグラフィック関数ライブラリを使用して生成された端末エミュレータの機能的構成および処理概要を示すブロック図である。
【００７１】
実施の形態１にかかる端末アプリ１４０は、例えば、Ｗｅｂブラウザなどであり、オペレーションパネルのＬＣＤ画面１２１（オペパネ表示部）を端末として使用するアプリケーションである。この端末アプリ１４０は、文字データのみを扱うことができるＣＵＩ（Character User Interface）を有しており、ＧＵＩ（Graphical User Interface）に対応したものとはなっていないことを前提とする。
【００７２】
オペレーションパネル１２０は、ユーザのキー入力、ボタン押下などのキー操作を入力する操作部（図示せず）と、ボタン、ウィンドウ、各種画面などの描画データを表示するＬＣＤ画面１２１とから構成され、ＬＣＤ画面１２１は本発明におけるオペパネ表示部を構成する。また、オペレーションパネル１２０は、操作部の他に、ＬＣＤ画面１２１に表示されるボタンによってタッチパネル形式でユーザのキー入力、ボタン押下ができるようになっている。
【００７３】
実施の形態１の端末エミュレータ生成方法で生成される端末エミュレータ１３０は、この端末アプリ１４０などのアプリケーションとＯＣＳ２２６、ＳＣＳ２２２などのコントロールサービスとの間にあり、ＬＣＤ画面１２１を仮想端末として動作させ、端末アプリ１４０で受信したＷｅｂページの文字データからなる表示データを、文字を表示したボタン形式に加工してＬＣＤ画面１２１に描画する。また、端末エミュレータ１３０は、このようにＬＣＤ画面１２１に表示されたボタンをユーザが押下（タッチ）したときに、そのタッチキーコードを受信して、端末アプリ１４０の標準入力に通知するようになっている。
【００７４】
端末エミュレータ１３０には、グラフィック関数ライブラリ１００とＯＣＳ関数ライブラリ１１０が動的にリンクされている。グラフィック関数ライブラリ１００は、種々の関数が関数群に分類されて登録されている。このような関数群としては、画面管理関数群１０１と描画処理関数群１０２とイベント変換関数群１０３がある。
【００７５】
画面管理関数群１０１には、レイアウト表示要求関数、レイアウト表示抹消関数などが含まれている。レイアウト表示要求関数は、端末エミュレータ１３０を起動する際に呼び出され、ＬＣＤ画面１２１に表示する端末ウィンドウやボタンなどのアイテムの生成および管理を行う関数である。レイアウト抹消要求関数は、端末エミュレータ１３０を終了するときに呼び出され、端末ウィンドウやボタンなどを破棄し、ＬＣＤ画面１２１の表示を抹消する関数である。ＯＣＳ関数ライブラリ１１０で提供される関数を呼び出して各処理を実現するようになっている。
【００７６】
描画処理関数群１０２には、行表示要求関数、端末表示要求関数、端末抹消要求関数などが含まれている。行表示要求関数は、端末エミュレータ１３０が表示を行うと判断した場合に要求され、一行単位で表示データの文字列をＬＣＤ画面１２１にボタン形式で描画する関数である。端末表示要求関数は、レイアウト表示要求関数によってＬＣＤ画面１２１上に生成された端末表示ウィンドウを仮想端末として表示するため、ＬＣＤ画面１２１に端末表示ウィンドウを生成し管理する関数である。端末抹消関数は、端末エミュレータ１３０を終了する際に呼び出され、端末表示関数によって生成された端末表示ウィンドウを破棄する関数である。これらの関数は、ＯＣＳ関数ライブラリ１１０で提供される関数を呼び出して各処理を実現するようになっている。
【００７７】
イベント変換関数群１０３には、イベント通知関数が含まれている。このイベント通知関数は、オペレーションパネル１２０のＬＣＤ画面１２１からＯＣＳ２２６およびＳＣＳ２２２の各プロセスを介して通知されるイベントを受信し、イベントの種別を判断して、その判断結果によってマウス入力あるいはキー入力として端末アプリ１４０に通知する関数である。
【００７８】
このようなグラフィック関数ライブラリ１００を、端末エミュレータ１３０を生成する際に動的にリンクすることで、端末エミュレータ１３０における、オペレーションパネル１２０のＬＣＤ画面１２１に対する処理、およびＬＣＤ画面１２１からのイベントに対する処理は、すべてグラフィック関数ライブラリ１００で提供される各関数を呼び出すようにすれば良い。
【００７９】
次に、実施の形態１の端末エミュレータ生成方法によって生成された端末エミュレータ１３０、および端末アプリ１４０を搭載した複合機の全体構成について説明する。図２は、複合機２００の機能的構成を示すブロック図である。
【００８０】
図２に示すとおり、複合機２００は、白黒ラインプリンタ（B&W LP）２０１と、カラーラインプリンタ（Color LP）２０２と、スキャナ、ファクシミリ、ハードディスク（ＨＤ）、メモリ、ネットワークインタフェースなどのハードウェアリソース２０３を有するとともに、プラットホーム２２０とアプリケーション２３０とから構成されるソフトウェア群２１０とを備えている。
【００８１】
プラットホーム２２０は、アプリケーション２３０からの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ（ＳＲＭ）２２３と、汎用ＯＳ２２１とを備えている。
【００８２】
コントロールサービスは、複数のサービスモジュールから形成され、ＳＣＳ（システムコントロールサービス）２２２と、ＥＣＳ（エンジンコントロールサービス）２２４と、ＭＣＳ（メモリコントロールサービス）２２５と、ＯＣＳ（オペレーションパネルコントロールサービス）２２６と、ＦＣＳ（ファックスコントロールサービス）２２７と、ＮＣＳ（ネットワークコントロールサービス）２２８とから構成される。なお、このプラットホーム２２０は、あらかじめ定義された関数により前記アプリケーション２３０から処理要求を受信可能とするアプリケーションプログラムインタフェース（ＡＰＩ）を有する。
【００８３】
汎用ＯＳ２２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、プラットホーム２２０並びにアプリケーション２３０の各ソフトウェアをそれぞれプロセスとして並列実行する。
【００８４】
ＳＲＭ２２３のプロセスは、ＳＣＳ２２２とともにシステムの制御およびリソースの管理を行うものである。ＳＲＭ２２３のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４  Ｉ／Ｆ、ＲＳ２３２Ｃ  Ｉ／Ｆなど）のハードウェア資源を利用する上位層からの要求に従って調停を行い、実行制御する。
【００８５】
具体的には、このＳＲＭ２２３は、要求されたハードウェア資源が利用可能であるか（他の要求により利用されていないかどうか）を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、ＳＲＭ２２３は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施している。
【００８６】
ＳＣＳ２２２のプロセスは、アプリ管理、操作部制御、システム画面表示、ＬＥＤ表示、リソース管理、割り込みアプリ制御などを行う。
【００８７】
ＥＣＳ２２４のプロセスは、白黒ラインプリンタ（B&W LP）２０１、カラーラインプリンタ（Color LP）２０２、スキャナ、ファクシミリなどからなるハードウェアリソース２０３のエンジンの制御を行う。
【００８８】
ＭＣＳ２２５のプロセスは、画像メモリの取得および解放、ハードディスク装置（ＨＤＤ）の利用、画像データの圧縮および伸張などを行う。
【００８９】
ＦＣＳ２２７のプロセスは、システムコントローラの各アプリ層からＰＳＴＮ／ＩＳＤＮ網を利用したファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのＡＰＩを提供する。
【００９０】
ＮＣＳ２２８のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有している。
【００９１】
ＯＣＳ２２６は、オペレータ（ユーザ）と本体制御間の情報伝達手段となるオペレーションパネル（操作パネル）の制御を行う。ＯＣＳ２２６は、オペレーションパネル６１０からキー押下をキーイベントとして取得し、取得したキーに対応したキーイベント関数をＳＣＳ２２２に送信するＯＣＳプロセスの部分と、アプリケーション２３０またはコントロールサービスからの要求によりオペレーションパネル６１０に各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたＯＣＳライブラリの部分とから構成される。このＯＣＳライブラリは、アプリケーション２３０およびコントロールサービスの各モジュールにリンクされて実装されている。なお、ＯＣＳ２２６のすべてをプロセスとして動作させるように構成しても良く、あるいはＯＣＳ２２６のすべてをＯＣＳライブラリとして構成しても良い。
【００９２】
アプリケーション２３０は、ページ記述言語（ＰＤＬ）、ＰＣＬおよびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ２１１と、コピー用アプリケーションであるコピーアプリ２１２と、ファクシミリ用アプリケーションであるファックスアプリ２１３と、スキャナ用アプリケーションであるスキャナアプリ２１４と、ネットワークファイル用アプリケーションであるネットファイルアプリ２１５と、工程検査用アプリケーションである工程検査アプリ２１６とを有している。これらのアプリケーション２３０はいずれも複合機２００の起動時に後述する複合機初期化部によってプロセスとして生成され、動作する。
【００９３】
アプリケーション２３０の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。
【００９４】
このように、実施の形態１にかかる複合機２００には、複数のアプリケーション２３０および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一または複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション２３０に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。そして、複合機２００には、サードベンダーなどの第三者がコントロールサービス層の上のアプリケーション層に新規なアプリケーションを開発して搭載することが可能となっており、実施の形態１では、端末アプリ１４０および端末エミュレータ１３０を新規アプリケーションとして搭載している。
【００９５】
次に、端末エミュレータ１３０の処理を、図１に示す例をあげて具体的に説明する。図１に示す端末エミュレータ１３０が端末アプリ１４０の標準出力から表示データを受信すると、受信したデータは一旦受信ＦＩＦＯキュー１３１に格納される。そして、端末機能処理部１３２がこの受信ＦＩＦＯキュー１３１から受信した表示データを先入れ先出し順に読み出して、例えばハイパーリンクの旨、ＦＯＲＭ入力の旨、インライン画像の旨などの表示データの制御コードを判断して、制御コードに対応した文字属性と位置座標（ｘ，ｙ）を表示データの一文字ごとに付加する。図１の例では、ハイパーリンクを示す文字属性は青色、ＦＯＲＭ入力を示す文字属性は赤色、インライン画像を示す文字属性が緑色、通常表示を示す文字属性が黒色としている。また、制御コードがＥＳＣコードから始まる場合には、そのままＥＳＣコードを文字属性として使用する。
【００９６】
そして、端末機能処理部１３２は、文字属性および位置座標が付加された表示データをＲＡＭ（図示せず）に順次格納する。構文解析部１３３は、ＲＡＭから一行分の表示データを読み出し、文字属性がＥＳＣコードか否かを判断し、ＥＳＣコードでない場合には、表示データを描画処理部１３５に受け渡す。
【００９７】
図３は、描画処理部１３５に受け渡された表示データのデータ構造図である。図３に示すとおり、表示データでは、一文字ごとに文字コードに文字属性と位置座標（ｘ，ｙ）が付加された構造となっている。
【００９８】
描画処理部１３５では、図１に示す処理概要の通り、グラフィック関数ライブラリ１００の画面管理関数群１０１および描画処理関数群１０２の関数を適宜呼び出す。ここで行表示要求関数は、表示する行分繰り返して呼び出すものとする。これによって、表示データは、ボタン表示１２２に示すように、ボタン形式でオペレーションパネル１２０のＬＣＤ画面１２１に表示されることになる。
【００９９】
このようにボタン形式で表示するのは、ＬＣＤ画面１２１のタッチパネル入力の場合、画面上で任意に指定された位置の座標を取得する機構がないため、入力が必要な部分（ハイパーリンクやＦＯＲＭ入力部分など）をボタン形式などで予め表示している。
【０１００】
ここで、描画処理部１３５によって呼び出される描画処理関数群１０２の行表示要求関数の処理について説明する。図５は、行表示要求関数で行われる処理の手順を示すフローチャートである。
【０１０１】
行表示要求関数では、まずこれから表示する行を削除し（ステップＳ５０１）、表示データの中の文字属性を有する文字からなる文字列を先頭文字から走査する（ステップＳ５０２）。そして、文字属性が一つ前の文字の文字属性と比較して変化したかどうかをチェックする（ステップＳ５０３）。そして、文字属性が変化していない場合には、文字属性を含む文字列の終端まで走査したか否かを判断し（ステップＳ５１１）、まだ終端まで走査していない場合には、ステップＳ５０２の表示データの文字走査を繰り返す。
【０１０２】
一方、ステップＳ５０３において、文字属性が一つ前の文字の文字属性から変化した場合は、前回の文字属性変化位置の文字から現在の一つ前の文字までの文字列を、文字列変数ｍｓｇに格納する（ステップＳ５０４）。そして、かかる文字列に共通する文字属性を調査する（ステップＳ５０５）。
【０１０３】
文字属性が「黒」である場合には、ユーザからの押下の対象ではない通常表示の文字であることを示しているので、ｍｓｇの文字列の先頭文字の位置座標（ｘ，ｙ）にｍｓｇの文字列を黒色で表示し（ステップＳ５０６）、ＯＣＳ関数ライブラリ１１０に登録されているＯＣＳ描画関数呼び出しを行う（ステップＳ５１０）。これによってオペレーションパネル１２０のＬＣＤ画面１２１に、文字列が黒色で通常表示されることになる。
【０１０４】
ステップＳ５０５の調査において、文字属性が「青」である場合には、ハイパーリンクが指定された文字であることを示しているので、ｍｓｇの文字列の先頭文字の位置座標（ｘ，ｙ）にｍｓｇの文字列を青色で、かつボタン形式で表示する（ステップＳ５０７）。そして、ユーザがＬＣＤ画面１２１から入力した場合の位置座標を取得するためのタッチキーコードを生成し（ステップＳ５０９）、ＯＣＳ関数ライブラリ１１０に登録されているＯＣＳ描画関数呼び出しを行う（ステップＳ５１０）。これによってオペレーションパネル１２０のＬＣＤ画面１２１に、文字列が青色（ハイパーリンク）のボタン形式で表示されることになる。
【０１０５】
ここで、タッチキーコードについて説明する。タッチキーコードとはオペレーションパネルのＬＣＤ画面１２１からユーザがボタンまたはキーを押下（タッチ）したときに通知されるボタンおよびキーに固有の入力イベントである。
【０１０６】
図４は、タッチキーコードのデータ構造図である。図４に示すように、タッチキーコードは、イベント種別とイベント種別ごとの固有情報とから構成される。イベント種別は、「０」のときキーイベントを示し、「１」のときボタンイベントを示している。
【０１０７】
イベント種別がキーイベントのタッチキーコードは、ＬＣＤ画面１２１に表示されたソフトウェアキーボードのキーが押下された場合に通知され、この場合の固有情報は、キーごとに固有の値のキーＩＤとなる。一方、イベント種別がボタンイベントのタッチキーコードは、ＬＣＤ画面１２１に表示されたボタンが押下された場合に通知され、この場合の固有情報は、ボタンの位置座標（ｘ’，ｙ’）となる。
【０１０８】
図５に戻り、ステップＳ５０５の調査において、文字属性が「赤」または「緑」である場合には、ＦＯＲＭ入力またはインライン画像の文字であることを示しているので、ｍｓｇの文字列の先頭文字の位置座標（ｘ，ｙ）にｍｓｇの文字列を文字属性で指定された色（「赤」または「緑」）の反転文字で表示する（ステップＳ５０８）。そして、タッチキーコードを生成して（ステップＳ５０９）、ＯＣＳ関数ライブラリ１１０に登録されているＯＣＳ描画関数呼び出しを行う（ステップＳ５１０）。これによってオペレーションパネル１２０のＬＣＤ画面１２１に、文字列が赤色または緑色の反転文字で表示されることになる。このようなステップＳ５０２からＳ５１０までの処理は、表示データ中、文字属性を含む文字列の終端までの走査が完了するまで繰り返される（ステップＳ５１１）。
【０１０９】
一方、ユーザがオペレーションパネル１２０のＬＣＤ画面１２１に表示されたボタン１２２を押下（タッチ）すると、タッチキーコードのイベントがＯＣＳ２２６およびＳＣＳ２２２を介して端末エミュレータ１３０に通知される。端末エミュレータ１３０では、このタッチキーコードのイベントを受信して、イベント変換関数群１０３のイベント通知関数を呼び出して、タッチキーコードをマウス入力またはキー入力として端末アプリ１４０に標準入力として通知する。
【０１１０】
図６は、このイベント通知関数による処理の手順を示すフローチャートである。イベント通知関数では、まず受信したタッチキーコードのイベント種別を判断する（ステップＳ６０１）。そして、イベント種別が「１」、すなわち、ボタンイベントである場合には、ＬＣＤ画面１２１に描画されたボタンが押下されたものとして、タッチキーコードの固有情報に設定された位置座標（ｘ’，ｙ’）を取得し、この位置座標（ｘ’，ｙ’）でマウスのダブルクリックがされた旨を示す制御コードを端末アプリ１４０の標準入力として通知する（ステップＳ６０２）。このようにイベント通知関数によって、ＬＣＤ画面１２１からのボタン押下がマウス入力に変換されて端末アプリ１４０に通知される。
【０１１１】
一方、ステップＳ６０１で、イベント種別が「０」、すなわち、キーイベントである場合には、ＬＣＤ画面１２１に描画されたソフトウェアキーボードのキーが押下されたものとして、タッチキーコードの固有情報に設定されたキーＩＤを取得し、このキーＩＤに対応した制御コードを端末アプリ１４０の標準入力として通知する（ステップＳ６０３）。このようにイベント通知関数によって、ＬＣＤ画面１２１からのキー押下がキー入力として端末アプリ１４０に通知される。
【０１１２】
次に、このように構成される端末エミュレータ１３０の生成方法について説明する。図７は、実施の形態１の端末エミュレータ生成方法を利用して端末エミュレータ１３０を開発するための開発用ＰＣ７００のソフトウェア構成を示すブロック図である。この図７では、ＣＤ−ＲＯＭなどの記録媒体で提供されるソフトウェア開発キット７０４を開発用ＰＣ７００のハードディスク（ＨＤ）７０３にインストールした状態を示している。実施の形態１で使用する開発用ＰＣ７００は、複合機で動作させるための端末エミュレータ１３０の端末エミュレータソースファイル７０６をコンパイルおよびリンクして、端末エミュレータ実行形式ファイル７０８を生成するものである。開発用ＰＣ７００は、図７に示すように、コンパイラ７０１と、リンカ７０２とから構成される。
【０１１３】
コンパイラ７０１は、ハードディスク（ＨＤ）７０３に格納されたソースコードが記述された端末エミュレータソースファイル７０６を、コマンドの指定に従って、オブジェクトコードからなる端末エミュレータオブジェクトファイル７０７を生成するものである。このコンパイラ７０１は、通常のコンパイラと同様に、コマンド解析、構文解析、コード生成の各処理を行う。また、コンパイラ起動コマンドでデバッグオプションが指定された場合には、デバッグ用のオブジェクトファイルを生成する。
【０１１４】
リンカ７０２は、コンパイラ７０１によって生成された端末エミュレータオブジェクトファイル７０７と、ソフトウェア開発キット７０５の中のグラフィック関数ライブラリ、コントロールサービス関数ライブラリ（ＯＣＳ関数ライブラリを含む）、標準関数ライブラリなどとをリンク（結合）して、複合機２００のＯＳ２２１上で実行可能なアプリケーションの端末エミュレータ実行形式ファイル７０８を生成するものである。
【０１１５】
ＨＤ（ハードディスク）７０３には、端末エミュレータ１３０や新規アプリケーションの開発に必要なデータ、プログラムをキットとして構成した、ソフトウェア開発キット７０５がインストールされている。また、ＨＤ７０３に端末エミュレータ１３０のＣ言語ソースコードが記述された端末エミュレータソースファイル７０６が格納される。この端末エミュレータソースファイル７０６は、開発用ＰＣ７００などでエディタによって作成される。また、ＨＤ７０３には、コンパイラ７０１によって、端末エミュレータオブジェクトファイル７０７が生成され、さらにリンカ７０２によって端末エミュレータ実行形式ファイル７０８が生成される。
【０１１６】
ソフトウェア開発キット７０４は、ＣＤ−ＲＯＭまたはフレキシブルディスク（ＦＤ）などの記録媒体にインストール可能な形式で提供される。そして、開発用ＰＣ７００のＨＤ７０３にインストールされる。この記録媒体のソフトウェア開発キット７０４，７０５の中には、図７に示すように、上述した関数群からなるグラフィック関数ライブラリと、ＥＣＳ２２４、ＭＣＳ２２５などの各コントロールサービスの実行形式ファイルと、各コントロールサービスごとに、提供するサービス関数を登録したコントロールサービス関数ライブラリ（たとえば、ＥＣＳ関数ライブラリ、ＭＣＳ関数ライブラリなど）と、ｓｔｒｃｐｙ，ｍｅｍｃｐｙなどのＣ言語標準関数を登録した標準関数ライブラリと、アプリケーションとコントロールサービスに共通で使用される関数宣言やメッセージ宣言が記述されているヘッダファイルと、コンパイラ７０１およびリンカ７０２の各プログラムと、汎用ＯＳプログラムと、デバッガなどのデバッグ用ユーティリティとが含まれている。上記コンパイラ７０１およびリンカ７０２は、このソフトウェア開発キット７０４をインストールして実行したときに、ＲＡＭ上に生成されて実行される。
【０１１７】
なお、実施の形態１では、ソフトウェア開発キットを記録媒体で提供することとしているが、このような実行可能な形式またはインストール可能な形式のファイルを、ネットワーク経由でダウンロードすることにより提供するように構成しても良い。
【０１１８】
次に、このような開発用ＰＣ７００にインストールされたソフトウェア開発キット７０５を利用した端末エミュレータ実行形式ファイル７０８の生成処理について説明する。図８は、開発用ＰＣ７００による端末エミュレータ生成処理の手順を示すフローチャートである。コンパイラ起動コマンドが入力されると、コンパイラ７０１が起動し、入力されたコマンドの解析を行う（ステップＳ８０１）。具体的にはパラメータや構文の解析を行って、入力されたコマンドが文法的に正確か否かを判断する。
【０１１９】
次に、コンパイラ７０１によって、端末エミュレータソースファイル７０６とイントール済みのソフトウェア開発キット７０５の中のヘッダファイルを読み込み（ステップＳ８０２）、ソースファイル７０６に記述されたＣ言語ソースコードの構文解析を行う（ステップＳ８０３）。具体的には、コンパイラ７０１はＣ言語ソースコードをＣ言語文法に従って解析し、導出木や構文木などを生成する。
【０１２０】
そして、入力された起動コマンドにデバッグオプションが指定されているか否かを調べる（ステップＳ８０４）。デバッグオプションが指定されている場合には、コンパイラ７０１はコード生成処理によりソースコードにタグ付けなどを行ってデバッグ用端末エミュレータオブジェクトファイルを生成する（ステップＳ８０５）。一方、デバッグオプションの指定がない場合には、コンパイラ７０１はコード生成処理により通常の端末エミュレータオブジェクトファイル７０７を生成する（ステップＳ８０６）。そして、コンパイラ７０１は、生成した端末エミュレータオブジェクトファイル７０７をＨＤ７０３に格納する。
【０１２１】
次に、リンカ７０２を起動して、生成された端末エミュレータオブジェクトファイル７０７と、ソフトウェア開発キット７０５の中のグラフィック関数ライブラリとコントロールサービス関数ライブラリ（ＯＣＳ関数ライブラリを含む）とを動的リンクにより結合する。具体的には、グラフィック関数ライブラリとコントロールサービス関数ライブラリ（ＯＣＳ関数ライブラリを含む）の呼び出しモジュールを生成して、端末エミュレータオブジェクトファイル７０７と当該呼び出しモジュールとをリンクすることにより、動的リンクが行われる（ステップＳ８０７）。これによって複合機２００上における端末エミュレータ１３０の実行時に、グラフィック関数ライブラリとコントロールサービス関数ライブラリ（ＯＣＳ関数ライブラリを含む）が結合可能となる。
【０１２２】
ついで、端末エミュレータオブジェクトファイル７０７と、標準関数ライブラリとを静的リンクにより結合して、端末エミュレータ実行形式ファイル７０８を生成する（ステップＳ８０８）。なお、生成された端末エミュレータ実行形式ファイル７０８を、ソフトウェア開発キット７０５の中のすべてのコントロールサービス実行形式ファイル、グラフィック関数ライブラリおよびコントロールサービス関数ライブラリとともにフラッシュカードに書き込み、フラッシュカードから複合機２００にインストールすることによって、複合機２００上で端末エミュレータ１３０が実行可能となる。
【０１２３】
このように、実施の形態１にかかるグラフィック関数ライブラリおよびグラフィック関数ライブラリを利用した端末エミュレータ生成方法では、端末アプリ１４０から送出された表示データに含まれる文字データを、ＬＣＤ画面１２１からの入力位置座標を取得可能なボタン表示で、ＬＣＤ画面１２１に描画する行表示要求関数を含む描画処理関数群が登録されたグラフィック関数ライブラリ１００と、行表示要求関数の呼び出しを行う端末エミュレータ１３０のオブジェクトファイルとから、端末エミュレータ１３０の実行形式プログラムを生成しているので、グラフィック関数ライブラリ１００で提供される行表示要求関数を呼び出すことによって、文字データを、ＬＣＤ画面１２１からの入力位置座標を取得可能な形式でＬＣＤ画面１２１に描画することができ、端末エミュレータ１３０を容易に開発することができ、また既存の端末アプリ１４０の移植性を向上させることができる。
【０１２４】
（実施の形態２）
実施の形態１では、グラフィック関数ライブラリ１００を用いて端末エミュレータ１３０を生成していたが、この実施の形態２は、端末エミュレータ機能を有する端末アプリをグラフィック関数ライブラリ１００を用いて生成するものである。
【０１２５】
図９は、実施の形態２のグラフィック関数ライブラリを使用して生成された端末アプリの機能的構成および処理概要を示すブロック図である。実施の形態２にかかる端末アプリ９００もＷｅｂブラウザなどであり、オペレーションパネル１２０のＬＣＤ画面１２１（オペパネ表示部）を端末として使用するアプリケーションである。この端末アプリ９００は、文字データのみを扱うことができるＣＵＩ（Character User Interface）を有しており、ＧＵＩ（Graphical User Interface）に対応したものとはなっていないことを前提とする。
【０１２６】
実施の形態２の端末アプリ９００は、端末エミュレータ機能を自身で有しており、このため端末エミュレータを別途要しない点が実施の形態１の端末アプリ１４０と異なっている。
【０１２７】
実施の形態２の端末アプリ９００は、インターネット上のＷｅｂページから各種データを送受信してオペレーションパネル１２０を端末として使用するＷｅｂデータ入出力部９４０と、オペレーションパネル１２０のＬＣＤ画面１２１を仮想端末として動作させる実施の形態１の端末エミュレータとして機能するエミュレータ部９３０とを備えている。
【０１２８】
エミュレータ部９３０は、受信ＦＩＦＯキュー１３１と、端末機能処理部１３２と、構文解析部１３３と、描画処理部１３５と、ＯＣＳ関数呼び出し部１３４と、送信ＦＩＦＯキュー１３６と、イベント変換部１３７とを備えており、これら各部の機能は実施の形態１で説明した端末エミュレータ１３０と同様である。
【０１２９】
また、端末アプリ９００には、グラフィック関数ライブラリ１００とＯＣＳ関数ライブラリ１１０とが動的リンクによって結合されている。グラフィック関数ライブラリ１００とＯＣＳ関数ライブラリ１１０についても実施の形態１の各ライブラリと同様である。
【０１３０】
次に、グラフィック関数ライブラリ１００を利用した端末アプリ９００の生成方法について説明する。図１０は、端末アプリ９００の生成処理の手順を示すフローチャートである。コンパイラ起動コマンドが入力されると、コンパイラ７０１が起動し、入力されたコマンドの解析を行う（ステップＳ１００１）。
【０１３１】
次に、コンパイラ７０１によって、端末アプリソースファイルとソフトウェア開発キット７０５の中のヘッダファイルを読み込み（ステップＳ１００２）、ソースファイルの構文解析を行う（ステップＳ１００３）。そして、入力された起動コマンドにデバッグオプションが指定されているか否かを調べ（ステップＳ１００４）、デバッグオプションが指定されている場合には、コンパイラ７０１はデバッグ用端末アプリオブジェクトファイルを生成する（ステップＳ１００５）。一方、デバッグオプションの指定がない場合には、コンパイラ７０１は通常の端末アプリオブジェクトファイルを生成し（ステップＳ１００６）、ＨＤ７０３に格納する。
【０１３２】
次に、リンカ７０２を起動して、生成された端末アプリオブジェクトファイルと、ソフトウェア開発キット７０５の中のグラフィック関数ライブラリとコントロールサービス関数ライブラリ（ＯＣＳ関数ライブラリを含む）とを動的リンクにより結合する。動的リンクの方法については、実施の形態１における端末エミュレータ生成方法におけるリンクと同様である。
【０１３３】
ついで、端末アプリオブジェクトファイルと、標準関数ライブラリとを静的リンクにより結合して、端末アプリ実行形式ファイルを生成する（ステップＳ１００８）。生成された端末アプリ実行形式ファイルは、実施の形態１と同様の方法で複合機２００にインストールすることによって、複合機２００上で端末アプリ９００が実行可能となる。
【０１３４】
このように、実施の形態２にかかるグラフィック関数ライブラリおよびグラフィック関数ライブラリを利用した端末アプリ生成方法では、Ｗｅｂデータ入出力部９４０から送出された表示データに含まれる文字データを、ＬＣＤ画面１２１からの入力位置座標を取得可能なボタン表示で、ＬＣＤ画面１２１に描画する行表示要求関数を含む描画処理関数群が登録されたグラフィック関数ライブラリ１００と、行表示要求関数の呼び出しを行う端末アプリ９００のオブジェクトファイルとから、端末アプリ９００の実行形式プログラムを生成しているので、グラフィック関数ライブラリ１００で提供される行表示要求関数を呼び出すことによって、文字データを、ＬＣＤ画面１２１からの入力位置座標を取得可能な形式でＬＣＤ画面１２１に描画することができ、端末アプリ９００を容易に開発することができ、また既存の端末アプリ９００の移植性を向上させることができる。
【０１３５】
【発明の効果】
以上説明したように、請求項１にかかる発明によれば、グラフィック関数ライブラリで提供される表示要求関数を呼び出すことによって、テキスト情報を、オペパネ表示部からの入力位置座標を取得可能な形式でオペパネ表示部に描画することができるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができるという効果を奏する。
【０１３６】
また、請求項２にかかる発明によれば、表示要求関数を呼び出すことによって、テキスト情報を、予め位置座標が特定されたボタン表示でオペパネ表示部に描画することができるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができるという効果を奏する。
【０１３７】
また、請求項３にかかる発明によれば、表示要求関数を呼び出すことによって、テキスト情報を、ハイパーリンクとして、予め位置座標が特定されたボタン表示、かつ例えば色や下線などの文字属性でオペパネ表示部に描画することができるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができるという効果を奏する。
【０１３８】
また、請求項４にかかる発明によれば、表示要求関数を呼び出すことによって、テキスト情報を、予め位置座標が特定されたボタン表示かつ反転文字でオペパネ表示部に描画することができるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができるという効果を奏する。
【０１３９】
また、請求項５にかかる発明によれば、表示要求関数を呼び出すことによって、テキスト情報を、入力フィールドとして、予め位置座標が特定された反転文字のボタン表示、かつ例えば色や下線などの文字属性でオペパネ表示部に描画することができるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができるという効果を奏する。
【０１４０】
また、請求項６にかかる発明によれば、表示要求関数を呼び出すことによって、テキスト情報を、インライン画像として、予め位置座標が特定された反転文字のボタン表示、かつ例えば色や下線などの文字属性でオペパネ表示部に描画することができるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができる。
【０１４１】
また、請求項７にかかる発明によれば、レイアウト関数を呼び出すことによって、オペパネ表示部の画面レイアウトを管理することができるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができるという効果を奏する。
【０１４２】
また、請求項８にかかる発明によれば、グラフィック関数ライブラリの関数呼び出しをすれば、ＯＣＳ関数ライブラリのオペパネ描画関数を介してオペパネ表示部への描画が実現できるので、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができるという効果を奏する。
【０１４３】
また、請求項９にかかる発明によれば、イベント通知関数呼び出しによって、オペパネ表示部に描画されたボタン表示のタッチ入力を入力位置座標におけるマウス入力イベントとして端末アプリに通知することができ、マウスによる任意位置による入力ができないオペパネ表示部でも、擬似的なマウス入力が可能となり、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができるという効果を奏する。
【０１４４】
また、請求項１０にかかる発明によれば、イベント通知関数呼び出しによって、オペパネ表示部に描画されたソフトウェアキーのタッチ入力をキー入力イベントとして端末アプリに通知することができ、端末エミュレータを容易に開発することができ、また既存の端末アプリの移植性を向上させることができるという効果を奏する。
【０１４５】
請求項１１にかかる発明によれば、端末エミュレータの実行時にグラフィック関数ライブラリがリンクされるので、端末エミュレータのようなグラフィック関数ライブラリを使用するアプリを複数実行する場合でも、各アプリ内にグラフィック関数ライブラリを実装する必要がなく、またグラフィック関数ライブラリを一つ複合機に実装しておけば良いので、端末エミュレータやアプリのサイズを減少させることができるという効果を奏する。
【０１４６】
また、請求項１２にかかる発明によれば、グラフィック関数ライブラリで提供される表示要求関数を呼び出すことによって、テキスト情報を、オペパネ表示部からの入力位置座標を取得可能な形式でオペパネ表示部に描画することができるので、端末アプリを容易に開発することができ、また既存の端末アプリの移植性を向上させることができるという効果を奏する。
【０１４７】
また、請求項１３にかかる発明によれば、表示要求関数を呼び出すことによって、テキスト情報を、予め位置座標が特定されたボタン表示でオペパネ表示部に描画することができるので、端末アプリを容易に開発することができ、また既存の端末アプリの移植性を向上させることができるという効果を奏する。
【０１４８】
また、請求項１４にかかる発明によれば、表示要求関数を呼び出すことによって、テキスト情報を、予め位置座標が特定されたボタン表示かつ反転文字でオペパネ表示部に描画することができるので、端末アプリを容易に開発することができ、また既存の端末アプリの移植性を向上させることができるという効果を奏する。
【０１４９】
また、請求項１５にかかる発明によれば、レイアウト関数を呼び出すことによって、オペパネ表示部の画面レイアウトを管理することができるので、端末アプリを容易に開発することができ、また既存の端末アプリの移植性を向上させることができるという効果を奏する。
【０１５０】
また、請求項１６にかかる発明によれば、イベント通知関数呼び出しによって、オペパネ表示部に描画されたボタン表示のタッチ入力を入力位置座標におけるマウス入力イベントとして端末アプリに通知することができ、マウスによる任意位置による入力ができないオペパネ表示部でも、擬似的なマウス入力が可能となり、端末アプリを容易に開発することができ、また既存の端末アプリの移植性を向上させることができるという効果を奏する。
【図面の簡単な説明】
【図１】実施の形態１のグラフィック関数ライブラリ１００を使用して生成された端末エミュレータの機能的構成および処理概要を示すブロック図である。
【図２】実施の形態１における複合機２００の機能的構成を示すブロック図である。
【図３】実施の形態１の端末エミュレータ１３０における描画処理部１３５に受け渡された表示データのデータ構造図である。
【図４】実施の形態１におけるタッチキーコードのデータ構造図である。
【図５】実施の形態１のグラフィック関数ライブラリ１００の行表示要求関数で行われる処理の手順を示すフローチャートである。
【図６】実施の形態１のグラフィック関数ライブラリ１００のイベント通知関数による処理の手順を示すフローチャートである。
【図７】実施の形態１の端末エミュレータ生成方法を利用して端末エミュレータ１３０を開発するための開発用ＰＣ７００のソフトウェア構成を示すブロック図である。
【図８】実施の形態１における開発用ＰＣ７００による端末エミュレータ生成処理の手順を示すフローチャートである。
【図９】実施の形態２のグラフィック関数ライブラリ１００を使用して生成された端末アプリの機能的構成および処理概要を示すブロック図である。
【図１０】実施の形態２における端末アプリ９００の生成処理の手順を示すフローチャートである。
【符号の説明】
１００  グラフィック関数ライブラリ
１０１  画面管理関数群
１０２  描画処理関数群
１０３  イベント変換関数群
１１０  ＯＣＳ関数ライブラリ
１２０  オペレーションパネル
１２１  ＬＣＤ画面
１２２  ボタン表示
１３０  端末エミュレータ
１３１  受信ＦＩＦＯキュー
１３２  端末機能処理部
１３３  構文解析部
１３４  ＯＣＳ関数呼び出し部
１３５  描画処理部
１３６  送信ＦＩＦＯキュー
１３７  イベント変換部
１４０  端末アプリ
２００  複合機
２０１  白黒ラインプリンタ
２０２  カラーラインプリンタ
２０３  ハードウェアリソース
２１０  ソフトウェア群
２１１  プリンタアプリ
２１２  コピーアプリ
２１３  ファックスアプリ
２１４  スキャナアプリ
２１５  ネットファイルアプリ
２１６  工程検査アプリ
２２０  プラットホーム
２２１  汎用ＯＳ
２２２  ＳＣＳ
２２３  ＳＲＭ
２２４  ＥＣＳ
２２５  ＭＣＳ
２２６  ＯＣＳ
２２７  ＦＣＳ
２２８  ＮＣＳ
２３０  アプリケーション
６１０  オペレーションパネル
７００  開発用ＰＣ
７０１  コンパイラ
７０２  リンカ
７０４，７０５  ソフトウェア開発キット
７０６  端末エミュレータソースファイル
７０７  端末エミュレータオブジェクトファイル
７０８  端末エミュレータ実行形式ファイル
９００  端末アプリ
９３０  エミュレータ部
９４０  Ｗｅｂデータ入出力部
【図１】
0004405132.tif 000002
【図２】
0004405132.tif 000003
【図３】
0004405132.tif 000004
【図４】
0004405132.tif 000005
【図５】
0004405132.tif 000006
【図６】
0004405132.tif 000007
【図７】
0004405132.tif 000008
【図８】
0004405132.tif 000009
【図９】
0004405132.tif 000010
【図１０】
0004405132.tif 000011