(57)【要約】【課題】プログラムの構成を簡単化することにより、プログラムのデバッグ時間及び改良時間を短縮する。【解決手段】コマンドA = {条件１=状態Ａ,  条件２={状態Ｂ,状態Ｃ},………}は、右辺の｛｝内の”，”で区切られた複数の論理条件式である条件１=状態Ａ,  条件２={状態Ｂ,状態Ｃ}、・・・のそれぞれが真のとき、すなわち各論理条件式が真のとき、右辺の論理条件式全体が真となり、左辺のコマンドＡを実行する。【選択図】図２
2014215659.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、プログラム及びデータが格納された記憶装置とを備えた条件データ分離型情報処理装置において、
該データは、コマンド識別子と、該コマンド識別子に対応した論理条件式との組とを含み、
該プログラムは、該コマンド識別子と、該論理条件式の真偽を判定する条件判定サブルーチンとを含み、
該コマンド識別子は、該プロセッサに対し、該コマンド識別子に対応した論理条件式の値が真である場合に該コマンド識別子に対応した処理を実行させる、
ことを特徴とする条件データ分離型情報処理装置。
【請求項２】
該コマンド識別子に対応した論理条件式は、複数の論理条件式の論理積で表され、
該条件判定サブルーチンは、該複数の論理条件式のそれぞれの真偽を判定する処理を含む、
ことを特徴とする請求項１に記載の条件データ分離型情報処理装置。
【請求項３】
該複数の論理条件式の少なくとも１つが、他のコマンド識別子に対応した論理条件式である、
ことを特徴とする請求項１又は２に記載の条件データ分離型情報処理装置。
【請求項４】
プロセッサと、プログラム及びデータが格納された記憶装置とを備えた動作条件説明書自動生成装置において、
該データは、コマンド識別子と、該コマンド識別子に対応した論理条件式との組と、文字列と変数とを含むテンプレートとを含み、
該プログラムは、該コマンド識別子と、該論理条件式の真偽を判定する条件判定サブルーチンと、条件に対応した動作条件説明文生成サブルーチンとを含み、
該コマンド識別子は、該プロセッサに対し、該コマンド識別子に対応した論理条件式の値が真である場合に該コマンド識別子に対応した処理を実行させ、
該動作条件説明文生成サブルーチンは、該プロセッサに対し、対応するテンプレートに基づいて、該テンプレートに含まれる変数を該条件に対応した文字列に変換させ、変換後の該テンプレートに基づいて動作条件説明文を生成させる、
ことを特徴とする動作条件説明書自動生成装置。
【請求項５】
該コマンド識別子に対応した論理条件式は、複数の論理条件式の論理積で表され、
該条件判定サブルーチンは、該複数の論理条件式のそれぞれの真偽を判定する処理を含む、
ことを特徴とする請求項４に記載の動作条件説明書自動生成装置。
【請求項６】
該複数の論理条件式の少なくとも１つが、他のコマンド識別子に対応した論理条件式である、
ことを特徴とする請求項５に記載の動作条件説明書自動生成装置。
【請求項７】
該説動作条件明文生成サブルーチンは、該プロセッサに対し、該複数の論理条件式のそれぞれに対応した動作条件説明文を生成させ、各動作条件説明文を連結させて出力させる、
ことを特徴とする請求項４乃至６のいずれか１つに記載の動作条件説明書自動生成装置。
【請求項８】
該複数の論理条件式の少なくとも１つが、他のコマンド識別子に対応した論理条件式である、
ことを特徴とする請求項４乃至７のいずれか１つに記載の動作条件説明書自動生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムとデータの組の構成を改良した条件データ分離型情報処理装置及びフトウェア説明書自動生成装置に関する。
【背景技術】
【０００２】
一般に、プログラムは条件分岐により構成が複雑になり、デバッグ時間が長くなる原因となるとともに、プログラムの改良に要する時間も長くなる。
【０００３】
また、設計変更により、プログラムを修正するとともにマニュアル中の説明文を変更する必要が生ずる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０８−０６３３５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、このような問題点に鑑み、プログラムの構成を簡単化することにより、プログラムのデバッグ時間及び改良時間を短縮することが可能な条件データ分離型情報処理装置を提供することにある。
【０００６】
本発明の他の目的は、設計変更が生じても、データの一部を変更するだけでマニュアル中の説明文も自動変更することが可能な動作条件説明書自動生成装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の条件データ分離型情報処理装置の一態様では、プロセッサと、プログラム及びデータが格納された記憶装置とを備えた条件データ分離型情報処理装置において、
該データは、コマンド識別子と、該コマンド識別子に対応した論理条件式との組とを含み、
該プログラムは、該コマンド識別子と、該論理条件式の真偽を判定する条件判定サブルーチンとを含み、
該コマンド識別子は、該プロセッサに対し、該コマンド識別子に対応した論理条件式の値が真である場合に該コマンド識別子に対応した処理を実行させる。
【０００８】
本発明の動作条件説明書自動生成装置の一態様では、プロセッサと、プログラム及びデータが格納された記憶装置とを備えた動作条件説明書自動生成装置において、
該データは、コマンド識別子と、該コマンド識別子に対応した論理条件式との組と、文字列と変数とを含むテンプレートとを含み、
該プログラムは、該コマンド識別子と、該論理条件式の真偽を判定する条件判定サブルーチンと、条件に対応した動作条件説明文生成サブルーチンとを含み、
該コマンド識別子は、該プロセッサに対し、該コマンド識別子に対応した論理条件式の値が真である場合に該コマンド識別子に対応した処理を実行させ、
該動作条件説明文生成サブルーチンは、該プロセッサに対し、対応するテンプレートに基づいて、該テンプレートに含まれる変数を該条件に対応した文字列に変換させ、変換後の該テンプレートに基づいて動作条件説明文を生成させる。
【発明の効果】
【０００９】
上記条件データ分離型情報処理装置の一態様の構成によれば、コマンド実行条件式がプログラムから分離されたデータで表現され、条件判定サブルーチンで該条件式の真偽を判定し、真である場合にコマンドに対応した処理を実行するので、プログラムの構成が簡単になり、これにより、プログラムのデバッグ時間及び改良時間を短縮することができるという効果を奏する。
【００１０】
上記動作条件説明書自動生成装置の一態様の構成によれば、動作条件説明文生成サブルーチンにより、テンプレートに含まれる変数を該条件に対応した文字列に変換し、変換後の該テンプレートに基づいて動作条件説明文を自動生成するので、設計変更が生じても、プログラムを変更することなくデータの一部を変更するだけで、マニュアル中の説明文も自動変更することができるという効果を奏する。
【００１１】
本発明の他の目的、特徴的な構成及び効果は、以下の説明を特許請求の範囲及び図面の記載と関係づけて読むことにより明らかになる。 
【図面の簡単な説明】
【００１２】
【図１】本発明の実施例１に係る条件データ分離型情報処理装置のハードウェア概略構成図である。
【図２】（Ａ）は釦押下イベントに対するイベントハンドラのプログラム構成例を示す図であり、（Ｂ）はコマンド／条件テーブルの一般型説明図であり、（Ｃ）はコマンド／条件テーブルの具体例説明図である。
【図３】（Ａ）及び（Ｂ）はそれぞれ図２（Ｂ）及び（Ｃ）に対応した変換テーブル説明図である。
【図４】（Ａ）は印刷コマンドの動作条件説明文作成用テンプレートの説明図、（Ｂ）はこのテンプレートを用いて図６の処理で自動作成した動作条件説明文を示す図である。
【図５】条件判定サブルーチンの処理手順を示す概略フローチャートである。
【図６】１行の説明文を生成するサブルーチンの処理手順を示すフローチャートである。
【図７】全コマンドの動作条件説明文を生成するサブルーチンの処理手順を示すフローチャートである。
【実施例１】
【００１３】
図１は、本発明の実施例１に係る条件データ分離型情報処理装置のハードウェア概略構成図である。
【００１４】
この装置では、プロセッサ１０が、バスを含むインターフェイス１１を介し記憶装置１２に結合されている。記憶装置１２は、仮想記憶方式を採用したものであり、主記憶装置としてのＲＡＭ、例えばＤＲＡＭと、ハードディスクドライブ又はフラッシュメモリドライブなどの補助記憶装置とを備えている。
【００１５】
記憶装置１２には、プログラム２０とデータ３０とが格納され、プログラムは後述の処理部２１〜２６を備え、データ３０は後述のデータ３１〜３６を備えている。
【００１６】
プロセッサ１０にはまた、インターフェイス１１を介し表示部４０、入力部４１、複数のセンサ４２及び複数の画像入出力装置４３が結合されている。図２では簡単化のために、複数のインターフェイスを１つのブロックで記載している。
【００１７】
データ３０は、起動時の初期状態が設定された状態記憶部３１と、コマンドとこれに対応した論理条件式との組からなるコマンド／条件テーブル３２、例えば図２（Ｂ）に示すようなもの、より具体的には図２（Ｃ）に示すようなものと、条件（記号）をその名称及び状態記憶部３１内の対応するアドレスに変換する変換テーブル３３と、動作条件説明文作成用テンプレート３４、例えば図４（Ａ）に示すようなものと、処理前後の画像データを記憶する画像データ記憶部３５と、テンプレート３４を用いてプログラムにより生成された動作条件説明文３６、例えば図４（Ｂ）に示すようなものとを備えている。
【００１８】
論理条件式は、階層構造になっており、これにより複雑な論理条件式が簡単化される。
【００１９】
図２（Ｂ）において、
コマンドA = {条件１=状態Ａ,  条件２={状態Ｂ,状態Ｃ},………}
は、右辺の｛｝内の”，”で区切られた複数の論理条件式である条件１=状態Ａ,  条件２={状態Ｂ,状態Ｃ}、・・・のそれぞれが真のとき、すなわち各論理条件式が真のとき、右辺の論理条件式全体が真となり、左辺のコマンドＡを実行することを示している。条件２={状態Ｂ,状態Ｃ}は、状態Ｂ且つ状態Ｃのとき条件２が真となることを示している。
【００２０】
条件１=状態Ａの左辺の条件１に対応した状態記憶部３１内の先頭アドレスは、図３（Ａ）を参照すると、ADDR00であり、その１バイトの内容が状態Ａであるとき、条件１=状態Ａが真となる。同様に、条件２に対応した状態記憶部３１内の先頭アドレスは、図３（Ａ）を参照すると、ADDR01であり、これから２バイトの内容がそれぞれ状態Ｂ、状態Ｃであるとき、条件２={状態Ｂ,状態Ｃ}が真となる。
【００２１】
また、
コマンドB = {条件10=［状態Ｘ, 状態Ｙ］,………}
の右辺の｛｝内の［状態Ｘ, 状態Ｙ］は、状態Ｘが真又は状態Ｙが真、すなわち論理和が真のとき、条件10が真となることを示している。
【００２２】
図２（Ｃ）において、
btnCopy = {checkInhibitingRules = true, checkPaper = true, checkToner={$C, $M, $Y}}は、右辺の｛｝内の”，”で区切られた複数の論理条件式の左辺checkInhibitingRules、checkPaper、checkToner、・・・に対応したそれぞれの論理条件が右辺の論理値true、true、・・・のとき、すなわち各条件の論理積が真のとき、右辺の論理条件式が真となり、左辺のbtnPrint ボタンに対応したコマンドCopyを実行することを示している。checkInhibitingRules、checkPaper、checkTonerはそれぞれ、他の行の左辺の文字列と一致するコマンドに対応した右辺の論理条件式が真のとき、真となる。
【００２３】
例えば、checkInhibitingRules は、その右辺の {}内の条件colorSelectionがfull-colorで、条件resolutionが300x300又は 500x500で、・・・であるとき右辺の論理条件式が真となる。｛｝内のデリミタ；は論理和を示している。条件colorSelectionは、他の行の左辺と一致するものが無いので、状態記憶部３１内のアドレスADDR14の内容がfull-colorであるとき論理条件式colorSelection＝full-colorが真となる。
【００２４】
同様に、条件resolutionについても同様である。論理条件式checkToner={C=not empty, M=not empty, Y=not empty}の条件checkTonerは、他の行の左辺と一致するものが無く、且つ右辺が論理条件式であるので、この論理条件式{C=not empty, M=not empty,  Y=not empty}の値が真であるとき、条件checkTonerが真となる。論理条件式{C=not empty,  M=not empty,  Y=not empty}の記号C,  M,  Yは、図３（Ｂ）の変換テーブルを参照すると、名称がそれぞれシアン、マゼンタ、イエローで、状態記憶部３１内のそれぞれの先頭アドレスはADDR10, ADDR11, ADDR12であり、それぞれの内容がnot empty（エンプティでない）とき真となる。
【００２５】
プログラム２０では、ユーザインターフェイス部２１により表示部４０上に初期画面が表示され、入力部４１からの入力に応じてユーザインターフェイス部２１はこの初期画面を変更し、設定値入力画面が表示部４０に表示された状態で入力部４１から設定値、例えば原稿サイズ、給紙サイズ、用紙の向き、部数、スキャナの読取解像度などを入力すると、これがユーザインターフェイス部２１を介して全体制御部２２に供給され、全体制御部２２はこの設定値で状態記憶部３１内の対応する、既定値又はその後変更された値を、更新する。
【００２６】
入力部４１は、例えばタッチパネルとハードウェアキーとを備えており、表示部４０は、例えば液晶表示装置である。
【００２７】
全体制御部２２はまた、画像形成装置に備えられている複数のセンサ４２からの状態変更入力、例えばトナー残量又は給紙カセット内の給紙残量が１００％、７５％、５０％、２５％、エンプティの間で変化したことに応じて、状態記憶部３１内の対応する値を更新する。
【００２８】
表示部４０に表示された操作ボタン、例えば印刷ボタンbtnPrintを、入力部４１を介し押下すると、ユーザインターフェイス部２１を介し全体制御部２２にそのイベントが通知され、全体制御部２２によりイベントハンドラ２３が起動される。
【００２９】
図２（Ａ）は、イベントハンドラ２３の具体例を示す。この例においては、イベント発生時に、イベント送信側で生成されたボタンオブジェクトsenderを受け取り、senderのメンバー関数であるcheckCondition()の返り値が真であれば画像形成処理２６内の対応するサブルーチンである印刷関数Print(e.document)を実行し、偽であればオブジェクトsenderのメンバー関数であるdescribeErrorSource()を起動させて、動作条件説明文を生成し、生成された説明文を関数Display(sender.describeErrorSource())により表示させる処理を行う。ここに、印刷関数Print(e.document)の引数は、イベント情報としてのオブジェクトeで指定される印刷対象の識別子である。
【００３０】
画像入出力装置４３は、スキャナ、プリントエンジン、ハードディスクドライブ（ボックス）、ファクシミリモデム及びネットワークインターフェイスなどを含む。
【００３１】
画像形成処理部２６は、例えば、画像入出力装置４３のネットワークインターフェイスから印刷データを受信して画像データ処理部３５に一時記憶させ、ビットマップデータに展開して画像データ処理部３５に一時記憶させ、このビットマップデータを画像入出力装置４３のプリントエンジンに供給して印刷（Print）処理を行う。この際、ジョブ状態の変化（待機、開始、エラー発生による保留、終了）を、制御部２２を介し状態記憶部３１に書き込んで状態を更新する。
【００３２】
図５は、条件判定サブルーチン２４の処理手順、すなわち図２（Ｂ）又は（Ｃ）の右辺の論理値を決定する関数checkCondition()の処理手順を示すフローチャートである。以下、括弧内は図中のステップ識別符号である。
【００３３】
（Ｓ０）図２（Ｂ）又は（Ｃ）の１行の右辺の｛｝内の論理条件式を読み込む。例えば、checkInhibitingRules = true, checkPaper = true, checkToner={$C, $M, $Y}を読み込む。
【００３４】
（Ｓ１）この論理条件式内の１つのサブ条件が成立しているか否かを判定する。上記の例では最初に、サブ条件checkInhibitingRules = trueが成立しているか否かを判定する。
【００３５】
（Ｓ２）サブ条件が成立していれば、ステップＳ３へ進み、そうでなければ論理値falseを関数checkCondition()の返り値とする。
【００３６】
（Ｓ３）未判定のサブ条件があればステップＳ３へ戻り、そうでなければ論理値trueを関数checkCondition()の返り値とする。
【００３７】
図６は、上記関数describeErrorSourceの動作条件説明文生成処理を示すフローチャートである。
【００３８】
（Ｓ１０）コマンドに対応した説明文作成用テンプレート、例えば図４（Ａ）の印刷コマンドPrint(e.document)に対応したテンプレートを読み込む。
【００３９】
（Ｓ１１）コマンドに対応した条件、例えば図２（Ｃ）の第１行の右辺の全論理条件式を読み込む。
【００４０】
以下、このテンプレートについてステップＳ１２〜Ｓ１７の処理を繰り返す。
【００４１】
（Ｓ１３）このテンプレートの次の１行（最初は第１行）を読み込む。
【００４２】
（Ｓ１４）この行に上記サブ条件が含まれていれば、該サブ条件を文字列に変換し、含まれていなければステップＳ１７へ進む。図４（Ａ）中の｛｝はサブ条件である。
【００４３】
（Ｓ１５）図２のステップＳ１と同様に、該サブ条件の成否又は論理値を判定する。サブ条件が成立又は論理値が真であれば、ステップＳ１７へ進み、そうでなければステップＳ１６へ進む。
【００４４】
（Ｓ１６）ステップＳ１４の変換後の１行をマークする。例えば、この１行を他の行の文字列の色と異なる色で表示し、この１行を枠で囲み、この１行を白黒反転表示し、又は、点滅表示することにより、該１行をマークする。
【００４５】
（Ｓ１７）このテンプレートの最終行でなければステップステップＳ１２へ戻り、最終行であればステップＳ１８へ進む。
【００４６】
（Ｓ１８）以上のようにしてテンプレート中のサブ条件を文字列に変換したもの、例えば図４（Ｂ）に示す説明文を、図２（Ａ）の関数sender.describeErrorSource()で作成し、これを関数sDisplay (sender.describeErrorSource())の実行により表示部４０上に表示させる。
【００４７】
図７は、説明文生成サブルーチン２５の処理手順を示すフローチャートである。説明文生成サブルーチン２５は、画像形成処理２６で使用される全コマンドのそれぞれに対応した説明文の集合である説明文３６を、マニュアルの一部としてファイルの形で出力する処理である。ステップＳ２０〜Ｓ２３の処理を繰り返すことにより、全コマンドのそれぞれに対応した説明文を生成する。
【００４８】
（Ｓ２１）全コマンドの１つを読み込む。
【００４９】
（Ｓ２２）関数makeExplanation()を実行する。これは、図６と同じ処理を、行う。但し、図６のステップＳ１５、Ｓ１６を省略し、また、ステップＳ１８においては、ファイル中に、ステップＳ１４で生成した１行の説明文を全説明文のファイル中に出力する。
【００５０】
以上において、本発明の好適な実施例を説明したが、本発明には他にも種々の変形例が含まれ、上記各構成要素の機能を実現する他の構成を用いたもの、当業者であればこれらの構成又は機能から想到するであろう他の構成も、本発明に含まれる。
【符号の説明】
【００５１】
１０  プロセッサ
１１  インターフェイス
１２  記憶部
２０  プログラム
２１  ユーザインターフェイス部
２２  全体制御部
２３  イベントハンドラ
２４  条件判定サブルーチン
２５  説明文生成サブルーチン
２６  画像形成処理
３０  データ
３１  状態記憶部
３２  コマンド／条件テーブル
３３  変換テーブル
３４  テンプレート
３５  画像データ
３６  説明文
４０  入力部
４１  表示部
４２  センサ
４３  画像入出力装置
【図１】
2014215659.tif 000003
【図２】
2014215659.tif 000004
【図３】
2014215659.tif 000005
【図４】
2014215659.tif 000006
【図５】
2014215659.tif 000007
【図６】
2014215659.tif 000008
【図７】
2014215659.tif 000009