(57)【要約】【課題】単方向通信において、ユーザが複数のファイルの再送信を行う際に、簡単な操作で再送信することができ、且つ、同じファイルの出力処理を繰り返し実行してしまうことのないようにする。【解決手段】マルチファンクションプリンタ１０は、携帯電話８０から送信された複数の画像ファイルを受信したときには、今回受信した画像ファイルのうちデータの欠損がない画像ファイルのファイル名をＲＡＭ７６に記憶すると共に、データの欠損がない画像ファイルの印刷処理が実行されるようプリンタユニット２０を制御する。その後再び同じ複数の画像ファイルを受信したときには、今回受信した画像ファイルのうち前回データの欠損がないファイルとしてＲＡＭ７６にそのファイル名が記憶されず今回データの欠損がないファイルと判定されたものの印刷処理が実行されるようプリンタユニット２０を制御する。【選択図】図１
2008112436.tif 000002
【特許請求の範囲】
【請求項１】
通信相手から複数のファイルをファイル束として単方向通信により受信可能な受信手段と、
前記受信手段が受信したファイルに基づいて所定の出力処理を実行可能な処理実行手段と、
前記受信手段が受信した前記ファイル束の中にデータ欠損のないファイルが存在したときには該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御する一方、前記受信手段が受信した前記ファイル束の中にデータ欠損のあるファイルが存在したときには前記受信手段が前記ファイル束を再受信するのを待ち、前記受信手段が前記ファイル束を再受信したときには該ファイル束のうち前記所定の出力処理が実行されていないファイルであってデータ欠損が解消されたものに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御する処理制御手段と、
を備えたファイル処理装置。
【請求項２】
請求項１に記載のファイル処理装置であって、
前記受信手段が受信したファイルの識別子を記憶可能な記憶手段を備え、
前記処理制御手段は、前記受信手段が受信した前記ファイル束に含まれる複数のファイルのうちデータ欠損のない正常ファイルの識別子とデータ欠損のある異常ファイルの識別子とを区別して前記記憶手段に記憶し、前記ファイル束の中に正常ファイルが存在したときには該各正常ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御し、前記ファイル束の中に異常ファイルが存在したときには前記受信手段が前記通信相手から前記ファイル束を再受信するのを待ち、前記受信手段が前記通信相手から前記ファイル束を再受信したときには前回まで正常ファイルとして前記記憶手段に記憶されておらず今回正常ファイルと判定されたもののみ該ファイルの識別子を正常ファイルの識別子として扱うと共に該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御する、
ファイル処理装置。
【請求項３】
請求項２に記載のファイル処理装置であって、
ユーザに情報を報知可能な報知手段を備え、
前記処理制御手段は、前記ファイル束の中に異常ファイルが存在したときには、ユーザに前記ファイル束の再送を促すよう前記報知手段を制御したうえで前記受信手段が前記通信相手から前記ファイル束を再受信するのを待つ、
ファイル処理装置。
【請求項４】
請求項２又は３に記載のファイル処理装置であって、
前記ファイル束の再送信を待機する状態を解除する待機解除指示をユーザが入力可能な解除指示入力手段を備え、
前記処理制御手段は、前記ファイル束の中に異常ファイルが存在したときには、ユーザによって前記待機解除指示が前記解除指示入力手段を介して入力されたか否かを判定し、該待機解除指示が入力されたときには前記識別子についての記憶状態をリセットするよう前記記憶手段を制御する、
ファイル処理装置。
【請求項５】
前記処理制御手段は、ファイル名を前記識別子として利用する、
請求項２〜４のいずれか１項に記載のファイル処理装置。
【請求項６】
前記所定の出力処理は、印刷処理である、
請求項１〜５のいずれか１項に記載のファイル処理装置。
【請求項７】
前記受信手段は、前記通信相手から前記複数のファイルをパケット単位で単方向通信により受信可能であり、
前記処理制御手段は、前記ファイル束の中にすべてのパケットが揃っているファイルが存在したときには該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御する一方、前記ファイル束の中にいずれかのパケットが欠落しているファイルが存在したときには前記受信手段が前記通信相手から前記ファイル束をパケット単位で再受信するのを待ち、前記受信手段が前記通信相手から前記ファイル束をパケット単位で再受信したときには該ファイル束のうち前記所定の出力処理が実行されていないファイルについてすべてのパケットが揃ったとき該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御する、
請求項１に記載のファイル処理装置。
【請求項８】
前記処理制御手段は、前記受信手段が正常に受信した正常パケットを所定のパケット保存手段に保存し、前記ファイル束の中にすべてのパケットが正常パケットとして前記パケット保存手段に保存されているファイルが存在したときには該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御する一方、前記ファイル束の中にいずれかのパケットが正常パケットとして前記パケット保存手段に保存されていないファイルが存在したときには前記受信手段が前記通信相手から前記ファイル束をパケット単位で再受信するのを待ち、前記受信手段が前記通信相手から前記ファイル束をパケット単位で再受信したときには該ファイル束のうち前記所定の出力処理が実行されていないファイルについてすべてのパケットが正常パケットとして前記パケット保存手段に保存されていたとき該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御する、
請求項７に記載のファイル処理装置。
【請求項９】
請求項７又は８に記載のファイル処理装置であって、
ユーザに情報を報知可能な報知手段を備え、
前記処理制御手段は、前記受信手段が前記通信相手から前記ファイル束をパケット単位で再受信するにあたり、該ファイル束のうち前記所定の出力処理が実行されていない最後のファイルについてすべてのパケットが揃ったときには、該ファイルの残りのパケットの受信が終了する前に直ちに受信終了がユーザに報知されるよう前記報知手段を制御する、
ファイル処理装置。
【請求項１０】
通信相手から複数のファイルをファイル束として単方向通信により受信し、受信した各ファイルに基づいて所定の出力処理を実行するコンピュータ・ソフトウェアによるファイル処理方法であって、
（ａ）前記通信相手から受信した前記ファイル束の中にデータ欠損のないファイルが存在したときには該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御するステップと、
（ｂ）前記通信相手から受信した前記ファイル束の中にデータ欠損のあるファイルが存在したときには前記受信手段が前記通信相手から前記ファイル束を再受信するのを待ち、前記受信手段が前記通信相手から前記ファイル束を再受信したときには該ファイル束のうち前記所定の出力処理が実行されていないファイルについてデータ欠損が解消されたとき該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御するステップと、
を含むファイル処理方法。
【請求項１１】
請求項１０に記載のファイル処理方法の各ステップを１又は複数のコンピュータに実現させるためのプログラム。
【請求項１２】
送信対象として選択された複数のファイルをファイル束として単方向通信により通信相手へ送信可能な送信手段と、
前記ファイル束の送信指示をユーザが入力可能な送信指示入力手段と、
前記ファイル束の再送信指示をユーザが入力可能な再送信指示入力手段と、
ユーザによって前記送信指示が前記送信指示入力手段を介して入力されたとき、前記ファイル束が前記通信相手へ送信されるよう前記送信手段を制御し、その後、ユーザによって前記再送信指示が前記再送信指示入力手段を介して入力されたとき、前記ファイル束が前記通信相手へ再度送信されるよう前記送信手段を制御する送信制御手段と、
を備えたファイル送信装置。
【請求項１３】
送信対象として選択された複数のファイルをファイル束として単方向通信により通信相手へ送信するコンピュータ・ソフトウェアによるファイル送信方法であって、
（ａ）ユーザによって送信指示が入力されたとき、前記ファイル束を前記通信相手へ送信するステップと、
（ｂ）その後、ユーザによって再送信指示が入力されたとき、前記ファイル束を前記通信相手へ再度送信するステップと、
を含むファイル送信方法。
【請求項１４】
請求項１３に記載のファイル送信方法の各ステップを１又は複数のコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル処理装置、ファイル送信装置、ファイル処理方法、ファイル送信方法及びそれらの方法のプログラムに関する。
【背景技術】
【０００２】
従来より、ＩｒＤＡ（ＩｎｆｒａＲｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）規格による赤外線データ通信方式がＰＤＡ、パソコン、携帯電話、ポータブルプリンタなどの各種の情報機器に多く採用されている。また、２００５年８月には、大容量コンテンツのデータ転送において高速通信を実現するため、ＩｒＳｉｍｐｌｅ規格が国際標準規格に採用された（非特許文献１参照）。このＩｒＳｉｍｐｌｅ規格は旧来からの用途のほかに新たな用途でも利用されることが期待されている。また、ＩｒＳｉｍｐｌｅ規格では、双方向通信だけでなく単方向通信の手順も提案されている。例えば、携帯電話やデジタルスチルカメラなどのデータ送信装置からプリンタなどのデータ受信装置へ画像データの転送を行う場合には、単方向通信の手順を採用すれば、ユーザは高速な画像データの転送を行うことができる。なお、プリンタがいわゆるダイレクトプリントに対応しているものであれば、画像データの転送後、送信した画像データがプリンタによって用紙に印刷される。また、ＩｒＳｉｍｐｌｅのレイヤ構造の説明図を図１５に示す。
【非特許文献１】ＩＴＸイー・グローバレッジ株式会社、他３社、“報道発表資料”、［Ｏｎｌｉｎｅ］２００５年８月２６日、ＮＴＴドコモ、［２００６年７月１７日検索］、インターネット<URL:http://www.nttdocomo.co.jp/info/news_release/page/20050826.html>
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、ＩｒＳｉｍｐｌｅ規格による単方向通信によりデータ送信装置である携帯電話からデータ受信装置であるプリンタへ画像ファイルを転送し該画像ファイルの印刷を実行する場合、携帯電話から画像ファイルを送信したとしても、プリンタがその画像ファイルを受信できないとその画像ファイルは印刷されないことがあった。このとき、ユーザは、プリンタへ送信した画像ファイルを重複することなく印刷しようとした場合は、印刷された画像ファイルをプリンタから出力される用紙を見て確認し、それ以外の画像ファイル（つまり、プリンタへ送信したが印刷されていない画像ファイル）を選択し再び送信することとなるため非常に手間がかかっていた。かといって、印刷された画像ファイルを除外することなく、前回送信した画像ファイルと同じ画像ファイルを送信したとすれば、既に印刷された画像ファイルを再び印刷することとなってしまっていた。
【０００４】
本発明は、上述した課題に鑑みなされたものであり、単方向通信において、ユーザが複数のファイルの再送信を行う際に、簡単な操作で再送信することができ、且つ、同じファイルの出力処理を繰り返し実行してしまうことのないファイル処理装置、ファイル処理方法及びそのプログラムを提供することを目的の１つとする。また、そのようなファイル処理装置に単方向通信により複数のファイルを送信するのに相応しいファイル送信装置、ファイル送信方法及びそのプログラムを提供することを目的の１つとする。
【課題を解決するための手段】
【０００５】
本発明は、上述の目的の少なくとも一部を達成するために以下の手段を採った。
【０００６】
本発明のファイル処理装置は、
通信相手から複数のファイルをファイル束として単方向通信により受信可能な受信手段と、
前記受信手段が受信したファイルに基づいて所定の出力処理を実行可能な処理実行手段と、
前記受信手段が受信した前記ファイル束の中にデータ欠損のないファイルが存在したときには該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御する一方、前記受信手段が受信した前記ファイル束の中にデータ欠損のあるファイルが存在したときには前記受信手段が前記ファイル束を再受信するのを待ち、前記受信手段が前記ファイル束を再受信したときには該ファイル束のうち前記所定の出力処理が実行されていないファイルであってデータ欠損が解消されたものに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御する処理制御手段と、
を備えたものである。
【０００７】
このファイル処理装置では、受信手段が受信したファイル束の中にデータ欠損のないファイルが存在したときには、該ファイルに基づいて所定の出力処理が実行されるよう処理実行手段を制御する。一方、受信手段が受信したファイル束の中にデータ欠損のあるファイルが存在したときには、受信手段が同じファイル束を再受信するのを待つ。そして、受信手段がそのファイル束を再受信したときには、該ファイル束のうち所定の出力処理が実行されていないファイルであってデータ欠損が解消されたものに基づいて所定の出力処理が実行されるよう処理実行手段を制御する。こうすることにより、ユーザは、未だ所定の出力処理が実行されていないファイルを選択しなおして再送信するといったような煩雑な操作を行うことなく、前回と同じファイル束をそのまま再送信すればよいため、簡単な操作で再送信することができる。また、ユーザが今回も前回と同じファイル束をそのまま再送信したとき、前回所定の出力処理の指令がなされた正常ファイルにつき、今回もその出力処理を繰り返し実行してしまうことがない。
【０００８】
ここで、所定の出力処理は、プリンタなどの印刷手段への印刷出力処理であってもよいし、ディスプレイなどの表示手段への表示出力処理であってもよいし、スピーカなどの鳴音手段への音声出力処理であってもよいし、メモリカードやハードディスクレコーダなどの記憶手段への保存処理であってもよい。
【０００９】
本発明のファイル処理装置は、前記受信手段が受信したファイルの識別子を記憶可能な記憶手段を備え、前記処理制御手段は、前記受信手段が受信した前記ファイル束に含まれる複数のファイルのうちデータ欠損のない正常ファイルの識別子とデータ欠損のある異常ファイルの識別子とを区別して前記記憶手段に記憶し、前記ファイル束の中に正常ファイルが存在したときには該各正常ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御し、前記ファイル束の中に異常ファイルが存在したときには前記受信手段が前記通信相手から前記ファイル束を再受信するのを待ち、前記受信手段が前記通信相手から前記ファイル束を再受信したときには前回まで正常ファイルとして前記記憶手段に記憶されておらず今回正常ファイルと判定されたもののみ該ファイルの識別子を正常ファイルの識別子として扱うと共に該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御するとしてもよい。こうすれば、データ欠損のない正常ファイルの識別子とデータ欠損のある異常ファイルの識別子とが区別されて記憶手段に記憶されるため、この記憶手段の記憶内容を利用することにより本発明を比較的容易に実施することが可能となる。
【００１０】
上述した記憶手段を備えた本発明のファイル処理装置は、更に、ユーザに情報を報知可能な報知手段を備え、前記処理制御手段は、前記ファイル束の中に異常ファイルが存在したときには、ユーザに前記ファイル束の再送を促すよう前記報知手段を制御したうえで前記受信手段が前記通信相手から前記ファイル束を再受信するのを待つとしてもよい。こうすれば、単方向通信であってもユーザはファイル束の再送が必要なことを知ることができるため、利便性が高い。ここで、前記処理制御手段は、前記ファイル束の中に異常ファイルが存在し且つ該異常ファイルの所定の出力処理が実行されていないときに、ユーザに前記ファイル束の再送を促すよう前記報知手段を制御するとしてもよい。
【００１１】
また、上述した記憶手段を備えた本発明のファイル処理装置は、更に、前記ファイル束の再送信を待機する状態を解除する待機解除指示をユーザが入力可能な解除指示入力手段を備え、前記処理制御手段は、前記ファイル束の中に異常ファイルが存在したときには、ユーザによって前記待機解除指示が前記解除指示入力手段を介して入力されたか否かを判定し、該待機解除指示が入力されたときには前記識別子についての記憶状態をリセットするよう前記記憶手段を制御するとしてもよい。ファイル束を送信したユーザにとって真に出力処理を望むファイルが出力処理されたあとは、他に異常ファイルがあったとしてももはやそのファイルの出力処理を望まないことがあるが、こうした場合にファイル束の再送信を待機する状態を解除することができる。
【００１２】
更に、上述した記憶手段を備えた本発明のファイル処理装置において、前記処理制御手段は、ファイル名を前記識別子として利用するとしてもよい。異なるファイルには異なるファイル名を付けることがほとんどであるから、ファイル名を識別子として利用することにより、容易に正常ファイルと異常ファイルとを区別することができる。なお、識別子としては、この他に、ファイルの作成日時分秒やファイルのサイズ等も利用することができる。
【００１３】
本発明のファイル処理装置において、
前記受信手段は、前記通信相手から前記複数のファイルをパケット単位で単方向通信により受信可能であり、前記処理制御手段は、前記ファイル束の中にすべてのパケットが揃っているファイルが存在したときには該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御する一方、前記ファイル束の中にいずれかのパケットが欠落しているファイルが存在したときには前記受信手段が前記通信相手から前記ファイル束をパケット単位で再受信するのを待ち、前記受信手段が前記通信相手から前記ファイル束をパケット単位で再受信したときには該ファイル束のうち前記所定の出力処理が実行されていないファイルについてすべてのパケットが揃ったとき該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御するとしてもよい。こうすれば、ファイル束の中のあるファイルにつき、１回目の受信で欠落したパケットがあったとしても、２回目以降の受信でその欠落したパケットを受信してすべてのパケットが揃えば出力処理が実行される。つまり、そのファイルにつき、毎回いずれかのパケットが欠落したとしても、各回で正常に受信したパケットを集めることによりすべてのパケットが揃えば出力処理が実行される。したがって、受信エラーが発生しやすい状況であってもファイル束に含まれる各ファイルの出力処理を比較的早く実行することができる。
【００１４】
このように複数のファイルをパケット単位で受信する本発明のファイル処理装置において、
前記処理制御手段は、前記受信手段が正常に受信した正常パケットを所定のパケット保存手段に保存し、前記ファイル束の中にすべてのパケットが正常パケットとして前記パケット保存手段に保存されているファイルが存在したときには該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御する一方、前記ファイル束の中にいずれかのパケットが正常パケットとして前記パケット保存手段に保存されていないファイルが存在したときには前記受信手段が前記通信相手から前記ファイル束をパケット単位で再受信するのを待ち、前記受信手段が前記通信相手から前記ファイル束をパケット単位で再受信したときには該ファイル束のうち前記所定の出力処理が実行されていないファイルについてすべてのパケットが正常パケットとして前記パケット保存手段に保存されていたとき該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御するとしてもよい。
【００１５】
また、複数のファイルをパケット単位で受信する本発明のファイル処理装置は、
ユーザに情報を報知可能な報知手段を備え、前記処理制御手段は、前記受信手段が前記通信相手から前記ファイル束をパケット単位で再受信するにあたり、該ファイル束のうち前記所定の出力処理が実行されていない最後のファイルについてすべてのパケットが揃ったときには、該ファイルの残りのパケットの受信が終了する前に直ちに受信終了がユーザに報知されるよう前記報知手段を制御する。こうすれば、再送時間の短縮化を図ることができる。
【００１６】
本発明のファイル処理方法は、
通信相手から複数のファイルをファイル束として単方向通信により受信し、受信した各ファイルに基づいて所定の出力処理を実行するコンピュータ・ソフトウェアによるファイル処理方法であって、
（ａ）前記通信相手から受信した前記ファイル束の中にデータ欠損のないファイルが存在したときには該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御するステップと、
（ｂ）前記通信相手から受信した前記ファイル束の中にデータ欠損のあるファイルが存在したときには前記受信手段が前記通信相手から前記ファイル束を再受信するのを待ち、前記受信手段が前記通信相手から前記ファイル束を再受信したときには該ファイル束のうち前記所定の出力処理が実行されていないファイルについてデータ欠損が解消されたとき該ファイルに基づいて前記所定の出力処理が実行されるよう前記処理実行手段を制御するステップと、
を含むものである。
【００１７】
このファイル処理方法によれば、ユーザは、未だ所定の出力処理が実行されていないファイルを選択しなおして再送信するといったような煩雑な操作を行うことなく、前回と同じファイル束をそのまま再送信すればよいため、簡単な操作で再送信することができる。また、ユーザが今回も前回と同じファイル束をそのまま再送信したとき、前回所定の出力処理の指令がなされた正常ファイルにつき、今回もその出力処理を繰り返し実行してしまうことがない。なお、上述した本発明のファイル処理装置が備える各種の構成によって奏される作用・機能を実現するためのステップを追加してもよい。
【００１８】
本発明のプログラムは、上述したファイル処理方法の各ステップを１又は複数のコンピュータに実行させるためのものである。このプログラムは、コンピュータが読み取り可能な記録媒体（例えばハードディスク、ＲＯＭ、ＦＤ、ＣＤ、ＤＶＤなど）に記録されていてもよいし、伝送媒体（インターネットやＬＡＮなどの通信網）を介してあるコンピュータから別のコンピュータへ配信されてもよいし、その他どのような形で授受されてもよい。このプログラムを一つのコンピュータに実行させるか複数のコンピュータに分散して実行させれば、上述したファイル処理方法の各ステップが実行されるため、上述したファイル処理方法と同様の作用効果が得られる。
【００１９】
本発明のファイル送信装置は、
送信対象として選択された複数のファイルをファイル束として単方向通信により通信相手へ送信可能な送信手段と、
前記ファイル束の送信指示をユーザが入力可能な送信指示入力手段と、
前記ファイル束の再送信指示をユーザが入力可能な再送信指示入力手段と、
ユーザによって前記送信指示が前記送信指示入力手段を介して入力されたとき、前記ファイル束が前記通信相手へ送信されるよう前記送信手段を制御し、その後、ユーザによって前記再送信指示が前記再送信指示入力手段を介して入力されたとき、前記ファイル束が前記通信相手へ再度送信されるよう前記送信手段を制御する送信制御手段と、
を備えたものである。
【００２０】
このファイル送信装置では、ユーザによって送信指示が送信指示入力手段を介して入力されたとき、ファイル束が通信相手へ送信されるよう送信手段を制御し、その後、ユーザによって再送信指示が再送信指示入力手段を介して入力されたとき、先程と同じファイル束が再度送信されるよう送信手段を制御する。こうすることにより、ユーザは同じファイル束の再送信を容易に行うことができる。このため、本発明のファイル送信装置は、上述した本発明のファイル受信装置に単方向通信により複数のファイルを送信するのに相応しい装置といえる。
【００２１】
本発明のファイル送信方法は、
送信対象として選択された複数のファイルをファイル束として単方向通信により通信相手へ送信するコンピュータ・ソフトウェアによるファイル送信方法であって、
（ａ）ユーザによって送信指示が入力されたとき、前記ファイル束を前記通信相手へ送信するステップと、
（ｂ）その後、ユーザによって再送信指示が入力されたとき、前記ファイル束を前記通信相手へ再度送信するステップと、
を含むものである。
【００２２】
このファイル送信方法によれば、ユーザは同じファイル束の再送信を容易に行うことができる。このため、本発明のファイル送信方法は、上述した本発明のファイル処理方法を実現するのに相応しい方法といえる。
【００２３】
本発明のプログラムは、上述したファイル送信方法の各ステップを１又は複数のコンピュータに実行させるためのものである。このプログラムは、コンピュータが読み取り可能な記録媒体（例えばハードディスク、ＲＯＭ、ＦＤ、ＣＤ、ＤＶＤなど）に記録されていてもよいし、伝送媒体（インターネットやＬＡＮなどの通信網）を介してあるコンピュータから別のコンピュータへ配信されてもよいし、その他どのような形で授受されてもよい。このプログラムを一つのコンピュータに実行させるか複数のコンピュータに分散して実行させれば、上述したファイル送信方法の各ステップが実行されるため、上述したファイル送信方法と同様の作用効果が得られる。
【発明を実施するための最良の形態】
【００２４】
［第１実施形態］
次に、本発明の実施の形態を図面に基づいて説明する。図１は、本発明のファイル処理装置の一実施形態であるマルチファンクションプリンタ１０の概略構成を示す外観図及びブロック図である。
【００２５】
本実施形態のマルチファンクションプリンタ１０は、図１に示すように、印刷ジョブに基づいて用紙Ｓへの印刷を実行するプリンタユニット２０と、ガラス台３６に載置された書類を読み取るスキャナユニット３０と、赤外線の受発光を行う赤外線通信ポート５０と、赤外線通信ポート５０を制御して赤外線通信機器である携帯電話８０とデータの送受信又はデータの受信のみを行うＩｒＤＡコントローラ６０と、各種情報を表示部４２に表示したりユーザの指示をボタン類４４の操作を介して入力したりする操作パネル４０と、装置全体の制御を司るメインコントローラ７０とを備えている。ＩｒＤＡコントローラ６０及びメインコントローラ７０はボード１２上に搭載されマルチファンクションプリンタ１０の内部に収容されている。このマルチファンクションプリンタ１０は、プリンタユニット２０，スキャナユニット３０，ＩｒＤＡコントローラ６０，メインコントローラ７０がバス４６を介して各種制御信号やデータのやり取りができるよう構成されている。
【００２６】
プリンタユニット２０は、プリンタＡＳＩＣ２２とプリンタエンジン２４とを備えている。プリンタＡＳＩＣ２２は、プリンタエンジン２４を制御する集積回路であり、メインコントローラ７０から印刷指令を受けると、その印刷指令の対象となる画像ファイルに基づいて用紙Ｓに印刷するようプリンタエンジン２４を制御する。また、プリンタエンジン２４は、印刷ヘッドから用紙へインクを吐出することにより印刷を行う周知のインクジェット方式のカラープリンタ機構として構成されている。なお、ＡＳＩＣは、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略である。
【００２７】
スキャナユニット３０は、スキャナＡＳＩＣ３２とスキャナエンジン３４とを備えている。スキャナＡＳＩＣ３２は、スキャナエンジン３４を制御する集積回路であり、メインコントローラ７０からのスキャン指令を受けると、ガラス台３６に載置された書類を画像データとして読み取るようスキャナエンジン３４を制御する。また、スキャナエンジン３４は、周知のイメージスキャナとして構成され、書類に向かって発光したあとの反射光をレッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）の各色に分解してスキャンデータとする周知のカラーイメージセンサを備えている。
【００２８】
赤外線通信ポート５０は、携帯電話８０によって発光された赤外線をフォトトランジスタ５２で受光し、携帯電話８０へ向けてＬＥＤ５４が赤外線を発光することが可能なように、マルチファンクションプリンタ１０の操作パネル４０の横に備えられている。この赤外線通信ポート５０は、ＩｒＤＡ規格及びＩｒＳｉｍｐｌｅ規格に準拠した通信方式で通信可能な構成となっている。ＩｒＤＡ規格に準拠した通信方式は双方向通信であり、例えばＩｒＤＡ−４Ｍ方式で５００ｋｂｙｔｅのイメージ転送を携帯電話８０からマルチファンクションプリンタ１０に行う場合、まず９６００ｂｐｓで装置発見手順（５００ｍｓｅｃ〜１ｓｅｃ）や装置接続手順（３００ｍｓｅｃ〜５００ｍｓｅｃ）を実行したあと４Ｍｂｐｓで双方向通信しながらデータ転送を行うことからトータルで約３秒かかる。一方、ＩｒＳｉｍｐｌｅ規格に準拠した通信方式は双方向通信と単方向通信の２種類あるが、例えば単方向通信で５００ｋｂｙｔｅのイメージ転送を携帯電話８０からマルチファンクションプリンタ１０に行う場合、まず９６００ｂｐｓで装置接続手順が行われたあと４Ｍｂｐｓで一方的にデータ転送を行うことからトータルで１秒もかからない。なお、双方向通信の際にはフォトトランジスタ５２とＬＥＤ５４の両方が利用されるが、単方向通信の際にはフォトトランジスタ５２のみが利用されＬＥＤ５４は利用されない。
【００２９】
ＩｒＤＡコントローラ６０は、赤外線通信ポート５０のフォトトランジスタ５２により赤外線が受光されて赤外線通信ポート５０から出力される電圧信号ＩｒＲｘを２値（値０と値１）のデータ列へ変換するデコーダ６２と、２値のデータ列から赤外線通信ポート５０のＬＥＤ５４を駆動するために赤外線通信ポート５０へ出力する電圧信号ＩｒＴｘを生成するエンコーダ６４と、各電圧信号ＩｒＲｘ，ＩｒＴｘと２値のデータ列との変換のタイミングを規定するサンプリングクロックを発生するクロック発生器６６とを備えている。なお、クロック発生器６６は、２つの異なる速度（本実施形態では９６００ｂｐｓと４Ｍｂｐｓ）に応じた異なるサンプリングクロックを発生することが可能である。また、赤外線通信ポート５０から出力される信号ＩｒＲｘがＩｒＤＡコントローラ６０へ入力され、ＩｒＤＡコントローラ６０から出力される信号ＩｒＴｘが赤外線通信ポート５０へ入力されるよう赤外線通信ポート５０及びＩｒＤＡコントローラ６０は電気的に接続されている。
【００３０】
ここで、ＩｒＳｉｍｐｌｅ規格の単方向通信について、図２を用いて説明する。図２は、ＩｒＳｉｍｐｌｅ単方向通信のデータ転送に用いられるフレームを表す説明図である。データ転送に用いられるフレームとしては、ＳＮＲＭ（Ｓｅｔ  Ｎｏｒｍａｌ  Ｒｅｓｐｏｎｓｅ  Ｍｏｄｅ）コマンドを含むフレームＡを接続信号として利用するほか、送信すべきデータ（例えば、ユーザによって選択された画像ファイルを分割した画像データ）を含むフレームＢ，Ｃ，Ｄや、図示しない切断信号として利用される切断用のフレームがある。データ転送時には、まずフレームＡが９６００ｂｐｓで転送され、続いて５０ｍｓｅｃ後にフレームＢが４Ｍｂｐｓで転送され、その後１００μｓｅｃのインターバルを空けてフレームＣ，Ｄが同じく４Ｍｂｐｓで転送される。このとき、各フレームには、ファイル転送機能を実現するＯＢＥＸ（ＯＢｊｅｃｔ  ＥＸｃｈａｎｇｅ）プロトコルのファイル転送コマンドであるＰＵＴコマンドの各種ヘッダやＩｒＳｉｍｐｌｅ規格による通信を実現するプロトコルの１つであるＩｒＳＭＰプロトコルのヘッダ等が含まれている。ＰＵＴコマンドのヘッダの１つであるＮＡＭＥヘッダは各ファイルが送信されるときの最初に送信されるフレームに含まれており、ＮＡＭＥヘッダにはそのフレームに含まれるデータが属するファイルのファイル名が記述されている。また、ＰＵＴコマンドのヘッダの１つであるＥＮＤＢＯＤＹヘッダは、各ファイルが送信されるときの最後に送信されるフレームに含まれている。更に、ＩｒＳＭＰプロトコルのヘッダは各フレームに含まれている。このＩｒＳＭＰプロトコルのヘッダには各フレームが送信される順に付与される連続したシーケンス番号が記述されている。ここで、ＩｒＳＭＰのデータ転送時のフレームフォーマットを図３に示す。フレームには、ビギン・オブ・フレーム（ＢＯＦ）、ペイロード・データ、フレーム・チェック・シーケンス（ＦＣＳ）及びエンド・オブ・フレーム（ＥＯＦ）が含まれる。ここではＦＣＳとして、サイクリック・リダンダンシー・チェック（ＣＲＣ）が記憶される。ＣＲＣは、ＩｒＤＡ規格では３２ビットのデータであり、ペイロード・データに応じて算出されることから、各パケットに固有の値とみなすことができる。ペイロード・データは、ＳＭＰヘッダとＯＢＥＸユーザデータとを含む。ＳＭＰヘッダは、３ｂｙｔｅ（２４ｂｉｔ）の大きさであり、データ・ラスト・ビット（ＤＬ）やブロック・ラスト・ビット（ＢＬ）、シーケンス番号などが含まれる。ＤＬ及びＢＬは、単方向通信で送信側が最後のパケットを送るときに値１にセットされ、それ以外のときに値０にセットされる。シーケンス番号は、送信側によって各パケットごとにインクリメントされる２０ビットのデータである。また、ＯＢＥＸユーザデータは、本実施形態では、画像ファイルを複数に分割したデータである。
【００３１】
操作パネル４０は、表示部４２とボタン類４４とを備えている。表示部４２は、液晶ディスプレイであり、印刷状況やデータ受信状況などに関する情報や印刷メニューなどを表示する。ボタン類４４は、電源ボタンや矢印キー、決定ボタン、キャンセルボタンなどからなり、印刷メニュー表示時におけるメニュー項目の選択や印刷実行の時などに適切なボタンが押下されることにより内部通信インタフェース７９を介してメインコントローラ７０にユーザの指示を入力可能なデバイスである。
【００３２】
メインコントローラ７０は、ＣＰＵ７２を中心とするマイクロプロセッサとして構成されており、各種処理プログラムや各種データ、各種テーブルなどを記憶したＲＯＭ７４と、一時的にスキャンデータや印刷データを記憶するＲＡＭ７６と、電気的に書き換え可能で電源を切ってもデータは保持されるフラッシュメモリ７８と、操作パネル４０との通信を可能とする内部通信インタフェース７９とを備え、これらはバス４６を介して互いに信号のやり取りが可能なように接続されている。このメインコントローラ７０は、プリンタユニット２０やスキャナユニット３０，ＩｒＤＡコントローラ６０からの各種動作信号や各種検出信号を入力したり、操作パネル４０のボタン類４４の操作に応じて発生する操作信号を入力したりする。また、メインコントローラ７０は、携帯電話８０から受信した画像ファイルの印刷を実行するようプリンタユニット２０に指令を出力したり、操作パネル４０のボタン類４４のスキャン指令に基づいてガラス台３６に載置された書類を画像データとして読み取るようスキャナユニット３０に指令を出力したり、ＩｒＤＡコントローラ６０に赤外線通信で送信先に送信するデータを出力したり、操作パネル４０に表示部４２の制御指令を出力したりする。
【００３３】
携帯電話８０は、図１に示すように、ＩｒＤＡ規格やＩｒＳｉｍｐｌｅ規格に準拠した赤外線通信機能を搭載しており、決定ボタン８１ａやキャンセルボタン８１ｂ、矢印キー８１ｃ、Ｉｒ高速送信ボタンとしての機能が割り当てられたボタン（以下、「Ｉｒ高速送信ボタン」という。）８１ｄ、図示しないテンキー等からなる操作ボタン類８１と、受話口で話された音声を集音するマイク８２と、送話口を介して音声を外部に出力するスピーカ８３と、各種画面（画像）を表示するディスプレイ８４と、画像を撮影するＣＣＤカメラ８５と、携帯電話網のデータ入出力インタフェースである送受信部８６と、各種ファイルを一時的に保存可能なメモリ８７と、赤外線の受発光を行う赤外線通信ポート８８と、赤外線通信ポート８８を制御して外部の赤外線通信機器（例えば、マルチファンクションプリンタ１０）とデータの送受信を行うＩｒＤＡコントローラ８９と、携帯電話全体の制御を司る携帯電話コントローラ９０とを備えている。ここで、メモリ８７には、操作ボタン類８１を操作することにより逐次作成された電話帳ファイル、送受信部８６を介して他の携帯電話やパーソナルコンピュータ等へ送信したか送信する予定の送信メールファイル、送受信部８６を介して他の携帯電話やパーソナルコンピュータ等から受信した受信メールファイル、操作ボタン類８１の操作により作成されたメモ帳ファイル、ＣＣＤカメラ８５によって撮影された画像ファイルなどが保存されている。赤外線通信ポート８８やＩｒＤＡコントローラ８９の構成はマルチファンクションプリンタ１０の赤外線通信ポート５０やＩｒＤＡコントローラ６０と同様である。携帯電話コントローラ９０は、種々の制御を実行するが、そのうちの一つとして、操作ボタン類８１のＩｒ高速送信ボタン８１ｄが押下されてＩｒＳｉｍｐｌｅ規格に準拠した単方向通信での送信指令が入力されたとき、メモリ８７内の画像ファイルの中から選択された１以上の画像ファイルを、上述した赤外線通信ポート８８及びＩｒＤＡコントローラ８９を介してマルチファンクションプリンタ１０へ送信する。
【００３４】
次に、こうして構成された本実施形態のマルチファンクションプリンタ１０や携帯電話８０の動作、特に、ＩｒＳｉｍｐｌｅ規格に準拠した単方向通信により携帯電話８０から複数の画像ファイル（ファイル束）をマルチファンクションプリンタ１０へ送信し、その画像ファイルをマルチファンクションプリンタ１０で印刷する場合の動作について説明する。
【００３５】
まず、携帯電話８０の動作について説明する。図４は、携帯電話８０の携帯電話コントローラ９０により実行されるＩｒＳｉｍｐｌｅ単方向通信の送信処理ルーチンの一例を示すフローチャートである。また、図５は、このルーチンに関連して携帯電話８０のディスプレイ８４に表示される画面の説明図である。このルーチンは、携帯電話８０の図示しない内部ＲＯＭに記憶されており、ユーザが携帯電話８０の操作ボタン類８１を操作して印刷する画像ファイルの選択メニュー（図５（ａ）参照）を表示させたときに実行される。図４に示すＩｒＳｉｍｐｌｅ単方向通信の送信処理ルーチンが実行されると、携帯電話８０の携帯電話コントローラ９０は、まず、ユーザが操作ボタン類８１の矢印キー８１ｃを操作して印刷する画像ファイルとして選択した画像ファイルのファイル名を、ユーザが決定ボタン８１ａを押下して確定する度にメモリ８７に記憶する（ステップＳ１００）。ここで、このようにユーザによって複数の画像ファイルが選択された様子を図５（ｂ）に示す。周りを２重の四角の枠で囲まれた画像ファイルが、選択して確定されたファイルを表す。次に、操作ボタン類８１のＩｒ高速送信ボタン８１ｄが押下されたか否かを判定し（ステップＳ１１０）、Ｉｒ高速送信ボタン８１ｄが押下されていないときは、ステップＳ１００に進み再びユーザが選択して確定した画像ファイルのファイル名を記憶する。一方、Ｉｒ高速送信ボタン８１ｄが押下されたときは、ＳＮＲＭコマンドを含む接続信号としてのフレームを９６００ｂｐｓで送信するようＩｒＤＡコントローラ８９を制御し（ステップＳ１２０）、所定時間（例えば、５０ｍｓ）の後、メモリ８７に記憶されたファイル名に対応する画像ファイルを分割した画像データを含むフレームを４Ｍｂｐｓで送信するようＩｒＤＡコントローラ８９を制御する（ステップＳ１３０）。つまり、ユーザによって選択・確定された画像ファイルをパケット単位で単方向通信により送信する。そして、その画像データを含むフレームの送信終了後、切断用のフレームを送信するようＩｒＤＡコントローラ８９を制御する（ステップＳ１４０）。続いて、いま送信した画像ファイルの再送信を行うか否かを問い合わせる表示（図５（ｃ）参照）を行うようディスプレイ８４を制御する（ステップＳ１５０）。次に、ユーザによって、Ｉｒ高速送信ボタン８１ｄが押下されたか否かを判定し（ステップＳ１６０）、Ｉｒ高速送信ボタン８１ｄが押下されたときはステップＳ１２０以降の処理を実行する。このとき、メモリ８７に記憶されたファイル名は変更されていないから、前回と同じファイル束が送信されることとなる。言い換えると、ユーザは、一度、ファイル束を送信した後は、Ｉｒ高速送信ボタン８１ｄを再び押下することによって、前回と同じファイル束を再送信することができる。一方、Ｉｒ高速送信ボタン８１ｄが押下されていないときは、ユーザにより決定ボタン８１ａが押下されることにより送信終了が入力されたか否かを判定する（ステップＳ１７０）。送信終了が入力されていないときは、ステップＳ１６０以降の処理を実行し、送信終了が入力されたときは、メモリ８７に記憶されたファイル名をクリアして（ステップＳ１８０）、本ルーチンを終了する。このように、画像データの送信はマルチファンクションプリンタ１０の受信状態にかかわらず一方的に行われる。
【００３６】
次に、マルチファンクションプリンタ１０の動作について説明する。図６は、マルチファンクションプリンタ１０のＣＰＵ７２により実行されるＩｒＳｉｍｐｌｅ単方向通信のファイル処理ルーチンの一例を示すフローチャートである。また、図７は、このルーチンに関連してマルチファンクションプリンタ１０の表示部４２に表示される画面の説明図である。このルーチンは、マルチファンクションプリンタ１０のＲＯＭ７４に記憶されており、既述したＳＮＲＭコマンドを含むフレームを受信したときに実行される。なお、マルチファンクションプリンタ１０は、受信待機状態では、９６００ｂｐｓの通信速度のデータを受信できるようクロック発生器６６のサンプリングクロックが調整されている。このルーチンが実行されると、ＣＰＵ７２は、まず、受信異常フラグＦｅｒｒ及び正常印刷フラグＦｐｒｉを値０にリセットする（ステップＳ２００）。ここで、受信異常フラグＦｅｒｒは、携帯電話８０から受信した画像ファイルのうち少なくとも１つの画像ファイルについてデータ欠損があるか否かを表すフラグであり、データ欠損があると判定されると値１にセットされる。また、正常印刷フラグＦｐｒｉは、ユーザが画像ファイルの送信を行う際に、携帯電話８０から受信した画像ファイルのうちの少なくとも１つの画像ファイルについて印刷指令が出力されたか否かを表すフラグであり、印刷指令を出力したあと値１にセットされる。
【００３７】
次に、マルチファンクションプリンタ１０の携帯電話８０から送信されるデータを受信するようＩｒＤＡコントローラ６０に指令を出力すると共に受信したデータをＲＡＭ７６の図示しないバッファ領域に記憶する（ステップＳ２１０）。この指令を受け取ったＩｒＤＡコントローラ６０は、４Ｍｂｐｓのデータを受信できるようクロック発生器６６のサンプリングクロックを調整して、画像データを含むフレーム（図２のフレームＢ，フレームＣ，フレームＤ等）を受信する。そして、切断信号としてのフレーム（図示せず）を受信したときに、９６００ｂｐｓの通信速度のＳＮＲＭコマンドを含むフレームを受信可能なように、クロック発生器６６から発生するサンプリングクロックが調整される。なお、ＣＰＵ７２は、ＩｒＤＡコントローラ６０から入力されるフレームの全てを一度ＲＡＭ７６の図示しないバッファ領域に記憶する。
【００３８】
そして、ＲＡＭ７６に記憶されたフレームの中から１つの画像ファイルを読み出す処理を実行する（ステップＳ２２０）。このとき、ＲＡＭ７６に記憶された各フレームに含まれる画像データをＩｒＳＭＰプロトコルのヘッダに記述されたシーケンス番号の順に読み出して送信時の画像ファイルを再現する。既述したように、１つの画像ファイルを送信するときの最初に送信されるフレームにはＯＢＥＸプロトコルのＰＵＴコマンドのＮＡＭＥヘッダが含まれ、最後に送信されるフレームにはＯＢＥＸプロトコルのＰＵＴコマンドのＥＮＤＢＯＤＹヘッダが含まれている。従って、このＮＡＭＥヘッダを含むフレームからＥＮＤＢＯＤＹヘッダを含むフレームまでを１つの画像ファイルに対応するフレーム群として認識することができる。そして、読み出した１つの画像ファイルにデータの欠損があるか否かを判定する（ステップＳ２３０）。ここで、データの欠損があるか否かは、例えば、ＲＡＭ７６の図示しないバッファ領域に記憶されたフレームのＩｒＳＭＰプロトコルのヘッダに記述されているシーケンス番号、ＯＢＥＸプロトコルのＰＵＴコマンドのＮＡＭＥヘッダ及びＥＮＤＢＯＤＹヘッダを確認することによって行うことができる。具体的には、読み出した１つの画像ファイルに対応する各フレームに含まれるＩｒＳＭＰプロトコルのヘッダに記述されたシーケンス番号がＮＡＭＥヘッダを含むフレームのシーケンス番号からＥＮＤＢＯＤＹヘッダを含むフレームのシーケンス番号まで連続していなければデータの欠損があると判断することができる。データの欠損がないときは、その画像ファイルのファイル名が正常受信識別子データベースにあるか否かを判定する（ステップＳ２４０）。ここで正常受信識別子データベースとは、このマルチファンクションプリンタ１０が本ルーチンの実行中に印刷指令を出力したデータ欠損のない画像ファイルの識別子（本実施形態ではファイル名）を登録したものであり、メインコントローラ７０のＲＡＭ７６に記憶される。なお、マルチファンクションプリンタ１０の電源がオンになって初めて本ルーチンが実行されるときは、ＲＡＭ７６に正常識別子データベースは記憶されていないので、このステップＳ２４０では否定判定される。読み出した画像ファイルのファイル名が正常受信識別子データベースにないときは、未だ、その画像ファイルについての印刷指令が出力されていないと判断し、プリンタＡＳＩＣ２２にその画像ファイルに基づいて用紙Ｓへの印刷を実行するよう指令を出す（ステップＳ２５０）。本実施形態では、このときの用紙のサイズや印刷枚数等の印刷条件は予め定められているものとした（例えば、用紙のサイズは写真のＬ判サイズ、枚数は１枚等）。続いて、印刷指令を出力した画像ファイルがあることを示すべく正常印刷フラグＦｐｒｉに値１をセットし（ステップＳ２６０）、正常受信識別子データベースへ、その画像ファイルのファイル名を追加する（ステップＳ２７０）。一方、ステップＳ２４０で画像ファイルのファイル名が正常受信識別子データベースにあると判定されたときは、既に印刷指令を出力した画像ファイルであるため、ステップＳ２５０〜Ｓ２７０の印刷指令に関わる処理を実行しない。また、ステップＳ２３０で画像ファイルにデータの欠損があると判定されたときは、画像ファイルが完全でなく、そのような不完全な画像ファイルは正しく印刷できないため、受信異常が発生した旨を示すべく受信異常フラグＦｅｒｒを値１にセットする（ステップＳ２８０）。
【００３９】
続いて、ステップＳ２７０で正常受信識別子データベースへ印刷指令を出力した画像ファイルのファイル名を追加した後、又は、ステップＳ２４０で画像ファイルのファイル名が正常受信識別子データベースにあると判定された後、又は、ステップＳ２８０で受信異常フラグＦｅｒｒを値１にセットした後、次の画像ファイルがあるか否かを判定する（ステップＳ２９０）。ここで、次の画像ファイルがあるか否かは、例えば、既述のステップＳ２１０において受信したフレームをＲＡＭ７６に記憶する際に、そのフレームに含まれる画像データの属する画像ファイルのファイル名をＲＡＭ７６に記憶しておき、ステップＳ２２０において既に読み出した画像ファイルのファイル名と比較することで判定することができる。次の画像ファイルがあるときは、ステップＳ２２０以降の処理を実行する。読み出した画像ファイルにデータの欠損があるときはステップＳ２８０の処理を実行し、データの欠損がないときは、正常受信識別子データベースにその画像ファイルのファイル名がある場合は何も処理を実行せず、正常受信識別子データベースにその画像ファイルのファイル名がない場合はステップＳ２５０〜Ｓ２７０の印刷指令に関わる処理を実行する。ステップＳ２９０で次の画像ファイルがあると判定されている間はこのような処理を繰り返し実行し、次の画像ファイルがないときは、再試行モードフラグＦｒｅｔが値１であるか否かを判定する（ステップＳ３００）。ここで、再試行モードフラグＦｒｅｔは、今回送信されてきたファイル群の再送信を待機する再試行モードであるか否かを表すフラグであり、再試行モードであるときに値１にセットされ再試行モードでないときに値０にリセットされるものとした。再試行モードフラグＦｒｅｔが値１でないときは受信異常フラグＦｅｒｒが値１であるか否かを判定し（ステップＳ３１０）、受信異常フラグＦｅｒｒが値１でないとき、つまり、受信異常が発生していないときは、全ての画像データについての印刷指令が出力されたためすべてのファイルが正常に受信されたことを表すメッセージ１（図７（ａ）参照）を表示するよう表示部４２を制御し（ステップＳ３２０）、正常受信識別子データベースをクリアして（ステップＳ３３０）、本ルーチンを終了する。
【００４０】
一方、ステップＳ３１０で受信異常フラグＦｅｒｒが値１であると判定されたとき、即ち、受信異常が発生していたときは、再試行モードフラグＦｒｅｔに値１をセットし（ステップＳ３４０）、同じファイルの再送信を促すメッセージ２（図７（ｂ）参照）を表示するよう表示部４２を制御する（ステップＳ３５０）。そして、画像ファイルの印刷を終了するボタン類４４の図示しない確認キーがユーザによって押下されたか否かを判定し（ステップＳ３６０）、確認キーが押下されていないときは、ＳＮＲＭコマンドを含むフレームを受信したか否かを判定し（ステップＳ３７０）、ＳＮＲＭコマンドを含むフレームが受信されていないときはステップＳ３６０の処理を実行する。即ち、ユーザによりマルチファンクションプリンタ１０のボタン類４４の図示しない確認キーが押されるか、ユーザにより再度画像ファイルが送信されるまで、表示部４２に既述のメッセージ２（図７（ｂ）参照）を表示した状態で待機する。そして、ユーザが携帯電話８０の操作ボタン類８１を操作して画像ファイルの送信を再度行って、ＳＮＲＭコマンドを含むフレームを受信したときは、ステップＳ２００以降の処理を行う。一方、ステップＳ３６０で確認キーが押下されたと判定されたときは、ユーザが印刷の継続を望まないものとみなし、再試行モードフラグＦｒｅｔを値０にリセットし（ステップＳ３８０）、正常受信識別子データベースをクリアして（ステップＳ３３０）、本ルーチンを終了する。
【００４１】
そして、ステップＳ３００で再試行モードフラグＦｒｅｔが値１と判定されたとき、即ち再試行モード中である場合は、受信異常フラグＦｅｒｒが値１であるか否かを判定し（ステップＳ３９０）、受信異常フラグＦｅｒｒが値１でないとき、つまり受信異常がなかったときは再試行中に全ての画像ファイルが正常受信されたことを表すメッセージ３（図７（ｃ）参照）を表示するよう表示部４２を制御し（ステップＳ４００）、再試行モードフラグＦｒｅｔを値０にリセットし（ステップＳ４１０）、正常受信識別子データベースをクリアして（ステップＳ３３０）、本ルーチンを終了する。一方、受信異常フラグＦｅｒｒが値１であるときは、正常印刷フラグＦｐｒｉが値１であるか否かを判定する（ステップＳ４２０）。正常印刷フラグＦｐｒｉが値１でないとき、つまり印刷指令を出力した画像ファイルがなかったときは既述のメッセージ２（図７（ｂ）参照）を表示するよう表示部４２を制御し（ステップＳ４３０）、正常印刷フラグＦｐｒｉが値１であるとき、つまり印刷指令を出力した画像ファイルが少なくとも１つあったときは、再試行中に新たに正常受信した画像ファイルがあることを表すメッセージ４（図７（ｄ）参照）を表示するよう表示部４２を制御する（ステップＳ４４０）。続いて、ステップＳ４３０でメッセージ２を表示するよう表示部４２を制御したあと、又は、ステップＳ４４０でメッセージ４を表示するよう表示部４２を制御したあと、画像ファイルの印刷を終了するボタン類４４の図示しない確認キーがユーザによって押下されたか否かを判定する（ステップＳ４５０）。確認キーが押下されていないときは、ＳＮＲＭコマンドを含むフレームを受信したか否かを判定し（ステップＳ４６０）、ＳＮＲＭコマンドを含むフレームが受信されていないときはステップＳ４５０の処理を実行する。即ち、ユーザによりマルチファンクションプリンタ１０のボタン類４４の図示しない確認キーが押されるか、ユーザにより再度画像ファイルが送信されるまで、表示部４２に既述のメッセージ２（図７（ｂ）参照）又はメッセージ４（図７（ｄ）参照）を表示した状態で待機する。そして、ユーザが画像ファイルの送信を再度行って、ＳＮＲＭコマンドを含むフレームを受信したときは、ステップＳ２００以降の処理を行う。一方、ステップＳ４５０で確認キーが押下されたと判定されたときは、ユーザが印刷の継続を望まないものとみなし、再試行モードフラグＦｒｅｔを値０にリセットし（ステップＳ４１０）、正常受信識別子データベースをクリアして（ステップＳ３３０）、本ルーチンを終了する。
【００４２】
なお、上述したＩｒＳｉｍｐｌｅ単方向通信のファイル処理ルーチンの一例を示すフローチャートの説明では、ステップＳ２２０において、１つの画像ファイルを読み出す際に、ＮＡＭＥヘッダを含むフレームからＥＮＤＢＯＤＹヘッダを含むフレームまでを１つの画像ファイルに対応するフレーム群であると認識して読み出すとしたが、ＮＡＭＥヘッダ又はＥＮＤＢＯＤＹヘッダを含むフレームが欠損している場合には、１つの画像ファイルに対応するフレーム群を認識することができない。このため、ステップＳ２２０では、１つの画像ファイルに対応するフレーム群を読み出す処理と平行して、本来受信しているはずのＮＡＭＥヘッダ又はＥＮＤＢＯＤＹヘッダを含むフレームが欠損しているか否かも併せて判定している。例えばＥＮＤＢＯＤＹヘッダの後にＮＡＭＥヘッダが認識されることなく次のＥＮＤＢＯＤＹヘッダが認識された場合には、その間にＮＡＭＥヘッダを含むフレームが欠損していると判定し、ＮＡＭＥヘッダの後にＥＮＤＢＯＤＹヘッダが認識されることなく次のＮＡＭＥヘッダが認識された場合には、その間にＥＮＤＢＯＤＹヘッダを含むフレームが欠損していると判定する。そして、ＮＡＭＥヘッダ又はＥＮＤＢＯＤＹヘッダを含むフレームが欠損していたときには、直ちにステップＳ２８０に進んで受信異常フラグＦｅｒｒを値１にセットする。
【００４３】
ここで、マルチファンクションプリンタ１０が携帯電話８０から送信された３つの画像ファイルをファイル束として受信して印刷する処理を具体的な例を挙げて説明する。具体例として、マルチファンクションプリンタ１０が、携帯電話８０から送信された３つの画像ファイルのうち２番目に送信された画像ファイル２を受信することができず、ユーザによって同じ３つの画像ファイルが再送信されて、全ての画像ファイルを受信できた場合について説明する。このように、ユーザによって３つの画像ファイルの送信が行われてから再送信を行って印刷指令が出力されるまでの通信手順を示すシーケンスチャートを図８に示す。なお、図８に示すステップ番号は、図４のＩｒＳｉｍｐｌｅ単方向通信の送信処理及び図６のファイル処理ルーチンのステップ番号と同じものを用いた。まず、ユーザが携帯電話８０のボタン類８１を操作して印刷する画像ファイル（この例では、画像ファイル１、画像ファイル２及び画像ファイル３）を選択すると、携帯電話８０の携帯電話コントローラ９０は、その選択された画像ファイルのファイル名をメモリ８７に記憶する（ステップＳ１００）。そして、ユーザによって携帯電話８０のＩｒ高速送信ボタン８１ｄが押下され、送信指示が入力されると、画像ファイル１のデータ、画像ファイル２のデータ、画像ファイル３のデータを順に送信し（ステップＳ１３０）、再送信するか否かを問い合わせるメニューを表示する（ステップＳ１５０）。すると、マルチファンクションプリンタ１０のＣＰＵ７２は、画像ファイル１のデータ、画像ファイル２のデータ、画像ファイル３のデータを順に受信するが、画像ファイル２のデータについては何らかの原因でデータに欠損が生じた。このときＣＰＵ７２は、画像ファイル１と画像ファイル３についてのみプリンタユニット２０に印刷指令を出力し（ステップＳ２５０）、それらのファイル名を正常受信識別子データベースに追加する（ステップＳ２７０）と共に受信異常が発生したことを表すメッセージ２（図７（ｂ）参照）を表示し（ステップＳ３５０）、ボタン類４４の図示しない確認キーが押下されるか、又は、再び画像ファイルを受信するまで、この状態で待機する。次に、ユーザはマルチファンクションプリンタ１０の表示部４２に表示された上述のメッセージ２を確認すると先に送信したファイル群を再度送信する操作を行う。すると、携帯電話８０の携帯電話コントローラ９０は、メモリ８７に記憶されている前回と同じ画像ファイル１、画像ファイル２及び画像ファイル３を再び送信する。そして、マルチファンクションプリンタ１０のＣＰＵ７２は、これらの画像データを正常に受信し、画像ファイル１及び画像ファイル３については、既に正常に印刷指令がなされているため、画像ファイル２についてのみ印刷指令をプリンタユニット２０へ出力する（ステップＳ２５０）。そして、全てのファイルについて受信が正常に行われたことを示すメッセージ３（図７（ｃ）参照）を表示し（ステップＳ４００）、処理を終了する。そして、ユーザは、選択した３つの画像ファイルの全てが印刷されたことを確認し、決定ボタン８１ａを押下して再送信を終了する指示を入力する。すると、携帯電話８０の携帯電話コントローラ９０は、メモリ８７に記憶されている３つの画像ファイルのファイル名をクリアして（ステップＳ１８０）、処理を終了する。
【００４４】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態の赤外線通信ポート５０及びＩｒＤＡコントローラ６０が本発明の受信手段に相当し、本実施形態のプリンタユニット２０が本発明の処理実行手段に相当し、本実施形態のメインコントローラ７０が本発明の処理制御手段に相当する。また、本実施形態のＲＡＭ７６が本発明の記憶手段に相当し、本実施形態の表示部４２が本発明の報知手段に相当し、本実施形態のボタン類４４の図示しない確認キーが本発明の解除指示入力手段に相当する。更に、本実施形態のＩｒＤＡコントローラ８９及び赤外線通信ポート８８が本発明の送信手段に相当し、本実施形態のＩｒ高速送信ボタン８１ｄが本発明の送信指示入力手段及び再送信指示入力手段に相当し、本実施形態の携帯電話コントローラ９０が本発明の送信制御手段に相当する。なお、本実施形態では、マルチファンクションプリンタ１０や携帯電話８０の動作を説明することにより本発明のファイル処理方法やファイル送信方法の一例も明らかにしている。
【００４５】
以上詳述した本実施形態のマルチファンクションプリンタ１０によれば、ユーザが選択して携帯電話８０から送信された複数の画像ファイルをファイル束として赤外線通信ポート５０及びＩｒＤＡコントローラ６０が受信したときには、今回受信したファイル束のうちデータの欠損がない画像ファイルのファイル名をＲＡＭ７６に記憶すると共に、データの欠損がない画像ファイルの印刷処理が実行されるようプリンタユニット２０を制御し、その後再びユーザが選択して携帯電話８０から送信された同じファイル束を赤外線通信ポート５０及びＩｒＤＡコントローラ６０が受信したときには、今回受信した画像ファイルのうち前回データの欠損がないファイルとしてＲＡＭ７６に記憶される正常受信識別子データベースにそのファイル名が追加されず今回データの欠損がないファイルと判定されたものの印刷処理が実行されるようプリンタユニット２０を制御する。こうすることにより、ユーザは、未だ印刷が実行されていない画像ファイルを選択しなおして再送信するといったような煩雑な操作を行うことなく、前回と同じファイル束をそのまま再送信すればよいため、簡単な操作で再送信することができる。また、ユーザが今回も前回と同じファイル束をそのまま再送信したとき、前回印刷指令が出力された画像ファイルにつき、今回もその印刷処理を繰り返し実行してしまうことがない。
【００４６】
また、メインコントローラ７０は、ユーザが選択して携帯電話８０から送信されたファイル束を赤外線通信ポート５０及びＩｒＤＡコントローラ６０が受信したときには、そのファイル束の中の画像ファイルにデータの欠損がある場合は、ユーザに同じファイル束の再送信を促すメッセージを表示するよう表示部４２を制御する。このように、受信したファイル束の中の画像ファイルにデータ欠損があり正しく印刷されない場合にユーザに同じファイル束の再送信を促すことができる。
【００４７】
更に、メインコントローラ７０は、ユーザが選択して携帯電話８０から送信されたファイル束を赤外線通信ポート５０及びＩｒＤＡコントローラ６０が受信したときには、そのファイル束の中の画像ファイルにデータの欠損がある場合は、ユーザによって確認キーが押下されたときは、ＲＡＭ７６に記憶された正常識別子データベースをクリアする。このように、携帯電話８０からファイル束を送信したときに、ユーザが真に印刷処理を望む画像ファイルが印刷された場合は、他に受信異常の画像ファイルがあったとしてもそのファイル束の再送信を待機する状態を解除することができる。
【００４８】
更にまた、メインコントローラ７０は、識別子として、画像ファイルのファイル名を利用するから、データ欠損がない画像ファイルとデータ欠損がある画像ファイルとを容易に区別することができる。
【００４９】
一方、本実施形態の携帯電話８０によれば、ユーザがＩｒ高速送信ボタン８１ｄを押下することにより送信指示が入力されたとき、複数の画像ファイル（ファイル束）がマルチファンクションプリンタ１０へ送信されるようＩｒＤＡコントローラ８９を制御し、その後、ユーザがＩｒ高速送信ボタン８１ｄを再度押下することにより再送信指示が入力されたとき、前回と同じファイル束が再度送信されるようＩｒＤＡコントローラ８９を制御する。こうすることにより、ファイル束の再送信を容易に行うことができる。このため、携帯電話８０は、マルチファンクションプリンタ１０にＩｒＳｉｍｐｌｅ単方向通信によりファイル束を送信するのに相応しい装置といえる。
【００５０】
なお、上述した第１実施形態を以下のように変形してもよい。
【００５１】
例えば、上述した実施形態では、データ欠損のない画像ファイルのファイル名（識別子）を登録した正常受信識別子データベースを用いて図６のファイル処理ルーチンを行うようにしたが、データ欠損のある画像ファイルのファイル名を登録した異常受信識別子データベースを用いて図６のファイル処理ルーチンを行うようにしてもよい。この場合、ステップＳ２３０でデータ欠損があったときには、ステップＳ２８０に進んで受信異常フラグＦｅｒｒを値１にセットすると共にその画像ファイルのファイル名を異常受信識別子データベースに登録する。一方、ステップＳ２３０でデータ欠損がなかったときには、ステップＳ２４０でその画像ファイルのファイル名が正常受信識別子データベースにあるか否かを判定する代わりに異常受信識別子データベースにあるか否かを判定し、あったときには前回までその画像ファイルは受信に失敗しており印刷されていないことから、印刷指令を出力すると共に正常印刷フラグＦｐｒｉを値１にセットし（ステップＳ２５０，Ｓ２６０）、ステップＳ２７０でそのファイル名を正常受信識別子データベースへ追加する代わりに異常受信識別子データベースから削除し、その後ステップＳ２９０に進んで次の画像ファイルがあるか否かの判定を行う。一方、データ欠損のない画像ファイルのファイル名が異常受信識別子データベースになかったときには、前回までにその画像ファイルは受信に成功していて印刷済みであることから、ステップＳ２９０へ進む。なお、ステップＳ３３０では正常受信識別子データベースの内容をクリアする代わりに異常受信識別子データベースの内容をクリアする。このように、異常受信識別子データベースを用いた場合でも、上述した実施形態と同様の効果が得られる。なお、ステップＳ２３０でＮＡＭＥヘッダを含むフレームが欠損していた場合には、その画像ファイルのファイル名が不明なため、識別子としてファイル名の代わりにその画像ファイルに含まれるシーケンス番号を異常受信識別子データベースに登録してもよい。この場合、次回以降のこのルーチンにおいて、データ欠損のない画像ファイルが異常受信識別子データベースに登録されているか否かの判定は、その画像ファイルのファイル名に加えてその画像ファイルに含まれるシーケンス番号が異常受信識別子データベースに登録されているか否かを判定すればよい。
【００５２】
あるいは、画像ファイルのファイル名と受信状況（正常受信又は異常受信）との対応関係を保存する受信状況データベースを用いてファイル処理ルーチンを行うようにしてもよい。このとき、図６のファイル処理ルーチンのステップＳ２３０〜Ｓ２９０で行われる処理に代えて、図９の処理が実行される。すなわち、ステップＳ２３０でデータ欠損がなかったときには、その画像ファイルのファイル名が受信状況データベースに登録されているか否かを判定し（ステップＳ２３２）、登録されていなかったときにはそのファイル名とそれに対応する受信状況（このときは正常受信）とを対応づけて受信状況データベースに登録し（ステップＳ２３６）、印刷指令を出力すると共に正常印刷フラグＦｐｒｉを値１にセットし（ステップＳ２５０，Ｓ２６０）、ステップＳ２９０に進む。また、ステップＳ２３２でその画像ファイルのファイル名が受信状況データベースに登録されていたときには、そのファイル名に対応する受信状況を読み出し該読み出した受信状況が正常受信か異常受信かを判定し（ステップＳ２３４）、異常受信だったときにはステップＳ２３６に進んで受信状況を正常受信に上書きし、前回までにその画像ファイルが正常に受信されておらず印刷も行われていないことからステップＳ２５０，Ｓ２６０の処理を経てステップＳ２９０に進む。また、ステップＳ２３４で、読み出した受信状況が正常受信だったときには、前回までにその画像ファイルが正常に受信され印刷されていることからそのままステップＳ２９０に進む。一方、ステップＳ２３０でデータ欠損があったときには、その画像ファイルのファイル名が受信状況データベースに登録されているか否かを判定し（ステップＳ２７２）、登録されていなかったときにはそのファイル名とそれに対応する受信状況つまり異常受信とを対応づけて受信状況データベースに登録し（ステップＳ２７４）、受信異常フラグＦｅｒｒを値１にセットし（ステップＳ２８０）、ステップＳ２９０へ進む。一方、ステップＳ２７２でそのファイル名が受信状況データベースに登録されていたときには、そのファイル名に対応する受信状況を読み出し該読み出した受信状況が正常受信か異常受信かを判定し（ステップＳ２７６）、正常受信だったときには前回までにその画像ファイルが正常に受信され印刷されていることからステップＳ２９０に進み、異常受信だったときにはステップＳ２８０を経てステップＳ２９０へ進む。なお、ステップＳ３３０では正常受信識別子データベースの内容をクリアする代わりに受信状況データベースの内容をクリアする。このように、画像ファイルのファイル名（識別子）と受信状況との対応関係を保存した受信状況データベースを用いた場合にも、上述した実施形態と同様の効果が得られる。なお、ＮＡＭＥヘッダ又はＥＮＤＢＯＤＹヘッダを含むフレームが欠損している場合には、ステップＳ２２０において、１つの画像ファイルに対応するフレーム群を認識することができないため、直ちにステップＳ２８０へ進む。
【００５３】
上述した実施形態では、図６のステップＳ３２０，Ｓ３５０，Ｓ４００，Ｓ４３０及びＳ４４０において、各種メッセージが表示されるよう表示部４２を制御するものとしたが、受信状況や処理状況をユーザに知らせることができるものであれば如何なるものであってもよい。例えば、表示部４２の代わりに又は表示部４２に加えて、音声メッセージをスピーカーから出すものやランプを点灯させるものであってもよい。
【００５４】
上述した実施形態のステップＳ３００以降を図１０のように変更してもよい。なお、図１０では、図６と同じ処理については同じステップ番号を付した。図１０において、ステップＳ３００で再試行モードフラグＦｒｅｔが値１、ステップＳ３９０で受信異常フラグＦｅｒｒが値１且つステップＳ４２０で正常印刷フラグＦｐｒｉが値１だったとき、既に印刷指令を出力した回数（印刷数）が受信した画像ファイルのファイル数と等しいか否かを判定する（ステップＳ４３５）。ここで、ファイル数はファイル処理ルーチンを開始してから最初に次の画像ファイルがないと判定されるまでの間に読み出したファイルの数とする。なお、ステップＳ２２０で１つの画像ファイルを読み出すときにＮＡＭＥヘッダを含むフレーム又はＥＮＤＢＯＤＹヘッダを含むフレームが欠損していた場合であっても、画像ファイルが１つあるとみなすものとする。また、印刷数はステップＳ２５０において印刷指令を出力した総数とする。ステップＳ４３５で印刷数とファイル数とが等しいときには、今回受信異常が発生したけれどもすべての画像ファイルについて印刷指令が出力されている（つまり、今回受信異常が発生した画像ファイルは前回までに正常に受信しており印刷指令を出力済みである）ため、受信が正常に終了したことを表すメッセージ３を表示するよう表示部４２を制御し（ステップＳ４００）、再試行モードフラグＦｒｅｔをリセットし（ステップＳ４１０）、正常受信識別子データベースをクリアし（ステップＳ３３０）、本ルーチンを終了する。また、ステップＳ３００で再試行モードフラグＦｒｅｔが値１でなく且つステップＳ３１０で受信異常フラグＦｅｒｒが値１だったときには、再試行モードフラグＦｒｅｔを値１にセットし（ステップＳ３４０）、その後ステップＳ４２０へスキップする。こうすることにより、今回受信異常が発生した画像ファイルが存在したとしても、既にすべての画像ファイルについて印刷指令が出力されていたときには、メッセージ３（再試行モードでファイル受信が正常に終了した旨のメッセージ）が表示される。また、初回受信時に異常が生じた画像ファイルと正常に受信した画像ファイルとが混在し、正常に受信した画像ファイルについては印刷指令を出力した場合にはメッセージ４（ファイル受信中にエラーが発生したが正常に印刷されたファイルもある旨のメッセージ）が表示される。
【００５５】
［第２実施形態］
第２実施形態は、第１実施形態と異なるファイル処理ルーチンを実行する以外は、第１実施形態のマルチファンクションプリンタ１０と同様である。このため、第１実施形態と同じ構成要素については同じ符号を用いることとし、その説明を省略する。また、以下には、第１実施形態と同様、携帯電話８０からＩｒＳｉｍｐｌｅの単方向通信により複数の画像ファイルをパケット単位で受信するときのマルチファンクションプリンタ１０の動作について説明する。図１１は、マルチファンクションプリンタ１０のＣＰＵ７２により実行されるＩｒＳｉｍｐｌｅ単方向通信のファイル処理ルーチンの一例を示すフローチャートである。このルーチンは、ＲＯＭ７４に記憶されており、ＳＮＲＭコマンドを含むフレームを受信したときに実行される。
【００５６】
このファイル処理ルーチンが開始されると、マルチファンクションプリンタ１０のＣＰＵ７２は、送られてきたパケットを受信する（ステップＳ５００）。続いて、パケットの受信に成功したか否かを判定し（ステップＳ５１０）、送信相手との通信距離が長すぎる等によりパケットの受信に失敗したときには、ステップＳ５００に戻り、次のパケットを受信する。一方、パケットの受信に成功したときには、未印刷の画像ファイルのパケットか否かを判定する（ステップＳ５２０）。ＲＡＭ７６には、図示しない通信データ記憶領域（パケット保存手段に相当）が設けられており、この通信データ記憶領域には、受信に成功したパケットにつき、画像ファイル名とペイロード・データ（ＳＭＰヘッダ（ＤＬやＢＬ、シーケンス番号等を含む）とＯＢＥＸユーザデータとを含む）とＦＣＳとが対応づけられて記憶されている（ＳＭＰヘッダ、ＯＢＥＸユーザデータ及びＦＣＳについては図３参照）。なお、ＦＣＳとしては、第１実施形態と同様、各パケットに固有の値とみなすことが可能なＣＲＣが記憶されている。シーケンス番号は、転送される画像ファイルの数にかかわらず連続して値０から順に付されるものであり、例えば１番目の画像ファイルのシーケンス番号が値０〜４９９のときには２番目の画像ファイルのシーケンス番号は値５００から始まる。また、通信データ記憶領域には、画像ファイル名と印刷状況（未印刷か印刷済みか）とが対応づけて記憶されている。そして、今回受信したパケットが未印刷の画像ファイルのパケットだったときには、通信データ記憶領域に保存済みか否かを判定し（ステップＳ５３０）、未保存のときには、今回のパケットをデータ通信記憶領域に保存する（ステップＳ５４０）。具体的には、今回のパケットにつき、画像ファイル名とＩｒＳＭＰフレーム・ペイロード・データとＦＣＳとを対応づけて通信データ記憶領域に記憶する。
【００５７】
そして、ステップＳ５４０の後、あるいはステップＳ５２０で今回のパケットが印刷済みの画像ファイルだったとき、あるいはステップＳ５３０で今回のパケットが保存済みのパケットだったときには、今回のパケットが最後のパケットだったか否かを判定する（ステップＳ５５０）。今回のパケットのＳＭＰヘッダのＤＬとＢＬが共に値１のときには最後のパケットであると判定し、それ以外のときには最後のパケットではないと判定する。なお、最後のパケットの受信に失敗した場合には、次のパケットは存在しないためパケット未受信の状態が継続する。このため、パケットの未受信状態が所定時間以上続いた場合にも、便宜上、最後のパケットの受信を終了したと判断するものとする。今回のパケットが最後のパケットでなかったときには、再びステップＳ５００に戻り、次のパケットを受信する。一方、今回のパケットが最後のパケットだったときには正常な画像ファイル（シーケンス番号が欠落していない画像ファイル）で未印刷のものがあるか否かを判定し（ステップＳ５６０）、そのような画像ファイルがあったときにはその画像ファイルの印刷実行指示をプリンタユニット２０へ出力する（ステップＳ５７０）。ステップＳ５７０のあと又はステップ５６０で未印刷で正常な画像ファイルがなかったときには、全画像ファイルにつき印刷実行指示をプリンタユニット２０へ出力したか否かを判定し（ステップＳ５８０）、まだ印刷実行指示を出力していない画像ファイルが残っているときには、シーケンス番号の欠落した画像ファイルが残っていることになるため、操作パネル４０の表示部４２に今回送信した画像ファイルの束を再送する旨のメッセージを表示し（ステップＳ５８５）、ステップＳ５００に戻り再びパケットを受信する。なお、画像ファイル名が不明なものが存在する場合にはステップＳ５８０で否定判定される。一方、ステップＳ５８０で全画像ファイルにつき印刷実行指示をプリンタユニット２０へ出力したときには、画像ファイルの受信が正常に終了した旨を操作パネル４０の表示部４２に表示し（ステップＳ５９０）、本ルーチンを終了する。
【００５８】
ここで、マルチファンクションプリンタ１０が携帯電話８０から送信されてきた複数の画像ファイル（ファイル束）のうちの１つの画像ファイルＰを印刷する処理を、図１２を用いて具体的に説明する。図１２は転送手順と受信結果を示す説明図である。ここでは、画像ファイルＰが５つに分割されてシーケンス番号０〜４までの５つのパケットがこの順に送信されてきたものとして説明する。１回目の転送でマルチファンクションプリンタ１０がこの画像ファイルＰの最後のパケット（シーケンス番号４のパケット）を受信したとき、シーケンス番号０，２，４のパケットは受信に成功して通信データ記憶領域に保存されているが、シーケンス番号１，３のパケットは受信に失敗して保存されていないものとする。この場合、正常な画像ファイルで未印刷のものは存在しないため、操作パネル４０の表示部４２に再送が促される。その後、ユーザは携帯電話８０から同じファイル束を再送する。この２回目の転送において、マルチファンクションプリンタ１０は、画像ファイルＰにつきシーケンス番号０のパケットの受信に成功したとする。しかし、このパケットは既に保存されているため、ここでは保存しない。続いてシーケンス番号１のパケットの受信に成功したとする。このパケットは１回目の転送では未保存だったため保存する。続いてシーケンス番号２のパケットの受信に失敗したとする。しかし、このパケットは既に保存されているため、ここでは保存しない。続いてシーケンス番号３のパケットの受信に成功したとする。このパケットは１回目の転送では未保存だったため保存する。続いてシーケンス番号４のパケットの受信に失敗したとする。しかし、このパケットは既に保存されているため、ここでは保存しない。この結果、２回目の転送でマルチファンクションプリンタ１０が最後のパケットを受信した時点では、画像ファイルＰはシーケンス番号の欠落のない画像ファイルとなっている。この画像ファイルＰは未印刷のため印刷実行指示がプリンタユニット２０に出力される。このように、１回目の転送でも２回目の転送でもシーケンス番号０〜４までの５つのパケットのすべてについて受信を成功することができなかった場合でも、１回目の転送と２回目の転送で互いに補充すればすべてのパケットが揃う場合には印刷が実行されるのである。
【００５９】
以上詳述した本実施形態のマルチファンクションプリンタ１０によれば、第１実施形態と同様の効果、すなわち、ユーザは、未だ印刷が実行されていない画像ファイルを選択しなおして再送信するといったような煩雑な操作を行うことなく、前回と同じファイル束をそのまま再送信すればよいため、簡単な操作で再送信することができる等の効果が得られる。加えて、一回の受信操作で一つの画像ファイルの全パケットを正常に受信できるのを待つのではなく、複数回の受信操作で正常に受信したパケットを補充しながら全パケットが揃うのを待つため、受信エラーが発生しやすい状況であってもその画像ファイルを比較的早く正常ファイルとして保存することができ、ひいてはその画像ファイルの印刷物を比較的早く得ることができる。
【００６０】
なお、上述した第２実施形態を以下のように変形してもよい。
【００６１】
すなわち、上述した実施形態では、図１１のステップＳ５３０で今回受信したパケットが未印刷の画像ファイルのパケットだが既に通信データ記憶領域に保存済みだったときには、ステップＳ５５０に進んで今回のパケットが最後のパケットか否かを判定するとしたが、次のようにしてもよい。すなわち、図１３に示すように、ステップＳ５３０で今回受信したパケットが未印刷の画像ファイルのパケットだが既に通信データ記憶領域に保存済みだったときには、今回のパケットと既に保存済みのパケットとが同じデータか否かを判定し（ステップＳ５３２）、同じデータだったときにはステップＳ５５０に進み、異なるデータだったときには異なる画像ファイルが送信されてきたものとみなし、通信データ記憶領域を初期化し（ステップＳ５３４）、今回のパケットを通信データ記憶領域に保存し（ステップＳ５４０）、その後ステップＳ５５０に進むようにしてもよい。シーケンス番号が同じパケットであっても、携帯電話８０から送信されてきたファイル束が前回までと今回とで異なることがあるため、図１２ではパケットのデータが同じか否かを判定するのである。ここで、今回のパケットと既に保存済みのパケットとが同じデータか否かの判定は、ペイロード・データ（図３参照）を比較して両者が一致しているか否かによって判定してもよいし、ＦＣＳとして記憶されているＣＲＣが一致しているか否かによって判定してもよい。
【００６２】
上述した実施形態では、図１１のファイル処理ルーチンを採用したが、図１４のファイル処理ルーチンを採用してもよい。図１４のファイル処理ルーチンのうち、図１１のファイル処理ルーチンと同じ処理を行うステップについては同じステップ番号を付した。図１４のファイル処理ルーチンでは、ステップＳ５４０で今回のパケットを通信データ記憶領域に保存したあと、未印刷で正常な画像ファイル（シーケンス番号が欠落していない画像ファイル）があるか否かを判定し（ステップＳ５４２）、そのような画像ファイルがあったときにはその画像ファイルの印刷実行指示をプリンタユニット２０へ出力し（ステップＳ５４４）、全画像ファイルにつき印刷実行指示をプリンタユニット２０へ出力したか否かを判定する（ステップＳ５４６）。そして、ステップＳ５４６で全画像ファイルにつき印刷実行指示を出力していないとき、あるいはステップＳ５２０で今回のパケットが印刷済みの画像ファイルだったとき、あるいはステップＳ５３０で今回のパケットが保存済みのパケットだったときには、今回のパケットが最後のパケットだったか否かを判定する（ステップＳ５５０）。今回のパケットが最後のパケットでなかったときには、再びステップＳ５００に戻り、次のパケットを受信する。一方、今回のパケットが最後のパケットだったときには全画像ファイルにつき印刷実行指示をプリンタユニット２０へ出力したか否かを判定し（ステップＳ５８０）、まだ印刷実行指示を出力していない画像ファイルが残っているときには、シーケンス番号の欠落した画像ファイルが残っていることになるため、操作パネル４０の表示部４２に今回送信した画像ファイル一式を再送する旨のメッセージを表示し（ステップＳ５８５）、ステップＳ５００に戻り再びパケットを受信する。なお、メッセージとしては、今回印刷実行を指示したファイルがなかったときには図７（ｂ）のメッセージ２を、今回印刷実行を指示したファイルがあったときには図７（ｄ）のメッセージ４を表示してもよい。一方、ステップＳ５８０又はステップＳ５４６で全画像ファイルにつき印刷実行指示をプリンタユニット２０へ出力したときには、画像ファイルの受信が正常に終了した旨を操作パネル４０の表示部４２に表示すると共に通信データ記憶領域をリセットし（ステップＳ５９０）、本ルーチンを終了する。
【００６３】
こうすることにより、例えばファイル束のうち未印刷の最後の画像ファイルを受信した場合、その画像ファイルにつき１回目の受信ではシーケンス番号２のパケットのみが欠落して未保存であり、２回目の転送でそのシーケンス番号２のパケットが保存されたとすると、そのシーケンス番号２のパケットを保存した時点でその画像ファイルのパケットがすべて揃うため、シーケンス番号３以降のパケットを受信する前にその画像ファイルの受信を終了することになる。つまり、上述した実施形態では最後（つまりシーケンス番号４）のパケットを受信する必要があったが、ここでは最後のパケットを受信する前に受信を終了することができる。このため、ユーザが携帯電話８０をマルチファンクションプリンタ１０の受信部に向け続けている時間が短くて済む。
【００６４】
［他の実施形態］
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００６５】
例えば、上述した第１及び第２実施形態では、識別子として画像ファイルのファイル名を利用するものとしたが、ファイルを識別可能な情報を利用するものであれば識別子としてファイル名を利用するものに限られない。例えば、ハッシュ値発生アルゴリズムやハミング符号を利用したＣＲＣ値生成アルゴリズム等を用いて画像ファイル自体から作成したデータ列を利用するものとしてもよいし、画像ファイルの作成日時分秒や画像ファイルのサイズ、画像ファイルに含まれるシーケンス番号等を利用するものとしてもよい。
【００６６】
上述した第１及び第２実施形態では、ファイルを送信する赤外線通信機器として携帯電話８０を例示したが、デジタルスチルカメラやビデオカメラ、パソコンなどをファイルを送信する赤外線通信機器としても良い。また、ファイル処理装置としてマルチファンクションプリンタ１０を例示したが、ファイル処理装置としてはマルチファンクションプリンタ１０に限られない。例えば、レーザープリンタやフォトプリンタ、テレビ、オーディオ機器、携帯電話８０以外の携帯電話、パソコンなどをファイル処理装置としてもよい。更に、ＩｒＳｉｍｐｌｅ単方向通信で送信するファイルとして画像ファイルを例示したが、画像ファイル以外のファイル（音楽ファイルなど）等としてもよい。また、マルチファンクションプリンタ１０のプリンタエンジン２４の図示しない印刷ヘッドは、圧電素子を変形させてインクを加圧する方式を採用してもよいし、発熱抵抗体（例えばヒータなど）に電圧をかけインクを加熱して発生した気泡によりインクを加圧する方式を採用してもよい。
【００６７】
上述した第１及び第２実施形態では、本発明を赤外線を用いて単方向通信をするものに適用することについて説明したが、通信媒体は赤外線に限られない。例えば、電波を用いて単方向通信を行うものに適用してもよいし、ケーブルを用いて単方向通信を行うものに適用してもよい。
【図面の簡単な説明】
【００６８】
【図１】マルチファンクションプリンタ１０の外観図及びブロック図。
【図２】単方向通信のデータ転送に用いられるフレームを表す説明図。
【図３】ＩｒＳＭＰのデータ転送時のフレームフォーマットの構造を表す説明図。
【図４】単方向通信の送信処理ルーチンの一例を示すフローチャート。
【図５】携帯電話８０のディスプレイ８４の表示例の説明図。
【図６】第１実施形態のファイル処理ルーチンの一例を示すフローチャート。
【図７】マルチファンクションプリンタ１０の表示部４２の表示例の説明図。
【図８】第１実施形態のファイルの再送信を含む通信手順を示す説明図。
【図９】第１実施形態の変形例のファイル処理ルーチンを示すフローチャート。
【図１０】第１実施形態の変形例のファイル処理ルーチンを示すフローチャート。
【図１１】第２実施形態のファイル処理ルーチンを示すフローチャート。
【図１２】第２実施形態の転送手順と受信結果を示す説明図。
【図１３】第２実施形態の変形例のファイル処理ルーチンを示すフローチャート。
【図１４】第２実施形態の変形例のファイル処理ルーチンを示すフローチャート。
【図１５】ＩｒＳｉｍｐｌｅのレイヤ構造の説明図。
【符号の説明】
【００６９】
１０  マルチファンクションプリンタ、１２  ボード、２０  プリンタユニット、２２  プリンタＡＳＩＣ、２４  プリンタエンジン、３０  スキャナユニット、３２  スキャナＡＳＩＣ、３４  スキャナエンジン、３６  ガラス台、４０  操作パネル、４２  表示部、４４  ボタン類、４６  バス、５０  赤外線通信ポート、５２  フォトトランジスタ、５４  ＬＥＤ、６０  ＩｒＤＡコントローラ、６２  デコーダ、６４  エンコーダ、６６  クロック発生器、７０  メインコントローラ、７２  ＣＰＵ、７４  ＲＯＭ、７６  ＲＡＭ、７８  フラッシュメモリ、７９  内部通信インタフェース、８０  携帯電話、８１  操作ボタン、８１ａ  決定ボタン、８１ｂ  キャンセルボタン、８１ｃ  矢印キー、８１ｄ  Ｉｒ高速送信ボタン、８２  マイク、８３  スピーカ、８４  ディスプレイ、８５  ＣＣＤ、８６  送受信部、８７  メモリ、８８  赤外線通信ポート、８９  ＩｒＤＡコントローラ、９０  携帯電話コントローラ、Ｓ  用紙。
【図１】
2008112436.tif 000003
【図２】
2008112436.tif 000004
【図３】
2008112436.tif 000005
【図４】
2008112436.tif 000006
【図５】
2008112436.tif 000007
【図６】
2008112436.tif 000008
【図７】
2008112436.tif 000009
【図８】
2008112436.tif 000010
【図９】
2008112436.tif 000011
【図１０】
2008112436.tif 000012
【図１１】
2008112436.tif 000013
【図１２】
2008112436.tif 000014
【図１３】
2008112436.tif 000015
【図１４】
2008112436.tif 000016
【図１５】
2008112436.tif 000017