JP4470977B2 - 複合機、およびファイル伝送システム - Google Patents

複合機、およびファイル伝送システム Download PDF

Info

Publication number
JP4470977B2
JP4470977B2 JP2007224538A JP2007224538A JP4470977B2 JP 4470977 B2 JP4470977 B2 JP 4470977B2 JP 2007224538 A JP2007224538 A JP 2007224538A JP 2007224538 A JP2007224538 A JP 2007224538A JP 4470977 B2 JP4470977 B2 JP 4470977B2
Authority
JP
Japan
Prior art keywords
file
access
data
storage device
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007224538A
Other languages
English (en)
Other versions
JP2009059087A (ja
Inventor
文敏 宇野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2007224538A priority Critical patent/JP4470977B2/ja
Priority to US12/202,999 priority patent/US7904609B2/en
Publication of JP2009059087A publication Critical patent/JP2009059087A/ja
Application granted granted Critical
Publication of JP4470977B2 publication Critical patent/JP4470977B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、複合機、および当該複合機とコンピュータとによって構成されるファイル伝送システムに関する。
従来、USB(Universal Serial Bus)接続型のフラッシュリムーバブルメディアリーダー/ライターは、USBストレージ型のもの(=USBマスストレージクラスに準拠したもの)が圧倒的に主流であり、その他の方式は皆無に近い。
また、この種のカードリーダー/ライター機能に加えて、他の機能をも有するUSB接続型の複合機(例えば、プリンタ機能やスキャナ機能等を有する複合機等)に関しても、上記カードリーダー/ライター単体機に倣うかたちになっている。
そのため、ほとんどの機種において、PC(パーソナルコンピュータ)からは、カードリーダー/ライター機能がUSBストレージ型のデバイスとして認識されるようになっている。
ところで、この種のカードリーダー/ライター機能を有する複合機において、複合機内蔵の制御部と複合機に接続されるPCとの両方から、同時にリムーバブルメディアがアクセスされると、様々な問題が生じる可能性がある。
そのため、このような問題を回避するための技術として、複合機内蔵の制御部と複合機に接続されるPCが、互いに排他的にリムーバブルメディアへのアクセスを実行する技術が、既に提案されている(例えば、特許文献1参照。)。
特開2004−94493号公報
しかし、上記従来技術の如く、リムーバブルメディアへのアクセスを単に排他的に実行するだけでは、リムーバブルメディアが比較的長期にわたってPCに占有されやすくなる傾向があった。そのため、複合機内蔵の制御部は、リムーバブルメディアにアクセスできない状況に陥りやすく、複合機単体で作動する機能を利用する機会が多い利用者にとっては、複合機の使い勝手が悪くなってしまう、という問題があった。
このような問題は、PCと複合機内蔵の制御部とで、リムーバブルメディアへのアクセス方式に違いがあるために発生する。すなわち、まず、PC側からのアクセスについて説明すると、PCは、USBストレージデバイス上のファイルに対するアクセスを行う際、PC側にあるファイルシステム経由でリムーバブルメディアにアクセスする。
このとき、PC側から複合機へは、メモリカードが有する物理的記憶領域に対するアクセス要求(=例えば、物理的記憶領域からのデータ読み出し要求、あるいは、物理的記憶領域へのデータ書き込み要求)が到来する。しかし、PC側にあるファイルシステムからは、PCからメモリカードへのアクセスが完全に終了した旨の明示的な通知等は到来しない。
そのため、複合機側では「所定の待機時間が経過するまでPCからのアクセスがなければ、PCからのアクセスが終了したものと認識する」といった対処しかできない。その結果、上記待機時間の経過を待つ分だけ、リムーバブルメディアへのアクセス権はPC側に無駄に占有されることになる。
一方、複合機内蔵の制御部からのアクセスについて説明すると、複合機内蔵の制御部は、複合機側にあるファイルシステム経由でリムーバブルメディアにアクセスする。
このとき、複合機側にあるファイルシステムによるリムーバブルメディアへのアクセスが終了すれば、複合機内蔵の制御部は、直ちにリムーバブルメディアへのアクセス終了を認識できる。したがって、この場合は、PC側からのアクセスとは異なり、デバイスは、上述の如き待機時間が経過するのを待つ必要が無く、複合機内蔵の制御部は、リムーバブルメディアへのアクセス権を無駄に占有することがない。
以上のようなアクセス方式の違いがあるため、PC側からのアクセス要求を意図的に優先処理している訳ではないものの、結果的に、PCによる占有期間は長くなりやすく、複合機内蔵の制御部は、リムーバブルメディアにアクセスできない状況に陥りがちであった。
本発明は、上記のような問題を解決するためになされたものであり、その目的は、PC側からアクセス要求が到来する場合でも、複合機内蔵の制御部からのアクセス要求を迅速に処理可能な複合機を提供することにある。また、そのような複合機を利用して構成されたファイル伝送システムを提供することにある。
以下、本発明において採用した構成について説明する。
請求項1に記載の複合機は、記憶装置および通信装置を内蔵しており、USB(Universal Serial Bus)インターフェースを介してコンピュータと接続可能で、前記コンピュータと接続された際、前記コンピュータには、USBストレージデバイス機能および通信デバイス機能を少なくとも含む複数種の機能を有するUSB複合デバイスとして認識される複合機であって、前記記憶装置の物理的記憶領域へのアクセスが指令された場合に、アクセス対象とされた前記物理的記憶領域へのアクセスを前記記憶装置に実行させる制御を行う記憶装置制御手段と、前記記憶装置において記憶されるデータをファイルとして管理する手段であって、前記記憶装置制御手段の使用権を取得した場合に、前記記憶装置制御手段を使用する他の手段とは排他的に前記記憶装置制御手段を使用可能となる手段であり、前記ファイルへのアクセス開始が指令された際、「前記使用権を取得済みであった場合」または「当該使用権の取得を試行して、その取得に成功した場合」いずれかの場合であれば、前記ファイルへのアクセスを開始し、その後、「前記ファイルへのアクセス終了が指令された場合」または「前記ファイルへのアクセス終了と自ら判断できた場合」いずれかの場合には、他にアクセス中のファイルが残っていなければ、取得していた前記使用権を解放する手段であり、かつ、前記ファイルへのアクセスが指令された際には、アクセス対象とされたファイルに対応する物理的記憶領域へのアクセスを、前記記憶装置制御手段に対して指令するファイル管理手段と、作動時に前記記憶装置に記憶されたデータを利用する機能を制御する手段であり、前記記憶装置に記憶されたデータを利用する際に、利用対象となるデータが格納されたファイルへのアクセスを前記ファイル管理手段に対して指令するデータ処理手段と、前記コンピュータ前記通信デバイス機能を利用する際に使用される通信手順で、前記コンピュータ側から前記複合機側へデータ列が伝送された場合に、その伝送されたデータ列中に「あらかじめ定められた特殊データ列であることを示す情報」が含まれているか否かに基づいて、当該データ列が前記通信装置用のデータ列である標準データ列か、前記記憶装置用のデータ列である特殊データ列かを解析するデータ解析手段と、前記データ解析手段によって前記標準データ列であると解析された場合に、前記標準データ列中の情報に基づき、前記通信装置を制御する通信装置制御手段と、前記記憶装置制御手段の使用権を取得した場合に、前記記憶装置制御手段を使用する他の手段とは排他的に前記記憶装置制御手段を使用可能となる手段であり、前記コンピュータ前記USBストレージデバイス機能を利用する際に使用される通信手順で、前記コンピュータ側から前記複合機側へ「前記物理的記憶領域へのアクセスが必要となる指令」が伝送された場合に、前記使用権を取得済みであるか否かを判断する第1の判断を行い、前記第1の判断の結果、前記使用権を取得済みでなかった場合は、利用者によって任意に設定される前記複合機の動作モードとして、第1のモードまたは第2のモードのいずれが設定されているのかを判断する第2の判断を行い、前記第2の判断の結果、前記第1のモードが設定されていると判断された場合には、前記使用権の取得を試行して、当該使用権の取得に成功したか否かを判断する第3の判断を行っており、「前記第1の判断の結果、前記使用権を取得済みであった場合」または「前記第3の判断の結果、前記使用権の取得に成功した場合」いずれかの場合には、前記コンピュータ側から受け取った「前記物理的記憶領域へのアクセスが必要となる指令」に基づき、前記物理的記憶領域へのアクセスを前記記憶装置制御手段に対して指令し、前記物理的記憶領域へのアクセス終了後、あらかじめ定められた時間が経過した場合には、前記使用権を解放する一方、「前記第2の判断の結果、前記第2のモードが設定されていると判断された場合」または「前記第3の判断の結果、前記使用権の取得に失敗した場合」いずれかの場合には、「リムーバブルメディアがセットされていないUSBストレージデバイスに対して当該USBストレージデバイスの利用を要求した際に、当該USBストレージデバイスから返される応答」と等価な内容の擬似的な応答を前記コンピュータに返す手段である第1のストレージデバイス機能制御手段と、前記データ処理手段とは別の手段であり、前記データ解析手段によって前記特殊データ列であると解析された場合に、前記特殊データ列中の情報に基づき、当該情報中で指定されたファイルへのアクセスを、前記ファイル管理手段に対して指令する第2のストレージデバイス機能制御手段とを備えたことを特徴とする。
このように構成された複合機によれば、この複合機をUSBインターフェースを介してコンピュータに接続すると、コンピュータには、この複合機が複数種の機を有するUSB複合デバイスとして認識される。
また、複数種の機能としては、USBストレージデバイス機能および通信デバイス機能、以上2種の機能が少なくとも認識される。なお、これら2種の機能の他に、さらに別の機能が認識されてもよい(すなわち、3種以上の機能が認識されてもよい)。
以上のようなUSB複合デバイスをコンピュータが認識した場合、コンピュータ側では、複数種の機能それぞれに対応したデータ通信を行うため、複数種の機能それぞれに対応するドライバ等がロードされ、複数種の機能それぞれに対応した通信手順でデータを伝送可能となる
このような前提の下、本発明の複合機においては、コンピュータが通信デバイス機能を利用する際に使用される通信手順で、コンピュータ側から複合機側へデータ列を伝送する際に、通信装置用のデータ列である標準データ列に加え、記憶装置用のデータ列である特殊データ列をも伝送する構成を採用した。
そして、標準データ列が伝送されてきた場合は、通信装置を制御するためのデータとして扱い、一方、特殊データ列が伝送されてきた場合は、独自に規定した処理を実行する構成とした。具体的には、独自に規定した処理の一つとして、第2のストレージデバイス機能制御手段が、特殊データ列中の情報に基づき、複合機内蔵のファイル管理手段経由でファイルへのアクセスを指令するように構成した。
このような構成を採用すれば、コンピュータから複合機へ特殊データ列を伝送することにより、標準データ列を伝送した場合とは異なり、複合機内蔵のファイル管理手段経由でファイルへのアクセスを指令することができる。また、複合機内蔵のデータ処理手段も、記憶装置に記憶されたデータを利用する際には、複合機内蔵のファイル管理手段経由でファイルへのアクセスを指令することができる
つまり、コンピュータからの指令が第2のストレージデバイス機能制御手段によって処理される場合、および複合機内蔵のデータ処理手段が処理を実行する場合、双方ともに、ファイルへのアクセス指令は、複合機内蔵のファイル管理手段経由で処理される。したがって、コンピュータがUSBストレージデバイス機能を利用する際に使用される通信手順で記憶装置へのアクセスを行う場合とは異なり、コンピュータからのアクセス完了を判断するために所定の待機時間が経過するのを待つ必要はなく、記憶装置へのアクセス権がコンピュータ側に無駄に占有されることがない。
よって、第2のストレージデバイス機能制御手段を利用する場合には、コンピュータからの記憶装置に対するアクセス要求、および複合機内蔵のデータ処理手段からの記憶装置に対するアクセス要求について、いずれか一方の処理が完了すれば直ちに他方の処理に移ることができ、どちらも迅速な処理が可能となる。
また、以上のような構成に加え、本発明の複合機は、複合機の動作モードの設定として、第1のモードまたは第2のモードいずれかを、利用者が任意に設定可能となっている。
コンピュータがUSBストレージデバイス機能を利用する際に使用される通信手順で、コンピュータ側から複合機側へ「物理的記憶領域へのアクセスが必要となる指令」を伝送した場合、複合機動作モードが第1のモードになっていれば、複合機は通常のUSBストレージデバイスと同様に機能する。
一方、コンピュータがUSBストレージデバイス機能を利用する際に使用される通信手順で、コンピュータ側から複合機側へ「物理的記憶領域へのアクセスが必要となる指令」を伝送した場合、複合機動作モードが第2のモードになっていれば、複合機は、「リムーバブルメディアがセットされていないUSBストレージデバイスに対して当該USBストレージデバイスの利用を要求した際に、当該USBストレージデバイスから返される応答」と等価な内容の擬似的な応答をコンピュータに返す。
このような応答を返せば、引き続いてコンピュータ側から複合機側へデータが伝送されることはないので、コンピュータと複合機との接続を維持ししたまま、コンピュータによるUSBストレージデバイスへのアクセスを阻止することができる
すなわち、複合機の動作モードが第1,第2のモードいずれに設定された場合でも、コンピュータが複合機のUSBストレージデバイス機能を認識した状態は維持される。
その上で、第1のモードであれば、通常通りにUSBストレージデバイス機能を利用することができ、第2のモードであれば、USBストレージデバイス機能に関しては、リムーバブルメディアがセットされていない旨の応答を返す機能以外は無効化される
ただし、第2のモードが設定された状態であっても、上述の特殊データ列が利用可能なので、この状態でコンピュータから記憶装置上のファイルにアクセスを行いたい場合には、上述の特殊データ列が利用され、これにより、コンピュータが複合機側にあるファイル管理手段経由で複合機側のファイルにアクセスできるのである。
このような構成を採用すれば、第1のモードを設定することにより、複合機を一般的なUSBストレージデバイスと全く同様に機能させることができるので、USBストレージデバイスに対応した数多くの市販アプリケーションをそのまま問題なく利用できる。
また、第2のモードを設定することにより、コンピュータからの記憶装置に対するアクセス要求、および複合機内蔵のデータ処理手段からの記憶装置に対するアクセス要求について、双方を迅速に処理することも可能となる。
よって、たとえば、利用者の希望に応じて、USBストレージデバイス機能を重視する場合は第1のモードに切り替えたり、複合機内蔵のデータ処理手段による機能を迅速に処理したい場合は第2のモードに切り替えたりすることができる。
さらに、複合機の動作モードとして第1,第2のモードいずれが設定された場合でも、コンピュータと複合機と間は、USBインターフェースだけで所期の通信を行うことができる。したがって、第1,第2のモードそれぞれで別々の通信インタフェースが必要となることはなく、その分だけ複合機の構成(特にハードウェア)を簡素化することができる。よって、第1,第2のモードそれぞれ専用に通信インターフェースを設ける場合に比べ、複合機を安価に提供可能となる。
次に、請求項2に記載の複合機は、請求項1に記載の複合機において、前記通信装置制御手段は、前記標準データ列中に含まれるATコマンドに基づき、前記通信装置を制御する手段であり、前記データ解析手段は、前記ATコマンドを構成する文字列中に前記特殊データ列であることを示す文字列が含まれているか否かにより、前記特殊データ列か前記標準データ列かを判定することを特徴とする。
ここで、ATコマンドとは、モデムやターミナルアダプタなどの通信装置が備える各種機能を制御可能なコマンドの一種で、米国Hayes社において開発され、その後他社でも広く採用された周知のものである。
このATコマンドは、モデムやターミナルアダプタを内蔵する機器(例えば、ファクシミリ装置)を制御する際にも利用されている。こうした通信装置が備える様々な機能を制御可能とするため、通信装置の製造元各社は独自に拡張仕様を採用している。
そこで、請求項2に記載の複合機においては、ATコマンドの拡張仕様として、「特殊データ列であることを示す文字列が含まれたATコマンド」を用意した。そして、コンピュータ側から到来したATコマンド中に、特殊データ列であることを示す文字列が含まれていた場合に、上述の特殊データ列であると識別する一方、それ以外の場合に、上述の標準データ列であると識別するようにした。
このような構成を採用すれば、通信装置に対する制御を行うのか、複合機側にあるファイル管理手段経由でのファイルアクセスを行うのかを、コンピュータ側で指定する際に、上記ATコマンドを利用して指定できるようになる。
次に、請求項3に記載の複合機は、請求項1または請求項2に記載の複合機において、前記データ解析手段によって前記特殊データ列であると解析された場合に、さらに、前記特殊データ列中の情報に基づき、当該情報中で指定されたファイルへのアクセスが指令されたか否かを判定するファイルアクセス要求判定手段を備え、前記第2のストレージデバイス機能制御手段は、前記ファイルアクセス要求判定手段により、前記特殊データ列中の情報中で指定されたファイルへのアクセスが指令されたとの判定がなされた場合に、前記特殊データ列中の情報中で指定されたファイルへのアクセスを、前記ファイル管理手段に対して指令することを特徴とする。
このような構成を採用すれば、特殊データ列として、ファイルに対するアクセスを要求する指令を伝えるデータ列と、それ以外のデータ列を利用することができるようになる。したがって、ファイルに対するアクセスを要求する場合はもちろんのこと、他の制御を複合機に指令したい場合にも特殊データ列を利用できるようになる。
次に、請求項4に記載の複合機は、請求項3に記載の複合機において、前記データ解析手段によって前記特殊データ列であると解析された場合に、さらに、前記特殊データ列中の情報に基づき、前記第1,第2のモードいずれかの設定を要求するデータ列であるか否かを判定して、いずれかの設定を要求するデータ列であれば、要求された動作モードを設定する動作モード設定手段を備えことを特徴とする。
このような構成を採用すれば、特殊データ列として、ファイルに対するアクセスを要求する指令を伝えるデータ列と、第1,第2のモードいずれかの設定を要求する指令を伝えるデータ列を利用することができるようになる。したがって、ファイルに対するアクセスを要求する場合はもちろんのこと、コンピュータ側から複合機に対して第1,第2のモードいずれかの設定を要求したい場合にも特殊データ列を利用できるようになる。
次に、請求項5に記載の複合機は、請求項1〜請求項4のいずれか一項に記載の複合機において、前記複合機は、前記複数種の機能として、前記USBストレージデバイス機能および前記通信デバイス機能の他に、プリンタ機能を備えており、前記データ処理手段は、前記記憶装置に記憶された画像データに基づいて画像を印刷する機能を制御する手段であり、前記記憶装置に記憶されたデータを利用する際に、利用対象となるデータが格納されたファイルへのアクセスを前記ファイル管理手段に対して指令する手段として構成されていることを特徴とする。
このように構成された複合機によれば、動作モードとして第1のモードを設定することにより、複合機をUSBストレージデバイスとして機能させることができる。また、動作モードとして第2モードを設定することにより、コンピュータからのファイルアクセスを許容したまま(すなわち、第2のストレージデバイス機能制御手段を利用することにより、コンピュータが記憶装置を利用できる状態のまま)、複合機内蔵のデータ処理手段による「記憶装置上のファイルを印刷する機能」をも利用可能とすることができる。
次に、請求項6に記載のファイル伝送システムは、コンピュータと請求項1〜請求項5のいずれか一項に記載の複合機とを、USBインターフェースを介して接続することによって構成され、前記コンピュータは、クライアント機能を有するクライアントコンピュータとの間でファイルを伝送可能なサーバ機能を有するサーバコンピュータであり、前記クライアントコンピュータからのアクセス要求に応じて、前複合機が備える前記第2のストレージデバイス機能制御手段へとアクセス要求を伝達するとともに、当該アクセス要求に応じた前記複合機から返される応答データを、前記クライアントコンピュータへと伝送可能に構成されていることを特徴とする。
このように構成されたファイル伝送システムによれば、クライアントコンピュータは、サーバーコンピュータ経由で複合機上のファイルにアクセスすることができる。したがって、複数のクライアントコンピュータが、複合機上のファイルにアクセスすることも可能となる。
次に、本発明の実施形態について、いくつかの具体的な例を挙げて説明する。
(1)第1実施形態
まず、第1実施形態について説明する。
[ファイル伝送システムの構成]
図1は、本発明の実施形態の一例として例示するファイル伝送システム全体のブロック図である。
このファイル伝送システムは、複合機1およびPC(Personal Computer)2を中心に構成されたものである。複合機1およびPC2は、双方ともUSBインターフェースを有するもので、USB−HUB3を介して接続されて相互間でデータ伝送ができるようになっている。また、USB−HUB3には、他のUSBデバイス4なども接続されている。
また、複合機1およびPC2は、双方ともLANインターフェースを有し、複合機1は、LAN5に接続された機器(例えば、PC6)との間でデータ伝送可能、PC2は、LAN7に接続された機器(例えば、PC8)との間でデータ伝送可能となっている。
本実施形態において、複合機1は、プリンタ機能、スキャナ機能、PC−FAX機能、カードリーダ機能などを備える多機能デバイスで、これらの機能をPC2から制御できるようになっている。
[複合機の内部構成]
図2は、複合機1の内部構成を示すブロック図である。
複合機1は、USBインターフェースを構成するためのハードウェアとして、USBプロトコルエンジン101、共通制御回路102、プリンタ系データ入出力回路103、スキャナ系データ入出力回路104、PC−FAX系データ入出力回路105、およびカードリーダ系データ入出力回路106などを備えている。
PC2との間でデータ伝送を行う際には、上記USBプロトコルエンジン101による制御下で、USB規格の通信プロトコルにてデータが伝送される。これらのハードウェアは、エンドポイントを介してPC2との間でデータを伝送するように構成されている。
具体的には、共通制御回路102は、コントロール転送用のエンドポイント(以下、EP0と称する。)を介して、PC2との間で各種制御データの入出力(双方向通信)を行う。
また、プリンタ系データ入出力回路103、スキャナ系データ入出力回路104、PC−FAX系データ入出力回路105、およびカードリーダ系データ入出力回路106は、それぞれが入力データ用のエンドポイントおよび出力データ用のエンドポイント(以下、EP1〜8と称する。)を介して、PC2との間でデータを伝送する。
プリンタ系データ入出力回路103へデータが伝送された場合、そのデータはプリンタ入出力タスク111へと伝送される。プリンタ入出力タスク111へ伝送されたデータは、さらに印字制御タスク113へと伝送されて、印字制御タスク113によってプリンタハードウェア115が制御される。
また、スキャナ系データ入出力回路104へデータが伝送された場合、そのデータはスキャナ入出力タスク121へと伝送される。スキャナ入出力タスク121へ伝送されたデータは、さらにスキャナ制御タスク123へと伝送されて、スキャナ制御タスク123によってスキャナハードウェア125が制御される。
また、カードリーダ系データ入出力回路106へデータが伝送された場合、そのデータはSCSIコマンド解析タスク141へと伝送される。SCSIコマンド解析タスク141へと伝送されたデータは、さらに物理セクタ単位入出力タスク143へと伝送される。この物理セクタ単位入出力タスク143は、本発明でいう第1のストレージデバイス機能制御手段の一例に相当する。
物理セクタ単位入出力タスク143は、受け取ったデータをメモリスロット制御タスク145へと伝送する処理などを実行するが、この処理の詳細については後述する。そして、メモリスロット制御タスク145は、第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、および第4メモリスロット154に対する制御を実行する。なお、メモリスロット制御タスク145は、本発明でいう記憶装置制御手段の一例に相当する。
第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、第4メモリスロット154は、いずれもリムーバブルメディアが装着されるスロットで、それぞれが他のスロットとは異なる規格のリムーバブルメディアを装着できる構造になっている。これら第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、第4メモリスロット154は、本発明でいう記憶装置の一例に相当する。
なお、本実施形態において、第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、および第4メモリスロット154は、それぞれが排他的に利用可能となるものである。例えば、第1メモリスロット151にリムーバブルメディアが装着された場合、そのリムーバブルメディアが取り外されるまで、他のスロットは利用不能となる。
また、PC−FAX系データ入出力回路105へデータが伝送された場合、そのデータはATコマンド解析タスク130へと伝送される。ATコマンド解析タスク130は、データ中に含まれる情報に基づいて、2系統あるデータ処理系のいずれかへデータを振り分ける。このATコマンド解析タスク130は、本発明でいうデータ解析手段の一例に相当するものである。
具体的には、ATコマンド解析タスク130へ伝送されてくるデータ中には、PC2において発行されたATコマンドが含まれている。ATコマンド解析タスク130では、ATコマンドを構成する文字列中に特殊データ列であることを示す文字列が含まれているか否かに基づいて、PC2からの出力データの振り分け先を判断する。なお、ATコマンド解析タスク130において実行される具体的な処理の詳細については後述する。
ATコマンド解析タスク130が、PC−FAX入出力タスク131側(図2参照)へデータを振り分けた場合、そのデータはモデム制御タスク133へと伝送され、モデム制御タスク133によってモデムハードウェア135が制御される。なお、モデムハードウェア135は、本発明でいう通信装置の一例に相当し、モデム制御タスク133は、本発明でいう通信装置制御手段の一例に相当する。
一方、ATコマンド解析タスク130が、ファイル単位入出力タスク161側(図2参照)へデータを振り分けた場合、ファイル単位入出力タスク161は、受け取ったデータをファイルシステムタスク163経由でメモリスロット制御タスク145へと伝送する処理を実行する。また、物理セクタ単位入出力タスク143に対してモードチェンジを要求する処理なども実行する。これらの処理の詳細については後述する。なお、このファイル単位入出力タスク161は、本発明でいう第2のストレージデバイス機能制御手段の一例に相当する。また、ファイルシステムタスク163は、本発明でいうファイル管理手段の一例に相当する。
ファイル単位入出力タスク161からファイルシステムタスク163経由でメモリスロット制御タスク145へデータが伝送されたら、この場合も、メモリスロット制御タスク145は、第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、および第4メモリスロット154に対する制御を実行する。
さらに、複合機1は、メディアプリント機能171およびFTP(File Transfer Protocol)サーバータスク173を備えている。これらメディアプリント機能171およびFTPサーバータスク173は、本発明でいうデータ処理手段の一例に相当し、PC2とは独立に複合機1単体で実行可能な機能を制御するものである。
具体的には、メディアプリント機能171は、第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、および第4メモリスロット154の内、いずれかに装着されたリムーバブルメディアから画像ファイルを読み込んで、その画像ファイルを印刷する機能を制御するものである。
このメディアプリント機能171が画像ファイルを読み込む際には、ファイル単位入出力タスク161同様、ファイルシステムタスク163経由でデータをメモリスロット制御タスク145へと伝送する。これにより、画像ファイルへのアクセスが実行されることになる。
また、FTPサーバータスク173は、複合機1が接続されたLAN5上に存在する機器(例えば、PC6)から、第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、および第4メモリスロット154の内、いずれかに装着されたリムーバブルメディア上のファイルに対するアクセス要求があった場合に、そのアクセス要求を処理するものである。
このFTPサーバータスク173がファイルにアクセスする際にも、ファイル単位入出力タスク161同様、ファイルシステムタスク163経由でデータをメモリスロット制御タスク145へと伝送することにより、ファイルへのアクセスが実行されることになる。
[PCの内部構成]
図3は、PC2の内部構成を示すブロック図である。
PC2においては、OSによる標準機能として、USBプロトコルスタック201、USB複合デバイスドライバ202、USBストレージドライバ203、SCSIコマンド処理部211、リムーバブルディスクドライバ221、ファイルシステム231などが機能する。
また、PC2においては、複合機1に対応する専用ソフトウェアとして、プリントポートドライバ223、スキャナドライバ225、COMポートドライバ227、プリンタドライバ261などが機能する。
また、PC2においては、これらの機能を利用するアプリケーションソフトウェアとして、印刷可能アプリケーション271、スキャン可能アプリケーション273、PC−FAXアプリケーション275などが機能する。
さらに、本実施形態において、PC2が備えるOSとしては、Windows(登録商標)が利用されており、PC2においては、Windows(登録商標)付属のソフトウェアであるエクスプローラ277なども機能する。ただし、PC2が備えるOSは、同等な機能を実現できるものであれば、Windows(登録商標)以外のOSであってもよい。
加えて、PC2では、FTPサーバーアプリケーション281、TCP/IPプロトコル283などが機能する。FTPサーバーアプリケーション281は、FTPクライアントとして機能するWEBブラウザ285からのアクセス要求を受けて、複合機1に対してファイルアクセス要求を発行するソフトウェアである。
なお、PC2においては、他のUSBデバイス4に対応する他のUSBデバイスのドライバ287なども機能する。
[複合機およびPCの機能概要]
複合機1は、PC2側で利用者が所定の操作を行うことにより、2つのモードをいずれかに切り替えることができる。
一方のモードは、USBストレージモード(本発明でいう第1のモードに相当;以下、USBモードとも称する。)で、このモードに切り替えた場合、PC2によるUSBストレージデバイスへのアクセスが許可される。
この場合、複合機1が備える第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、および第4メモリスロット154は、通常のUSBストレージデバイスと同様に機能する。
もう一方のモードは、FTPサーバーモード(本発明でいう第2のモードに相当;以下、FTPモードとも称する。)で、このモードに切り替えた場合、PC2によるUSBストレージデバイスへのアクセスが禁止される状態になる。なお、本実施形態において、USBストレージデバイスへのアクセスが禁止される状態とは、詳しくは次のような状態になることをいう
すなわち、FTPモードに切り替えた場合、複合機1が備える第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、および第4メモリスロット154は、通常のUSBストレージデバイスと同様には機能しない状態となる。具体的には、各スロットにメディアを装着して、そのメディアにPC2からアクセスしようとしても、複合機1からはメディアが装着されていない旨の応答が返る状態になる。このような状態になると、PC2はUSBストレージデバイス機能を利用できない状態となるので、このような状態のことを、本実施形態では、USBストレージデバイスへのアクセスが禁止される状態と称している。
ただし、FTPモードに切り替えた場合でも、FTPモードに対応したアプリケーションは、複合機1が備える第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、および第4メモリスロット154にアクセスすることができる。
具体的には、第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、および第4メモリスロット154に対するアクセスを実行する際、FTPモードに対応したアプリケーションは、複合機2が備える論理ユニットの一つであるFAXデバイスに対してデータを伝送する。
このときFTPモードに対応したアプリケーションが送出するデータ列は、通常のPC−FAX対応アプリケーション(例えば、図3に示すPC−FAXアプリケーション275)が複合機1に対して伝送するデータ列(本発明でいう標準データ列)とは異なるデータ列(本発明でいう特殊データ列)を複合機1に対して伝送する。これについては、後でさらに詳しく説明する。
複合機1は、PC2から伝送されてくるデータ列が、標準データ列か特殊データ列かを解析し、標準データ列であれば、FAXデバイスに対するデータ列としての処理を実行する。具体的には、標準データ列は、PC−FAX入出力タスク131へと伝送されて、PC−FAX機能の制御が行われることになる。
これに対し、特殊データ列であれば、FAXデバイスに対するデータ列とは別の処理を実行し、これにより、各スロットへのアクセスを実現する。具体的には、特殊データ列は、ファイル単位入出力タスク161へと伝送されて、メディアに対するアクセスは、ファイルシステムタスク163経由にてファイル単位で実行される。
[標準データ列および特殊データ列の仕様と伝送方法]
次に、上述の標準データ列および特殊データ列の仕様と伝送方法について説明する。
複合機1において、標準データ列か特殊データ列かは、上述のATコマンドを構成する文字列に基づいて判断される。
ATコマンドは、一般に、始端側が文字列「AT」で始まり、終端側は2バイト分のコード<0dh><0ah>で区切られる形式のデータ列となっている(なお、<0dh>、<0ah>はそれぞれ1バイトのコードを16進数で表記したもので、<0dh>はキャリッジ・リターンに対応する制御コード、<0ah>はライン・フィードに対応する制御コードに相当)。
そして、始端側にある文字列「AT」の後に続く文字列によって、具体的なコマンドの種別が規定されるとともに、必要があれば、さらに引き続くデータ列により、各種データを伝送可能となっている。
そこで、本実施形態の複合機1では、「AT」の後に続く文字列が「+BRFTP」という文字列である場合には、PC2から到来するデータ列を特殊データ列として扱い、「AT」の後に続く文字列が「+BRFTP」以外の文字列である場合には、PC2から到来したデータ列を標準データ列として扱うようにした。
具体的には、「AT」の後に続く文字列が「+BRFTP」以外の文字列であった場合、複合機1は、PC2から伝送されてくるデータ列(ATコマンド)を、通常のFAXデバイスに対するデータ列として処理する。なお、この処理は、PC−FAX機能を有するFAXデバイスにおいて行われる一般的な処理と同等な周知の処理となるので、ここでの説明は省略する。
一方、「AT」の後に続く文字列が「+BRFTP」であった場合、複合機1は、PC2から伝送されてくるデータ列(ATコマンド)を、通常のFAXデバイスに対するデータ列としては処理せず、本実施形態特有の処理を行う。
より詳しく説明すると、「AT」の後に続く文字列が「+BRFTP」であった場合、その後に続くデータ列には、いくつかの文字列が含まれていて、その後にATコマンドの終端を示す2バイト分のコード<0dh><0ah>が存在している。いくつかの文字列は、いずれも文字列の始端と終端が「"」で区切られた形式になっているので、データ列中の「"」に着目して個々の文字列を抽出することができる。
また、文字列の数は、本実施形態の場合、少なくとも1つ(すなわち、第1文字列のみ)、最大で4つ(すなわち、第1文字列〜第4文字列)となっている。第1文字列は、あらかじめ定められた8種の文字列のいずれかであり、コマンド詳細を示す文字列とされている。具体的には、第1文字列は、「"modeset"」、「"modeget"」、「 "fopen" 」、「 "fclose"」、「"fread"」、「"fwrite"」、「"fseek"」、「"flist"」のいずれかとなる。
また、第2文字列以降の文字列が存在するか否かは、第1文字列が上記8種のいずれであるかに応じて決まっており、第2文字列以降の各文字列が持つ意味も、第1文字列が上記8種のいずれであるかに応じて変わる。具体的には、第1文字列の違いにより、以下のような8種のATコマンドが構成されることになる。

<1.モードチェンジ要求コマンド>
AT+BRFTP "modeset" "(要求するモード)"<0dh><0ah>
<2.モード取得コマンド>
AT+BRFTP "modeget"<0dh><0ah>
<3.ファイルオープンコマンド>
AT+BRFTP "fopen" "(ファイルのパス名)" "(openモード)" <0dh><0ah>
<4.ファイルクローズコマンド>
AT+BRFTP "fclose" "(ファイルハンドル)" <0dh><0ah>
<5.ファイルリードコマンド>
AT+BRFTP "fread" "(ファイルハンドル)" "(項目サイズ)" "(最大項目数)" <0dh><0ah>
<6.ファイルライトコマンド>
AT+BRFTP "fwrite" "(ファイルハンドル)" "(項目サイズ)" "(項目数)" <0dh><0ah>
<7.ファイルシークコマンド>
AT+BRFTP "fseek" "(ファイルハンドル)" "(seek位置)" "(seekモード)" <0dh><0ah>
<8.ファイル一覧取得コマンド>
AT+BRFTP "flist" "(一覧を取るパス名,ワイルドカード付き)" <0dh><0ah>

上記8種のATコマンド中、第2文字列以降はパラメータを表し、例えば、第1文字列が“fopen”の場合は、第2文字列がファイル名、第3文字列がオープンモードとなっている。また、第1文字列が“fclose”の場合は、第2文字列がハンドル番号(=文字列化された数値)となっている。なお、これらのパラメータは、C言語の標準関数に準じた仕様としてある。
また、第1文字列が“fread”、“fwrite”の場合、上記ATコマンドの伝送に引き続いて、ファイルから読み込んだ実データやファイルへ書き込む実データの伝送が行われる。これら実データについては、複合機1およびPC2のいずれが送信側となる場合でも、以下のようなフォーマットのデータ列が伝送される。

<9.実データ伝送データ列>
<0dh><0ah>*Data;Len=(バイト数);<バイナリ・データ>;<0dh><0ah>

このデータ列中、「*Data」はバイナリ・データの伝送であることを示す識別用文字列、「;」はデータ構造の区切りを示す記号、「Len=」はデータ長を記述する前に記述される識別用文字列である。「(バイト数)」は、伝送対象となるバイナリ・データのデータ長であり、10進数表記の文字列または16進数表記の文字列で記述される。
「<バイナリ・データ>」は、伝送対象となるバイナリ・データの実体(実データ部分)であり、この「<バイナリ・データ>」のデータ長が、その前に記述された「(バイト数)」で示されたサイズとされる。
さらに、上記8種のATコマンドがPC2から複合機1へと伝送され、必要に応じて上記実データ伝送データ列が複合機1とPC2との間で伝送された後は、以下のようなフォーマットのデータ列が伝送されて、PC2が複合機1からステータスの受信を行う。

<10.ステータス伝送データ列>
<0dh><0ah>*Stat; "(第1文字列)" "(第2文字列)" "(第3文字列)" <0dh><0ah>

このデータ列中、「*Stat」はステータスの伝送であることを示す識別用文字列、「;」は識別用文字列の終端を示す区切り記号、「"」は文字列の始端と終端を示す記号である。「(第1文字列)」は「0」か「1」で、「0」は失敗、「1」は成功を表している。また、「(第2文字列)」、「(第3文字列)」は、第1文字列以外のリターンデータが格納される。
例えば、fopenの場合、第1文字列が「0(失敗)」なら、第2文字列は無し、第1文字列が「1(成功)」なら、第2文字列はハンドル番号(=文字列化された数値)とされる。また、fcloseの場合は、第2文字列はなしとされる。
つまり、PC2が複合機1に対して何らかのアクセスを実施する際には、まず、上記8種のATコマンドのいずれかがPC2から複合機1へと伝送され、その後、実データの伝送を伴うATコマンドであった場合のみ実データ伝送データ列によるデータ伝送が行われ、さらにその後、複合機1からPC2へステータスの伝送が行われることになる。
なお、以上のようなATコマンドにおいて、文字列中(始端と終端を「"」 で囲われた部分)において、文字「|」はエスケープコードとして利用される。具体的には、文字列中で「|xx (xxは16進数2桁) 」との記述を行うことにより、16進数2桁で指定した1バイトのデータを文字列中に埋め込むことができる。したがって、文字「|」を使えば、文字列の始端や終端を区切るための「"」自体を文字列の一部として記述したり、エスケープコードである「|」自体を文字列の一部として記述したりすることも可能となる。
[ATコマンド解析タスクにおいて実行される処理]
次に、複合機1各部で実行される処理の内、複合機1が備えるATコマンド解析タスク130において実行される処理について、図4に基づいて説明する。
この処理を開始すると、複合機1は、まず、PC2からATコマンドが来たか否かを判断する(S105)。ここで、PC2からATコマンドが来なければ(S105:来ない)、S105の処理へ戻る。
一方、PC2からATコマンドが来たら(S105:来た)、そのATコマンドが「AT+BRFTP」か否かを判断する(S110)。
S110の処理による判断の結果、ATコマンドが「AT+BRFTP」以外の場合(S110:AT+BRFTP以外)、複合機1は、ATコマンドをPC−FAX入出力タスク131へ伝送し、PC−FAX入出力タスク131側での処理終了を待つ(S115)。
このS115の処理においては、PC2から伝送されてきたATコマンドは、ATコマンド解析タスク130からPC−FAX入出力タスク131へと伝送される。また、S115の処理において、ATコマンドをPC−FAX入出力タスク131へ伝送した後は、PC−FAX入出力タスク131側での処理が終了するのを待つ。
PC−FAX入出力タスク131側での処理が終了した場合、PC−FAX入出力タスク131側から応答が返るので、S115の処理では、PC−FAX入出力タスク131からの応答を、PC2側へと伝送し、S115の処理を終了する。なお、S115の処理を終了したら、S105の処理へと戻る。
以上のようなS115の処理について、より具体的な例を交えて説明すると、例えば、PC2側からは、「AT+BRFTP」以外のコマンドで、FAX送信を要求するATコマンドが伝送されてくる場合がある。この場合、S115の処理では、ATコマンド解析タスク130が受け取ったATコマンドをPC−FAX入出力タスク131へと伝送する。
このとき、PC−FAX入出力タスク131では、所定の処理が実行される。そして、その所定の処理を実行した結果に関する情報が、応答としてPC−FAX入出力タスク131からATコマンド解析タスク130へ返される。
ATコマンド解析タスク130は、上記S115の処理の中で、PC−FAX入出力タスク131の処理終了を待つ。そして、PC−FAX入出力タスク131から応答を受け取ったら、その応答をATコマンドに対する応答としてPC2側へ返して、S115の処理を終了する。
つまり、「AT+BRFTP」以外のATコマンドがPC2から到来する場合、ATコマンド解析タスク130は、PC2側へのデータ伝送路とPC−FAX入出力タスク131との間に介在して、両者間でやり取りされるデータを単に中継するだけとなる。また、PC−FAX入出力タスク131において実行される上記「所定の処理」は、PC−FAX機能を有する一般的なFAXデバイスにおいて実行される処理と同等の処理とされている。
したがって、「AT+BRFTP」以外のコマンドがPC2から到来する場合、複合機1は、PC−FAX機能を有する一般的なFAXデバイスと同等に機能することになる。なお、ATコマンドでPC−FAX機能が制御される一般的なFAXデバイスは公知なので、そのようなFAXデバイスが実行する処理については、これ以上の詳細な説明を省略する。
一方、S110の処理による判断の結果、ATコマンドが「AT+BRFTP」の場合(S110:AT+BRFTP)、複合機1は、ATコマンドをファイル単位入出力タスク161へ伝送し、ファイル単位入出力タスク161側での処理終了を待つ(S120)。
このS120の処理においては、PC2から伝送されてきたATコマンドは、ATコマンド解析タスク130からファイル単位入出力タスク161へと伝送される。また、S120の処理において、ATコマンドをファイル単位入出力タスク161へ伝送した後は、ファイル単位入出力タスク161側での処理が終了するのを待つ。
ファイル単位入出力タスク161側での処理が終了した場合、ファイル単位入出力タスク161側から応答が返るので、S120の処理では、ファイル単位入出力タスク161からの応答をPC2側へと伝送し、S120の処理を終了する。なお、S120の処理を終了したら、S105の処理へと戻る。
つまり、PC2から到来したATコマンドが「AT+BRFTP」であった場合に限り、ATコマンド解析タスク130は、ATコマンドをPC−FAX入出力タスク131側へは伝送せず、データ列をファイル単位入出力タスク161へと振り分ける処理を実行する。
[物理セクタ単位入出力タスクで実行される処理]
次に、複合機1が備える物理セクタ単位入出力タスク143において実行される処理について、図5および図6に基づいて説明する。
この処理を開始すると、複合機1は、まず、SCSIコマンド解析タスク141からSCSIコマンドが来たか否かを判断する(S205)。ここで、SCSIコマンド解析タスク141からSCSIコマンドが来たら(S205:来た)、メディアへのアクセスが必要なコマンドか否かを判断する(S210)。
メディアへのアクセスが必要なコマンドであった場合(S210:はい)、現在メモリスロット制御タスク145の使用権を取得中か否かの判断を行う(S215)。このメモリスロット制御タスク145の使用権は、物理セクタ単位入出力タスク143またはファイルシステムタスク163が排他的に取得できる権利である。物理セクタ単位入出力タスク143とファイルシステムタスク163は、使用権を取得した場合にのみ、メモリスロット制御タスク145へのアクセスができる。これにより、両者が同時にメモリスロット制御タスク145に対してデータ伝送を行わないようにすることができる。
S215の処理で、メモリスロット制御タスク145の使用権を取得中ではないと判断した場合(S215:いいえ)、続いて、USBモードか否かを判断する(S220)
S220の処理において、USBモードであった場合(S220:はい)、メモリスロット制御タスク145の使用権を取得する(S225)。メモリスロット制御タスク145の使用権は、状況により取得できる場合もあれば取得に失敗する場合もあるので、S225の処理を終えたら、メモリスロット制御タスク145の使用権取得に成功したか否かを判断する(S230)。
取得に失敗していた場合(S230:いいえ)、メモリスロット制御タスク145の使用権はファイルシステムタスク163が取得しているものと考えられる。そこで、この場合は、SCSIコマンド解析タスク141から受け取ったSCSIコマンドに対応した処理として、擬似的にメディアが入っていない時に相当する応答のみを返す処理を実行し(S235)、S205の処理へと戻る
また、S220の処理において、USBモードでなかった場合(S220:はい)、USBストレージデバイスへのアクセスが禁止されるモードなので、この場合は、S225、S230の処理を実行することなく、直ちに上記S235の処理へと進む。
すなわち、この場合も、SCSIコマンド解析タスク141から受け取ったSCSIコマンドに対応した処理として、擬似的にメディアが入っていない時に相当する応答のみを返す処理を実行し(S235)、S205の処理へと戻る。
なお、メディアが入っていない時に相当する応答がPC2側に返されると、PC2は、図7に示すようなダイヤログを表示する。これにより、利用者は、USBストレージデバイスへのアクセスができない状態にあると理解することができる。
さて一方、上記S230の処理において、メモリスロット制御タスク145の使用権取得に成功した場合は(S230:はい)、S240処理へと進む。また、上記S215の処理において、メモリスロット制御タスク145の使用権を既に取得中であると判断した場合(S215:はい)も、S240処理へと進む。
S240の処理へと進んだ場合、権利解放までのタイマーをクリアして(S240)、SCSIコマンドを実行する(S245)。S245の処理では、SCSIコマンド解析タスク141から受け取ったSCSIコマンドに対応した処理が実行される。
より具体的には、例えば、SCSIコマンドがメディアからのデータ読み込みを要求するものであれば、S245の処理では、物理セクタ単位入出力タスク143からメモリスロット制御タスク145に対してメディアからのデータ読み込み指令が伝送される。
この指令を受けたメモリスロット制御タスク145では、第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、または第4メモリスロット154のいずれかに装着されたメディアから、物理セクタ単位でデータが読み出される。
そして、そのデータがメモリスロット制御タスク145から物理セクタ単位入出力タスク143へと返されるので、物理セクタ単位入出力タスク143では、メモリスロット制御タスク145から受け取ったデータを、SCSIコマンド解析タスク141へ返す。
また、例えば、SCSIコマンドがメディアへのデータ書き込みを要求するものであれば、S245の処理では、物理セクタ単位入出力タスク143からメモリスロット制御タスク145に対してメディアからのデータ書き込み指令が伝送される。
この指令を受けたメモリスロット制御タスク145では、第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、または第4メモリスロット154のいずれかに装着されたメディアに対して、物理セクタ単位でデータが書き込まれる。
その書き込み結果を示すデータは、メモリスロット制御タスク145から物理セクタ単位入出力タスク143へと返される。そこで、物理セクタ単位入出力タスク143は、メモリスロット制御タスク145から受け取ったデータを、SCSIコマンド解析タスク141へ返す。
こうしてS245の処理を終えたら、続いて、図6に示すように、現在メディアロック中か否かを判断し(S250)、メディアロック中でない場合は(S250:いいえ)、権利解放の所定時間を過ぎたか否かを判断する(S255)。そして、権利解放の所定時間を過ぎていれば(S255:過ぎた)、メモリスロット制御タスク145の使用権を解放する(S260)。
これらS250〜S260の処理において、メディアロックは、PC2側から伝送されてくる指示に基づいて設定されるもので、メディアロック中である場合、PC2はメディアが取り出されないことを前提とした処理を実行する可能性がある。
また、権利解放の所定時間は、PC2側から最後のアクセス要求が到来した後、所定時間が経過するまでは、メモリスロット制御タスク145の使用権を保持するために設定されている。これは、メディアロックが解除された場合でも、PC2側での遅延書き込み制御等に起因して、PC2側からメディアへのアクセス要求が到来する可能性があるために設けられたものである。
したがって、S250〜S260の処理では、メディアロック中でなく、且つ、権利解放の所定時間が経過している場合にのみ、メモリスロット制御タスク145の使用権を解放することになる。
逆に、現在メディアロック中である場合(S250:はい)、または、権利解放の所定時間を過ぎていない場合は(S255:まだ)、S260の処理はスキップされて、メモリスロット制御タスク145の使用権を保持したままとなる。
そして、以上のようなS250〜S260の処理を終えたら、S205の処理(図5参照)へと戻る。
さて、以上が、S205の処理においてSCSIコマンドが来たと判断された場合の処理となるが、S205の処理では、SCSIコマンド解析タスク141からSCSIコマンドが来ないと判断されることもある(S205:来ない)。
この場合は、図6に示すS265の処理へと進み、ファイル単位入出力タスク161からモードチェンジ要求が来たかどうかを判断する(S265)。モードチェンジ要求は、ファイル単位入出力タスク161が実行する処理の中で発行されるが、その処理の詳細については後述する。
S265の処理において、モードチェンジ要求が来たと判断した場合(S265:来た)、USBモードへのチェンジか否かを判断する(S270)。S270の処理において、USBモードへのチェンジではなかった場合は(S270:いいえ)、FTPモードへのチェンジであったことを意味する。
そこで、物理セクタ単位入出力タスク143では、現在メモリスロット制御タスク145の使用権を取得中か否かの判断を行う(S275)。
S275の処理において、メモリスロット制御タスク145の使用権を取得中でない場合(S275:いいえ)、FTPモードへのチェンジが可能である。また、S270の処理において、USBモードへのチェンジであった場合も(S270:はい)、USBモードへのチェンジが可能である。
そこで、これらの場合は、モードチェンジを受け入れて(S280)、S205の処理(図5参照)へと戻る。これにより、FTPモードまたはUSBモードへのチェンジが実行されることになる。なお、S280の処理を実行する手段が、本発明でいう動作モード設定手段の一例に相当する。
一方、S275の処理において、メモリスロット制御タスク145の使用権を取得中であった場合(S275:いいえ)、引き続きPC2からのアクセスを受ける可能性があるため、FTPモードへのチェンジができない。
そこで、この場合は、モードチェンジを拒否する(S285)。なお、S285の処理を終えたら、S250の処理へと進むが、S250以降の処理については既に説明したので、ここでの説明は省略する。
[ファイル単位入出力タスクで実行される処理]
次に、複合機1が備えるファイル単位入出力タスク161において実行される処理について、図8および図9に基づいて説明する。
この処理を開始すると、複合機1は、まず、ATコマンド解析タスク130からATコマンドが来たか否かを判断する(S305)。ここで、ATコマンド解析タスク130からATコマンドが来ない場合は(S305:来ない)、S305の処理へと戻る。
一方、ATコマンド解析タスク130からATコマンドが来たら(S305:来た)、ATコマンドが「AT+BRFTP」か否かを判断する(S310)。ここで、「AT+BRFTP」でない場合(S310:いいえ)、S305の処理へ戻る。
一方、「AT+BRFTP」であった場合は(S310:はい)、ATコマンド解析タスク130から伝送されてきたコマンド文字列群を受け取る(S315)。そして、その中の第1文字列に基づいて、引き続いてデータ出力があるコマンドか否かを判断する(S320)。
S320の処理において、データ出力があるコマンドであると判断した場合(S320:はい)、「<0dh><0ah>*Dataから始まるバイナリデータ(上述の<9.実データ伝送データ列>)」が到来するまで待つ(S325:待ち)。そして、「<0dh><0ah>*Dataから始まるバイナリデータ」が到来したら(S325:来た)、データを受け取って(S330)、S335の処理へと進む。
なお、S320の処理において、データ出力があるコマンドではないと判断した場合(S320:いいえ)、上記S325およびS330の処理はスキップして、S335の処理へと進む。
こうしてS335の処理へと進んだ場合、コマンド文字列群中の、第1文字列のコマンドを実行する(S335)。このS335の処理は、詳しくは図9に示す処理となる。
すなわち、複合機1は、まず第1文字列を判断する(S405)。このS405の処理を実行する手段が、本発明でいうファイルアクセス要求判定手段の一例に相当する。
S405の処理において、第1文字列がfopenまたはfcloseであった場合(S405:fopen/fclose)、関数fopen()または関数fclose()をコールする(S410)。これにより、ファイル単位入出力タスク161では、ファイルシステムタスク163を経由してファイルをオープンまたはクローズすることができる。
また、S405の処理において、第1文字列がfreadまたはfwriteであった場合(S405:fread/fwrite)、関数fread()または関数fwrite()をコールする(S415)。これにより、ファイル単位入出力タスク161では、ファイルシステムタスク163を経由してファイルを読み書きすることができる。
また、S405の処理において、第1文字列がmodegetであった場合(S405:modeget)、現在のモードを取得する(S420)。このS420の処理によって取得されるモードは、USBモードまたはFTPモードのいずれかとなる。
また、S405の処理において、第1文字列がmodesetであった場合(S405:modeset)、物理セクタ単位入出力タスク143にモードチェンジを要求する(S425)。このS425の処理によって物理セクタ単位入出力タスク143に対して発行される要求が、上述のS265の処理における判断対象になるものとなる。
以上のようなS405〜S425の処理を終えると、図8に示したS335の処理を終えたことになるので、引き続いて、第1文字列に基づいて、データ入力のあるコマンドか否かを判断する(S340)。
S340の処理において、データ入力があるコマンドであると判断した場合(S340:はい)、「<0dh><0ah>*Dataから始まるバイナリデータ(上述の<9.実データ伝送データ列>)」を複合機1からPC2へ転送し(S350)、S355の処理へと進む。すなわち、PC2側が複合機1側からデータ入力を行う場合も、PC2側が複合機1側に対してデータ出力を行う場合と同形式のデータ列にて、実データの伝送を行うのである。
なお、S340の処理において、ファイルアクセスデータ入力があるコマンドではないと判断した場合(S340:いいえ)、上記S350の処理はスキップして、S360の処理へと進む。
こうしてS360の処理へと進んだら、「<0dh><0ah>*Statから始まるステータス(上述の<10.ステータス伝送データ列>)」を複合機1からPC2へ転送する(S360)。そして、「OK<0dh><0ah>」を複合機1からPC2へ送信することにより、一つのATコマンド対する応答を行ってATコマンドを完結させ、S305の処理へと戻る。
[複合機内部ファイルシステムタスクで実行される処理]
次に、複合機1が備えるファイルシステムタスク163において実行される処理について、図10に基づいて説明する。
この処理を開始すると、複合機1は、まず、別タスクからファイルアクセス関連のリクエストが来たか否かを判断する(S505)。別タスクの具体例としては、例えば、ファイル単位入出力タスク161、メディアプリント機能171、FTPサーバータスク173などを挙げることができる。
ただし、複合機1に実装された機能によっては、具体例として列挙した上記のもの以外にも、ファイルシステムタスク163へのリクエストを発行するタスクが存在する場合がある。
S505の処理において、別タスクからリクエストが来ない場合は(S505:来ない)、S505の処理へと戻る。一方、別タスクからリクエストが来た場合(S505:はい)、そのリクエストがfopenであれば(S505:fopen)、現在メモリスロット制御タスク145の使用権を取得中か否かの判断を行う(S510)。
このメモリスロット制御タスク145の使用権は、既に説明したとおり、物理セクタ単位入出力タスク143またはファイルシステムタスク163が排他的に取得できる権利である。
S510の処理で、メモリスロット制御タスク145の使用権を取得中ではないと判断した場合(S510:いいえ)、メモリスロット制御タスク145の使用権を取得する(S515)。メモリスロット制御タスク145の使用権は、状況により取得できる場合もあれば取得に失敗する場合もある。
ここで、使用権取得に成功した場合(S515:成功)、あるいは、既に使用権を取得済みであった場合は(S510:はい)、該当ファイルのオープン処理(ハンドル作成)を実行して(S520)、S505の処理へと戻る。
一方、使用権取得に失敗した場合(S515:失敗)、メモリスロット制御タスク145の使用権は物理セクタ単位入出力タスク143が取得しているものと考えられるので、該当ファイルのオープンに失敗する(S525)。この場合、ハンドルは作成せず、S505の処理へと戻る。
また、S505の処理において、別タスクからのリクエストがfreadまたはfwriteであった場合(S505:fread/fwrite)、ハンドルファイルに対して読み書きを行って(S530)、S505の処理へと戻る。
また、S505の処理において、別タスクからのリクエストがfcloseであった場合(S505:fclose)、ハンドルのクローズ処理(ハンドル破棄)を行う(S535)。そして、すべてのハンドルが破棄されたか否かを判断する(S540)。
S540の処理において、すべてのハンドルが破棄されたと判断された場合は(S540:はい)、メモリスロット制御タスク145の使用権を解放して(S545)、S505の処理へと戻る。また、破棄されていないハンドルが残っていると判断された場合は(S540:いいえ)、S545の処理をスキップして、S505の処理へと戻る。
また、S505の処理において、別タスクからのリクエストがflistであった場合(S505:flist)、現在メモリスロット制御タスク145の使用権を取得中か否かの判断を行う(S550)。
S550の処理で、メモリスロット制御タスク145の使用権を取得中ではないと判断した場合(S550:いいえ)、メモリスロット制御タスク145の使用権を取得する(S555)。メモリスロット制御タスク145の使用権は、状況により取得できる場合もあれば取得に失敗する場合もある。
ここで、使用権取得に成功した場合(S555:成功)、あるいは、既に使用権を取得済みであった場合は(S550:はい)、該当ファイルのオープン処理(ハンドル作成)を実行する(S560)。
そして、ハンドルフォルダからファイル一覧を作成し(S565)、ハンドルのクローズ処理(ハンドル破棄)を行う(S535)。なお、S570の処理を終えたら、S540の処理へと進むが、S540以降の処理については既に説明したので、ここでの説明は省略する。
さらに、上記S555の処理において、使用権取得に失敗した場合(S555:失敗)、ファイルは1つもないというファイル一覧を作成し(S575)、S505の処理へと戻る。
[複合機内部メディアプリント機能で実行される処理]
次に、複合機1が備えるメディアプリント機能171において実行される処理について、図11に基づいて説明する。
この処理を開始すると、複合機1は、まず、カードのルートディレクトリのファイル一覧を作成する(S605)。このS605の処理では、関数flist()がコールされることにより、メディアプリント機能171経由でリムーバブルメディア上のファイルに対するアクセスが実行されることになる。
続いて、ルートディレクトリのファイル一覧に基づいて、サブディレクトリがあるかどうかを判断し、サブディレクトリがある場合は、さらに、サブディレクトリについてもファイル一覧を作成する(S610)。このS610の処理でも、関数flist()がコールされることにより、メディアプリント機能171経由でリムーバブルメディア上のファイルに対するアクセスが実行される。なお、S610の処理は、すべてのサブディレクトリを対象にして実行される。
そして、S605およびS610の処理によって得られたファイル一覧から、画像ファイルを抽出して(S615)、画像ファイルが1個以上あるか否かを判断する(S620)。ここで、画像ファイルがない場合は(S620:ない)、複合機1が備える表示部に「カードに画像ファイルがありません」とのメッセージを表示して(S625)、図11に示す処理を終了する。
一方、S620の処理で、画像ファイルが1個以上あると判断された場合は(S620:ある)、画像ファイルのサムネイルを作成する(S630)。S630の処理では、関数fopen()、fread()、fclose()などがコールされることにより、メディアプリント機能171経由でリムーバブルメディア上のファイルに対するアクセス(画像ファイルの読み込み)が実行され、読み込まれた画像ファイルがサムネイル化される。
続いて、複合機1の表示部に、カード内の画像ファイルを表示する(S635)。S635の処理では、画像ファイルのファイル名とS630の処理で作成されたサムネイルとを対にして、複合機1の表示部に表示する処理を実行する。
この後、複合機1は、ユーザーからの入力待ち状態となり、ユーザーが印刷する画像ファイルを選択可能な状態になる(S640)。この状態において、ユーザーがキャンセル操作を行った場合(S640:キャンセル)、図11に示した処理を終了する。
一方、S640の処理において、ユーザーが画像ファイルを選択して、印刷開始を指示する入力操作を行った場合(S640:選択、印刷開始)、複合機1は、印刷する画像ファイルをリードする(S645)。S645の処理では、関数fopen()、fread()、fclose()などがコールされることにより、メディアプリント機能171経由でリムーバブルメディア上のファイルに対するアクセス(画像ファイルの読み込み)が実行される。
そして、カードから読み込まれた画像ファイルを印刷して(S650)、図11に示す処理を終了する。
[PCで機能するFTPサーバーアプリケーションを起動したときに実行される処理]
次に、PC2で機能するFTPサーバーアプリケーション281を起動したときに実行される処理について、図12に基づいて説明する。
FTPサーバーアプリケーション281は、どのようなタイミングで起動されてもよいが、この機能を常時利用する可能性がある場合は、PC2の起動に連動して起動されるように設定しておくと好ましい。
FTPサーバーアプリケーション281が起動されて、この処理を開始すると、PC2は、modegetを実行する(S705)。具体的には、ATコマンドにより、上述の<2.モード取得コマンド>である「AT+BRFTP "modeget"<0dh><0ah>」を発行することにより、modegetコマンドの実行を複合機1に要求する。
このmodegetコマンドの実行要求が複合機1側に伝送されると、ATコマンド解析タスク130は、図4に示した処理により、ATコマンドをファイル単位入出力タスク161へと振り分ける。そして、ファイル単位入出力タスク161では、図8および図9に示した処理により、modegetに対応した処理(S420参照)を実行する。
そして、複合機1の現在のモードが、S360の処理により、PC2へと伝送される。その結果、PC2は、複合機1の現在のモードを取得することになる。
こうして複合機1のモードを取得したら、そのモードを記憶し(S710)、FTPサーバーアプリケーション起動時にFTPモードに切り替える設定か否かを判断する(S715)。FTPサーバーアプリケーション起動時にFTPモードに切り替えるか否かは、ユーザーが任意に設定可能で、どのような設定がなされたかは、FTPサーバーアプリケーション用の設定ファイル等に記憶されている。
FTPモードに切り替える設定であった場合(S715:はい)、現在の複合機1のモード(S705の処理で取得し、S710の処理で記憶したモード)がFTPモードか否かを判断する(S720)。
ここで、FTPモードでなかった場合(S720:いいえ)、PC2は、modesetを実行する(S725)。具体的には、ATコマンドにより、上述の<1.モードチェンジ要求コマンド>である「AT+BRFTP "modeset" "(要求するモード=FTPモード)"<0dh><0ah>」を発行することにより、modesetコマンドの実行を複合機1に要求する。
このmodesetコマンドの実行要求が複合機1側に伝送されると、ATコマンド解析タスク130は、図4に示した処理により、ATコマンドをファイル単位入出力タスク161へと振り分ける。そして、ファイル単位入出力タスク161では、図8および図9に示した処理により、modesetに対応した処理(S425参照)を実行する。これにより、物理セクタ単位入出力タスク143では、S270〜285の処理が実行される。
モードチェンジに成功したか否かは、S360の処理により、PC2へと伝送される。その結果、PC2は、モードの切り替えに成功したか否かの情報を取得することになる。
そこで、PC2は、モードの移行に成功したか否かを判断する(S730)。ここで、モードの移行に成功した場合は(S730:はい)、現在の複合機1のモードをFTPモードと記憶して(S735)、S740の処理へと進む。
なお、S715の処理において、FTPモードに切り替える設定ではないと判断した場合(S715:いいえ)、あるいは、S720の処理において、既にFTPモードであった場合は(S720:はい)、モード切り替えの必要がない。したがって、この場合は、S725〜S735の処理をスキップして、S740の処理へと進む。
また、S730の処理において、モードの移行に失敗した場合は(S730:はい)、移行失敗を一定時間表示して(S737)、S740の処理へと進む。
そして、S740の処理へと進んだら、現在の複合機1のモードに従いタスクトレイアイコンを決定し(S740)、FTPサーバースレッドの起動、およびTCP/IPのFTPサーバーポートのオープンを行い(S745)、図12に示した処理を終了する。
以上のようにして図12に示した処理を終えると、PC2の表示部にあるタスクトレイ(OSであるWindows(登録商標)が標準で備える情報通知領域)には、図13(a)および同図(b)に示すようなアイコンで、現在の複合機1のモードが表示される。
また、このアイコンをポインティングデバイスでクリック操作すると、図13(c)に示すように、ポップアップウィンドウが表示される。ポップアップウィンドウ中には、モードの一覧とアプリケーションの終了を指示するための項目が表示される。ここで、これらのいずれかをポインティングデバイスでクリック操作すると、モード変更やアプリケーションの終了を、利用者がFTPサーバーアプリケーション281に対して指令できる。
なお、利用者がモード変更を指示した場合に、FTPサーバーアプリケーション281が実行する処理については、以下に引き続いて説明する。
[FTPサーバーアプリケーションによるFTPモードへの切り替え処理]
次に、利用者がFTPサーバーアプリケーション281に対して、FTPモードへの切り替えを指示した際に、FTPサーバーアプリケーション281によって実行される処理について、図14に基づいて説明する。
この処理を開始すると、PC2は、まず、現在の複合機1のモードがFTPモードか否かを判断する(S805)。ここで、FTPモードであった場合は(S805:はい)、モードの切り替えを行う必要がないので、そのまま図14に示した処理を終了する。
一方、S805の処理で、FTPモードではなかった場合(S805:いいえ)、PC2は、modesetを実行する(S810)。具体的には、ATコマンドにより、上述の<1.モードチェンジ要求コマンド>である「AT+BRFTP "modeset" "(要求するモード=FTPモード)"<0dh><0ah>」を発行することにより、modesetコマンドの実行を複合機1に要求する。
S810の処理を終えたら、PC2は、モードの移行に成功したか否かを判断する(S815)。ここで、モードの移行に成功した場合は(S815:はい)、現在の複合機1のモードをFTPモードと記憶して(S820)、現在の複合機1のモードに従いタスクトレイアイコンを変更し(S825)、図14に示した処理を終了する。
一方、S815の処理で、モードの移行に失敗したと判断された場合(S815:いいえ)、PC2は、移行失敗のダイヤログを表示して(S830)、図14に示した処理を終了する。
[FTPサーバーアプリケーションによるUSBモードへの切り替え処理]
次に、利用者がFTPサーバーアプリケーション281に対して、USBモードへの切り替えを指示した際に、FTPサーバーアプリケーション281によって実行される処理について、図15に基づいて説明する。
この処理を開始すると、PC2は、まず、現在の複合機1のモードがUSBモードか否かを判断する(S905)。ここで、USBモードであった場合は(S905:はい)、モードの切り替えを行う必要がないので、そのまま図15に示した処理を終了する。
一方、S905の処理で、USBモードではなかった場合(S905:いいえ)、現在FTPサーバー経由でファイル転送中か否かを判断する(S910)。ここで、FTPサーバー経由でファイル転送中であった場合(S910:はい)、ダイヤログを表示する(S915)。
このダイヤログには、「現在FTPサーバー経由でファイル転送中です。モードを切り替えると転送がエラーで中断します。それでもモードを切り替えますか?」とのメッセージが表示され、このメッセージに対し、利用者は「はい」「いいえ」いずれかを選択することができる。
利用者が「いいえ」を選択した場合(S915:いいえ)、そのまま図15に示した処理を終了する。一方、利用者が「はい」を選択した場合(S915:はい)、S920の処理へと進む。また、S910の処理において、FTPサーバー経由でファイル転送中ではないと判断された場合は(S910:いいえ)、S915の処理はスキップされて、S920の処理へと進む。
こうしてS920の処理へと進むと、PC2は、modesetを実行する(S920)。具体的には、ATコマンドにより、上述の<1.モードチェンジ要求コマンド>である「AT+BRFTP "modeset" "(要求するモード=USBモード)"<0dh><0ah>」を発行することにより、modesetコマンドの実行を複合機1に要求する。
S920の処理を終えたら、PC2は、モードの移行に成功したか否かを判断する(S925)。ここで、モードの移行に成功した場合は(S925:はい)、現在の複合機1のモードをUSBモードと記憶して(S930)、現在の複合機1のモードに従いタスクトレイアイコンを変更し(S935)、図15に示した処理を終了する。
一方、S925の処理で、モードの移行に失敗したと判断された場合(S925:いいえ)、PC2は、移行失敗のダイヤログを表示して(S940)、図15に示した処理を終了する。
[第1実施形態の効果]
以上説明した通り、上記複合機1によれば、PC1側からの指令により、USBモードとFTPモードとを切り替えることができる。そして、USBモードに切り替えた際には、複合機1が備える第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、および第4メモリスロット154を、PC2側からUSBストレージデバイスとして認識、利用することができる。
したがって、USBストレージデバイス対応の各種アプリケーションで、第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、および第4メモリスロット154にセットされたカード上のファイルにアクセスすることができる。
また、FTPモードに切り替えた際には、複合機1対応の専用アプリケーション(例えば、FTPサーバーアプリケーション281)で、第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、および第4メモリスロット154にセットされたカード上のファイルにアクセスすることができる。
しかも、複合機1対応の専用アプリケーション(例えば、FTPサーバーアプリケーション281)は、複合機1側にあるファイルシステムタスク163経由でカード上のファイルにアクセスすることにより、ファイル単位でのアクセスを実行する。
すなわち、FTPサーバーアプリケーション281は、PC2側のファイルシステム231経由で、カード上のファイルに対してアクセスするUSBストレージデバイス対応の各種アプリケーションとは異なり、カード上のファイルに対し、物理セクタ単位でのアクセスを実行することがない。
このようなFTPサーバーアプリケーション281であれば、ファイルへのアクセス開始(fopen)、アクセス終了(fclose)については、複合機1側で管理できる。そのため、先に説明したメディアプリント機能171等と全く対等にファイルシステムタスク163経由でファイルアクセスを行うことができる。そして、ファイルアクセスが終了すれば、ファイルシステムタスク163はメモリスロット制御タスク145の使用権を直ちに解放することもできる。
そのため、物理セクタ単位入出力タスク143を利用することになるUSBストレージデバイスとは異なり、S250およびS255の処理によってメモリスロット制御タスク145の使用権解放に時間を要することが多くなるといった問題は無く、メモリスロット制御タスク145が無駄に占有される期間を少なくすることができる。
したがって、PC2からのアクセス要求、および複合機内蔵のデータ処理手段(メディアプリント機能171やFTPサーバータスク173)からのアクセス要求について、いずれか一方の処理が完了すれば直ちに他方の処理に移ることができ、どちらも迅速な処理が可能となる。
また、上記のようなPC2からのアクセス要求、および複合機内蔵のデータ処理手段からのアクセス要求が同時に発生するような状況下でも、それらの要求すべてが複合機内蔵のファイルシステムタスク163によって適切に管理・処理される。
そのため、物理セクタ単位の入出力とファイルシステムタスク経由の入出力が同時に発生する場合とは異なり、複数のアクセス要求が同時に発生しても何ら問題はなく、各要求に対する処理については、ファイルシステムタスク163の管理下で見かけ上同時処理ないし並列処理することも可能となる。
よって、上記のように、PC2からのアクセス要求、および複合機内蔵のデータ処理手段からのアクセス要求すべてをファイルシステムタスク163が管理するように構成されていれば、メディアプリント機能171やFTPサーバータスク173が、PC2からのアクセス要求に起因して待たされてしまうことがなく、第1メモリスロット151、第2メモリスロット152、第3メモリスロット153、および第4メモリスロット154にセットされたカード上のファイルにアクセスできる可能性を高めることができる。
さらに、上記のようなUSBモード、FTPモードのいずれに切り替えられている場合でも、PC2が複合機1にアクセスする際には、単一のUSBインターフェースを介してアクセスができる。
したがって、USBモード、FTPモードの各モードで利用するために、それぞれ専用の通信インターフェースを設ける必要はない。よって、その分だけ複合機1やPC2において必要となる通信インターフェース用のハードウェアを削減し、ハードウェアの簡素化を図ることができる。
(2)第2実施形態
次に、第2実施形態について説明する。
第2実施形態は、上記第1実施形態で例示したFTPサーバーに代えて、FTPサーバー以外のサーバーアプリケーションを採用した場合の構成を例示するものである。
すなわち、上記実施形態では、PC2側にFTPサーバーアプリケーション281を設けてFTPサーバーとして機能させ、FTPクライアントからの要求に応じて複合機1側のファイルにアクセスする例を示したが、ファイルを伝送可能なプロトコルであれば、FTP以外を採用してもよい。
具体例を挙げれば、FTPサーバーの代わりに、HTTP(HyperText Transfer Protocol)サーバーとしたり、CIFS(Common Internet File System)サーバーとしてもよい。以下、CIFSサーバーを採用した場合の例について説明する。
CIFSサーバーを採用する場合は、図16に例示するように、PC2側には、FTPサーバーアプリケーション281に代えてCIFSサーバーアプリケーション291を設ける。そして、クライアントコンピュータ上にあるCIFSクライアント(例えば、エクスプローラ293)を利用して、ファイルシステム295、マイクロソフト(登録商標)ネットワーククライアント297等を介して、TCP/IPプロトコル283経由で、CIFSサーバーアプリケーション291にアクセスする。
CIFSサーバーアプリケーション291には、FTPサーバーアプリケーション281と同等な「複合機1に対するファイルアクセス機能」を設け、CIFSクライアントからの要求に応じて複合機1側のファイルにアクセス可能とする。このように構成すれば、上述の第1実施形態と同等の効果を期待することができる。
また、第2実施形態として上述した例は、FTPサーバーの代わりにCIFSサーバーを採用する例であったが、必要があれば、FTPサーバー、CIFSサーバーの双方を利用可能な構成としてもよい。この場合、上記第1実施形態で例示したUSBモード、およびFTPモードに加え、CIFSモードが加わることになる。
これらのモードは、上記実施形態の場合と同様、PC2の表示部にアイコン表示するとよい。具体的には、CIFSモードになっている場合についても、図17(a)に示すように、PC2の表示部に現在の複合機1のモードを表示するとよい。
また、このアイコンをポインティングデバイスでクリック操作すると、図17(b)に示すように、ポップアップウィンドウが表示される点も、上記実施形態と同等に構成すればよい。また、その中で、モード変更やアプリケーションの終了を、利用者がクリック操作で指令できる点も、上記実施形態と同等に構成すればよい。
(3)変形例等
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
例えば、上記第1実施形態において、FTPサーバーアプリケーション281は、複合機1がFTPモードのときにアクセス要求を発行し、複合機1がUSBモードのときにはアクセス要求を発行しない構成としてあったが、これも他の構成を考え得る。
例えば、FTPサーバーアプリケーション281がアクセス要求を発行し、複合機1がアクセスを拒否する応答を返す構成としてもよい。この場合、アクセスを拒否する応答の一例としては、メディアが入っていない旨の応答を返す、といったものを考えることができる。
また、上記第1実施形態において、USBストレージデバイス機能を有するUSB複合デバイスとして認識される複合機は、リムーバブルメディアを装着可能な複合機1であったが、本発明において、実際にリムーバブルメディアを装着可能な構成を有するか否かは、特に限定されない。
具体的には、デバイスから脱着することができない内蔵フラッシュメモリを備えるデバイスであってもよく、内蔵フラッシュメモリが装着/脱着可能な構造となっているか否かは、本発明において任意である。
さらに、上記第1実施形態においては、FTPクライアントであるWEBブラウザ285と、FTPサーバーアプリケーション281が、同一のPC2に搭載されている例を示したが、これらはLAN経由で通信可能な別のPCにそれぞれが搭載されていてもよい。
すなわち、FTPクライアントであるWEBブラウザ285を備えるクライアントコンピュータと、FTPサーバーアプリケーション281を備えるサーバーコンピュータは、TCP/IPによる論理的なデータ伝送路を介して通信可能なものであれば、物理的な実態が同一PCなのか別PCなのかについては問われない。これは、FTPに代えて、HTTPやCIFSを採用した場合でも同じである。
第1実施形態として例示したファイル伝送システム全体のブロック図。 複合機の内部構成を示すブロック図。 PCの内部構成を示すブロック図 SCSIコマンド解析タスクにおいて実行される処理のフローチャート。 物理セクタ単位入出力タスクで実行される処理(その1)のフローチャート。 物理セクタ単位入出力タスクで実行される処理(その2)のフローチャート。 メディアが入っていない時にPCが表示するダイヤログの説明図。 ファイル単位入出力タスクで実行される処理(その1)のフローチャート。 ファイル単位入出力タスクで実行される処理(その2)のフローチャート。 複合機内部ファイルシステムタスクで実行される処理のフローチャート。 複合機内部メディアプリント機能で実行される処理のフローチャート。 FTPサーバーアプリケーションを起動したときに実行される処理のフローチャート。 PCに表示されるアイコンの説明図。 FTPサーバーアプリケーションによるFTPモードへの切り替え処理のフローチャート。 FTPサーバーアプリケーションによるUSBモードへの切り替え処理のフローチャート。 第2実施形態として例示したPCの内部構成を示すブロック図。 第2実施形態として例示したPCに表示されるアイコンの説明図。
1・・・複合機、2・・・PC、3・・・USB−HUB、4・・・他のUSBデバイス、5・・・LAN、6・・・PC、7・・・LAN、8・・・PC、101・・・USBプロトコルエンジン、102・・・共通制御回路、103・・・プリンタ系データ入出力回路、104・・・スキャナ系データ入出力回路、105・・・PC−FAX系データ入出力回路、106・・・カードリーダ系データ入出力回路、111・・・プリンタ入出力タスク、113・・・印字制御タスク、115・・・プリンタハードウェア、121・・・スキャナ入出力タスク、123・・・スキャナ制御タスク、125・・・スキャナハードウェア、131・・・PC−FAX入出力タスク、133・・・モデム制御タスク、135・・・モデムハードウェア、141・・・SCSIコマンド解析タスク、143・・・物理セクタ単位入出力タスク、145・・・メモリスロット制御タスク、151・・・第1メモリスロット、152・・・第2メモリスロット、153・・・第3メモリスロット、154・・・第4メモリスロット、161・・・ファイル単位入出力タスク、163・・・ファイルシステムタスク、171・・・メディアプリント機能、173・・・FTPサーバータスク、173・・・サーバータスク、201・・・USBプロトコルスタック、202・・・USB複合デバイスドライバ、203・・・USBストレージドライバ、211・・・SCSIコマンド処理部、221・・・リムーバブルディスクドライバ、223・・・プリントポートドライバ、225・・・スキャナドライバ、227・・・COMポートドライバ、231,295・・・ファイルシステム、261・・・プリンタドライバ、271・・・印刷可能アプリケーション、273・・・スキャン可能アプリケーション、275・・・PC−FAXアプリケーション、277,293・・・エクスプローラ、281・・・FTPサーバーアプリケーション、283・・・TCP/IPプロトコル、285・・・WEBブラウザ、287・・・他のUSBデバイスのドライバ、291・・・CIFSサーバーアプリケーション、297・・・マイクロソフト(登録商標)ネットワーククライアント。

Claims (6)

  1. 記憶装置および通信装置を内蔵しており、USB(Universal Serial Bus)インターフェースを介してコンピュータと接続可能で、前記コンピュータと接続された際、前記コンピュータには、USBストレージデバイス機能および通信デバイス機能を少なくとも含む複数種の機能を有するUSB複合デバイスとして認識される複合機であって、
    前記記憶装置の物理的記憶領域へのアクセスが指令された場合に、アクセス対象とされた前記物理的記憶領域へのアクセスを前記記憶装置に実行させる制御を行う記憶装置制御手段と、
    前記記憶装置において記憶されるデータをファイルとして管理する手段であって、前記記憶装置制御手段の使用権を取得した場合に、前記記憶装置制御手段を使用する他の手段とは排他的に前記記憶装置制御手段を使用可能となる手段であり、前記ファイルへのアクセス開始が指令された際、「前記使用権を取得済みであった場合」または「当該使用権の取得を試行して、その取得に成功した場合」いずれかの場合であれば、前記ファイルへのアクセスを開始し、その後、「前記ファイルへのアクセス終了が指令された場合」または「前記ファイルへのアクセス終了と自ら判断できた場合」いずれかの場合には、他にアクセス中のファイルが残っていなければ、取得していた前記使用権を解放する手段であり、かつ、前記ファイルへのアクセスが指令された際には、アクセス対象とされたファイルに対応する物理的記憶領域へのアクセスを、前記記憶装置制御手段に対して指令するファイル管理手段と、
    作動時に前記記憶装置に記憶されたデータを利用する機能を制御する手段であり、前記記憶装置に記憶されたデータを利用する際に、利用対象となるデータが格納されたファイルへのアクセスを前記ファイル管理手段に対して指令するデータ処理手段と
    前記コンピュータ前記通信デバイス機能を利用する際に使用される通信手順で、前記コンピュータ側から前記複合機側へデータ列が伝送された場合に、その伝送されたデータ列中に「あらかじめ定められた特殊データ列であることを示す情報」が含まれているか否かに基づいて、当該データ列が前記通信装置用のデータ列である標準データ列か、前記記憶装置用のデータ列である特殊データ列かを解析するデータ解析手段と、
    前記データ解析手段によって前記標準データ列であると解析された場合に、前記標準データ列中の情報に基づき、前記通信装置を制御する通信装置制御手段と、
    前記記憶装置制御手段の使用権を取得した場合に、前記記憶装置制御手段を使用する他の手段とは排他的に前記記憶装置制御手段を使用可能となる手段であり、前記コンピュータ前記USBストレージデバイス機能を利用する際に使用される通信手順で、前記コンピュータ側から前記複合機側へ「前記物理的記憶領域へのアクセスが必要となる指令」が伝送された場合に、前記使用権を取得済みであるか否かを判断する第1の判断を行い、前記第1の判断の結果、前記使用権を取得済みでなかった場合は、利用者によって任意に設定される前記複合機の動作モードとして、第1のモードまたは第2のモードのいずれが設定されているのかを判断する第2の判断を行い、前記第2の判断の結果、前記第1のモードが設定されていると判断された場合には、前記使用権の取得を試行して、当該使用権の取得に成功したか否かを判断する第3の判断を行っており、「前記第1の判断の結果、前記使用権を取得済みであった場合」または「前記第3の判断の結果、前記使用権の取得に成功した場合」いずれかの場合には、前記コンピュータ側から受け取った「前記物理的記憶領域へのアクセスが必要となる指令」に基づき、前記物理的記憶領域へのアクセスを前記記憶装置制御手段に対して指令し、前記物理的記憶領域へのアクセス終了後、あらかじめ定められた時間が経過した場合には、前記使用権を解放する一方、「前記第2の判断の結果、前記第2のモードが設定されていると判断された場合」または「前記第3の判断の結果、前記使用権の取得に失敗した場合」いずれかの場合には、「リムーバブルメディアがセットされていないUSBストレージデバイスに対して当該USBストレージデバイスの利用を要求した際に、当該USBストレージデバイスから返される応答」と等価な内容の擬似的な応答を前記コンピュータに返す手段である第1のストレージデバイス機能制御手段と、
    前記データ処理手段とは別の手段であり、前記データ解析手段によって前記特殊データ列であると解析された場合に、前記特殊データ列中の情報に基づき、当該情報中で指定されたファイルへのアクセスを、前記ファイル管理手段に対して指令する第2のストレージデバイス機能制御手段と
    を備えたことを特徴とする複合機
  2. 前記通信装置制御手段は、前記標準データ列中に含まれるATコマンドに基づき、前記通信装置を制御する手段であり、
    前記データ解析手段は、前記ATコマンドを構成する文字列中に前記特殊データ列であることを示す文字列が含まれているか否かにより、前記特殊データ列か前記標準データ列かを判定する
    ことを特徴とする請求項1に記載の複合機
  3. 前記データ解析手段によって前記特殊データ列であると解析された場合に、さらに、前記特殊データ列中の情報に基づき、当該情報中で指定されたファイルへのアクセスが指令されたか否かを判定するファイルアクセス要求判定手段
    を備え、
    前記第2のストレージデバイス機能制御手段は、前記ファイルアクセス要求判定手段により、前記特殊データ列中の情報中で指定されたファイルへのアクセスが指令されたとの判定がなされた場合に、前記特殊データ列中の情報中で指定されたファイルへのアクセスを、前記ファイル管理手段に対して指令する
    ことを特徴とする請求項1または請求項2に記載の複合機
  4. 前記データ解析手段によって前記特殊データ列であると解析された場合に、さらに、前記特殊データ列中の情報に基づき、前記第1,第2のモードいずれかの設定を要求するデータ列であるか否かを判定して、いずれかの設定を要求するデータ列であれば、要求された動作モードを設定する動作モード設定手段
    を備えことを特徴とする請求項3に記載の複合機
  5. 前記複合機は、前記複数種の機能として、前記USBストレージデバイス機能および前記通信デバイス機能の他に、プリンタ機能を備えており
    前記データ処理手段は、前記記憶装置に記憶された画像データに基づいて画像を印刷する機能を制御する手段であり、前記記憶装置に記憶されたデータを利用する際に、利用対象となるデータが格納されたファイルへのアクセスを前記ファイル管理手段に対して指令する手段として構成されている
    ことを特徴とする請求項1〜請求項4のいずれか一項に記載の複合機
  6. コンピュータと請求項1〜請求項5のいずれか一項に記載の複合機とを、USBインターフェースを介して接続することによって構成され、
    前記コンピュータは、クライアント機能を有するクライアントコンピュータとの間でファイルを伝送可能なサーバ機能を有するサーバコンピュータであり、
    前記クライアントコンピュータからのアクセス要求に応じて、前複合機が備える前記第2のストレージデバイス機能制御手段へとアクセス要求を伝達するとともに、当該アクセス要求に応じた前記複合機から返される応答データを、前記クライアントコンピュータへと伝送可能に構成されている
    ことを特徴とするファイル伝送システム。
JP2007224538A 2007-08-30 2007-08-30 複合機、およびファイル伝送システム Expired - Fee Related JP4470977B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007224538A JP4470977B2 (ja) 2007-08-30 2007-08-30 複合機、およびファイル伝送システム
US12/202,999 US7904609B2 (en) 2007-08-30 2008-09-02 Device and file transfer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007224538A JP4470977B2 (ja) 2007-08-30 2007-08-30 複合機、およびファイル伝送システム

Publications (2)

Publication Number Publication Date
JP2009059087A JP2009059087A (ja) 2009-03-19
JP4470977B2 true JP4470977B2 (ja) 2010-06-02

Family

ID=40409257

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007224538A Expired - Fee Related JP4470977B2 (ja) 2007-08-30 2007-08-30 複合機、およびファイル伝送システム

Country Status (2)

Country Link
US (1) US7904609B2 (ja)
JP (1) JP4470977B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5297910B2 (ja) * 2009-06-22 2013-09-25 京セラドキュメントソリューションズ株式会社 画像形成装置
US8832340B2 (en) * 2011-01-28 2014-09-09 Xerox Corporation System and method for enabling network access to mass storage devices connected to multi-function devices
JP5713099B2 (ja) * 2011-03-29 2015-05-07 富士通株式会社 情報処理装置、サブシステム、情報処理方法および情報処理プログラム
CN111722938B (zh) * 2020-05-08 2024-07-19 深圳市广和通无线股份有限公司 At指令处理方法、装置、计算机设备和存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000148651A (ja) 1998-11-10 2000-05-30 Hitachi Ltd 共有ディスク装置
JP3723004B2 (ja) 1999-01-12 2005-12-07 シャープ株式会社 通信保護装置
JP2004094493A (ja) 2002-08-30 2004-03-25 Canon Inc 記憶媒体処理装置およびその制御方法
US7526580B2 (en) * 2003-06-27 2009-04-28 Brother Kogyo Kabushiki Kaisha Peripheral device
JP2006252449A (ja) * 2005-03-14 2006-09-21 Toshiba Corp 不揮発性メモリモジュールおよび不揮発性メモリシステム
JP2006331088A (ja) 2005-05-26 2006-12-07 Canon Inc 記憶媒体処理装置
JP2007200235A (ja) 2006-01-30 2007-08-09 Brother Ind Ltd リムーバブルメディア装置、リムーバブルメディア装置制御プログラムおよびネット機器制御プログラム
JP4725397B2 (ja) * 2006-04-05 2011-07-13 セイコーエプソン株式会社 Usb複合デバイス,usb通信システム,及びusb通信方法

Also Published As

Publication number Publication date
US7904609B2 (en) 2011-03-08
JP2009059087A (ja) 2009-03-19
US20090063722A1 (en) 2009-03-05

Similar Documents

Publication Publication Date Title
JP4424392B2 (ja) デバイス、およびファイル伝送システム
JP4240690B2 (ja) 情報処理装置と情報処理方法、及び情報処理システム、並びに記録媒体
JP5665288B2 (ja) 情報処理装置、情報処理方法、制御プログラム
JP4333765B2 (ja) デバイス制御システム
JP4509965B2 (ja) ジョブレンダリング方法およびジョブレンダリングシステム
US20070091361A1 (en) Printer, print control method, and program for executing print control method
JP2011164854A (ja) 印刷設定管理装置、アプリケーション装置、印刷設定管理方法、印刷制御方法、及びプログラム
US7640576B2 (en) Print system, apparatus, and method for performing printing based on document information stored in document server
JP4470977B2 (ja) 複合機、およびファイル伝送システム
JP3903024B2 (ja) 出力管理方法及び情報処理装置
US20110279856A1 (en) Information processing apparatus, cooperative function setting control method, and storage medium
JP3826080B2 (ja) 情報処理装置及びその制御方法、制御プログラム、並びに媒体
JP5652997B2 (ja) 情報処理装置、デバイス情報表示方法、及びコンピュータプログラム
US9001363B2 (en) Printing control system, printing control method, and image processor
JP4424391B2 (ja) デバイス、およびファイル伝送システム
JP5924169B2 (ja) 中継装置、プログラムおよび中継装置の制御方法
US20080209006A1 (en) Data processing system, data processor, and method of operating data processing system
US11675553B2 (en) Printer, print system, and storage medium storing program configured to perform download printing by different modes
JP2004078282A (ja) プリンタ機器情報設定方法、画像印刷装置及びプログラム
JP4095294B2 (ja) 情報処理装置および情報処理方法およびプログラム
JP2007156994A (ja) ホスト装置及び印刷制御方法
JP4130201B2 (ja) サーバ、プリンタ機器情報設定方法、プログラム、及び記録媒体
JP3957972B2 (ja) 情報処理装置および印刷制御装置およびデータ処理方法および記憶媒体
JP4389180B2 (ja) メディア接続装置、メディア接続システム、メディア接続システムの操作方法
JP4564806B2 (ja) 画像形成装置及びその制御方法、画像形成システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090914

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100209

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100222

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4470977

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140312

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees