(58)【調査した分野】(Int.Cl.,DB名)
前記更新通知送信手段は、前記更新通知の送信後、前記表示完了通知を受信する前に前記記憶領域に前記状況データ又は前記状況画像データが書き込まれた場合には、前記更新通知を前記第1制御手段に送信しない
請求項1乃至4のいずれか一項に記載の電子機器。
【発明を実施するための形態】
【0017】
<ハードウェア構成>
図1は、画像形成装置1000のハードウェア構成を示す図である。画像形成装置1000は、本発明に係る電子機器の一例である。画像形成装置1000の主な構成要素は、第1制御手段(コントローラ)100、第2制御手段(デバイスコントローラ)200及びデバイス300である。第1制御手段100は、OS(Operating System)として例えばLinux(登録商標)を実行し、第2制御手段200を制御する。第2制御手段200は、OSとして例えばRTOS(Real Time OS)を実行し、デバイス300を制御する。
【0018】
第1制御手段100は、CPU(Central Processing Unit)101、RAM(Random Access Memory)102、ROM(Read Only Memory)103、HDD(Hard Disk Drive)104、LAN(Local Area Network)端子105、通信I/F(Interface)106及びUI(User Interface)107を備え、これらの構成要素はバス108に接続されている。
【0019】
CPU101は、RAM102をワークエリアとして、プログラムを実行する。ROM103には、ブートローダなどが記憶されている。HDD104には、OSやアプリケーションプログラムなどが記憶されている。LAN端子105には、通信線が接続され、CPU101は、LAN経由で外部の情報処理装置などと通信する。通信I/F106は、第2制御手段200に備えられた通信I/F204と通信線で接続される。UI107は、キーパッドやタッチパネルなど(図示省略)を備え、ユーザの操作を受け付けて、受け付けた操作に応じた信号をCPU101に出力する。また、タッチパネルには、デバイス300の状況を表す画像(以下、状況画像という。)が表示される。
【0020】
第2制御手段200は、CPU201、RAM202、ROM203及び通信I/F204を備え、これらの構成要素はバス205に接続されている。ROM203には、OSが記憶されており、CPU201は、CPU101からの命令に従ってROM203からOSを読み出して実行する。
【0021】
画像形成装置1000は、1つ以上のデバイス300を備える。デバイス300とは、例えばイメージスキャナ301、プリンタ302などである。
イメージスキャナ301は、光源、光学系、撮像素子など(図示省略)を備え、光源が原稿に光を照射し、原稿で反射された反射光が光学系を介して撮像素子に入射し、撮像素子が原稿の画像を表す信号を生成して出力する。
プリンタ302は、例えば電子写真方式で画像を印刷するプリンタであり、プリントエンジン、紙などの記録媒体を収容する収容部、記録媒体を搬送路に沿って搬送する搬送機構などを備え(図示省略)、第1制御手段100から第2制御手段200を介して供給された画像データに基づく画像を記録媒体に印刷する。
【0022】
記憶領域400は、例えばRAMであり、CPU101とCPU201の両方からアクセスされる。記憶領域400は、第1制御手段100や第2制御手段200とは別の基板に設けられていてもよいし、第1制御手段100と第2制御手段200のいずれか基板上に設けられていてもよい。
【0023】
<機能構成>
図2は、画像形成装置1000の機能構成を示す図である。
第1制御手段100は、読込手段11、生成手段12、表示手段13及び表示完了通知送信手段14を備える。第2制御手段200は、検知手段21、状況データ書込手段22、状況画像データ書込手段23及び更新通知送信手段24を備える。
【0024】
最初に、第2制御手段200について説明する。
検知手段21は、デバイス300の状況の変化を検知する。具体的には、CPU201は、デバイス300の状況を表す状況データをデバイス300から定期的に取得する。例えば、プリンタ302の場合、状況データは、プリンタ302が印刷中の画像を特定するデータ、プリンタの搬送路上における紙の位置を表すデータ、収容部における紙の残量を表すデータなどを含む。CPU201は、状況データをプリンタ302から定期的に取得してRAM202に記憶し、最新の状況データと前回取得した状況データとを比較することによってプリンタ302の状況の変化を検知する。
【0025】
次に、状況データ書込手段22について説明する。状況データ書込手段22は、検知手段21がデバイス300の状況の変化を検知した場合に、デバイス300の状況を表す状況データを記憶領域400に書き込む。具体的には、CPU201は、デバイス300の状況の変化を検知した場合に、RAM202に記憶された最新の状況データを読み出して記憶領域400に書き込む。ここで、CPU201は、当該データが状況データであることが認識されるように、例えば、状況データの特定のビットにデータの種類を示すデータ種類フラグ「0」を設定する。
【0026】
次に、更新通知送信手段24について説明する。更新通知送信手段24は、記憶領域400への書き込みが行われたならば、第1制御手段100に更新通知を送信する。具体的には、記憶領域400に書き込まれるデータは、前述の状況データと状況画像データとのいずれかである。状況画像データとは、デバイス300の状況を表す画像を表示するための画像データである(詳細は、後述する)。CPU201は、記憶領域400に状況データ又は状況画像データが書き込まれた場合に、第1制御手段100に更新通知を送信する。
ただし、更新通知送信手段24は、更新通知の送信後、表示完了通知を受信する前に記憶領域400に状況データ又は状況画像データが書き込まれた場合には、更新通知を第1制御手段100に送信しない。表示完了通知については、後述する。
【0027】
次に、状況画像データ書込手段23について説明する。状況画像データ書込手段23は、更新通知送信手段24による更新通知の送信後、記憶領域400の記憶内容に基づく表示が完了したことを表す表示完了通知を第1制御手段100から受信する前に検知手段21がデバイス300の状況の変化を検知し、且つ、予め定められた条件に該当する処理が第2制御手段200で実行中でない場合に、デバイス300の状況を表す状況画像を表示するための状況画像データを生成し、当該状況画像データを記憶領域400に書き込む。具体的には、次のとおりである。
【0028】
CPU201は、次の2つの要件を満たした場合に、状況画像データを生成する。
(1)第1要件
更新通知の送信後、表示完了通知を受信する前にデバイス300の状況の変化を検知したことを第1要件とする。記憶領域400には、状況データ又は状況画像データが書き込まれる。第1制御手段100は、記憶領域400に書き込まれた状況データ又は状況画像データに基づいてUI107にデバイス300の状況を表す状況画像を表示するのであるが、状況画像の表示が完了したならば表示完了通知を第2制御手段200に送信するように構成されている。つまり、更新通知の送信後、表示完了通知を受信する前にデバイス300の状況の変化を検知したということは、状況画像を表示するための処理の最中にデバイス300の状況が変化したということを意味する。
【0029】
(2)第2要件
予め定められた条件に該当する処理が第2制御手段200で実行中でないことを第2要件とする。予め定められた条件とは、例えば、当該処理がデバイス300の制御に関連する処理であるという条件である。デバイス300の制御に関連する処理は、状況画像データの生成よりも優先して実行されるべき処理である。CPU201は、デバイス300の制御に関連する処理が第2制御手段200で実行中でないならば、予め定められた条件に該当する処理が第2制御手段200で実行中でないと判定する。
【0030】
上記の第1要件と第2要件とを満たした場合に、CPU201は、状況画像データを生成し、生成した状況画像データを記憶領域400に書き込む。状況画像データは、例えば、印刷中の画像を縮小した縮小画像(いわゆる、サムネイル)、画像形成装置1000の構造を表す模式図上で紙の位置を表す画像、紙の残量を数値やグラフで表す画像などを表すラスタ形式の画像データである。ここで、CPU201は、当該データが状況画像データであることが認識されるように、前述の状況データのデータ種類フラグと同じビットにデータ種類フラグ「1」を設定する。
【0031】
また、状況データ書込手段22は、更新通知送信手段24による更新通知の送信後、表示完了通知を受信する前に検知手段21がデバイス300の状況の変化を検知し、且つ、予め定められた条件に該当する処理が第2制御手段200で実行中である場合に、状況データを記憶領域400に書き込む。すなわち、第1要件を満たすが第2要件を満たさない場合には、CPU201は、状況画像データを生成せずに、状況データを記憶領域400に書き込む。
【0032】
なお、状況画像データ書込手段23は、記憶領域400に状況画像データを書き込んだ後に表示完了通知を受信し、当該表示完了通知の受信後に最初に検知手段21がデバイス300の状況の変化を検知し、且つ、予め定められた条件に該当する処理が第2制御手段200で実行中でない場合に、状況画像データを生成し、当該状況画像データを記憶領域400に書き込む。
【0033】
次に、第1制御手段100について説明する。
読込手段11は、更新通知を受信した場合に、記憶領域400から状況データ又は状況画像データを読み込む。前述のとおり、記憶領域400に状況データ又は状況画像データが書き込まれると、第2制御手段200から更新通知が送信される。CPU101は、この更新通知を受信した場合に、記憶領域400からデータを読み込む。
【0034】
次に、生成手段12について説明する。生成手段12は、読込手段11が状況データを読み込んだ場合に、当該状況データに基づく状況画像を表示するための状況画像データを生成する。具体的には、CPU101は、記憶領域400から読み込んだデータに含まれるデータ種類フラグが「0」であるならば、当該データが状況データであると判定し、データ種類フラグが「1」であるならば、当該データが状況画像データであると判定する。CPU101は、当該データが状況データであると判定した場合に、当該状況データに基づいて、例えば、印刷中の画像を縮小した縮小画像(いわゆる、サムネイル)、画像形成装置1000の構造を表す模式図上で紙の位置を表す画像、紙の残量を数値やグラフで表す画像などを表すラスタ形式の画像データである状況画像データを生成する。
【0035】
つぎに、表示手段13について説明する。表示手段13は、12生成手段が生成した状況画像データに基づく状況画像、又は、読込手段11が読み込んだ状況画像データに基づく状況画像を表示する。具体的には、データ種類フラグが「0」であるならば、CPU101は、状況データから生成した状況画像データに基づく状況画像をUI107のタッチパネルに表示する。一方、データ種類フラグが「1」であるならば、CPU101は、記憶領域400から読み込んだ状況画像データに基づく状況画像をタッチパネルに表示する。
【0036】
次に、表示完了通知送信手段14について説明する。表示完了通知送信手段14は、表示手段13による状況画像の表示が完了したならば、第2制御手段200に表示完了通知を送信する。具体的には、CPU101は、状況画像データを状況データから生成したか、状況画像データを記憶領域400から読み込んだかに関わらず、状況画像の表示が完了したならば、第2制御手段200に表示完了通知を送信する。
【0037】
<動作>
次に、画像形成装置1000の動作について説明する。この動作は、画像形成装置1000に印刷指示が入力された場合に開始される。
<第1制御手段の動作>
図3は、第1制御手段100が実行する処理の手順を示す流れ図である。
ステップS101においては、読込手段11としてのCPU101が、更新通知を受信したか否かを定期的に判定し、更新通知を受信したと判定した場合(ステップS101:YES)には、ステップS102に進む。
ステップS102においては、読込手段11としてのCPU101が、記憶領域400からデータを読み込む。このデータは、状況データ又は状況画像データである。
【0038】
ステップS103においては、CPU101が、記憶領域400から読み込んだデータが状況画像データであるか否かをデータ種類フラグによって判定し、状況画像データであると判定した場合(ステップS103:YES)には、ステップS105に進み、状況画像データでないと判定した場合(ステップS103:NO)には、ステップS104に進む。
ステップS104においては、生成手段12としてのCPU101が、記憶領域400から読み込んだ状況データに基づいて状況画像データを生成する。
ステップS105においては、表示手段13としてのCPU101が、状況画像データに基づく状況画像をUI107のタッチパネルに表示する。
ステップS106においては、表示完了通知送信手段14としてのCPU101が、表示完了通知を第2制御手段200に送信する。
【0039】
<第2制御手段の動作>
図4は、第2制御手段200が実行する処理の手順を示す流れ図である。
ステップS201においては、CPU201が、カウンタCOUNTに0を設定する。
ステップS202においては、検知手段21としてのCPU201が、デバイス300から定期的に状況データを取得し、デバイス300の状況が変化したか否かを状況データに基づいて判定する。デバイス300の状況が変化したと判定した場合(ステップS202:YES)には、ステップS203に進む。
【0040】
ステップS203においては、CPU201が、更新通知の送信後に表示完了通知を受信したか否かを判定し、表示完了通知を受信したと判定した場合(ステップS203:YES)には、ステップS204に進み、表示完了通知を受信しなかったと判定した場合(ステップS203:NO)には、ステップS207に進む。
ステップS204においては、CPU201が、カウンタTMPに0を設定する。
ステップS205においては、CPU201が、カウンタCOUNTの値が0より大きいか否かを判定し、0である場合(ステップS205:NO)には、ステップS206に進み、0より大きい場合(ステップS205:YES)には、ステップS209に進む。
ステップS206においては、状況データ書込手段22としてのCPU201が、状況データを記憶領域400に書き込む。
【0041】
一方、ステップS207においては、CPU201が、ステップS202で検知したデバイスの状況変化が当該印刷指示の入力後の最初の状況変化であるか否かを判定し、最初の状況変化であると判定した場合(ステップS207:YES)には、ステップS204に進み、最初の状況変化でないと判定した場合(ステップS207:NO)には、ステップS208に進む。
ステップS208においては、CPU201が、カウンタCOUNTの値に1を加算した値をカウンタTMPに設定する。
【0042】
ステップS209においては、CPU201が、予め定められた条件に該当する処理(例えば、デバイス300の制御に関連する処理)が第2制御手段200で実行中であるか否かを判定し、実行中であると判定した場合(ステップS209:YES)には、ステップS210に進み、実行中でないと判定した場合(ステップS209:NO)には、ステップS211に進む。
ステップS210においては、状況データ書込手段22としてのCPU201が、状況データを記憶領域400に書き込む。
【0043】
一方、ステップS211においては、状況画像データ書込手段23としてのCPU201が、状況データに基づいて状況画像データを生成する。
ステップS212においては、状況画像データ書込手段23としてのCPU201が、生成した状況画像データを記憶領域400に書き込む。
ステップS213においては、CPU201が、カウンタTMPの値が0であるか否かを判定し、0であると判定した場合(ステップS213:YES)には、ステップS214に進み、0でないと判定した場合(ステップS213:NO)には、ステップS215に進む。
ステップS214においては、更新通知送信手段24としてのCPU201が、更新通知を第1制御手段100に送信する。
ステップS215においては、CPU201が、カウンタTMPの値をカウンタCOUNTに設定し、ステップS202に進む。
【0044】
次に、画像形成装置1000の動作の具体例を示す。
<具体例1>
図5は、具体例1を示すシーケンス図である。具体例1は、本実施形態の基本的な動作である。
ステップS301においては、第2制御手段200が、デバイス300の状況変化を検知する(
図4のステップS201:COUNT=0、ステップS202:YES)。
ステップS302においては、第2制御手段200が、状況データを記憶領域400に書き込む(
図4のステップS203:NO、ステップS207:YES、ステップS204:TMP=0、ステップS205:NO、ステップS206)。
ステップS303においては、第2制御手段200が、更新通知を第1制御手段100に送信する(
図4のステップS213:YES、ステップS214、ステップS215:COUNT=0、
図3のステップS101:YES)。
【0045】
ステップS304においては、第1制御手段100が、記憶領域400からデータを読み込む(
図3のステップS102)。このデータは、状況データである(
図3のステップS103:NO)。
ステップS305においては、第1制御手段100が、状況データに基づいて状況画像データを生成する(
図3のステップS104)。
ステップS306においては、第1制御手段100が、状況画像データに基づく状況画像を表示する(
図3のステップS105)。
ステップS307においては、第1制御手段100が、表示完了通知を第2制御手段200に送信する(
図3のステップS106)。
【0046】
ステップS308においては、第2制御手段200が、デバイスの状況変化を検知する(
図4のステップS202:YES)。
ステップS309においては、第2制御手段200が、状況データを記憶領域400に書き込む(
図4のステップS203:YES、ステップS204:TMP=0、ステップS205:NO、ステップS206)。
ステップS310においては、第2制御手段200が、更新通知を第1制御手段100に送信する(
図4のステップS213:YES、ステップS214、ステップS215:COUNT=0、
図3のステップS101:YES)。
【0047】
ステップS311においては、第1制御手段100が、記憶領域400からデータを読み込む(
図3のステップS102)。このデータは、状況データである(
図3のステップS103:NO)。
ステップS312においては、第1制御手段100が、状況データに基づいて状況画像データを生成する(
図3のステップS104)。
ステップS313においては、第1制御手段100が、状況画像データに基づく状況画像を表示する(
図3のステップS105)。
ステップS314においては、第1制御手段100が、表示完了通知を第2制御手段200に送信する(
図3のステップS106)。
【0048】
<具体例2>
図6は、具体例2を示すシーケンス図である。具体例2は、第2制御手段200が状況画像データの生成を代行する例である。
ステップS401においては、第2制御手段200が、デバイス300の状況変化を検知する(
図4のステップS201:COUNT=0、ステップS202:YES)。
ステップS402においては、第2制御手段200が、状況データを記憶領域400に書き込む(
図4のステップS203:NO、ステップS207:YES、ステップS204:TMP=0、ステップS205:NO、ステップS206)。
ステップS403においては、第2制御手段200が、更新通知を第1制御手段100に送信する(
図4のステップS213:YES、ステップS214、ステップS215:COUNT=0、
図3のステップS101:YES)。
【0049】
ステップS404においては、第1制御手段100が、例えば状況画像の表示と関係のない処理を開始したため、この処理が終わるまでは記憶領域400からのデータの読み込みができなくなっている。
ステップS405においては、第1制御手段100がステップS404の処理を実行している間に、第2制御手段200が、デバイス300の状況変化を検知する(
図4のステップS202:YES)。
ステップS406においては、第2制御手段200が、状況画像データを生成する(
図4のステップS203:NO、ステップS207:NO、ステップS208:TMP=1、ステップS209:NO、ステップS211)。
ステップS407においては、第2制御手段200が、生成した状況画像データを記憶領域400に書き込む(
図4のステップS212、ステップS213:NO、ステップS215:COUNT=1)。
【0050】
ステップS408においては、第1制御手段100によるステップS404の処理が終了したため、第1制御手段100が、記憶領域400からデータを読み込む(
図3のステップS102)。このデータは、状況画像データである(
図3のステップS103:YES)。
ステップS409においては、第1制御手段100が、読み込んだ状況画像データに基づく状況画像を表示する(
図3のステップS105)。
ステップS410においては、第1制御手段100が、表示完了通知を第2制御手段200に送信する(
図3のステップS106)。
【0051】
ステップS411においては、第2制御手段200が、デバイス300の状況変化を検知する(
図4のステップS202:YES)。
ステップS412においては、第2制御手段200が、状況画像データを生成する(
図4のステップS203:YES、ステップS204:TMP=0、ステップS205:YES、ステップS209:NO、ステップS211)。
ステップS413においては、第2制御手段200が、生成した状況画像データを記憶領域400に書き込む(
図4のステップS212)。
ステップS414においては、第2制御手段200が、更新通知を第1制御手段100に送信する(
図4のステップS213:YES、ステップS214、ステップS215:COUNT=0、
図3のステップS101:YES)。
【0052】
ステップS415においては、第1制御手段100が、記憶領域400からデータを読み込む(
図3のステップS102)。このデータは、状況画像データである(
図3のステップS103:YES)。
ステップS416においては、第1制御手段100が、読み込んだ状況画像データに基づく状況画像を表示する(
図3のステップS105)。
ステップS417においては、第1制御手段100が、表示完了通知を第2制御手段200に送信する(
図3のステップS106)。
【0053】
ステップS418においては、第2制御手段200が、デバイス300の状況変化を検知する(
図4のステップS202:YES)。
ステップS419においては、第2制御手段200が、状況データを記憶領域400に書き込む(
図4のステップS203:YES、ステップS204:TMP=0、ステップS205:NO、ステップS206)。
【0054】
<具体例3>
図7は、具体例3を示すシーケンス図である。具体例3は、予め定められた条件に該当する処理が第2制御手段200で実行中であるため、第2制御手段200が状況画像データの生成を代行しない例である。
ステップS501においては、第2制御手段200が、デバイス300の状況変化を検知する(
図4のステップS201:COUNT=0、ステップS202:YES)。
ステップS502においては、第2制御手段200が、状況データを記憶領域400に書き込む(
図4のステップS203:NO、ステップS207:YES、ステップS204:TMP=0、ステップS205:NO、ステップS206)。
ステップS503においては、第2制御手段200が、更新通知を第1制御手段100に送信する(
図4のステップS213:YES、ステップS214、ステップS215:COUNT=0、
図3のステップS101:YES)。
【0055】
ステップS504においては、第1制御手段100が、状況画像の表示と関係のない処理を開始したため、この処理が終わるまでは記憶領域400からのデータの読み込みができなくなっている。
ステップS505においては、第1制御手段100がステップS504の処理を実行している間に、第2制御手段200が、デバイス300の状況変化を検知する(
図4のステップS202:YES)。ただし、状況画像データの生成よりも優先度の高い処理(例えば、デバイス300の制御に関連する処理)が第2制御手段200で実行中であるため、第2制御手段200は、状況画像データの生成を行わない。
ステップS506においては、第2制御手段200が、状況データを記憶領域400に書き込む(
図4のステップS203:NO、ステップS207:NO、ステップS208:TMP=1、ステップS209:YES、ステップS210、ステップS213:NO、ステップS215:COUNT=1)。
【0056】
ステップS507においては、第1制御手段100によるステップS504の処理が終了したため、第1制御手段100が、記憶領域400からデータを読み込む(
図3のステップS102)。このデータは、状況データである(
図3のステップS103:NO)。
ステップS508においては、第1制御手段100が、状況データに基づいて状況画像データを生成する(
図3のステップS104)。
ステップS509においては、第1制御手段100が、状況画像データに基づく状況画像を表示する(
図3のステップS105)。
【0057】
ステップS510においては、第2制御手段200が、デバイス300の状況変化を検知する(
図4のステップS202:YES)。ただし、ここでも状況画像データの生成よりも優先度の高い処理が第2制御手段200で実行中であるため、第2制御手段200は、状況画像データの生成を行わない。
ステップS511においては、第2制御手段200が、状況データを記憶領域400に書き込む(
図4のステップS203:NO、ステップS207:NO、ステップS208:TMP=2、ステップS209:YES、ステップS210、ステップS213:NO、ステップS215:COUNT=2)。
【0058】
ステップS512においては、第1制御手段100が、ステップS509における状況画像の表示が完了したため、表示完了通知を第2制御手段200に送信する(
図3のステップS106)。
ステップS513においては、第1制御手段100が、状況画像の表示と関係のない処理を開始したため、この処理が終わるまでは記憶領域400からのデータの読み込みができなくなっている。
【0059】
ステップS514においては、第2制御手段200が、デバイス300の状況変化を検知する(
図4のステップS202:YES)。ただし、ここでも状況画像データの生成よりも優先度の高い処理が第2制御手段200で実行中であるため、第2制御手段200は、状況画像データの生成を行わない。
ステップS515においては、第2制御手段200が、状況データを記憶領域400に書き込む(
図4のステップS203:YES、ステップS204:TMP=0、ステップS205:YES、ステップS209:YES、ステップS210)。
ステップS516においては、第2制御手段200が、更新通知を第1制御手段100に送信する(
図4のステップS213:YES、ステップS214、ステップS215:COUNT=0、
図3のステップS101:YES)。
【0060】
ステップS517においては、第1制御手段100が、状況画像の表示と関係のない処理を開始したため、この処理が終わるまでは記憶領域400からのデータの読み込みができなくなっている。
ステップS518においては、第2制御手段200が、デバイス300の状況変化を検知する(
図4のステップS202:YES)。ただし、ここでも状況画像データの生成よりも優先度の高い処理が第2制御手段200で実行中であるため、第2制御手段200は、状況画像データの生成を行わない。
ステップS519においては、第2制御手段200が、状況データを記憶領域400に書き込む(
図4のステップS203:NO、ステップS207:NO、ステップS208:TMP=1、ステップS209:YES、ステップS210、ステップS213:NO、ステップS215:COUNT=1)。
【0061】
ステップS520においては、第1制御手段100によるステップS517の処理が終了したため、第1制御手段100が、記憶領域400からデータを読み込む(
図3のステップS102)。このデータは、状況データである(
図3のステップS103:NO)。
ステップS521においては、第1制御手段100が、状況データに基づいて状況画像データを生成する(
図3のステップS104)。
ステップS522においては、第1制御手段100が、状況画像データに基づく状況画像を表示する(
図3のステップS105)。
【0062】
具体例2によって示されるように、本実施形態では、第1制御手段100において状況画像データを生成するための処理能力が不足している場合には、第2制御手段200が状況画像データを生成する。よって、本実施形態によれば、デバイス300の状況の変化に対する表示の遅れが少なくなる。
また、本実施形態では、予め定められた条件に該当する処理が第2制御手段200で実行中でない場合に第2制御手段200が状況画像データを生成し、予め定められた条件に該当する処理が第2制御手段200で実行中である場合に第2制御手段200が状況画像データを生成せずに状況データを記憶領域に書き込む。よって、本実施形態によれば、本構成を備えない場合と比べて、第2制御手段200によるデバイスの制御に与える影響が少なくなる。また、第2制御手段200が状況画像データを生成しない場合でも、記憶領域400の記憶内容が最新の状況データに更新される。
【0063】
また、本実施形態では、更新通知の送信後、表示完了通知を受信する前に記憶領域400に状況データ又は状況画像データが書き込まれた場合には、更新通知を送信しない。よって、本実施形態によれば、本構成を備えない場合と比べて、第2制御手段200から第1制御手段100への通信量が抑制される。
また、本実施形態では、記憶領域400に状況画像データを書き込んだ後に表示完了通知を受信し、当該表示完了通知の受信後に最初にデバイス300の状況の変化を検知し、且つ、予め定められた条件に該当する処理が第2制御手段200で実行中でない場合に、第2制御手段200が状況画像データを生成する。よって、本実施形態によれば、本構成を備えない場合と比べて、状況画像の表示の完了後の第1制御手段100の負荷の増加が抑制される。
また、具体例3によって示されるように、本実施形態では、予め定められた条件に該当する処理が第2制御手段200で実行中である場合に第2制御手段200が状況データを記憶領域400に書き込む。よって、本実施形態によれば、第2制御手段200が状況画像データを生成することができない場合でも、記憶領域400の記憶内容が最新の状況データに更新される。
【0064】
<変形例>
実施形態を次のように変形してもよい。また、実施形態と変形例を組み合わせてもよい。また、複数の変形例を組み合わせてもよい。
<変形例1>
実施形態では、第1要件(更新通知の送信後、表示完了通知を受信する前にデバイス300の状況の変化を検知した)を満たすが第2要件(予め定められた条件に該当する処理が第2制御手段200で実行中でない)を満たさない場合には第2制御手段が状況画像データを生成せずに状況データを記憶領域400に書き込む例を示したが、第1要件を満たすが第2要件を満たさない場合であっても第2制御手段が状況画像データを生成するようにしてもよい。
【0065】
<変形例2>
実施形態では、更新通知の送信後、表示完了通知を受信する前に記憶領域400に状況データ又は状況画像データが書き込まれた場合には更新通知を第1制御手段100に送信しない例を示したが、記憶領域400に状況データ又は状況画像データが書き込まれた場合に無条件に更新通知を第1制御手段100に送信するようにしてもよい。
【0066】
<変形例3>
記憶領域400への状況データ又は状況画像データの書き込みは、追記よりも上書きが望ましい。要するに、記憶領域400上で状況データ又は状況画像データが最新のものに更新されていればよい。
【0067】
<変形例4>
実施形態では、第1制御手段100が実行するOSの一例としてLinuxの例を示したが、第1制御手段100が実行するOSは、Linux以外のOSでもよい。
実施形態では、第2制御手段200が実行するOSの一例としてRTOSの例を示したが、第2制御手段200が実行するOSは、Linuxなどの汎用OSでもよい。
実施形態では、第1制御手段と第2制御手段をそれぞれ専用のハードウェアとソフトウェアで実現する例を示したが、単一のCPUでLinuxとRTOSを実行する仮想マシンによって第1制御手段と第2制御手段を実現してもよい。
【0068】
<変形例5>
実施形態では、画像形成装置1000に備えられたデバイス300の例としてイメージスキャナ301、プリンタ302の例を示したが、デバイス300はいかなる種類のデバイスでもよい。
実施形態では、画像形成装置1000が第1制御手段(コントローラ)100と第2制御手段(デバイスコントローラ)200とデバイス300とを含む例を示したが、
図8に示すように、第1制御手段100を画像形成装置1000から分離して制御装置として構成し、第1制御手段100と第2制御手段200を通信線で接続するようにしてもよい。
実施形態では、第1制御手段100のCPU101と第2制御手段200のCPU201がプログラムを実行することによって画像形成装置1000を動作させる例を示したが、このプログラムを、光記録媒体、半導体メモリ等、コンピュータで読み取り可能な記録媒体に記録して提供し、この記録媒体からプログラムを読み取ってHDD104などに記憶させるようにしてもよい。また、このプログラムを電気通信回線経由で提供してもよい。また、実施形態と同様の機能をハードウェアで実装してもよい。