電子装置、カウント値管理方法及びプログラム
【課題】カウント値に関連のある複数のカウンタのカウント値を、複数回の参照要求により参照しようとする場合でも、参照されるカウント値の間に矛盾が発生しないようにする。
【解決手段】 カウンタ管理モジュール103が、グループ化された複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、その指定されたカウンタのカウント値をカウント値記憶領域17aから取得して要求元に供給すると共に、その参照要求を受けた時点のカウント値を、上記指定されたカウントと同じグループに属する全てのカウンタについてセットにして、そのセットにIDを付してカウント値一時記憶領域13aに保存し、そのIDを上記要求元に供給し、IDを指定して第2の参照要求を受けた場合に、その指定されたIDを付してカウント値一時記憶領域13aに保存されているセットに含まれるカウント値を要求元に供給するようにした。
【解決手段】 カウンタ管理モジュール103が、グループ化された複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、その指定されたカウンタのカウント値をカウント値記憶領域17aから取得して要求元に供給すると共に、その参照要求を受けた時点のカウント値を、上記指定されたカウントと同じグループに属する全てのカウンタについてセットにして、そのセットにIDを付してカウント値一時記憶領域13aに保存し、そのIDを上記要求元に供給し、IDを指定して第2の参照要求を受けた場合に、その指定されたIDを付してカウント値一時記憶領域13aに保存されているセットに含まれるカウント値を要求元に供給するようにした。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、複数のカウンタを備え、参照要求に応じてそのカウント値を要求元に供給する電子装置、このような電子装置におけるカウント値管理方法、およびコンピュータをこのような電子装置として機能させるためのプログラムに関する。
【背景技術】
【0002】
従来から、電子装置において動作の回数等をカウントする複数のカウンタを設けることが知られている。例えば、コピー、ファクシミリ通信、プリント等の複数の機能を有する画像形成装置において、コピー出力枚数、ファクシミリ出力枚数、プリント出力枚数をそれぞれカウントするカウンタを設ける等である。
【0003】
また、特許文献1には、画像処理装置において複数のカウンタのカウント値の合計をカウントするトータルカウンタを設ける場合の動作として、以下のものが提案されている。それは、トータルカウンタ単独で値をカウントするのではなく、トータルカウンタのカウント値の出力を要求された時に、合計すべきカウント値をそれぞれ個別に取得し、それらを合計して出力するというものである。
【0004】
また、特許文献2には、画像形成装置が監視サーバにカウント値を通報するための処理として、以下のものが提案されている。それは、定期データ取得スケジュールが示す定期データ取得時になると、カウント値に関するデータを抽出して取得日時の情報と共に所定の領域に記憶させておき、定期自動通報スケジュールが示す定期自動通報時にその取得しておいたカウント値を監視サーバに送信するものである。
【発明の概要】
【発明が解決しようとする課題】
【0005】
画像処理装置等の電子装置にカウンタを設ける場合、複数のカウンタのカウント値が関連性を持っている場合がある。特許文献1に記載の、トータルカウンタと、カウント値を合計する個別のカウンタとがその一例である。そして、トータルカウンタを上記のような構成とすることにより、トータルカウンタのカウント値を常時記憶しておくための領域が不要となる他、トータルカウンタのカウントアップ処理も不要となる。
【0006】
ところで、電子装置においてカウンタの機能を設ける場合、カウンタにおけるカウント動作を制御するカウンタ管理モジュールを、そのカウンタの値を参照するアプリケーションと別に設けることが多い。任意のアプリケーションからカウント値を参照できるようにするためである。
【0007】
このとき、アプリケーションから見れば、トータルカウンタのようにカウント値の取得に複数のカウント値に基づく演算が必要なカウンタも、そうでないカウンタも、等価な1つのカウンタとして扱えるようにすることが好ましい。例えば、カウンタのIDを引数としてカウント値取得コマンド(あるいは関数)をカウンタ管理モジュールに渡すと、どのカウンタであっても同じようにカウント値を取得できる等である。
【0008】
このような構成を採用する場合、トータルカウンタのカウント値は、カウンタ管理モジュールが、トータルカウンタについてのカウント値取得コマンドを検出した時点で、個別のカウンタのカウント値をそれぞれ取得して算出することになる。また、例えばその後カウンタ管理モジュールが個別カウンタについてのカウント値取得コマンドを検出すると、カウンタ管理モジュールは、その時点の個別カウンタのカウント値を取得して返すことになる。
【0009】
従って、カウンタ管理モジュールがトータルカウンタのカウント値と個別カウンタのカウント値とを続けて要求された場合でも、トータルカウンタのカウント値算出に用いる個別カウンタのカウント値と、その後のコマンドに応じて返す個別カウンタのカウント値とでは、異なる時点の値となる。
このため、トータルカウンタについてカウント値取得コマンドを検出した後、個別カウンタについてカウント値取得コマンドを検出するまでの間にその個別カウンタについてカウントアップが必要なイベントが発生すると、トータルカウンタのカウント値算出に用いる個別カウンタのカウント値と、その後の要求に応じて返す個別カウンタのカウント値が異なることになってしまう。
【0010】
このような場合、例えば、トータルカウンタのカウント値と、各個別カウンタのカウント値とを並べて表示する時に、トータルカウンタのカウント値と、個別カウンタのカウント値の合計とが一致しない、という矛盾した事態が発生し得るという問題があった。
このような問題は、カウンタが、トータルと個別、という関係になくても、カウント値に関連のある複数のカウンタのカウント値を、複数回の参照要求により参照しようとする場合には、同様に発生するものである。
この発明は、このような問題を解決し、カウント値に関連のある複数のカウンタのカウント値を、複数回の参照要求により参照しようとする場合でも、参照されるカウント値の間に矛盾が発生しないようにすることを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するため、この発明による電子装置には、グループ化された複数のカウンタと、上記複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、その指定されたカウンタのカウント値を要求元に供給すると共に、その指定されたカウンタがいずれかのグループに属する場合には、上記参照要求を受けた時点のカウント値を、上記複数のカウンタのうち上記指定されたカウンタと同じグループに属する全てのカウンタについてセットにして、そのセットにIDを付して所定のメモリに保存し、そのIDを上記要求元に供給する第1の手段と、IDを指定して第2の参照要求を受けた場合に、その指定されたIDを付して上記所定のメモリに保存されているセットに含まれるカウント値を要求元に供給する第2の手段とを設けた。
【発明の効果】
【0012】
以上のような構成によれば、カウント値に関連のある複数のカウンタのカウント値を、複数回の参照要求により参照しようとする場合でも、参照されるカウント値の間に矛盾が発生しないようにすることができる。
【図面の簡単な説明】
【0013】
【図1】この発明の電子装置の一実施形態である画像処理装置のハードウェア構成を示すブロック図である。
【図2】図1に示したNVRAMにおけるカウント値の記憶状態を示す図である。
【図3】図1に示した画像処理装置が記憶するカウンタの構成に関する情報の例を示す図である。
【図4】図1に示した画像処理装置におけるカウンタの制御に関する機能を示す機能ブロック図である。
【図5】カウント値一時記憶領域におけるカウント値の記憶形式を示す図である。
【図6A】カウンタ管理モジュールがカウンタによるカウント及びカウント値の参照に関して受け付けるコマンドの例を示す図である。
【図6B】その別の例を示す図である。
【図6C】そのさらに別の例を示す図である。
【図6D】そのさらに別の例を示す図である。
【図7】カウント値取得コマンドに応じた動作について説明するための図である。
【図8】一時記憶カウント値取得コマンドに応じた動作について説明するための図である。
【図9】カウンタ管理モジュールがカウント値取得コマンドを検出した場合に実行する処理のフローチャートである。
【図10】同じく一時記憶カウント値取得コマンドを検出した場合の処理のフローチャートである。
【図11】カウントアップ依頼モジュール及びカウント値取得モジュールがカウンタ管理モジュールにコマンドを渡す手順の例を示す図である。
【図12】画像処理装置に設けるカウンタのカウント値の例を示す図である。
【図13】図12に示したカウント値をカウント値一時記憶領域に記憶させた状態を示す図である。
【図14】画像処理装置に設けるカウンタのカウント値の別の例を示す図である。
【図15】図14に示したカウント値をカウント値一時記憶領域に記憶させた状態を示す図である。
【図16】カウント値を表示する画面の例を示す図である。
【図17】この発明の実施形態を適用した場合のカウント値の取得手順の例を示すシーケンス図である。
【図18】その続きを示す図である。
【図19】比較例におけるカウント値の取得手順の例を示すシーケンス図である。
【図20】その続きを示す図である。
【図21】比較例における図16と対応する画面の表示例を示す図である。
【発明を実施するための形態】
【0014】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
図1は、この発明の電子装置の一実施形態である画像処理装置のハードウェア構成を示すブロック図である。
【0015】
図1に示すように、画像処理装置10は、CPU11,ROM12,SDRAM(Synchronous Dynamic RAM)13,HDD(ハードディスクドライブ)14,ASIC(Application Specific IC)15,書込回数カウンタ16,NVRAM(Non Volatile RAM)17,スキャナエンジン18,プリンタエンジン19,操作表示部20,ネットワークI/F(インタフェース)21,FAX通信部22を備え、これらがシステムバス23により接続されている。
【0016】
これらのうちCPU11は、画像処理装置10を統括制御する制御手段である。そして、ROM12やHDD14に記録された所要のプログラムを実行し、図1に示した各部を制御することにより、後述するカウンタの制御をはじめ、種々の機能を実現する。また、画像処理装置10を、コピー、スキャン、プリント、ファクシミリ通信、ドキュメントボックス等の各種機能を備えたデジタル複合機(MFP)として機能させることができる。
【0017】
ROM12は、CPU11が実行するプログラムや書き換えの不要なデータ等を記憶する不揮発性記憶手段である。
SDRAM13は、CPU11がワークエリアとして使用したり、一時的に保持すべきデータを記憶させたりする揮発性記憶手段である。
【0018】
HDD14は、CPU11が実行するプログラムや書き換えの必要なデータ等を記憶する書き換え可能な不揮発性記憶手段である。上述のスキャンやプリント等の機能で使用する圧縮された画像データはこのHDD14に記憶する。
ASIC15は、CPU11と共に画像処理装置10の制御を行う制御手段である。
書込回数カウンタ16は、NVRAM17への書き込み回数をカウントしてその値を記憶するカウンタである。
【0019】
NVRAM17は、高速かつ安定的に書き換えが必要な比較的容量の小さいデータであって電源OFF時にも保持する必要があるデータを記憶するための不揮発性記憶手段である。このNVRAM17に記憶させるデータとしては、例えば後述する複数のカウンタのカウント値(書き込み回数カウンタ16のカウント値を除く)が挙げられる。なおここでは、NVRAM17を書き換え回数に制限のあるメモリモジュールにより構成されるEEPROM(Electrically Erasable Programmable ROM)により構成しているため、NVRAM17が書き換え不能になる前に警告を行うために書込回数カウンタ16を設けている。しかし、NVRAM17を構成するメモリモジュールはこれに限られず、書き換え回数に制限がないのであれば、書込回数カウンタ16は不要である。
【0020】
スキャナエンジン18は、原稿の画像を読み取って画像データを得る画像読み取り手段である。
プリンタエンジン19は、画像データに基づき紙等の記録シートに画像を形成する画像形成手段である。
操作表示部20は、LCD(液晶ディスプレイ)やタッチパネルをはじめとする各種の表示器やボタン等を備え、ユーザからの操作を受け付けると共に、ユーザに対して画像処理装置10の動作状態や設定内容等の情報を表示する手段である。後述する複数のカウンタのカウント値を操作表示部20に表示させることもできる。
【0021】
ネットワークI/F21は、画像処理装置10がLAN(ローカルエリアネットワーク)等のネットワークを介してPC(パーソナルコンピュータ)等の外部装置と通信するためのインタフェースである。通信の規格は、有線、無線を問わず任意のものを用いることができる。
FAX通信部22は、他のFAX装置とファクリミリ通信を行うための通信手段である。
以上のような画像処理装置10における一つの特徴は、NVRAM17に記憶させるカウント値の管理に関する動作であるので、次にこの点について説明する。
【0022】
図2は、NVRAM17におけるカウント値の記憶状態を示す図である。
図2に示すように、画像処理装置10においては、NVRAM17に、カウント値記憶領域17aを設け、この領域に、画像処理装置10に設ける複数のカウンタのカウント値をカウンタ毎に記憶させている。また、各カウント値は、カウンタIDにより識別できるようにする。ただし、複数のカウンタのカウント値を演算してカウント値を求めるカウンタもあるので、全てのカウンタについてカウント値を記憶させるとは限らない。
【0023】
また、図3に、画像処理装置10が記憶するカウンタの構成に関する情報の例を示す。
画像形成装置10は、カウンタに関する情報として、図2に示したカウント値に加え、任意の記憶手段に、図3に示すカウンタ情報も記憶している。
このカウンタ情報は、画像処理装置10に設ける各カウンタのカウンタID毎に、カウンタの属するグループおよびカウント値算出のための演算の情報を記憶している。
【0024】
これらのうち演算の情報としては、図3の例では、カウント値記憶領域17aにカウント値を直接記憶させず他のカウンタのカウント値に基づく演算でカウント値を求めるカウンタについて、その演算に用いるカウンタのカウンタIDと、演算式とを記憶している。具体的には、カウンタIDが22111であるカウンタ(出力面数トータル)について、カウンタIDが22112であるカウンタ(出力面数コピー)とカウンタIDが221113であるカウンタ(出力面数FAX)とカウンタIDが22114であるカウンタ(出力面数プリンタ)のカウント値を全て加算して求めるべきことを記憶している。その他のカウンタについては、演算の情報は記憶しておらず、カウント値をカウント値記憶領域17aに記憶していること(「演算なし」)を示している。
【0025】
また、グループは、カウント値が要求された場合に同時にカウント値を取り出して一時記憶させるカウンタの範囲を規定する情報である。このグループの情報は、カウント値が密接に関連するカウンタ同士が同じグループに属するように設定する。
例えば、図3に示す例では、カウンタIDが22111であるカウンタと、そのカウント値を求めるために用いるカウンタIDが22112〜22114であるカウンタとを同じグループに所属させ、グループID「1」を設定することによりこれを示している。このように、あるカウンタのカウント値の算出に別のカウンタのカウント値を用いる場合、その「あるカウンタ」と「別のカウンタ」とは、カウント値が密接に関連すると考えられ、それらのカウンタを同じグループとする。その結果、1つのカウンタが複数のグループに属することになってもよい。
【0026】
同じグループに属させるカウンタの範囲は、これに限られるものではない。それぞれ個別にカウント値をカウント値記憶領域17aに記憶させるものであっても、確実に同じ時点の値を参照したいような要求があるカウンタについては、カウント値が密接に関連すると扱うことが好ましい。
【0027】
なお、カウンタIDが22002のカウンタ(FAX送信枚数)のように、どのグループにも属しないカウンタがあってもよい。
以上のカウント値記憶情報は、基本的には画像処理装置10のメーカーが定めるものであり、ユーザに編集させる必要はない。
【0028】
次に、図4に、画像処理装置10におけるカウンタの制御に関する機能の機能ブロック図を示す。
図4に示すように、画像処理装置10は、カウントアップ依頼モジュール101、カウント値取得モジュール102、カウンタ管理モジュール103及びカウンタ情報記憶部104を備える。
【0029】
これらのうちカウントアップ依頼モジュール101は、カウンタのカウントアップを要求するモジュールであり、例えばコピー、プリント、ファクシミリ通信等の機能を実現するためのアプリケーションの一部、あるいはこれらのアプリケーションが利用するライブラリの一部として提供される。コピーアプリケーション中に設けた、コピー枚数をカウントするための機能等である。
【0030】
カウント値取得モジュール102は、カウンタのカウント値の参照を要求するモジュールである。カウント値の参照は、操作表示部20へのカウント値の表示、外部PCにおけるカウント値の表示、外部管理装置に画像処理装置10を遠隔管理させるための外部管理装置へのカウント値の提供等を行う際に行う。従って、カウント値取得モジュール102は、例えばこれらの機能を提供するためのアプリケーションの一部、あるいはこれらのアプリケーションが利用するライブラリの一部として提供される。
カウントアップ依頼モジュール101及びカウント値取得モジュール102は、画像処理装置10内部にいくつあってもよい。1つでももちろん構わない。
【0031】
カウンタ管理モジュール103は、カウントアップ依頼モジュール101及びカウント値取得モジュール102がカウンタにアクセスするためのAPI(Application Program Interface)を提供する機能を備える。
カウンタ情報記憶部104は、図3に示したカウンタ情報を記憶する記憶手段である。
【0032】
そして、カウンタ管理モジュール103は、カウントアップ依頼モジュール101及びカウント値取得モジュール102からの要求に基づき、カウンタ情報記憶部104が記憶するカウンタ情報に基づき上述したNVRAM17のカウント値記憶領域17aに記憶されたカウント値を読み書き及び変更することにより、該要求に応じたカウント値の管理及び提供を行う。また、必要に応じてSDRAM13に設けたカウント値一時記憶領域13aにカウント値を一時的に記憶させ、カウント値記憶領域17aに記憶されたカウント値に代えてカウント値一時記憶領域13aのカウント値を提供することも行う。このことにより、カウント値の参照と変更が混在して行われる環境下でカウント値に関連のある複数のカウンタのカウント値を複数回の参照要求に応じて提供する場合であっても、該複数のカウンタのカウント値として相互に矛盾のない値を提供できるようにしている。
【0033】
ここで、図5に、カウント値一時記憶領域13aにおけるカウント値の記憶形式を示す。
カウンタ管理モジュール103は、カウント値記憶領域17aに記憶しているカウント値の参照を要求された場合に、その時点の、参照の要求に係るカウンタと同じグループに属する全てのカウンタのカウント値をセットにして、それらに識別ID及び時刻データを付して、図5に示すカウント値構成データ110としてカウント値一時記憶領域13aに記憶させる。
【0034】
図5の例では、図3に示したカウンタ情報に基づき、カウンタIDが22111〜22114のいずれかのカウンタのカウント値の参照が要求された場合に記憶させるカウント値構成データの例を示した。
符号112〜115で示すのが、同じグループに属する4つのカウンタのカウント値である。符号111で示すのが識別ID、符号116で示すのがカウント値構成データ110の記憶時刻を示す時刻データ(年月日時分秒)である。
【0035】
どの位置にどのカウンタのカウント値を記憶させるかは、カウンタ管理モジュール103が把握できていればよいので、ここではカウント値構成データにカウンタIDは含めていないが、カウント値毎にカウンタIDを記載するようにしてもよい。また、カウンタのグループが複数ある場合、どのグループのカウント値のセットであるかを識別するためのグループIDを記載するようにしてもよい。
【0036】
次に、図6A乃至図6Dに、カウンタ管理モジュール103がカウンタによるカウント及びカウント値の参照に関して受け付けるコマンドの例を示す。
カウントアップ依頼モジュール101、カウント値取得モジュール102は、カウンタ管理モジュール103の機能を実現するプロセスに対し図6A乃至図6Dに示すコマンドを渡すことにより、カウンタ管理モジュール103に以下に説明する動作を実行させることができる。
【0037】
図6Aに示すのはカウントアップコマンドである。このコマンドは、カウンタ管理モジュール103に対し、カウンタID及びカウントアップ量を指定して、カウント値記憶領域17aに記憶しているそのカウンタIDを有するカウンタのカウント値を、そのカウントアップ量だけカウントアップすることを要求するためのものである。
【0038】
図6Bに示すのはカウント値取得コマンドである。このコマンドは、カウント値記憶領域17aに記憶しているカウント値を取得する際に用いるコマンドであり、カウンタ管理モジュール103に対しカウント値の参照を要求する第1の参照要求に該当する。このコマンドについては、カウント値構成データを識別するIDの戻り値と、カウンタIDと、取得したカウント値の格納先を指定する。
【0039】
このコマンドを受け取ったカウンタ管理モジュール103は、カウント値記憶領域17aに記憶している指定されたカウンタIDを有するカウンタのカウント値を格納先として指定されたアドレスに格納することにより、コマンド送信元が参照可能な形で出力する。また、そのカウンタがいずれかのグループに属する場合、カウント値記憶領域17aから必要なカウント値を読み出して図5を用いて説明したカウント値構成データ110を生成してカウント値一時記憶領域13aに記憶させると共に、戻り値としてそのカウント値構成データ110の識別IDを返す(図7参照)。
なお、該当のカウンタがいずれのグループにも属しない場合、カウント値構成データ110の生成は不要であり、戻り値としてはnull値を返せばよい。
【0040】
図6Cに示すのは一時記憶カウント値取得コマンドである。このコマンドは、カウント値一時記憶領域13aに記憶させたカウント値構成データ110に含まれるカウント値を取得するためのコマンドであり、以前にカウント値取得コマンドにより取得したカウント値と矛盾のないカウント値を取得したい場合に用いる。また、カウンタ管理モジュール103に対しカウント値の参照を要求する第2の参照要求に該当する。引数としては、カウンタID,取得したカウント値の格納先及びカウント値構成データの識別IDを指定する。
【0041】
このコマンドを受け取ったカウンタ管理モジュール103は、カウント値一時記憶領域13aに記憶させたカウント値構成データ110のうち、指定された識別IDを有するカウント値構成データ110から、指定されたカウンタIDのカウンタのカウント値を取得し、格納先として指定されたアドレスに格納することにより、コマンド送信元が参照可能な形で出力する(図8参照)。
【0042】
図6Dに示すのは一時記憶カウント値グループ取得コマンドである。このコマンドは、一時記憶カウント値取得コマンドと似ているが、カウント値構成データ110に含まれる全てのカウント値の集合を取得するためのコマンドである。このコマンドも第2の参照要求に該当する。引数としては、取得したカウント値の格納先及びカウント値構成データの識別IDを指定する。
【0043】
このコマンドを受け取ったカウンタ管理モジュール103は、カウント値一時記憶領域13aに記憶させたカウント値構成データ110のうち、指定された識別IDを有するカウント値構成データ110から、そこに含まれる全てのカウンタのカウント値を取得し、格納先として指定されたアドレスにデータの集合として格納することにより、コマンド送信元が参照可能な形で出力する。
【0044】
次に、カウンタ管理モジュールがコマンドを検出した場合に実行する処理についてより詳細に説明する。なお、以下に説明する処理は、CPU11が所要のプログラムを実行することによりカウンタ管理モジュール103の機能を実現するための処理の一環として行われるものであるが、説明を簡単にするためにカウンタ管理モジュール103が処理を実行するものとして説明する。
【0045】
まず図9に、カウント値取得コマンドを検出した場合の処理のフローチャートを示す。
カウンタ管理モジュール103は、カウント値取得コマンドtId = GetCount (ID, &val)を検出すると、図9のフローチャートに示す処理を開始する。
そしてまずステップS11で、カウンタ情報を参照し、引数として指定されたカウンタIDに係るカウンタがいずれかのグループに属するか否か判断する。そして、いずれかのグループ属する場合、カウント値構成データ110の生成に係るステップS12以下の処理に進む。
【0046】
次のステップS12では、ステップS11でカウンタが属すると判断したグループのカウンタ全てについて、カウントアップ処理を一時停止する。すなわち、それらのカウンタに係るカウントアップコマンドを受信した場合でもそのコマンドに応じたカウントアップ動作を保留するようにする。
【0047】
その後、ステップS13,S17及びS18で、カウンタが属すると判断したグループのカウンタを1つずつ順次処理対象としつつ、ステップS14乃至S16の処理を実行する。すなわち、まずステップS14でカウンタ情報を参照して処理対象のカウンタに演算が定義されているか否か判断する。
定義されている場合、ステップS15でNVRAM17のカウント値記憶領域17aから必要なカウント値を読み出し、演算して処理対象のカウンタのカウント値を求める。定義されていない場合、ステップS16でNVRAM17のカウント値記憶領域17aから処理対象のカウント値を読み出す。
【0048】
全てのカウンタについてこれらの処理を行うと、全てのカウンタについてカウント値が揃うため、ステップS17からステップS19に進む。そして、一意な識別ID、グループの全てのカウンタのカウント値、および現在時刻の情報を含むカウント値構成データ110を生成し、SDRAM13のカウント値一時記憶領域13aに書き込む。ここまでがカウント値構成データ110の生成に係る処理である。
【0049】
その後、ステップS20ではカウント値取得コマンドで指定されたカウンタIDのカウンタについてステップS15またはS16で取得したカウント値を、カウント値取得コマンドで指定された格納先に格納する。また、ステップS21ではステップS19で定めたカウント値構成データの識別IDを、カウント値取得コマンドの戻り値としてコマンド送信元に返す。
以上でカウント値取得コマンドに応じたカウント値の参照が完了するので、ステップS22でカウントアップ処理の一時停止を解除して処理を終了する。
【0050】
一方、ステップS11で指定されたカウンタIDに係るカウンタがグループに属しない場合、単に指定されたカウンタのカウント値を返せばよいので、処理はステップS23に進む。
そして、ステップS23で、指定されたカウンタIDに係るカウンタのカウント値をNVRAM17のカウント値記憶領域17aから読み出して、カウント値取得コマンドで指定された格納先に格納する。さらに、ステップS24で、カウント値取得コマンドの戻り値として格納完了を示す値(カウント値構成データを生成しなかったことを示すnull等の値でもよい)をコマンド送信元に返して、処理を終了する。
【0051】
以上の処理により、カウンタ管理モジュール103は、カウント値がほかのカウンタと密接に関連するようなカウンタについて値の参照が要求された場合に、要求に応じてそのカウンタの値を出力すると共に、そのカウンタの値を、値が密接に関連する他のカウンタのカウント値とセットにして識別IDを付して、後で参照可能なように保存することができる。
【0052】
なお、カウント値取得コマンドの送信元モジュールは、カウンタ管理モジュール103から戻り値を得た後、コマンド送信時に指定した格納先を参照することにより、要求したカウント値を取得することができる。従って、図9に示した処理により、カウンタ管理モジュール103は、カウント値取得コマンドの送信元モジュールに対し要求に係るカウント値を供給することができると言える。
また、図示は省略したが、ステップS11で指定されたカウンタIDに係るカウンタが複数のグループに属すると判断した場合は、ステップS12からS19までの処理を、その各グループについて実行すればよい。
【0053】
次に図10に、一時記憶カウント値取得コマンドを検出した場合の処理のフローチャートを示す。
カウンタ管理モジュール103は、一時記憶カウント値取得コマンドGetCountAtId(ID, &val, tId)を検出すると、図10のフローチャートに示す処理を開始する。
そしてまず、ステップS31で、一時記憶カウント値取得コマンドにおいて指定されたカウント値構成データ110の識別IDをキーにカウント値一時記憶領域13aを検索する。
【0054】
そして、ステップS32で該当の識別IDを持つカウント値構成データが発見されたか否か判断する。発見された場合、ステップS33でそのカウント値構成データから一時記憶カウント値取得コマンドにおいて指定されたカウントIDのカウンタのカウント値を取得して、一時記憶カウント値取得コマンドにおいて指定された格納先に格納する。その後、ステップS34でコマンド送信元に対して処理完了の応答を返して処理を終了する。
【0055】
ステップS32で発見されなかった場合、何もせずに処理完了の応答を返して処理を終了する。
以上の処理により、カウンタ管理モジュール103は、他のモジュールからの識別ID及びカウンタIDを指定した要求に応じて、図9の処理で保存しておいたカウント値を出力することができる。
【0056】
なお、一時記憶カウント値取得コマンドの送信元モジュールは、カウンタ管理モジュール103から処理完了の応答を得た後、コマンド送信時に指定した格納先を参照することにより、要求したカウント値を取得することができる。従って、図10に示した処理により、カウンタ管理モジュール103は、カウント値取得コマンドの送信元モジュールに対し要求に係るカウント値を供給することができると言える。
【0057】
また、一時記憶カウント値グループ取得コマンドに応じた処理は、ステップS33で格納するのが発見したカウント値構成データに含まれる全てのカウント値の集合である点が図10の処理と異なるのみであるので、詳細な説明は省略する。
【0058】
また、カウントアップコマンドを検出した場合にカウンタ管理モジュール103が実行する処理は、フローチャートの図示は省略するが、図18のステップS122乃至S124に示す通りである。すなわち、カウント値記憶領域17aから、カウントアップコマンドで指定されたカウンタIDのカウンタのカウント値を読み出し(S122)、そのカウンタの値をカウントアップ要求で指定されたカウントアップ量だけインクリメントして(S123)、インクリメント後のカウント値をカウント値記憶領域17aに書き戻す(S124)。
【0059】
以上の処理により、カウンタ管理モジュール103は他のモジュールからの要求に応じてカウンタによるカウントを行うことができる。なお、カウントアップ処理の停止中にカウントアップコマンドを受信した場合、その受信に応じた処理は、停止の解除後に行えばよい。
【0060】
次に、以上説明したコマンドにより、カウントアップ依頼モジュール101がカウンタ管理モジュール103にカウンタのカウントアップを要求しつつ、カウント値取得モジュール102がカウンタ管理モジュール103からカウント値を取得する際の動作例について説明する。
【0061】
まず図11に、カウントアップ依頼モジュール101及びカウント値管理モジュール102a,102bがカウンタ管理モジュール103にコマンドを渡す手順例を示す。なお、図11においては、カウント値管理モジュール102が2つ登場するので、これらを区別するため102a,102bの符号を用いた。これらを総称する場合には引き続き102の符号を用いる。
【0062】
図11の例では、まずカウント値取得モジュール102aが出力面数トータル(ID=22111)のカウント値を要求するカウント値取得コマンドをカウンタ管理モジュール103に渡す(S51)。
すると、カウンタ管理モジュール103は、図12に示すように、この時点での出力面数コピー、出力面数FAX、出力面数プリンタのカウント値に基づいて出力面数トータルのカウント値を算出し、カウント値取得コマンドで指定されたアドレス&valA1に格納する。また、図13に示すようにカウント値構成データを生成し、SDRAM13のカウント値一時記憶領域13aに必要なサイズの領域を確保して記憶させる。また、このカウント値構成データの識別ID(0001234)は、変数tId1の値としてカウント値取得モジュール102aに返す。カウント値取得モジュール102aは、その後アドレス&valA1を参照することにより、出力面数トータルのカウント値を取得することができる。
【0063】
次に、カウントアップ依頼モジュール101が、出力面数コピー(ID=22112)のカウント値の1カウントアップを要求するカウントアップコマンドをカウンタ管理モジュール103に渡す(S52)。すると、カウンタ管理モジュール103は、出力面数コピーのカウント値を1増加させる。
【0064】
次に、カウント値取得モジュール102aが、ステップS51のカウント値取得コマンドに応じて返された識別IDtId1を指定して、出力面数コピー(ID=22112)のカウント値を要求する一時記憶カウント値取得コマンドをカウンタ管理モジュール103に渡す(S53)。
すると、カウンタ管理モジュール103は、図13に示したカウント値構成データから出力面数コピーのカウント値を読み出して、その値を一時記憶カウント値取得コマンドで指定されたアドレス&valA2に格納し、処理完了の応答を返す。カウント値取得モジュール102aは、その後アドレス&valA2を参照することにより、出力面数コピーのカウント値を取得することができる。
【0065】
なお、ステップS53の時点では、カウント値記憶領域17aにおける出力面数コピーのカウント値はステップS52の要求に応じてカウントアップされており、カウント値取得モジュール102aがステップS51の要求により取得した出力面数トータルのカウント値の算出に用いた値とは異なる値となっている。すなわち、以前に取得した出力面数トータルのカウント値と対応しない値となっている(図14参照)。
【0066】
しかし、カウント値一時記憶領域13aに記憶させたカウント値構成データはカウントアップの影響を受けないため、カウント値取得モジュール102aは、カウントアップの後で一時記憶カウント値取得コマンドを渡しても、ステップS51の要求により取得した出力面数トータルのカウント値の算出に用いた出力面数コピーのカウント値を取得することができる。
【0067】
また、次にカウント値取得モジュール102bが出力面数トータル(ID=22111)のカウント値を要求するカウント値取得コマンドをカウンタ管理モジュール103に渡す(S54)。
すると、カウンタ管理モジュール103は、図14に示すように、この時点での出力面数コピー、出力面数FAX、出力面数プリンタのカウント値に基づいて出力面数トータルのカウント値を算出し、アドレス&valB1に格納する。出力面数コピーのカウント値がカウントアップされているため、出力面数トータルのカウント値は図12の例よりは1大きい値となる。
【0068】
また、カウンタ管理モジュール103は図15に示すようにカウント値構成データを生成し、SDRAM13のカウント値一時記憶領域13aに必要なサイズの領域を確保して、ステップS51で生成したカウント値構成データとは別に記憶させる。また、このカウント値構成データの識別ID(0001235)は、ステップS51で生成したカウント値構成データの識別IDとは異なる値であり、変数tId2の値としてカウント値取得モジュール102bに返す。カウント値取得モジュール102bは、その後アドレス&valB1を参照することにより、出力面数トータルのカウント値を取得することができる。
【0069】
次に、カウント値取得モジュール102bが、ステップS54のカウント値取得コマンドに応じて返された識別IDtId2を指定して、出力面数コピー(ID=22112)のカウント値を要求する一時記憶カウント値取得コマンドをカウンタ管理モジュール103に渡す(S53)。
すると、カウンタ管理モジュール103は、図15に示したカウント値構成データのうち識別IDがtId2=0001235であるカウント値構成データから出力面数コピーのカウント値を読み出して、その値をアドレス&valB2に格納し、処理完了の応答を返す。カウント値取得モジュール102bは、その後アドレス&valB2を参照することにより、出力面数コピーのカウント値を取得することができる。
【0070】
この場合も、カウント値取得モジュール102bは、ステップS54で取得した出力面数トータルのカウント値の算出に用いた出力面数コピーのカウント値を問題なく取得することができる。
従って、カウント値取得モジュール102は、初めにカウント値を取得しようとする場合にカウンタIDを指定してカウント値取得コマンドをカウンタ管理モジュール103に渡し、その後そのカウント値と対応する(同じ時点の)別のカウンタのカウント値が必要である場合に、値が必要なカウンタのカウンタIDと、カウント値取得コマンドに応じて返された識別IDとを指定して一時記憶カウント値取得コマンドをカウンタ管理モジュール103に渡すことにより、2つのコマンドの間におけるカウントアップの有無に関わらず、初めに取得したカウント値と対応する別のカウンタのカウント値を取得することができる。
【0071】
なお、このような取得が可能なのは、初めのカウンタと後のカウンタとが同じグループに属する場合のみであるが、対応する値の取得が必要となるようなカウンタは全て同じグループに入れておけば、特に問題ない。
また、以上の機能を実現するに当たり、カウント値構成データは揮発性の記憶手段であるSDRAM13に記憶させているため、頻繁にカウント値構成データを保存したとしても、書込回数に制限のある不揮発性記憶手段であるNVRAM17の書込回数を徒に消耗することがない。カウント値は電源OFF時でも保持する必要があるので不揮発性記憶手段に記憶させる必要があるが、カウント値構成データは電源OFF時には消失して問題ないことを考えれば、カウント値構成データは揮発性記憶手段に記憶させることが好ましい。
【0072】
また、一般に、揮発性記憶手段は安価であるため、カウント値構成データを多数記憶させて容量を多少多く使っても問題は少ない。ただ、容量に制限がある場合には、1つのグループに含めるカウンタの数を少なくしたり、記憶させて一定時間経ったカウント値構成データは随時削除する等の対応を行うことが好ましい。
【0073】
次に、より具体的な動作例及び比較例を用いて、以上説明してきた実施形態の効果についてさらに説明する。
ここでは、操作表示部20あるいは外部PCのブラウザ等に、図16に示すような画面を表示させる動作を例として採り上げる。この画面は、出力枚数トータル、出力枚数コピー、出力枚数FAX及び出力枚数プリンタの4つのカウンタのカウント値を表示する画面である。従って、この画面を表示させる場合、これらの4つのカウント値を取得する必要がある。
【0074】
しかし、この画面の表示専用に4つのカウント値を一度に取得するコマンドをカウンタ管理モジュール103のAPIに用意することは現実的ではない。そこで、画面の表示を行うアプリケーションが備えるカウント値取得モジュールが、カウンタ管理モジュールに対して、カウンタ1つずつについてカウント値の供給を要求し、カウント値を取得することになる。
【0075】
まず図17及び図18に、上述の実施形態を適用した場合のカウント値の取得手順の例を示す。
この場合、まずカウント値取得モジュール102が、カウンタ管理モジュール103に対して、4つのカウンタのいずれかのカウント値の取得を要求するカウント値取得コマンドを送信する。ここでは、出力面数トータルのカウント値を要求するものとした(S101)。
【0076】
これを受けたカウンタ管理モジュール103は、出力面数トータルのカウント値を算出するため、出力面数コピー、出力面数FAX及び出力面数プリンタの値をそれぞれNVRAM17のカウント値記憶領域17aから読み出し(S102〜S104)、それらを合計して得た出力枚数トータルのカウント値を保持する(S105)。
【0077】
また、カウント値構成データを生成するため、出力枚数トータルと同じグループに属する出力面数コピー、出力面数FAX及び出力面数プリンタの値をそれぞれNVRAM17のカウント値記憶領域17aから読み出し、これらも保持する(S106〜S111)。これらのカウント値としては、ステップS102〜S104で読み出したものを保持しておいてもよい。しかし、単に出力枚数トータルの値を取得するのみであれば、他のカウント値を保持しておく必要はないので、プログラムモジュールの単純化のため、ここでは、出力枚数トータルの値を取得するルーチンに演算に用いた他のカウンタのカウント値を保持するルーチンは設けず、別の用途でそれらの「他のカウンタ」のカウント値が必要な場合には再度読み出すようにしている。
【0078】
カウンタ管理モジュール103は、必要なカウント値が揃うと、識別IDを生成すると共に現在時刻情報を取得し(S112)、これらも含めたカウント値構成データを生成して、SDRAM13のカウント値一時記憶領域13aに記録する(S113)。
そして、カウント値構成データの識別ID及び、要求された出力面数トータルのカウント値を、コマンド送信元のカウント値取得モジュール102に供給する(S114)。カウント値の供給は、上述のように、指定されたアドレスに値を格納することによって行う。
【0079】
次に、図18のステップS121〜S125の処理は後述することにして、カウント値取得モジュール102は、先に要求した出力枚数トータル以外の3つのカウンタのカウント値を取得すべく、各カウンタについて一時記憶カウント値取得コマンドをカウンタ管理モジュール103に送信する(S131,S141,S151)。
カウンタ管理モジュール103は、それらの要求に応じて、カウント値一時記憶領域13aに記憶させたカウント値構成データから、指定されたカウンタのカウント値を読み出して(S132,S142,S152)、コマンド送信元に供給する(S133,S143,S153)。
【0080】
ここで、以上の処理の途中でS121のようにカウントアップ依頼モジュール101からカウンタ管理モジュール103へカウントアップコマンド送信され、カウンタ管理モジュール103がカウンタのカウントアップを行った(S122〜S125)場合でも、カウント値一時記憶領域13aに記憶させたカウント値構成データには影響がない。
【0081】
従って、カウントアップ後にカウント値を要求したとしても、カウントアップ前に出力面数トータルのカウント値の算出に用いた各カウンタのカウント値を取得することができる。このため、図16に示した画面の表示において、4つのカウント値を別々のコマンドにより個別に取得する必要がある場合であっても、出力面数コピー、出力面数FAX及び出力面数プリンタのカウント値の合計が、出力面数トータルの値と合わなくなるようなことは起こらない。
【0082】
次に、図19及び図20に、比較例におけるカウント値取得手順の例を示す。図19は、取得中にカウントアップが起こらない場合の例、図20は、取得中にカウントアップが起こる場合の例である。また、上述した実施形態と対応する箇所には同じ符号を用いた。
この比較例は、カウント値一時記憶領域13aは設けておらず、カウント値構成データの生成及び記憶を行わない点が、上述した実施形態と異なるものである。なお、このため、カウンタのグループ分けも不要である。
【0083】
この比較例の場合も、まずカウント値取得モジュール102が、カウンタ管理モジュール103に対して、4つのカウンタのいずれかのカウント値の取得を要求するカウント値取得コマンドを送信する。ここでも、出力面数トータルのカウント値を要求するものとした(S201)。なお、コマンドの記載内容は、カウント値構成データの識別IDの戻り値は不要であるが、その他の点では図6Bに示したものと同じでよい。
【0084】
これを受けたカウンタ管理モジュール103は、出力面数トータルのカウント値を算出するため、出力面数コピー、出力面数FAX及び出力面数プリンタの値をそれぞれNVRAM17のカウント値記憶領域17aから読み出し(S202〜S204)、それらを合計して出力枚数トータルのカウント値を得る(S205)。そして、そのカウント値を、コマンド送信元のカウント値取得モジュール102に供給する(S206)。
カウント値構成データは生成しないので、要求されたカウント値以外のカウント値を別途取得する必要はない。
【0085】
次に、カウント値取得モジュール102は、先に要求した出力枚数トータル以外の3つのカウンタのカウント値を取得すべく、同じように各カウンタについてカウント値取得コマンドをカウンタ管理モジュール103に送信する(S211,S221,S231)。
カウンタ管理モジュール103は、それらの要求に応じて、カウント値記憶領域17aから、指定されたカウンタのカウント値を読み出して(S212,S222,S232)、コマンド送信元に供給する(S213,S223,S233)。
【0086】
このように、4回のカウント値取得コマンドの間にいずれのカウンタにもカウントアップがない場合には、カウント値取得モジュール102は、面数トータルのカウント値の算出に用いた各カウンタのカウント値を取得することができる。従って、出力面数コピー、出力面数FAX及び出力面数プリンタのカウント値の合計が、出力面数トータルの値と合わなくなるようなことは起こらない。
しかし、図20のようにカウント値取得コマンドの間にカウントアップがあると、不具合が生じる場合がある。
【0087】
図20の例でも、ステップS201乃至S206は図19の例と同じである。しかし、その後カウント値取得モジュール102が出力面数コピーについてカウント値取得コマンドを送信する前に、カウントアップ依頼モジュール101が出力面数コピーについてカウントアップコマンドをカウンタ管理モジュール103に送信する(S241)。
この場合、カウンタ管理モジュール103は、カウントアップコマンドに応じて、カウント値記憶領域17aに記憶させてある出力面数コピーのカウント値をカウントアップする(S242〜S245)。
【0088】
そして、その後でカウント値取得モジュール102が出力面数コピーについてカウント値取得コマンドを送信すると(S251)、カウンタ管理モジュール103はその時点の出力面数コピーのカウント値をカウント値記憶領域17aから読み出してコマンド送信元へ供給する(S252,S253)。従って、カウント値取得モジュール102が取得するカウント値は、カウントアップ後の値となる。
なお、出力面数FAX及び出力面数プリンタのカウント値取得については、図示を省略したが図19の例と同様に行うことができる。
【0089】
以上の手順により取得された各カウント値を用いて図16に示すような画面の表示を行おうとすると、図21に示すように、出力面数コピー、出力面数FAX及び出力面数プリンタのカウント値の合計が、出力面数トータルの値と合わなくなってしまう。出力面数コピーのカウント値として、出力面数トータルのカウント値の算出に用いた値と異なる、カウントアップ後の値を表示してしまうことになるためである。
一方、上述した実施形態の構成を採用すれば、上述したように、このような不具合を防止することができる。
【0090】
なお、不具合を防止するだけであれば、例えば、出力枚数トータルのカウント値を要求された段階で、その算出に用いたカウンタのカウントアップを停止させてしまうことも考えられる。しかし、出力枚数トータルの値が要求された場合でも、その後必ず算出に用いたカウンタのカウント値が要求されるとは限らず、いつまでカウントアップを停止させておけばよいかわからない。
【0091】
また、出力枚数トータルのカウント値を要求された場合に、その算出に用いたカウンタのカウント値も一緒に要求元に供給してしまうことも考えられる。しかし、カウント値取得モジュールの側から見て、例えば出力枚数コピーのカウント値を要求した場合には1つのカウント値のみ返されるのに、出力枚数トータルのカウント値を要求した場合には4つのカウント値が返される、というように、指定するカウンタによって返されるデータの数が異なると、返されるデータの処理が複雑になってしまう。このため、APIが提供する機能の設計思想として、このような動作は好ましくない。
以上を考慮すると、図1乃至図18を用いて説明してきた本願実施形態の構成が、図19及び図20を用いて説明した比較例の問題を解決するためには好適であると考えられる。
【0092】
以上で実施形態の説明を終了するが、この発明において、各部の具体的な構成や処理の内容、コマンドやデータの形式等は、実施形態で説明したものに限るものではない。
例えば、図3ではグループに属するカウンタとグループに属しないカウンタがある例について説明したが、全てのカウンタが同じグループに属するようにしてもよい。この場合には、グループに関する情報を記憶しておく必要はない。逆に、グループが複数あってもよい。
【0093】
また、カウント値構成情報の識別IDについて、時刻情報が複数のカウント値構成情報で同じにならないことが期待できる場合には、時刻情報を識別IDとして用いてもよい。
また、上述の実施形態では、この発明を画像処理装置に適用した例について説明した。しかし、この発明は、複数のカウンタを備える装置であれば、ネットワーク家電,自動販売機,医療機器,電源装置,空調システム,ガス・水道・電気等の計量システム,自動車,航空機あるいは汎用コンピュータ等の任意の電子装置に適用可能である。
【0094】
また、この発明のプログラムは、コンピュータに各種デバイスを制御させ、上述した画像処理装置10、特にカウンタ管理モジュール103の機能を実現させるためのプログラムとして構成することができる。このようなプログラムは、予め画像処理装置等のメモリに記憶させておく他、記録媒体であるCD−ROMあるいはフレキシブルディスク,SRAM,EEPROM,メモリカード等の不揮発性記録媒体(メモリ)に記録したり、ネットワークを介してダウンロードできるようにしたりして提供することもできる。そして、そのプログラムをインストールしてCPUに実行させるか、CPUにメモリあるいはダウンロードサーバからこのプログラムを取得させて実行させることにより、上述した各機能を実現させることができる。
また、以上説明してきた実施形態の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
【符号の説明】
【0095】
10:画像処理装置 11:CPU 12:ROM 13:SDRAM
13a:カウント値一時記憶領域 14:HDD 15:ASIC
16:書込回数カウンタ 17:NVRAM 17a:カウント値記憶領域
18:スキャナエンジン 19:プリンタエンジン 20:操作表示部
21:ネットワークI/F 22:FAX通信部 23:システムバス
101:カウントアップ依頼モジュール 102:カウント値取得モジュール
103:カウンタ管理モジュール 104:カウンタ情報記憶部
110:カウント値構成データ
【先行技術文献】
【特許文献】
【0096】
【特許文献1】特開2005−229592号公報
【特許文献2】特開2005−222161号公報
【技術分野】
【0001】
この発明は、複数のカウンタを備え、参照要求に応じてそのカウント値を要求元に供給する電子装置、このような電子装置におけるカウント値管理方法、およびコンピュータをこのような電子装置として機能させるためのプログラムに関する。
【背景技術】
【0002】
従来から、電子装置において動作の回数等をカウントする複数のカウンタを設けることが知られている。例えば、コピー、ファクシミリ通信、プリント等の複数の機能を有する画像形成装置において、コピー出力枚数、ファクシミリ出力枚数、プリント出力枚数をそれぞれカウントするカウンタを設ける等である。
【0003】
また、特許文献1には、画像処理装置において複数のカウンタのカウント値の合計をカウントするトータルカウンタを設ける場合の動作として、以下のものが提案されている。それは、トータルカウンタ単独で値をカウントするのではなく、トータルカウンタのカウント値の出力を要求された時に、合計すべきカウント値をそれぞれ個別に取得し、それらを合計して出力するというものである。
【0004】
また、特許文献2には、画像形成装置が監視サーバにカウント値を通報するための処理として、以下のものが提案されている。それは、定期データ取得スケジュールが示す定期データ取得時になると、カウント値に関するデータを抽出して取得日時の情報と共に所定の領域に記憶させておき、定期自動通報スケジュールが示す定期自動通報時にその取得しておいたカウント値を監視サーバに送信するものである。
【発明の概要】
【発明が解決しようとする課題】
【0005】
画像処理装置等の電子装置にカウンタを設ける場合、複数のカウンタのカウント値が関連性を持っている場合がある。特許文献1に記載の、トータルカウンタと、カウント値を合計する個別のカウンタとがその一例である。そして、トータルカウンタを上記のような構成とすることにより、トータルカウンタのカウント値を常時記憶しておくための領域が不要となる他、トータルカウンタのカウントアップ処理も不要となる。
【0006】
ところで、電子装置においてカウンタの機能を設ける場合、カウンタにおけるカウント動作を制御するカウンタ管理モジュールを、そのカウンタの値を参照するアプリケーションと別に設けることが多い。任意のアプリケーションからカウント値を参照できるようにするためである。
【0007】
このとき、アプリケーションから見れば、トータルカウンタのようにカウント値の取得に複数のカウント値に基づく演算が必要なカウンタも、そうでないカウンタも、等価な1つのカウンタとして扱えるようにすることが好ましい。例えば、カウンタのIDを引数としてカウント値取得コマンド(あるいは関数)をカウンタ管理モジュールに渡すと、どのカウンタであっても同じようにカウント値を取得できる等である。
【0008】
このような構成を採用する場合、トータルカウンタのカウント値は、カウンタ管理モジュールが、トータルカウンタについてのカウント値取得コマンドを検出した時点で、個別のカウンタのカウント値をそれぞれ取得して算出することになる。また、例えばその後カウンタ管理モジュールが個別カウンタについてのカウント値取得コマンドを検出すると、カウンタ管理モジュールは、その時点の個別カウンタのカウント値を取得して返すことになる。
【0009】
従って、カウンタ管理モジュールがトータルカウンタのカウント値と個別カウンタのカウント値とを続けて要求された場合でも、トータルカウンタのカウント値算出に用いる個別カウンタのカウント値と、その後のコマンドに応じて返す個別カウンタのカウント値とでは、異なる時点の値となる。
このため、トータルカウンタについてカウント値取得コマンドを検出した後、個別カウンタについてカウント値取得コマンドを検出するまでの間にその個別カウンタについてカウントアップが必要なイベントが発生すると、トータルカウンタのカウント値算出に用いる個別カウンタのカウント値と、その後の要求に応じて返す個別カウンタのカウント値が異なることになってしまう。
【0010】
このような場合、例えば、トータルカウンタのカウント値と、各個別カウンタのカウント値とを並べて表示する時に、トータルカウンタのカウント値と、個別カウンタのカウント値の合計とが一致しない、という矛盾した事態が発生し得るという問題があった。
このような問題は、カウンタが、トータルと個別、という関係になくても、カウント値に関連のある複数のカウンタのカウント値を、複数回の参照要求により参照しようとする場合には、同様に発生するものである。
この発明は、このような問題を解決し、カウント値に関連のある複数のカウンタのカウント値を、複数回の参照要求により参照しようとする場合でも、参照されるカウント値の間に矛盾が発生しないようにすることを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するため、この発明による電子装置には、グループ化された複数のカウンタと、上記複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、その指定されたカウンタのカウント値を要求元に供給すると共に、その指定されたカウンタがいずれかのグループに属する場合には、上記参照要求を受けた時点のカウント値を、上記複数のカウンタのうち上記指定されたカウンタと同じグループに属する全てのカウンタについてセットにして、そのセットにIDを付して所定のメモリに保存し、そのIDを上記要求元に供給する第1の手段と、IDを指定して第2の参照要求を受けた場合に、その指定されたIDを付して上記所定のメモリに保存されているセットに含まれるカウント値を要求元に供給する第2の手段とを設けた。
【発明の効果】
【0012】
以上のような構成によれば、カウント値に関連のある複数のカウンタのカウント値を、複数回の参照要求により参照しようとする場合でも、参照されるカウント値の間に矛盾が発生しないようにすることができる。
【図面の簡単な説明】
【0013】
【図1】この発明の電子装置の一実施形態である画像処理装置のハードウェア構成を示すブロック図である。
【図2】図1に示したNVRAMにおけるカウント値の記憶状態を示す図である。
【図3】図1に示した画像処理装置が記憶するカウンタの構成に関する情報の例を示す図である。
【図4】図1に示した画像処理装置におけるカウンタの制御に関する機能を示す機能ブロック図である。
【図5】カウント値一時記憶領域におけるカウント値の記憶形式を示す図である。
【図6A】カウンタ管理モジュールがカウンタによるカウント及びカウント値の参照に関して受け付けるコマンドの例を示す図である。
【図6B】その別の例を示す図である。
【図6C】そのさらに別の例を示す図である。
【図6D】そのさらに別の例を示す図である。
【図7】カウント値取得コマンドに応じた動作について説明するための図である。
【図8】一時記憶カウント値取得コマンドに応じた動作について説明するための図である。
【図9】カウンタ管理モジュールがカウント値取得コマンドを検出した場合に実行する処理のフローチャートである。
【図10】同じく一時記憶カウント値取得コマンドを検出した場合の処理のフローチャートである。
【図11】カウントアップ依頼モジュール及びカウント値取得モジュールがカウンタ管理モジュールにコマンドを渡す手順の例を示す図である。
【図12】画像処理装置に設けるカウンタのカウント値の例を示す図である。
【図13】図12に示したカウント値をカウント値一時記憶領域に記憶させた状態を示す図である。
【図14】画像処理装置に設けるカウンタのカウント値の別の例を示す図である。
【図15】図14に示したカウント値をカウント値一時記憶領域に記憶させた状態を示す図である。
【図16】カウント値を表示する画面の例を示す図である。
【図17】この発明の実施形態を適用した場合のカウント値の取得手順の例を示すシーケンス図である。
【図18】その続きを示す図である。
【図19】比較例におけるカウント値の取得手順の例を示すシーケンス図である。
【図20】その続きを示す図である。
【図21】比較例における図16と対応する画面の表示例を示す図である。
【発明を実施するための形態】
【0014】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
図1は、この発明の電子装置の一実施形態である画像処理装置のハードウェア構成を示すブロック図である。
【0015】
図1に示すように、画像処理装置10は、CPU11,ROM12,SDRAM(Synchronous Dynamic RAM)13,HDD(ハードディスクドライブ)14,ASIC(Application Specific IC)15,書込回数カウンタ16,NVRAM(Non Volatile RAM)17,スキャナエンジン18,プリンタエンジン19,操作表示部20,ネットワークI/F(インタフェース)21,FAX通信部22を備え、これらがシステムバス23により接続されている。
【0016】
これらのうちCPU11は、画像処理装置10を統括制御する制御手段である。そして、ROM12やHDD14に記録された所要のプログラムを実行し、図1に示した各部を制御することにより、後述するカウンタの制御をはじめ、種々の機能を実現する。また、画像処理装置10を、コピー、スキャン、プリント、ファクシミリ通信、ドキュメントボックス等の各種機能を備えたデジタル複合機(MFP)として機能させることができる。
【0017】
ROM12は、CPU11が実行するプログラムや書き換えの不要なデータ等を記憶する不揮発性記憶手段である。
SDRAM13は、CPU11がワークエリアとして使用したり、一時的に保持すべきデータを記憶させたりする揮発性記憶手段である。
【0018】
HDD14は、CPU11が実行するプログラムや書き換えの必要なデータ等を記憶する書き換え可能な不揮発性記憶手段である。上述のスキャンやプリント等の機能で使用する圧縮された画像データはこのHDD14に記憶する。
ASIC15は、CPU11と共に画像処理装置10の制御を行う制御手段である。
書込回数カウンタ16は、NVRAM17への書き込み回数をカウントしてその値を記憶するカウンタである。
【0019】
NVRAM17は、高速かつ安定的に書き換えが必要な比較的容量の小さいデータであって電源OFF時にも保持する必要があるデータを記憶するための不揮発性記憶手段である。このNVRAM17に記憶させるデータとしては、例えば後述する複数のカウンタのカウント値(書き込み回数カウンタ16のカウント値を除く)が挙げられる。なおここでは、NVRAM17を書き換え回数に制限のあるメモリモジュールにより構成されるEEPROM(Electrically Erasable Programmable ROM)により構成しているため、NVRAM17が書き換え不能になる前に警告を行うために書込回数カウンタ16を設けている。しかし、NVRAM17を構成するメモリモジュールはこれに限られず、書き換え回数に制限がないのであれば、書込回数カウンタ16は不要である。
【0020】
スキャナエンジン18は、原稿の画像を読み取って画像データを得る画像読み取り手段である。
プリンタエンジン19は、画像データに基づき紙等の記録シートに画像を形成する画像形成手段である。
操作表示部20は、LCD(液晶ディスプレイ)やタッチパネルをはじめとする各種の表示器やボタン等を備え、ユーザからの操作を受け付けると共に、ユーザに対して画像処理装置10の動作状態や設定内容等の情報を表示する手段である。後述する複数のカウンタのカウント値を操作表示部20に表示させることもできる。
【0021】
ネットワークI/F21は、画像処理装置10がLAN(ローカルエリアネットワーク)等のネットワークを介してPC(パーソナルコンピュータ)等の外部装置と通信するためのインタフェースである。通信の規格は、有線、無線を問わず任意のものを用いることができる。
FAX通信部22は、他のFAX装置とファクリミリ通信を行うための通信手段である。
以上のような画像処理装置10における一つの特徴は、NVRAM17に記憶させるカウント値の管理に関する動作であるので、次にこの点について説明する。
【0022】
図2は、NVRAM17におけるカウント値の記憶状態を示す図である。
図2に示すように、画像処理装置10においては、NVRAM17に、カウント値記憶領域17aを設け、この領域に、画像処理装置10に設ける複数のカウンタのカウント値をカウンタ毎に記憶させている。また、各カウント値は、カウンタIDにより識別できるようにする。ただし、複数のカウンタのカウント値を演算してカウント値を求めるカウンタもあるので、全てのカウンタについてカウント値を記憶させるとは限らない。
【0023】
また、図3に、画像処理装置10が記憶するカウンタの構成に関する情報の例を示す。
画像形成装置10は、カウンタに関する情報として、図2に示したカウント値に加え、任意の記憶手段に、図3に示すカウンタ情報も記憶している。
このカウンタ情報は、画像処理装置10に設ける各カウンタのカウンタID毎に、カウンタの属するグループおよびカウント値算出のための演算の情報を記憶している。
【0024】
これらのうち演算の情報としては、図3の例では、カウント値記憶領域17aにカウント値を直接記憶させず他のカウンタのカウント値に基づく演算でカウント値を求めるカウンタについて、その演算に用いるカウンタのカウンタIDと、演算式とを記憶している。具体的には、カウンタIDが22111であるカウンタ(出力面数トータル)について、カウンタIDが22112であるカウンタ(出力面数コピー)とカウンタIDが221113であるカウンタ(出力面数FAX)とカウンタIDが22114であるカウンタ(出力面数プリンタ)のカウント値を全て加算して求めるべきことを記憶している。その他のカウンタについては、演算の情報は記憶しておらず、カウント値をカウント値記憶領域17aに記憶していること(「演算なし」)を示している。
【0025】
また、グループは、カウント値が要求された場合に同時にカウント値を取り出して一時記憶させるカウンタの範囲を規定する情報である。このグループの情報は、カウント値が密接に関連するカウンタ同士が同じグループに属するように設定する。
例えば、図3に示す例では、カウンタIDが22111であるカウンタと、そのカウント値を求めるために用いるカウンタIDが22112〜22114であるカウンタとを同じグループに所属させ、グループID「1」を設定することによりこれを示している。このように、あるカウンタのカウント値の算出に別のカウンタのカウント値を用いる場合、その「あるカウンタ」と「別のカウンタ」とは、カウント値が密接に関連すると考えられ、それらのカウンタを同じグループとする。その結果、1つのカウンタが複数のグループに属することになってもよい。
【0026】
同じグループに属させるカウンタの範囲は、これに限られるものではない。それぞれ個別にカウント値をカウント値記憶領域17aに記憶させるものであっても、確実に同じ時点の値を参照したいような要求があるカウンタについては、カウント値が密接に関連すると扱うことが好ましい。
【0027】
なお、カウンタIDが22002のカウンタ(FAX送信枚数)のように、どのグループにも属しないカウンタがあってもよい。
以上のカウント値記憶情報は、基本的には画像処理装置10のメーカーが定めるものであり、ユーザに編集させる必要はない。
【0028】
次に、図4に、画像処理装置10におけるカウンタの制御に関する機能の機能ブロック図を示す。
図4に示すように、画像処理装置10は、カウントアップ依頼モジュール101、カウント値取得モジュール102、カウンタ管理モジュール103及びカウンタ情報記憶部104を備える。
【0029】
これらのうちカウントアップ依頼モジュール101は、カウンタのカウントアップを要求するモジュールであり、例えばコピー、プリント、ファクシミリ通信等の機能を実現するためのアプリケーションの一部、あるいはこれらのアプリケーションが利用するライブラリの一部として提供される。コピーアプリケーション中に設けた、コピー枚数をカウントするための機能等である。
【0030】
カウント値取得モジュール102は、カウンタのカウント値の参照を要求するモジュールである。カウント値の参照は、操作表示部20へのカウント値の表示、外部PCにおけるカウント値の表示、外部管理装置に画像処理装置10を遠隔管理させるための外部管理装置へのカウント値の提供等を行う際に行う。従って、カウント値取得モジュール102は、例えばこれらの機能を提供するためのアプリケーションの一部、あるいはこれらのアプリケーションが利用するライブラリの一部として提供される。
カウントアップ依頼モジュール101及びカウント値取得モジュール102は、画像処理装置10内部にいくつあってもよい。1つでももちろん構わない。
【0031】
カウンタ管理モジュール103は、カウントアップ依頼モジュール101及びカウント値取得モジュール102がカウンタにアクセスするためのAPI(Application Program Interface)を提供する機能を備える。
カウンタ情報記憶部104は、図3に示したカウンタ情報を記憶する記憶手段である。
【0032】
そして、カウンタ管理モジュール103は、カウントアップ依頼モジュール101及びカウント値取得モジュール102からの要求に基づき、カウンタ情報記憶部104が記憶するカウンタ情報に基づき上述したNVRAM17のカウント値記憶領域17aに記憶されたカウント値を読み書き及び変更することにより、該要求に応じたカウント値の管理及び提供を行う。また、必要に応じてSDRAM13に設けたカウント値一時記憶領域13aにカウント値を一時的に記憶させ、カウント値記憶領域17aに記憶されたカウント値に代えてカウント値一時記憶領域13aのカウント値を提供することも行う。このことにより、カウント値の参照と変更が混在して行われる環境下でカウント値に関連のある複数のカウンタのカウント値を複数回の参照要求に応じて提供する場合であっても、該複数のカウンタのカウント値として相互に矛盾のない値を提供できるようにしている。
【0033】
ここで、図5に、カウント値一時記憶領域13aにおけるカウント値の記憶形式を示す。
カウンタ管理モジュール103は、カウント値記憶領域17aに記憶しているカウント値の参照を要求された場合に、その時点の、参照の要求に係るカウンタと同じグループに属する全てのカウンタのカウント値をセットにして、それらに識別ID及び時刻データを付して、図5に示すカウント値構成データ110としてカウント値一時記憶領域13aに記憶させる。
【0034】
図5の例では、図3に示したカウンタ情報に基づき、カウンタIDが22111〜22114のいずれかのカウンタのカウント値の参照が要求された場合に記憶させるカウント値構成データの例を示した。
符号112〜115で示すのが、同じグループに属する4つのカウンタのカウント値である。符号111で示すのが識別ID、符号116で示すのがカウント値構成データ110の記憶時刻を示す時刻データ(年月日時分秒)である。
【0035】
どの位置にどのカウンタのカウント値を記憶させるかは、カウンタ管理モジュール103が把握できていればよいので、ここではカウント値構成データにカウンタIDは含めていないが、カウント値毎にカウンタIDを記載するようにしてもよい。また、カウンタのグループが複数ある場合、どのグループのカウント値のセットであるかを識別するためのグループIDを記載するようにしてもよい。
【0036】
次に、図6A乃至図6Dに、カウンタ管理モジュール103がカウンタによるカウント及びカウント値の参照に関して受け付けるコマンドの例を示す。
カウントアップ依頼モジュール101、カウント値取得モジュール102は、カウンタ管理モジュール103の機能を実現するプロセスに対し図6A乃至図6Dに示すコマンドを渡すことにより、カウンタ管理モジュール103に以下に説明する動作を実行させることができる。
【0037】
図6Aに示すのはカウントアップコマンドである。このコマンドは、カウンタ管理モジュール103に対し、カウンタID及びカウントアップ量を指定して、カウント値記憶領域17aに記憶しているそのカウンタIDを有するカウンタのカウント値を、そのカウントアップ量だけカウントアップすることを要求するためのものである。
【0038】
図6Bに示すのはカウント値取得コマンドである。このコマンドは、カウント値記憶領域17aに記憶しているカウント値を取得する際に用いるコマンドであり、カウンタ管理モジュール103に対しカウント値の参照を要求する第1の参照要求に該当する。このコマンドについては、カウント値構成データを識別するIDの戻り値と、カウンタIDと、取得したカウント値の格納先を指定する。
【0039】
このコマンドを受け取ったカウンタ管理モジュール103は、カウント値記憶領域17aに記憶している指定されたカウンタIDを有するカウンタのカウント値を格納先として指定されたアドレスに格納することにより、コマンド送信元が参照可能な形で出力する。また、そのカウンタがいずれかのグループに属する場合、カウント値記憶領域17aから必要なカウント値を読み出して図5を用いて説明したカウント値構成データ110を生成してカウント値一時記憶領域13aに記憶させると共に、戻り値としてそのカウント値構成データ110の識別IDを返す(図7参照)。
なお、該当のカウンタがいずれのグループにも属しない場合、カウント値構成データ110の生成は不要であり、戻り値としてはnull値を返せばよい。
【0040】
図6Cに示すのは一時記憶カウント値取得コマンドである。このコマンドは、カウント値一時記憶領域13aに記憶させたカウント値構成データ110に含まれるカウント値を取得するためのコマンドであり、以前にカウント値取得コマンドにより取得したカウント値と矛盾のないカウント値を取得したい場合に用いる。また、カウンタ管理モジュール103に対しカウント値の参照を要求する第2の参照要求に該当する。引数としては、カウンタID,取得したカウント値の格納先及びカウント値構成データの識別IDを指定する。
【0041】
このコマンドを受け取ったカウンタ管理モジュール103は、カウント値一時記憶領域13aに記憶させたカウント値構成データ110のうち、指定された識別IDを有するカウント値構成データ110から、指定されたカウンタIDのカウンタのカウント値を取得し、格納先として指定されたアドレスに格納することにより、コマンド送信元が参照可能な形で出力する(図8参照)。
【0042】
図6Dに示すのは一時記憶カウント値グループ取得コマンドである。このコマンドは、一時記憶カウント値取得コマンドと似ているが、カウント値構成データ110に含まれる全てのカウント値の集合を取得するためのコマンドである。このコマンドも第2の参照要求に該当する。引数としては、取得したカウント値の格納先及びカウント値構成データの識別IDを指定する。
【0043】
このコマンドを受け取ったカウンタ管理モジュール103は、カウント値一時記憶領域13aに記憶させたカウント値構成データ110のうち、指定された識別IDを有するカウント値構成データ110から、そこに含まれる全てのカウンタのカウント値を取得し、格納先として指定されたアドレスにデータの集合として格納することにより、コマンド送信元が参照可能な形で出力する。
【0044】
次に、カウンタ管理モジュールがコマンドを検出した場合に実行する処理についてより詳細に説明する。なお、以下に説明する処理は、CPU11が所要のプログラムを実行することによりカウンタ管理モジュール103の機能を実現するための処理の一環として行われるものであるが、説明を簡単にするためにカウンタ管理モジュール103が処理を実行するものとして説明する。
【0045】
まず図9に、カウント値取得コマンドを検出した場合の処理のフローチャートを示す。
カウンタ管理モジュール103は、カウント値取得コマンドtId = GetCount (ID, &val)を検出すると、図9のフローチャートに示す処理を開始する。
そしてまずステップS11で、カウンタ情報を参照し、引数として指定されたカウンタIDに係るカウンタがいずれかのグループに属するか否か判断する。そして、いずれかのグループ属する場合、カウント値構成データ110の生成に係るステップS12以下の処理に進む。
【0046】
次のステップS12では、ステップS11でカウンタが属すると判断したグループのカウンタ全てについて、カウントアップ処理を一時停止する。すなわち、それらのカウンタに係るカウントアップコマンドを受信した場合でもそのコマンドに応じたカウントアップ動作を保留するようにする。
【0047】
その後、ステップS13,S17及びS18で、カウンタが属すると判断したグループのカウンタを1つずつ順次処理対象としつつ、ステップS14乃至S16の処理を実行する。すなわち、まずステップS14でカウンタ情報を参照して処理対象のカウンタに演算が定義されているか否か判断する。
定義されている場合、ステップS15でNVRAM17のカウント値記憶領域17aから必要なカウント値を読み出し、演算して処理対象のカウンタのカウント値を求める。定義されていない場合、ステップS16でNVRAM17のカウント値記憶領域17aから処理対象のカウント値を読み出す。
【0048】
全てのカウンタについてこれらの処理を行うと、全てのカウンタについてカウント値が揃うため、ステップS17からステップS19に進む。そして、一意な識別ID、グループの全てのカウンタのカウント値、および現在時刻の情報を含むカウント値構成データ110を生成し、SDRAM13のカウント値一時記憶領域13aに書き込む。ここまでがカウント値構成データ110の生成に係る処理である。
【0049】
その後、ステップS20ではカウント値取得コマンドで指定されたカウンタIDのカウンタについてステップS15またはS16で取得したカウント値を、カウント値取得コマンドで指定された格納先に格納する。また、ステップS21ではステップS19で定めたカウント値構成データの識別IDを、カウント値取得コマンドの戻り値としてコマンド送信元に返す。
以上でカウント値取得コマンドに応じたカウント値の参照が完了するので、ステップS22でカウントアップ処理の一時停止を解除して処理を終了する。
【0050】
一方、ステップS11で指定されたカウンタIDに係るカウンタがグループに属しない場合、単に指定されたカウンタのカウント値を返せばよいので、処理はステップS23に進む。
そして、ステップS23で、指定されたカウンタIDに係るカウンタのカウント値をNVRAM17のカウント値記憶領域17aから読み出して、カウント値取得コマンドで指定された格納先に格納する。さらに、ステップS24で、カウント値取得コマンドの戻り値として格納完了を示す値(カウント値構成データを生成しなかったことを示すnull等の値でもよい)をコマンド送信元に返して、処理を終了する。
【0051】
以上の処理により、カウンタ管理モジュール103は、カウント値がほかのカウンタと密接に関連するようなカウンタについて値の参照が要求された場合に、要求に応じてそのカウンタの値を出力すると共に、そのカウンタの値を、値が密接に関連する他のカウンタのカウント値とセットにして識別IDを付して、後で参照可能なように保存することができる。
【0052】
なお、カウント値取得コマンドの送信元モジュールは、カウンタ管理モジュール103から戻り値を得た後、コマンド送信時に指定した格納先を参照することにより、要求したカウント値を取得することができる。従って、図9に示した処理により、カウンタ管理モジュール103は、カウント値取得コマンドの送信元モジュールに対し要求に係るカウント値を供給することができると言える。
また、図示は省略したが、ステップS11で指定されたカウンタIDに係るカウンタが複数のグループに属すると判断した場合は、ステップS12からS19までの処理を、その各グループについて実行すればよい。
【0053】
次に図10に、一時記憶カウント値取得コマンドを検出した場合の処理のフローチャートを示す。
カウンタ管理モジュール103は、一時記憶カウント値取得コマンドGetCountAtId(ID, &val, tId)を検出すると、図10のフローチャートに示す処理を開始する。
そしてまず、ステップS31で、一時記憶カウント値取得コマンドにおいて指定されたカウント値構成データ110の識別IDをキーにカウント値一時記憶領域13aを検索する。
【0054】
そして、ステップS32で該当の識別IDを持つカウント値構成データが発見されたか否か判断する。発見された場合、ステップS33でそのカウント値構成データから一時記憶カウント値取得コマンドにおいて指定されたカウントIDのカウンタのカウント値を取得して、一時記憶カウント値取得コマンドにおいて指定された格納先に格納する。その後、ステップS34でコマンド送信元に対して処理完了の応答を返して処理を終了する。
【0055】
ステップS32で発見されなかった場合、何もせずに処理完了の応答を返して処理を終了する。
以上の処理により、カウンタ管理モジュール103は、他のモジュールからの識別ID及びカウンタIDを指定した要求に応じて、図9の処理で保存しておいたカウント値を出力することができる。
【0056】
なお、一時記憶カウント値取得コマンドの送信元モジュールは、カウンタ管理モジュール103から処理完了の応答を得た後、コマンド送信時に指定した格納先を参照することにより、要求したカウント値を取得することができる。従って、図10に示した処理により、カウンタ管理モジュール103は、カウント値取得コマンドの送信元モジュールに対し要求に係るカウント値を供給することができると言える。
【0057】
また、一時記憶カウント値グループ取得コマンドに応じた処理は、ステップS33で格納するのが発見したカウント値構成データに含まれる全てのカウント値の集合である点が図10の処理と異なるのみであるので、詳細な説明は省略する。
【0058】
また、カウントアップコマンドを検出した場合にカウンタ管理モジュール103が実行する処理は、フローチャートの図示は省略するが、図18のステップS122乃至S124に示す通りである。すなわち、カウント値記憶領域17aから、カウントアップコマンドで指定されたカウンタIDのカウンタのカウント値を読み出し(S122)、そのカウンタの値をカウントアップ要求で指定されたカウントアップ量だけインクリメントして(S123)、インクリメント後のカウント値をカウント値記憶領域17aに書き戻す(S124)。
【0059】
以上の処理により、カウンタ管理モジュール103は他のモジュールからの要求に応じてカウンタによるカウントを行うことができる。なお、カウントアップ処理の停止中にカウントアップコマンドを受信した場合、その受信に応じた処理は、停止の解除後に行えばよい。
【0060】
次に、以上説明したコマンドにより、カウントアップ依頼モジュール101がカウンタ管理モジュール103にカウンタのカウントアップを要求しつつ、カウント値取得モジュール102がカウンタ管理モジュール103からカウント値を取得する際の動作例について説明する。
【0061】
まず図11に、カウントアップ依頼モジュール101及びカウント値管理モジュール102a,102bがカウンタ管理モジュール103にコマンドを渡す手順例を示す。なお、図11においては、カウント値管理モジュール102が2つ登場するので、これらを区別するため102a,102bの符号を用いた。これらを総称する場合には引き続き102の符号を用いる。
【0062】
図11の例では、まずカウント値取得モジュール102aが出力面数トータル(ID=22111)のカウント値を要求するカウント値取得コマンドをカウンタ管理モジュール103に渡す(S51)。
すると、カウンタ管理モジュール103は、図12に示すように、この時点での出力面数コピー、出力面数FAX、出力面数プリンタのカウント値に基づいて出力面数トータルのカウント値を算出し、カウント値取得コマンドで指定されたアドレス&valA1に格納する。また、図13に示すようにカウント値構成データを生成し、SDRAM13のカウント値一時記憶領域13aに必要なサイズの領域を確保して記憶させる。また、このカウント値構成データの識別ID(0001234)は、変数tId1の値としてカウント値取得モジュール102aに返す。カウント値取得モジュール102aは、その後アドレス&valA1を参照することにより、出力面数トータルのカウント値を取得することができる。
【0063】
次に、カウントアップ依頼モジュール101が、出力面数コピー(ID=22112)のカウント値の1カウントアップを要求するカウントアップコマンドをカウンタ管理モジュール103に渡す(S52)。すると、カウンタ管理モジュール103は、出力面数コピーのカウント値を1増加させる。
【0064】
次に、カウント値取得モジュール102aが、ステップS51のカウント値取得コマンドに応じて返された識別IDtId1を指定して、出力面数コピー(ID=22112)のカウント値を要求する一時記憶カウント値取得コマンドをカウンタ管理モジュール103に渡す(S53)。
すると、カウンタ管理モジュール103は、図13に示したカウント値構成データから出力面数コピーのカウント値を読み出して、その値を一時記憶カウント値取得コマンドで指定されたアドレス&valA2に格納し、処理完了の応答を返す。カウント値取得モジュール102aは、その後アドレス&valA2を参照することにより、出力面数コピーのカウント値を取得することができる。
【0065】
なお、ステップS53の時点では、カウント値記憶領域17aにおける出力面数コピーのカウント値はステップS52の要求に応じてカウントアップされており、カウント値取得モジュール102aがステップS51の要求により取得した出力面数トータルのカウント値の算出に用いた値とは異なる値となっている。すなわち、以前に取得した出力面数トータルのカウント値と対応しない値となっている(図14参照)。
【0066】
しかし、カウント値一時記憶領域13aに記憶させたカウント値構成データはカウントアップの影響を受けないため、カウント値取得モジュール102aは、カウントアップの後で一時記憶カウント値取得コマンドを渡しても、ステップS51の要求により取得した出力面数トータルのカウント値の算出に用いた出力面数コピーのカウント値を取得することができる。
【0067】
また、次にカウント値取得モジュール102bが出力面数トータル(ID=22111)のカウント値を要求するカウント値取得コマンドをカウンタ管理モジュール103に渡す(S54)。
すると、カウンタ管理モジュール103は、図14に示すように、この時点での出力面数コピー、出力面数FAX、出力面数プリンタのカウント値に基づいて出力面数トータルのカウント値を算出し、アドレス&valB1に格納する。出力面数コピーのカウント値がカウントアップされているため、出力面数トータルのカウント値は図12の例よりは1大きい値となる。
【0068】
また、カウンタ管理モジュール103は図15に示すようにカウント値構成データを生成し、SDRAM13のカウント値一時記憶領域13aに必要なサイズの領域を確保して、ステップS51で生成したカウント値構成データとは別に記憶させる。また、このカウント値構成データの識別ID(0001235)は、ステップS51で生成したカウント値構成データの識別IDとは異なる値であり、変数tId2の値としてカウント値取得モジュール102bに返す。カウント値取得モジュール102bは、その後アドレス&valB1を参照することにより、出力面数トータルのカウント値を取得することができる。
【0069】
次に、カウント値取得モジュール102bが、ステップS54のカウント値取得コマンドに応じて返された識別IDtId2を指定して、出力面数コピー(ID=22112)のカウント値を要求する一時記憶カウント値取得コマンドをカウンタ管理モジュール103に渡す(S53)。
すると、カウンタ管理モジュール103は、図15に示したカウント値構成データのうち識別IDがtId2=0001235であるカウント値構成データから出力面数コピーのカウント値を読み出して、その値をアドレス&valB2に格納し、処理完了の応答を返す。カウント値取得モジュール102bは、その後アドレス&valB2を参照することにより、出力面数コピーのカウント値を取得することができる。
【0070】
この場合も、カウント値取得モジュール102bは、ステップS54で取得した出力面数トータルのカウント値の算出に用いた出力面数コピーのカウント値を問題なく取得することができる。
従って、カウント値取得モジュール102は、初めにカウント値を取得しようとする場合にカウンタIDを指定してカウント値取得コマンドをカウンタ管理モジュール103に渡し、その後そのカウント値と対応する(同じ時点の)別のカウンタのカウント値が必要である場合に、値が必要なカウンタのカウンタIDと、カウント値取得コマンドに応じて返された識別IDとを指定して一時記憶カウント値取得コマンドをカウンタ管理モジュール103に渡すことにより、2つのコマンドの間におけるカウントアップの有無に関わらず、初めに取得したカウント値と対応する別のカウンタのカウント値を取得することができる。
【0071】
なお、このような取得が可能なのは、初めのカウンタと後のカウンタとが同じグループに属する場合のみであるが、対応する値の取得が必要となるようなカウンタは全て同じグループに入れておけば、特に問題ない。
また、以上の機能を実現するに当たり、カウント値構成データは揮発性の記憶手段であるSDRAM13に記憶させているため、頻繁にカウント値構成データを保存したとしても、書込回数に制限のある不揮発性記憶手段であるNVRAM17の書込回数を徒に消耗することがない。カウント値は電源OFF時でも保持する必要があるので不揮発性記憶手段に記憶させる必要があるが、カウント値構成データは電源OFF時には消失して問題ないことを考えれば、カウント値構成データは揮発性記憶手段に記憶させることが好ましい。
【0072】
また、一般に、揮発性記憶手段は安価であるため、カウント値構成データを多数記憶させて容量を多少多く使っても問題は少ない。ただ、容量に制限がある場合には、1つのグループに含めるカウンタの数を少なくしたり、記憶させて一定時間経ったカウント値構成データは随時削除する等の対応を行うことが好ましい。
【0073】
次に、より具体的な動作例及び比較例を用いて、以上説明してきた実施形態の効果についてさらに説明する。
ここでは、操作表示部20あるいは外部PCのブラウザ等に、図16に示すような画面を表示させる動作を例として採り上げる。この画面は、出力枚数トータル、出力枚数コピー、出力枚数FAX及び出力枚数プリンタの4つのカウンタのカウント値を表示する画面である。従って、この画面を表示させる場合、これらの4つのカウント値を取得する必要がある。
【0074】
しかし、この画面の表示専用に4つのカウント値を一度に取得するコマンドをカウンタ管理モジュール103のAPIに用意することは現実的ではない。そこで、画面の表示を行うアプリケーションが備えるカウント値取得モジュールが、カウンタ管理モジュールに対して、カウンタ1つずつについてカウント値の供給を要求し、カウント値を取得することになる。
【0075】
まず図17及び図18に、上述の実施形態を適用した場合のカウント値の取得手順の例を示す。
この場合、まずカウント値取得モジュール102が、カウンタ管理モジュール103に対して、4つのカウンタのいずれかのカウント値の取得を要求するカウント値取得コマンドを送信する。ここでは、出力面数トータルのカウント値を要求するものとした(S101)。
【0076】
これを受けたカウンタ管理モジュール103は、出力面数トータルのカウント値を算出するため、出力面数コピー、出力面数FAX及び出力面数プリンタの値をそれぞれNVRAM17のカウント値記憶領域17aから読み出し(S102〜S104)、それらを合計して得た出力枚数トータルのカウント値を保持する(S105)。
【0077】
また、カウント値構成データを生成するため、出力枚数トータルと同じグループに属する出力面数コピー、出力面数FAX及び出力面数プリンタの値をそれぞれNVRAM17のカウント値記憶領域17aから読み出し、これらも保持する(S106〜S111)。これらのカウント値としては、ステップS102〜S104で読み出したものを保持しておいてもよい。しかし、単に出力枚数トータルの値を取得するのみであれば、他のカウント値を保持しておく必要はないので、プログラムモジュールの単純化のため、ここでは、出力枚数トータルの値を取得するルーチンに演算に用いた他のカウンタのカウント値を保持するルーチンは設けず、別の用途でそれらの「他のカウンタ」のカウント値が必要な場合には再度読み出すようにしている。
【0078】
カウンタ管理モジュール103は、必要なカウント値が揃うと、識別IDを生成すると共に現在時刻情報を取得し(S112)、これらも含めたカウント値構成データを生成して、SDRAM13のカウント値一時記憶領域13aに記録する(S113)。
そして、カウント値構成データの識別ID及び、要求された出力面数トータルのカウント値を、コマンド送信元のカウント値取得モジュール102に供給する(S114)。カウント値の供給は、上述のように、指定されたアドレスに値を格納することによって行う。
【0079】
次に、図18のステップS121〜S125の処理は後述することにして、カウント値取得モジュール102は、先に要求した出力枚数トータル以外の3つのカウンタのカウント値を取得すべく、各カウンタについて一時記憶カウント値取得コマンドをカウンタ管理モジュール103に送信する(S131,S141,S151)。
カウンタ管理モジュール103は、それらの要求に応じて、カウント値一時記憶領域13aに記憶させたカウント値構成データから、指定されたカウンタのカウント値を読み出して(S132,S142,S152)、コマンド送信元に供給する(S133,S143,S153)。
【0080】
ここで、以上の処理の途中でS121のようにカウントアップ依頼モジュール101からカウンタ管理モジュール103へカウントアップコマンド送信され、カウンタ管理モジュール103がカウンタのカウントアップを行った(S122〜S125)場合でも、カウント値一時記憶領域13aに記憶させたカウント値構成データには影響がない。
【0081】
従って、カウントアップ後にカウント値を要求したとしても、カウントアップ前に出力面数トータルのカウント値の算出に用いた各カウンタのカウント値を取得することができる。このため、図16に示した画面の表示において、4つのカウント値を別々のコマンドにより個別に取得する必要がある場合であっても、出力面数コピー、出力面数FAX及び出力面数プリンタのカウント値の合計が、出力面数トータルの値と合わなくなるようなことは起こらない。
【0082】
次に、図19及び図20に、比較例におけるカウント値取得手順の例を示す。図19は、取得中にカウントアップが起こらない場合の例、図20は、取得中にカウントアップが起こる場合の例である。また、上述した実施形態と対応する箇所には同じ符号を用いた。
この比較例は、カウント値一時記憶領域13aは設けておらず、カウント値構成データの生成及び記憶を行わない点が、上述した実施形態と異なるものである。なお、このため、カウンタのグループ分けも不要である。
【0083】
この比較例の場合も、まずカウント値取得モジュール102が、カウンタ管理モジュール103に対して、4つのカウンタのいずれかのカウント値の取得を要求するカウント値取得コマンドを送信する。ここでも、出力面数トータルのカウント値を要求するものとした(S201)。なお、コマンドの記載内容は、カウント値構成データの識別IDの戻り値は不要であるが、その他の点では図6Bに示したものと同じでよい。
【0084】
これを受けたカウンタ管理モジュール103は、出力面数トータルのカウント値を算出するため、出力面数コピー、出力面数FAX及び出力面数プリンタの値をそれぞれNVRAM17のカウント値記憶領域17aから読み出し(S202〜S204)、それらを合計して出力枚数トータルのカウント値を得る(S205)。そして、そのカウント値を、コマンド送信元のカウント値取得モジュール102に供給する(S206)。
カウント値構成データは生成しないので、要求されたカウント値以外のカウント値を別途取得する必要はない。
【0085】
次に、カウント値取得モジュール102は、先に要求した出力枚数トータル以外の3つのカウンタのカウント値を取得すべく、同じように各カウンタについてカウント値取得コマンドをカウンタ管理モジュール103に送信する(S211,S221,S231)。
カウンタ管理モジュール103は、それらの要求に応じて、カウント値記憶領域17aから、指定されたカウンタのカウント値を読み出して(S212,S222,S232)、コマンド送信元に供給する(S213,S223,S233)。
【0086】
このように、4回のカウント値取得コマンドの間にいずれのカウンタにもカウントアップがない場合には、カウント値取得モジュール102は、面数トータルのカウント値の算出に用いた各カウンタのカウント値を取得することができる。従って、出力面数コピー、出力面数FAX及び出力面数プリンタのカウント値の合計が、出力面数トータルの値と合わなくなるようなことは起こらない。
しかし、図20のようにカウント値取得コマンドの間にカウントアップがあると、不具合が生じる場合がある。
【0087】
図20の例でも、ステップS201乃至S206は図19の例と同じである。しかし、その後カウント値取得モジュール102が出力面数コピーについてカウント値取得コマンドを送信する前に、カウントアップ依頼モジュール101が出力面数コピーについてカウントアップコマンドをカウンタ管理モジュール103に送信する(S241)。
この場合、カウンタ管理モジュール103は、カウントアップコマンドに応じて、カウント値記憶領域17aに記憶させてある出力面数コピーのカウント値をカウントアップする(S242〜S245)。
【0088】
そして、その後でカウント値取得モジュール102が出力面数コピーについてカウント値取得コマンドを送信すると(S251)、カウンタ管理モジュール103はその時点の出力面数コピーのカウント値をカウント値記憶領域17aから読み出してコマンド送信元へ供給する(S252,S253)。従って、カウント値取得モジュール102が取得するカウント値は、カウントアップ後の値となる。
なお、出力面数FAX及び出力面数プリンタのカウント値取得については、図示を省略したが図19の例と同様に行うことができる。
【0089】
以上の手順により取得された各カウント値を用いて図16に示すような画面の表示を行おうとすると、図21に示すように、出力面数コピー、出力面数FAX及び出力面数プリンタのカウント値の合計が、出力面数トータルの値と合わなくなってしまう。出力面数コピーのカウント値として、出力面数トータルのカウント値の算出に用いた値と異なる、カウントアップ後の値を表示してしまうことになるためである。
一方、上述した実施形態の構成を採用すれば、上述したように、このような不具合を防止することができる。
【0090】
なお、不具合を防止するだけであれば、例えば、出力枚数トータルのカウント値を要求された段階で、その算出に用いたカウンタのカウントアップを停止させてしまうことも考えられる。しかし、出力枚数トータルの値が要求された場合でも、その後必ず算出に用いたカウンタのカウント値が要求されるとは限らず、いつまでカウントアップを停止させておけばよいかわからない。
【0091】
また、出力枚数トータルのカウント値を要求された場合に、その算出に用いたカウンタのカウント値も一緒に要求元に供給してしまうことも考えられる。しかし、カウント値取得モジュールの側から見て、例えば出力枚数コピーのカウント値を要求した場合には1つのカウント値のみ返されるのに、出力枚数トータルのカウント値を要求した場合には4つのカウント値が返される、というように、指定するカウンタによって返されるデータの数が異なると、返されるデータの処理が複雑になってしまう。このため、APIが提供する機能の設計思想として、このような動作は好ましくない。
以上を考慮すると、図1乃至図18を用いて説明してきた本願実施形態の構成が、図19及び図20を用いて説明した比較例の問題を解決するためには好適であると考えられる。
【0092】
以上で実施形態の説明を終了するが、この発明において、各部の具体的な構成や処理の内容、コマンドやデータの形式等は、実施形態で説明したものに限るものではない。
例えば、図3ではグループに属するカウンタとグループに属しないカウンタがある例について説明したが、全てのカウンタが同じグループに属するようにしてもよい。この場合には、グループに関する情報を記憶しておく必要はない。逆に、グループが複数あってもよい。
【0093】
また、カウント値構成情報の識別IDについて、時刻情報が複数のカウント値構成情報で同じにならないことが期待できる場合には、時刻情報を識別IDとして用いてもよい。
また、上述の実施形態では、この発明を画像処理装置に適用した例について説明した。しかし、この発明は、複数のカウンタを備える装置であれば、ネットワーク家電,自動販売機,医療機器,電源装置,空調システム,ガス・水道・電気等の計量システム,自動車,航空機あるいは汎用コンピュータ等の任意の電子装置に適用可能である。
【0094】
また、この発明のプログラムは、コンピュータに各種デバイスを制御させ、上述した画像処理装置10、特にカウンタ管理モジュール103の機能を実現させるためのプログラムとして構成することができる。このようなプログラムは、予め画像処理装置等のメモリに記憶させておく他、記録媒体であるCD−ROMあるいはフレキシブルディスク,SRAM,EEPROM,メモリカード等の不揮発性記録媒体(メモリ)に記録したり、ネットワークを介してダウンロードできるようにしたりして提供することもできる。そして、そのプログラムをインストールしてCPUに実行させるか、CPUにメモリあるいはダウンロードサーバからこのプログラムを取得させて実行させることにより、上述した各機能を実現させることができる。
また、以上説明してきた実施形態の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
【符号の説明】
【0095】
10:画像処理装置 11:CPU 12:ROM 13:SDRAM
13a:カウント値一時記憶領域 14:HDD 15:ASIC
16:書込回数カウンタ 17:NVRAM 17a:カウント値記憶領域
18:スキャナエンジン 19:プリンタエンジン 20:操作表示部
21:ネットワークI/F 22:FAX通信部 23:システムバス
101:カウントアップ依頼モジュール 102:カウント値取得モジュール
103:カウンタ管理モジュール 104:カウンタ情報記憶部
110:カウント値構成データ
【先行技術文献】
【特許文献】
【0096】
【特許文献1】特開2005−229592号公報
【特許文献2】特開2005−222161号公報
【特許請求の範囲】
【請求項1】
グループ化された複数のカウンタと、
前記複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、該指定されたカウンタのカウント値を要求元に供給すると共に、該指定されたカウンタがいずれかのグループに属する場合には、前記参照要求を受けた時点のカウント値を、前記複数のカウンタのうち前記指定されたカウンタと同じグループに属する全てのカウンタについてセットにして、該セットにIDを付して所定のメモリに保存し、そのIDを前記要求元に供給する第1の手段と、
IDを指定して第2の参照要求を受けた場合に、該指定されたIDを付して前記所定のメモリに保存されているセットに含まれるカウント値を要求元に供給する第2の手段とを備えた電子装置。
【請求項2】
複数のカウンタと、
前記複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、該指定されたカウンタのカウント値を要求元に供給すると共に、該参照要求を受けた時点のカウント値を、前記複数のカウンタの全てについてセットにして、該セットにIDを付して所定のメモリに保存し、そのIDを前記要求元に供給する第1の手段と、
IDを指定して第2の参照要求を受けた場合に、該指定されたIDを付して前記所定のメモリに保存されているセットに含まれるカウント値を要求元に供給する第2の手段とを備えた電子装置。
【請求項3】
請求項1又は2に記載の電子装置であって、
前記複数のカウンタのカウント値は不揮発性メモリに記憶させ、または不揮発性メモリに記憶させた値から演算可能であり、
前記カウント値のセットを記憶させる所定のメモリは揮発性メモリであることを特徴とする電子装置。
【請求項4】
グループ化された複数のカウンタを備える電子装置が、
前記複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、該指定されたカウンタのカウント値を要求元に供給すると共に、該指定されたカウンタがいずれかのグループに属する場合には、前記参照要求を受けた時点のカウント値を、前記複数のカウンタのうち前記指定されたカウンタと同じグループに属する全てのカウンタについてセットにして、該セットにIDを付して所定のメモリに保存し、そのIDを前記要求元に供給する第1の手順と、
IDを指定して第2の参照要求を受けた場合に、該指定されたIDを付して前記所定のメモリに保存されているセットに含まれるカウント値を要求元に供給する第2の手順とを実行することを特徴とするカウント値管理方法。
【請求項5】
複数のカウンタを備える電子装置が、
前記複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、該指定されたカウンタのカウント値を要求元に供給すると共に、該参照要求を受けた時点のカウント値を、前記複数のカウンタの全てについてセットにして、該セットにIDを付して所定のメモリに保存し、そのIDを前記要求元に供給する第1の手順と、
IDを指定して第2の参照要求を受けた場合に、該指定されたIDを付して前記所定のメモリに保存されているセットに含まれるカウント値を要求元に供給する第2の手順とを実行することを特徴とするカウント値管理方法。
【請求項6】
請求項4又は5に記載のカウント値出力方法であって、
前記電子装置が、前記複数のカウンタのカウント値は不揮発性メモリに記憶させ、または不揮発性メモリに記憶させた値から演算可能であり、
前記カウント値のセットを記憶させる所定のメモリは揮発性メモリであることを特徴とするカウント値管理方法。
【請求項7】
コンピュータを、
グループ化された複数のカウンタと、
前記複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、該指定されたカウンタのカウント値を要求元に供給すると共に、該指定されたカウンタがいずれかのグループに属する場合には、前記参照要求を受けた時点のカウント値を、前記複数のカウンタのうち前記指定されたカウンタと同じグループに属する全てのカウンタについてセットにして、該セットにIDを付して所定のメモリに保存し、そのIDを前記要求元に供給する第1の手段と、
IDを指定して第2の参照要求を受けた場合に、該指定されたIDを付して前記所定のメモリに保存されているセットに含まれるカウント値を要求元に供給する第2の手段として機能させるためのプログラム。
【請求項8】
コンピュータを、
複数のカウンタと、
前記複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、該指定されたカウンタのカウント値を要求元に供給すると共に、該参照要求を受けた時点のカウント値を、前記複数のカウンタの全てについてセットにして、該セットにIDを付して所定のメモリに保存し、そのIDを前記要求元に供給する第1の手段と、
IDを指定して第2の参照要求を受けた場合に、該指定されたIDを付して前記所定のメモリに保存されているセットに含まれるカウント値を要求元に供給する第2の手段として機能させるためのプログラム。
【請求項9】
請求項7又は8に記載のプログラムであって、
前記コンピュータにおいて前記複数のカウンタのカウント値は不揮発性メモリに記憶させ、または不揮発性メモリに記憶させた値から演算可能であり、
前記カウント値のセットを記憶させる所定のメモリは揮発性メモリであることを特徴とするプログラム。
【請求項1】
グループ化された複数のカウンタと、
前記複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、該指定されたカウンタのカウント値を要求元に供給すると共に、該指定されたカウンタがいずれかのグループに属する場合には、前記参照要求を受けた時点のカウント値を、前記複数のカウンタのうち前記指定されたカウンタと同じグループに属する全てのカウンタについてセットにして、該セットにIDを付して所定のメモリに保存し、そのIDを前記要求元に供給する第1の手段と、
IDを指定して第2の参照要求を受けた場合に、該指定されたIDを付して前記所定のメモリに保存されているセットに含まれるカウント値を要求元に供給する第2の手段とを備えた電子装置。
【請求項2】
複数のカウンタと、
前記複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、該指定されたカウンタのカウント値を要求元に供給すると共に、該参照要求を受けた時点のカウント値を、前記複数のカウンタの全てについてセットにして、該セットにIDを付して所定のメモリに保存し、そのIDを前記要求元に供給する第1の手段と、
IDを指定して第2の参照要求を受けた場合に、該指定されたIDを付して前記所定のメモリに保存されているセットに含まれるカウント値を要求元に供給する第2の手段とを備えた電子装置。
【請求項3】
請求項1又は2に記載の電子装置であって、
前記複数のカウンタのカウント値は不揮発性メモリに記憶させ、または不揮発性メモリに記憶させた値から演算可能であり、
前記カウント値のセットを記憶させる所定のメモリは揮発性メモリであることを特徴とする電子装置。
【請求項4】
グループ化された複数のカウンタを備える電子装置が、
前記複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、該指定されたカウンタのカウント値を要求元に供給すると共に、該指定されたカウンタがいずれかのグループに属する場合には、前記参照要求を受けた時点のカウント値を、前記複数のカウンタのうち前記指定されたカウンタと同じグループに属する全てのカウンタについてセットにして、該セットにIDを付して所定のメモリに保存し、そのIDを前記要求元に供給する第1の手順と、
IDを指定して第2の参照要求を受けた場合に、該指定されたIDを付して前記所定のメモリに保存されているセットに含まれるカウント値を要求元に供給する第2の手順とを実行することを特徴とするカウント値管理方法。
【請求項5】
複数のカウンタを備える電子装置が、
前記複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、該指定されたカウンタのカウント値を要求元に供給すると共に、該参照要求を受けた時点のカウント値を、前記複数のカウンタの全てについてセットにして、該セットにIDを付して所定のメモリに保存し、そのIDを前記要求元に供給する第1の手順と、
IDを指定して第2の参照要求を受けた場合に、該指定されたIDを付して前記所定のメモリに保存されているセットに含まれるカウント値を要求元に供給する第2の手順とを実行することを特徴とするカウント値管理方法。
【請求項6】
請求項4又は5に記載のカウント値出力方法であって、
前記電子装置が、前記複数のカウンタのカウント値は不揮発性メモリに記憶させ、または不揮発性メモリに記憶させた値から演算可能であり、
前記カウント値のセットを記憶させる所定のメモリは揮発性メモリであることを特徴とするカウント値管理方法。
【請求項7】
コンピュータを、
グループ化された複数のカウンタと、
前記複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、該指定されたカウンタのカウント値を要求元に供給すると共に、該指定されたカウンタがいずれかのグループに属する場合には、前記参照要求を受けた時点のカウント値を、前記複数のカウンタのうち前記指定されたカウンタと同じグループに属する全てのカウンタについてセットにして、該セットにIDを付して所定のメモリに保存し、そのIDを前記要求元に供給する第1の手段と、
IDを指定して第2の参照要求を受けた場合に、該指定されたIDを付して前記所定のメモリに保存されているセットに含まれるカウント値を要求元に供給する第2の手段として機能させるためのプログラム。
【請求項8】
コンピュータを、
複数のカウンタと、
前記複数のカウンタのいずれかを指定して第1の参照要求を受けた場合に、該指定されたカウンタのカウント値を要求元に供給すると共に、該参照要求を受けた時点のカウント値を、前記複数のカウンタの全てについてセットにして、該セットにIDを付して所定のメモリに保存し、そのIDを前記要求元に供給する第1の手段と、
IDを指定して第2の参照要求を受けた場合に、該指定されたIDを付して前記所定のメモリに保存されているセットに含まれるカウント値を要求元に供給する第2の手段として機能させるためのプログラム。
【請求項9】
請求項7又は8に記載のプログラムであって、
前記コンピュータにおいて前記複数のカウンタのカウント値は不揮発性メモリに記憶させ、または不揮発性メモリに記憶させた値から演算可能であり、
前記カウント値のセットを記憶させる所定のメモリは揮発性メモリであることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図6D】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図6D】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【公開番号】特開2013−65944(P2013−65944A)
【公開日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願番号】特願2011−202048(P2011−202048)
【出願日】平成23年9月15日(2011.9.15)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願日】平成23年9月15日(2011.9.15)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]