(第1実施形態)
以下、印刷システムを構成するプリンター及びホスト装置に係る第1実施形態について、図面を参照して説明する。
図1に示すように、印刷システム10は、電子機器の一例としてのプリンター11(印刷装置)とホスト装置50とを備えている。プリンター11は通信ケーブル70(例えばUSBケーブル)を通じてホスト装置50と通信可能に接続される。ホスト装置50は例えばパーソナルコンピューター(PC)からなるが、PCに限定されず、携帯情報端末(PDA(Personal Digital Assistants))、タブレットPC、スマートフォン、携帯電話等であってもよい。
図1に示すホスト装置50は、コンピューターを構成するCPU51及びUSBコネクター52を内蔵する本体53と、キーボート54A及びマウス54B(図5参照)からなる入力操作部の一例としての入力装置54と、モニター55とを備えている。
図1に示すように、ホスト装置50は、プログラムを実行するCPU51によりソフトウェアとして構築される機能構成部分として、制御部61、ホスト通信部62、インストーラー63及び印刷ドライバー64を備えている。但し、本実施形態では、二点鎖線で示すインストーラー63及び印刷ドライバー64は、プリンター11と通信可能に接続された状態で、ユーザーが入力装置54を操作して指示することでプリンター11からインストールされてホスト装置内に構築される。また、インストーラー63及び印刷ドライバー64は、CD(Compact Disc)から読込んだり、インターネットを介してサーバーからダウンロードしたりすることで、ホスト装置50にインストールすることも可能である。本実施形態では、インストーラー63及び印刷ドライバー64により、ホスト制御装置65が構成される。そして、電子機器の一例であるプリンター11とホスト制御装置65とにより、システムの一例が構成される。
図1に示すように、プリンター11は、その本体11aに設けられた操作パネル13を備えている。操作パネル13は、操作部14と、各種メニューや画像などが画面に表示される表示部15とを備えている。操作部14は、電源スイッチ14Aと、プリンター11に各種の指示等を入力するために操作される操作スイッチ14Bとを備えている。例えば表示部15に表示されるメニューにおいて操作スイッチ14Bを操作して各種の項目を選択することで、プリンター11の動作を決めるモードの選択、印刷対象の選択及び印刷条件の設定等を行うことができる。
また、プリンター11は、全体的な制御を司るコンピューターを含む動作部21と、ホスト装置50のUSBコネクター52に一端部(コネクター)が接続された通信ケーブル70の他端部(コネクター)が挿抜可能に接続される接続部の一例としてのUSBコネクター22と、表示部15を駆動させる表示駆動回路23等を備えている。
動作部21は、コンピューターを構成するCPU25及び不揮発性メモリー26を備えている。また、動作部21は、CPU25により制御されて印刷動作を行う印刷機構28を備えている。動作部21は、少なくとも二つのモードを切り替えて動作し、本実施形態では切り替えられるモードとして、ホスト装置50からの指示を受けて印刷動作を行う第1モードと、ホスト装置50のストレージとして動作する第2モードとを備えている。動作部21が第2モードでストレージとして動作した場合、ユーザーはホスト装置50の入力装置54の操作でプリンター11内の不揮発性メモリー26の記憶領域のうち少なくとも一部により構成されるストレージにアクセス可能となる。そして、ユーザーはホスト装置50のモニター55でストレージの格納内容の確認や格納されたプログラムのホスト装置での実行等が可能となっている。
本実施形態の印刷機構28は、用紙等の印刷媒体にインクで記録する不図示の印刷ヘッドと、印刷媒体を搬送する不図示の搬送装置とを備える。印刷ヘッドは、シリアル方式でもラインヘッド方式でもよく、その記録方式は、インクジェット方式、ドットインパクト方式及び電子写真式のうちいずれであってもよい。また、インクジェット方式の場合、インクを噴射する圧力を発生させる駆動素子は、圧電素子や静電素子、あるいは熱等を利用して瞬間的に気泡を発生させるヒーター素子でもよい。なお、印刷機構28は、CPU25からの指示に従って搬送装置の動力源や印刷ヘッド等を駆動させる駆動回路も備えている。
また、図1に示すように、CPU25は、プログラムを実行することでその内部にソフトウェアとして構築される複数の機能構成部分を備えている。すなわち、CPU25は、切替部31、制御部32、タイマー33、第1モードで動作する第1動作部34及び第2モードで動作する第2動作部35を備えている。切替部31は、USBデバイスとしてUSBホストとして機能するホスト通信部62と通信を行うデバイス通信部41、モードを判定するための第1判定部42と第2判定部43とを備えている。切替部31は、プリンター11とホスト装置50との接続時に、第1動作部34及び第2動作部35のうち起動させる一方をそのときのモードに応じて切り替える機能を有する。
ここで、制御部32は、タイマー33の計時制御、第1動作部34及び第2動作部35を起動させる制御を行う他、操作部14からの入力を受け付けてその入力情報に応じた制御又は処理をプリンター11に対して行う。タイマー33は、制御部32により制御され、プリンター11の電源オン(起動)時点からの経過時間(計時時間T)を計時する。
切替部31は、USBコネクター22を介してホスト装置50と接続されたときにホスト装置50と通信するとともに、ホスト装置50に対するプリンター11の動作モードを切替える処理を行う。第1判定部42は、電源スイッチ14Aがオンされてプリンター11が起動した時点からの経過時間を計時するタイマー33の計時時間Tが、所定時間の一例としての設定時間T1に達する前であるうちは第1モードと判定し、計時時間Tが設定時間T1に達した以後は第2モードと判定する。そして、切替部31は、プリンター11の起動時点から設定時間T1を経過する前にホスト装置50の接続が検出された場合は、第1モードで動作する第1動作部34を起動させ、プリンター11の起動時点から設定時間T1を経過した以後にホスト装置50の接続が検出された場合は、第2モードで動作する第2動作部35を起動させる。なお、切替部31は、プリンター11がホスト装置50と接続されていないときは、第1モードで動作する第1動作部34を起動させる。
デバイス通信部41は、ホスト装置とのUSB接続が検出された際、ホスト装置50との通信でホスト通信部62とエニュメレーションと呼ばれる初期処理を実行し、この初期処理においてプリンター11の動作を決めるクラス情報を含むディスクリプターと呼ばれる構成情報をホスト通信部62へ送信する。第1判定部42の判定結果が第1モードのときプリンター11のクラス情報は「プリンタークラス」とされ、判定結果が第2モードのときプリンター11のクラス情報は「マスストレージクラス」とされる。ホスト装置50は、プリンター11(デバイス通信部41)から受信したクラス情報が「プリンタークラス」であれば、その接続相手をプリンターと認識し、受信したクラス情報が「マスストレージクラス」であれば、その接続相手をストレージと認識する。
ここで、プリンター11の制御部32は、第1判定部42の判定結果を逐次監視し、計時時間Tが設定時間T1の経過前か経過以後かによって表示部15に表示させるメッセージを切替える表示制御を行う。プリンター11の電源オン時点から設定時間T1を経過する前は、表示部15に図2(a)に示すように、プリンターとして接続できる旨、及びストレージとして接続したい場合は接続を待機する旨のメッセージM1が表示される。
また、プリンターの電源オン時点から設定時間T1を経過した以後は、表示部15に図2(b)に示すように、ストレージとして接続できる旨、及びプリンターとして接続したい場合は操作パネル13で切替えるか通信ケーブルを接続してから電源を投入し直すかする旨のメッセージM2が表示される。そのため、プリンターとして接続したい場合、ユーザーは操作部14の操作で第1モードに切り替えるか、通信ケーブル70を接続してから電源スイッチ14Aを投入し直すかする。この場合、電源スイッチ14Aを投入し直して起動させてから設定時間T1を経過する前に通信ケーブル70を接続してもプリンター11を第1モードでホスト装置50に接続することができる。なお、図2(b)に示すメッセージM2は、通信ケーブル70の接続を検出したとき、又はプリンター11の起動から設定時間T1よりも長い所定時間を経過したときに消え、通常画面(例えば図3(a)のメニュー画面G1)に復帰する。
また、図1に示すプリンター11内では、第1判定部42の判定結果が「プリンタークラス」(第1モード)であれば、制御部32は第1動作部34を起動させる。一方、第1判定部42の判定結果が「マスストレージクラス」(第2モード)であれば、制御部32は第2動作部35を起動させる。第1動作部34が起動された第1モードでは、第1動作部34が印刷機構28を制御することで、プリンターは印刷動作が可能な印刷装置として動作する。また、第2動作部35が起動された第2モードでは、プリンター11は第2動作部35が不揮発性メモリー26の少なくとも一部の記憶領域をホスト装置50に対するストレージとするストレージ装置として動作する。
第1判定部42が判定した各モードに応じたクラス情報は、不揮発性メモリー26にクラス管理データCDとして保存される。また、不揮発性メモリー26においてプリンター11がストレージとして動作しているときにストレージとして使用される記憶領域には、ホスト装置50からユーザー操作に基づくストレージへのアクセスがあったときに、ホスト装置50にインストールされるインストーラープログラムP1及び印刷ドライバープログラムP2とが記憶されている。
ホスト装置50内のCPU51が、「プリンタークラス」を受信して接続相手をプリンターと認識しているときは、プリンター11内では第1動作部34が起動されており、印刷機構28による印刷が可能な状態となる。一方、ホスト装置50内のCPU51が、「マスストレージクラス」を受信して接続相手をストレージと認識しているときは、プリンター11内では第2動作部35が起動されており、ホスト装置50からストレージへのアクセスが可能な状態となる。
ユーザーはホスト装置50のモニター55に表示された文書又は画像等を指定して印刷の実行を指示すると、ホスト装置50内の印刷ドライバー64が印刷ジョブデータを生成してプリンター11に送信する。プリンター11はホスト装置50から受信した印刷ジョブデータに基づく文書又は画像等を用紙等の印刷媒体に印刷する。
また、ユーザーはホスト装置50の入力装置54を操作してプリンター11内の不揮発性メモリー26にアクセスしてその中に格納されたプログラム等をモニター55で確認したうえで実行させることが可能になっている。例えばホスト装置50に接続先のプリンター11に対応する印刷ドライバーがインストールされていない場合、ユーザーはプリンター11を第2モードとし、ホスト装置50の入力装置54を操作してプリンター11内の不揮発性メモリー26にアクセスする。そして、不揮発性メモリー26に格納された印刷ドライバー用のセットアッププログラムを実行することにより、インストーラー63及び印刷ドライバー64のインストールが可能になっている。
また、通信ケーブル70が接続された状態でプリンター11の電源が投入された場合は第1モード(プリンターモード)なので、表示部15に図3(a)に示すメニュー画面G1(初期画面)が表示される。このとき、通信ケーブル70を抜いてプリンター11の電源を投入し直してもよいが、操作スイッチ14Bを操作してモードを切り替えることもできる。例えば図3(a)に示すメニュー画面G1で操作スイッチ14Bを操作してメニューの下位を選択して図3(b)に示すモード切替え画面G2にする。このモード切替え画面G2で「簡易ドライバーインストール」と記された第2モードボタン82を選択すると、第2モードに切り替わる。そして、図3(c)に示すメッセージ画面G3が表示部15に表示される。このメッセージ画面G3には、「ホスト装置とUSBケーブルで接続してください。」というメッセージM3が表示される。そして、第2モードにあるプリンター11を通信ケーブル70でホスト装置50と接続する。ホスト装置50は接続先をストレージと認識する。
図4(a)に示すように、ホスト装置50のモニター55に表示させたファイル管理ツール85(例えばマイクロソフト社製「ウインドウズ(登録商標)エクスプローラー」)において、ストレージと認識されたプリンター11は「ストレージ装置」と記された例えばリムーバブルディスクとして表示される。このファイル管理ツール85において、同図に示すようにマウス54Bの操作で「ストレージ装置」を選択(クリック)すると、図4(b)に示すように「ストレージ装置」の内容(下位階層)が表示される。「ストレージ装置」の中には、「Setup.exe」と「Data」フォルダーとが含まれる。「Setup.exe」には、インストーラープログラムP1が含まれる。また、「Data」フォルダーには、印刷ドライバープログラムP2を含む印刷ドライバーファイル及び各種データファイル等が格納されている。図4(b)に示すように、ユーザーがマウス54Bの操作で「Setup.exe」を実行させると、インストーラー63及び印刷ドライバー64を、プリンター11からホスト装置50へインストールするインストール処理が開始される。
図5に示すように、まず(1)インストーラーがインストールされ、ホスト装置50内で起動されたインストーラー63により、(2)印刷ドライバーファイル等のインストールが行われる。インストール処理中は図3(d)に示すように表示部15にインストール中である旨のメッセージM4が表示される。そして、インストールが終わると、表示部15の画面が図3(a)に示すメニュー画面G1に復帰する。
ところで、ユーザーが印刷を目的としてプリンター11の電源を投入し、この起動時点から設定時間T1を経過した以後にホスト装置50と接続される場合がある。このとき、プリンター11は第2モードで動作するが、ユーザーは既に印刷ドライバー64がインストール済みであることなどを理由に、プリンター11のストレージにアクセスすることはない。そこで、本実施形態の動作部21は、第2モードで動作してからの経過時間をタイマー33で計時し、ホスト装置50からアクセスがない時間が閾値T2を超えると、第2モードから第1モードに切り替える。このため、ユーザーがストレージを利用する意思がないにも拘らず第2モードの状態が維持されることを回避でき、ユーザーが必要とする第1モードに切り替わる。
また、図6に示すように、本実施形態では不揮発性メモリー26には、プリンター用記憶領域26Aとストレージ用記憶領域26Bとが含まれている。プリンター用記憶領域26Aには、図9〜図11にフローチャートで示されるプリンター11側のCPU25により実行されるプログラム及び印刷動作時に必要な各種データ等が記憶されている。ストレージ用記憶領域26Bは、第2モードにおいてホスト装置50からのアクセスが可能なストレージとなる領域である。このストレージ用記憶領域26Bには、インストーラープログラムP1及び印刷ドライバープログラムP2を含むホスト装置50側のCPU51により使用される各種プログラム及びデータ等が記憶されている。本実施形態では、一例として不揮発性メモリー26のアドレスAP0〜APEの範囲がプリンター用記憶領域26Aになっており、アドレスAS0〜ASEの範囲がストレージ用記憶領域26Bとなっている。
本実施形態では、ホスト装置50は印刷ドライバー64のインストールを終えると、プリンター11にモードの切替えを指示する。このモード切替えの指示は、インストーラー63が行う。モード切替えをベンダーコマンドで指示する構成にすると、プリンター11と接続されていないときインストーラー63が発行したベンダーコマンドによってそのとき接続先の機器が不適切な処理を行う虞が少なからずある。この種の不適切な処理をより確実に回避するため、本実施形態のインストーラー63は、ベンダーコマンド以外の以下に示す2つの指示方法のうち少なくとも一つによってモード切替えを指示する。すなわち、(A)ストレージの範囲外へアクセスすること、(B)取出しコマンドを送信すること、のうち少なくとも一つによってモード切替えを指示する。
図1に示すプリンター11のCPU25は、前述の(C)ホスト装置からアクセスがない時間が閾値T2を超えることと、ホスト装置50による上記(A),(B)の処理とを、モード切替え指示とみなすように設定されている。詳しくは、図1に示す第2判定部43は、第2モードで動作してからの時間が閾値T2を超えたか否かを判定する。また、第2判定部43は、印刷ドライバーのインストール完了後、ホスト装置50からのモード切替え指示の有無を判定する。第2判定部43は、以下の3つをモード切替え指示として判定する。すなわち、第2判定部43は、(C)第2モードで動作してからホスト装置からアクセスがない時間が閾値T2を超えることと、(D)ストレージの範囲外へのアクセスがあったことと、(E)取出しコマンドを受信したこととのうち少なくとも一つが成立すると、モード切替え条件が成立したものと判定する。
また、図7に示すように、ホスト装置50のインストーラー63は、プリンター11がストレージ装置として動作した際のストレージの範囲を問い合わせる指示(リードキャパシティ(Read Capacity))をプリンター11に送る。プリンター11はこの問合せに応答し、ストレージ範囲に係る情報として、例えばストレージ用記憶領域26Bを含む不揮発性メモリー26の最大アドレスASE(図6参照)をホスト装置50に通知する。ホスト装置50のインストーラー63は、最大アドレスASEの値に「1」以上の所定値を加算した値をアドレスに指定してストレージ範囲外にアクセスする。アクセスは、例えば読出指示の一例であるリード(Read)としている。これはデータの書替えを伴うライト(Write)やプリンター11側への参照データの送信を伴うベリファイ(Verify)に比べ、不揮発性メモリー26上のデータ書替えの虞がないからである。
ここで、自社製品のプリンター11用に作成したベンダーコマンドを使用することも可能であるが、ホスト装置50に自社製品以外の他社の電子機器が接続されているときに、何らかの原因でベンダーコマンドが他社の電子機器に送信されてしまった場合、その他社の電子機器に不適切な動作等が何も起きない保証をすることができない。しかし、本実施形態では、(A)ストレージの範囲外へアクセスすることと、(B)取出しコマンドを送信することとのいずれかなので、他社の電子機器に不適切な動作等が起こる心配がない。仮にホスト装置50のインストーラー63が何らかの原因でモード切替え指示として他社の電子機器にストレージの範囲外へアクセスすることになっても、他社の電子機器は「Out of Range」のエラーを返すだけなので、他社の電子機器に悪影響はない。
なお、本実施形態では、ストレージの範囲外(実際は不揮発性メモリー26の範囲外)へのアクセスなので、アクセスはライト又はベリファイであってもよい。また、リードの場合は、不揮発性メモリー26上のデータが書替えられる心配がないので、そのアクセス先がストレージ範囲内であってもよい。また、ストレージの範囲外へのアクセスとする場合でも、ホスト装置50がストレージ範囲を取得する問合せをすることなく、予め既知のストレージ範囲外の一定アドレスにアクセスしてもよい。
ホスト装置50は、上記の動作を実現するインストーラー63を構築するためのプログラムとして、問合せ動作(問合せステップ)と、モード切替動作(モード切替えステップ)とを、ホスト装置50のコンピューター(CPU51)に実行させるプログラムを備えている。問合せ動作では、ホスト装置50がストレージ装置のストレージ範囲を問い合わせる。また、モード切替動作では、問合わせ動作で得られたストレージ装置のストレージ範囲外に対するアクセスをストレージ装置のモードを切り替える切替指示として、ストレージ装置に対して行う。
また、図8に示すように、ホスト装置50のインストーラー63は、プリンター11に対して取出しコマンドを送信する。本例では、取出しコマンドの一例としてStart Stop Unitコマンドを送信する。取出しコマンドを用いるのは、ホスト装置50のインストーラー63が何らかの原因でモード切替え指示として取出しコマンドを送信しても、他社の電子機器はエラーを返すか、仮に取出装置を備えている場合でも、その取出装置の取出動作が行われるだけで、データの書替え等の悪影響の心配がないからである。
図1に示す切替部31は、第2判定部43の判定結果からモード切替え指示があると、第1動作部34と第2動作部35との間で起動させる一方を切り替えるモード切替えを行う。このモード切替えの結果は、切替部31によりクラス管理データCDに反映される。
次に印刷システム10及び印刷システム10を構成するプリンター11に備えられたストレージ装置の作用を説明する。まず図9〜図11を参照してプリンター11のCPU25が実行する処理について説明する。図9にフローチャートで示されるプログラムは、電源スイッチ14Aの操作によるプリンター11の起動をトリガーとしてCPU25により実行される。図9に示す処理には、プリンター11が、第1モードでプリンターとして動作するか、第2モードでストレージとして動作するかを決める処理が含まれる。
例えばプリンター11を携帯して外出先にあるパーソナルコンピューター等のホスト装置50を使用してプリンター11に印刷させる場合や、逆にパーソナルコンピューター等のホスト装置50を携帯して外出先にあるプリンター11を使用してホスト装置50からの指示でプリンター11に印刷させる場合が想定される。これらの場合、ホスト装置50にプリンター11に対応する印刷ドライバーがインストールされていないと印刷ができない。そこで、本実施形態のプリンター11には、印刷ドライバープログラムP2と、その印刷ドライバーをインストールさせるためのインストーラープログラムP1とが内蔵されている。
プリンター11には、用紙等の印刷媒体に印刷を行うプリンターとして動作する第1モードと、ホスト装置50へ印刷ドライバーをインストールするためにホスト装置50のストレージとして動作する第2モードとが設定されている。ここで、印刷ドライバーをインストールするためには、プリンター11をホスト装置50のストレージとして動作させる第2モードで動作させる必要があるが、操作パネル13で第2モードに切り替える操作をユーザーに強いることは、プリンター11の操作に不慣れなユーザーにとっては面倒な作業になる。
一方、印刷ドライバーのインストールをし易くするためにプリンターを常に第2モードで起動させると、ホスト装置50が既に印刷ドライバーをインストール済みである場合、ストレージとして動作しているプリンター11を、ホスト装置50はストレージとして認識しているため、印刷を行うことができなくなる。そこで、本実施形態のプリンター11では、プリンター11の起動時点からの経過時間をタイマー33で計時し、起動時点から設定時間T1を経過する前にホスト装置50との接続が検出された場合、プリンター11は第1モードで動作する。一方、プリンター11の起動時点から設定時間T1を経過した以後にホスト装置50との接続が検出された場合、プリンター11はホスト装置50のストレージとして第2モードで動作する。以下、図9のフローチャートに従ってプリンター11が行う処理について詳細に説明する。
まずステップS11では、タイマーの計時を開始する。
次のステップS12では、起動から設定時間の経過前であるか否かを判定する。設定時間T1の経過前である場合はステップS13に進み、設定時間T1の経過以後である場合はステップS14に進む。
ここで、プリンター11の電源オン時点からの経過時間が設定時間T1を経過する前は、表示部15にプリンターとして接続できる旨及びストレージとして接続したい場合は待機する旨の図2(a)に示すメッセージM1が表示される。プリンターとして接続したい場合は、図2(a)に示すメッセージM1の表示中に通信ケーブル70でホスト装置50と接続する。また、プリンター11の電源オン時点から設定時間T1を経過した以後は、表示部15にストレージとして接続できる旨、及びプリンターとして接続したい場合は操作パネルで切替えるかUSBケーブルを接続してから電源を投入し直すかする旨の図2(b)に示すメッセージM2が表示される。そのため、プリンター11を第1モードでプリンターとして接続したいユーザーは、操作スイッチ14Bを操作してモードを切り替えるか、通信ケーブル70を接続してから電源スイッチ14Aを投入し直すかする。一方、プリンター11を第2モードでストレージとして接続したいユーザーは、図2(b)に示すメッセージM2の表示中に通信ケーブル70でホスト装置50と接続する。
また、プリンター11とホスト装置50とを通信ケーブル70で接続した状態でプリンター11を電源オンした場合、プリンター11はホスト装置50に対してプリンタークラスで接続される。このとき、接続先のホスト装置50に印刷ドライバーがインストールされていない場合、印刷ドライバーをインストールする必要がある。第1モードで接続されると、表示部15の画面がメッセージM1から図3(a)に示すメニュー画面(初期画面)に復帰する。このとき、プリンター11の電源を投入し直してもよいが、操作パネル13の操作スイッチ14Bを操作してモードを切り替えることもできる。なお、操作スイッチ14Bを操作してモードを切り替える場合、第1モードから第2モードへの切り替えに加え、第2モードから第1モードへの切り替えも可能である。
例えば図3に示すように、メニュー画面G1から操作スイッチ14Bを操作してメニューの下位を選択して図3(b)に示すモード切替え画面G2にする。このモード切替え画面G2で「プリンターモード」と記された第1モードボタン81を選択すると、第1モードに切り替わる。また、このモード切替え画面G2で「簡易ドライバーインストール」と記された第2モードボタン82を選択すると、第2モードに切り替わる。そして、図3(c)に示すメッセージ画面G3が表示部15に表示される。このメッセージ画面G3には、「ホスト装置とUSBケーブルで接続してください。」というメッセージM3が表示される。そして、第2モードを選択した状態で、通信ケーブル70でホスト装置50と接続する。
ステップS13では、ホスト装置との接続を検出したか否かを判定する。ホスト装置との接続を検出した場合はステップS15に進み、ホスト装置との接続を検出しなかった場合はステップS12に戻る。
また、ステップS14では、ホスト装置との接続を検出したか否かを判定する。つまり、プリンター11の起動時点から設定時間T1を経過する前にホスト装置との接続を検出した場合はステップS15に進み、ホスト装置との接続を検出しなければホスト装置との接続が検出されるまでそのまま待機する。
よって、プリンター11の起動から設定時間T1を経過する前にホスト装置50との接続が検出された場合はステップS15に進み、一方、プリンター11の起動から設定時間T1を経過した以後にホスト装置50との接続が検出された場合はステップS16に進む。
ステップS15では、プリンタークラスで通信を確立し、第1モードで動作する。つまり、プリンター11は、ホスト装置から送信される印刷ジョブデータに基づく印刷を用紙等の媒体に施すことができるプリンターとして動作する。
一方、ステップS16では、マスストレージクラスで通信を確立し、第2モードで動作する。つまり、プリンター11は、ホスト装置50のストレージとして動作する。このとき、タイマー33の計時が開始され、第2モードで動作してからの経過時間が計時される。この第2モードでは、図4(a)に示すように、ユーザーはホスト装置50のモニター55に表示させたファイル管理ツール85においてプリンター11を「ストレージ装置」として見ることができる。そして、「ストレージ装置」中の「Setup.exe」をマウス54Bの操作で実行させると、プリンター11からホスト装置50へのインストーラー63及び印刷ドライバー64のインストールが開始される。このインストール中は表示部15に図3(d)に示すインストール中である旨のメッセージM4が表示される。
ステップS17では、モード切替え操作があったか否かを判定する。モード切替え操作があった場合は、ステップS15に進み、モード切替え操作がなければステップS18に進む。例えばユーザーは第1モードに切替えて印刷をしたい場合、操作スイッチ14Bの操作で図3(b)に示す第1モードボタン81を選択する。操作スイッチ14Bによるモード切替え操作が行われた場合はステップS15に進むことになる。そして、ステップS15では、プリンタークラスで通信を確立し、第1モードで動作する。このようにホスト装置50との通信ケーブル70を通じた接続を維持したままモードを切り替えるときは、D+端子とD−端子とを0VにしてUSB接続を一旦切断し、0Vから元の電位が戻ると、ホスト装置はデバイスのUSB接続を検出し、プラグアンドプレイ処理が行われる。このプラグアンドプレイ処理の中でプリンターはクラス情報をホスト装置に送信する。
ステップS18では、インストール要求を受信したか否かを判定する。ユーザーは、ホスト装置50のモニター55に表示されるファイル管理ツール85におけるストレージ装置中の「Setup.exe」をマウス54Bの操作で実行させる。ホスト装置50のCPU51が「Setup.exe」を実行する。CPU51は、「Setup.exe」のプログラムの実行上の処理で、ストレージ装置(つまりプリンター11)(例えばDドライブ)に対してインストール要求を行う。ステップS18の判定処理では、このインストール要求を受信したか否かを判定する。インストール要求を受信した場合はステップS19に進み、インストール要求を受信しなかった場合はステップS20に進む。
ステップS19では、ホスト装置への印刷ドライバーのインストール処理を行う。このインストール処理には、ホスト装置50へのインストーラープログラムP1の送信、ホスト装置50内で起動されたインストーラー63からの要求に応じたホスト装置50への印刷ドライバープログラムP2の送信する処理などが含まれる。このインストール処理は、例えば図10に示すプリンター11側のインストール処理ルーチンをCPU25が実行することにより行われる。
ステップS20では、モード切替え条件が成立したか否かを判定する。本実施形態では、第2モードで動作してからアクセスがない時間が閾値T2を超えると、モード切り替えを指示する。また、本実施形態では、印刷ドライバーのインストールが終わると、インストーラー63が、以下の2つのうち少なくとも一つを用いてモード切替え指示を行う。
(A)ストレージの範囲外へアクセスする。
(B)取出しコマンドを送信する。
プリンター11は、以下の3つをモード切替え指示とみなす。
(C)第2モードになってからアクセスがない時間が閾値T2を超えている。
(D)ストレージの範囲外へのアクセスがあった。
(E)取出しコマンドを受信した。
プリンター11のCPU25は、図11に示すモード切替え判定処理ルーチンにより、上記(C)〜(E)のモード切替え条件のうち一つが成立したか否かを判定する。このステップS20において、モード切替え条件が不成立の場合はステップS17に戻り、モード切替え条件が成立した場合はステップS15に進む。
例えば第2モードにおいてホスト装置からのアクセスがない時間が閾値T2を超えると、ユーザーがインストールの意思がないものとみなし、たとえインストール前であっても第1モードに切り替える(S18で否定判定かつS20の条件成立の場合)。また、印刷ドライバーのインストール後にインストーラー63による上記(A),(B)のうちのいずれか一つの処理が行われた結果、プリンター11側で上記(D),(E)のうちのいずれか一つのモード切替え条件が成立する。この場合、ステップS15に進んで、第1モードへの切替え処理が行われる。
このときステップS15において、データ線D+とD−とを一旦0VにしてUSB接続を一旦切断し、元の電圧に戻すプルアップをすることで再接続する処理を行う。そして、この再接続後にプリンタークラスで通信を確立し第1モードで動作する。ホスト装置50のCPU51は、接続相手のデバイス装置(プリンター11)をプリンターと認識する。ユーザーはホスト装置50の入力装置54を操作することでプリンター11を指定した印刷の実行を指示することができる。この印刷の実行の指示を受け付けた印刷ドライバー64は、印刷の実行が指示された画像又は文書等を印刷するための印刷ジョブデータ(印刷ジョブ)を生成し、その印刷ジョブデータをプリンターへ送信する。
ステップS21では、印刷ジョブを受信したか否かを判定する。印刷ジョブを受信した場合はステップS22に進み、印刷ジョブを受信していない場合はステップS23において電源オフが操作されたか否かを判定し、電源オフが操作されていない場合はステップS21に戻り、以降、ステップS21で印刷ジョブを受信するか、ステップS23で電源オフが操作されるまで、S21〜S23の処理を繰り返す。そして、ステップS21において、印刷ジョブを受信すると、印刷ジョブに基づく印刷処理を行う(S22)。この印刷処理では、第1動作部34が印刷ジョブに基づき印刷機構28を駆動させることで、用紙等の印刷媒体に印刷ジョブに基づく画像等を印刷する。一方、ステップS23において、電源オフが操作された場合はステップS24で電源オフ処理を行う。この結果、プリンター11の電源がオフされる。
次に図10を参照して、図9におけるインストール処理(S19)の詳細を示すプリンター側のインストール処理ルーチンについて説明する。
まずステップS31では、インストーラープログラムを送信する。
次のステップS32では、印刷ドライバー要求を受信したか否かを判定する。印刷ドライバー要求を受信しなかった場合は受信するまで待機し、印刷ドライバー要求を受信した場合はステップS33に進む。そして、ステップS33では、印刷ドライバープログラムをホスト装置に送信する。
次に図12を参照して、ホスト装置側のインストール処理ルーチンについて説明する。
まずステップS51では、インストール要求をプリンターに送信する。
次のステップS52では、インストーラー(インストーラープログラムP1)を受信したか否かを判定する。インストーラーを受信しなければそのまま待機し、インストーラーを受信すればステップS53に進んでインストーラーを起動させる。つまり、ホスト装置50のCPU51はインストーラープログラムP1を実行することでホスト装置50内にインストーラー63(図1を参照)を構築するとともに、このインストーラー63を起動させる。インストーラー63は、以降のステップS54〜S56の処理を実行する。
次のステップS54では、印刷ドライバーをインストールする。この処理においてまずプリンター11に対して印刷ドライバー要求を行う。そして、プリンター11から印刷ドライバープログラムP2を受信すると、その受信した印刷ドライバープログラムP2をインストールする。こうして印刷ドライバー64がインストールされる。
次のステップS55では、モード切替え指示を行う。詳細には、(A)ストレージの範囲外へアクセスすること、(B)取出しコマンドを送信することのうち一つの処理を実行する。なお、これら二つの動作がプログラムされており、そのときの条件に応じた1つを選択して実行してもよいし、これら二つの動作のうちいずれか1つのみがプログラムされていてもよい。もちろん、そのときの条件に応じて選択された一方を実行してもよい。要するに、これら二つの動作のうち1つの動作が行われればよい。また、プリンターの機種によって、プリンター側ではホスト装置からこれら二つの動作のうち特定の1つの動作しか把握できない設定になっている場合、これらの二つの動作をプリンターからモード切替えの応答を受信するまで順番に実行してもよい。
ステップS56では、ホスト装置を再起動する。すなわち、ホスト装置50内のCPU51は、インストールされた印刷ドライバーを有効にするため、ホスト装置50を再起動させる。
ステップS57では、プリンターの接続を検出したか否かを判断する。プリンターの接続を検出しなければそのまま待機し、プリンターの接続を検出すればステップS58に進む。
ステップS58では、プラグアンドプレイ処理を行う。すなわち、ホスト装置50は、プリンター11との間で初期処理(エニュメレーション)を行って、プリンター11からクラス情報及び電源電流値情報を含む構成情報を受信する。このときプリンターはクラス情報としてプリンタークラスを送信する。
次のステップS59では、プリンターと認識する。すなわち、ホスト装置50はプリンター11から受信した構成情報に含まれるクラス情報に基づいて接続相手をプリンターと認識する。
次に図11を参照して、図9におけるモード切替え条件成立か否かを判定する処理(S20)の処理の詳細を示すモード切替え判定処理ルーチンについて説明する。
まずステップS41では、ホスト装置からのアクセスがない時間が閾値T2を超えたか否かを判定する。ホスト装置からアクセスがない時間が閾値T2を超えた場合は、図9におけるステップS15に進んで、第2モードから第1モードに切り替える。一方、ホスト装置からアクセスがない時間が閾値T2を超えない場合はステップS42に進む。
ステップS42では、ホスト装置からストレージの範囲外へのアクセスがあったか否かを判定する。ホスト装置からストレージの範囲外へのアクセスがあれば、図9におけるステップS15に進んで、第2モードから第1モードに切り替える。一方、ホスト装置からストレージの範囲外へのアクセスがなければステップS43に進む。
ステップS43では、取出しコマンドを受信したか否かを判定する。取出しコマンドを受信すれば、図9におけるステップS15に進んで第2モードから第1モードに切り替える。一方、取出しコマンドを受信しなければ図9におけるステップS17に進む。
また、プリンター11とホスト装置50とを通信ケーブル70を通じて接続状態のままにしている場合が比較的多い。この場合、電源を投入すると、プリンター11の動作部21は第1モードで動作し、ホスト装置50にプリンターとして認識される。ユーザーはホスト装置50からプリンター11に印刷動作を行わせることができる。
一方、ホスト装置50に印刷ドライバーがインストールされていない場合、プリンター11とホスト装置50は接続状態になっていない場合が多い。この場合、プリンター11の電源を投入しその起動から設定時間T1が過ぎてプリンター11が第2モードになった段階で通信ケーブル70を通じてホスト装置50に接続すれば、プリンター11はホスト装置50によりストレージとして認識される。
このとき、電源投入からの時間の経過と共に表示部15にメッセージM1,M2がこの順に表示されるので、メッセージM2が表示されているタイミングでホスト装置50に接続すれば、プリンター11を第2モードのストレージとしてホスト装置50と接続することができる。
また、ホスト装置50とプリンター11とを接続してから電源を投入した場合、プリンター11が第1モードで起動されてしまうが、操作スイッチ14Bで第2モードボタン82を選択すれば、第2モードに切り替えることができる。この場合、プリンター11の操作に不慣れなユーザーにとっては操作が面倒なので、電源投入の後にプリンター11とホスト装置50とを接続するとよい。
このようにプリンター11がストレージとして動作する場合、ホスト装置50のモニター55に表示された「ストレージ装置」(図4(a)参照)中の「Setup.exe」(図4(b)参照)を、マウス54Bで選択して実行させると、ホスト装置50に印刷ドライバーをインストールすることができる。
また、プリンター11の電源投入後にホスト装置50に接続した場合、表示部15に表示されているメッセージM1から第1モードで動作させる接続タイミングが分かるので、プリンター11をホスト装置50と第1モードで接続することができる。このとき、プリンター11の起動から設定時間T1を経過してしまっても、表示部15に表示される次のメッセージM2により第2モードでの接続の仕方が報知される。このため、メッセージM2の指示に従って、通信ケーブル70を接続してからプリンター11の電源を投入し直したり、操作スイッチ14Bを操作して第2モードに切り替えたりすることで、プリンター11を第2モードでホスト装置50に接続することができる。
そして、印刷ドライバーのインストールが終わると、インストーラー63が上記(A),(B)のいずれかの処理を行う。すなわち、(A)ストレージの範囲外へアクセスすること、(B)取出しコマンドを送信することのうち一方によってモード切替えを指示する。
また、第2モードでインストール前にモード切替えを行うまでの待機時間である閾値T2は、例えば10秒〜10分の範囲内の所定値である。この値は、ユーザーがインストールの意思がないことを判断できる時間に設定されている。但し、待機時間である閾値T2は、例えば30秒〜5分の範囲内の所定値であることが好ましい。これは30秒未満であると、ユーザーがインストールの意思があるにも拘らず、プリンター11が第1モードに切り替わってしまう頻度が相対的に高くなる。一方、5分を超えると、ユーザーのインストールの意思がないにも拘らず第2モードの状態に過度に長く維持され、例えばユーザーが印刷を急いでいるときに、閾値T2を経過する前に、操作スイッチ14Bを操作するか、電源を投入し直すかしなければならない。なお、インストール前の第2モードでの待機時間である閾値T2は10秒〜10分の範囲外の時間であってもよい。
印刷ドライバーのインストール後にプリンター11へ送信するモード切替え指示は、上記(A)ストレージの範囲外へアクセスすること、(B)取出しコマンドを送信すること、のうち一方なので、印刷ドライバーのインストール後、速やかにプリンター11を第2モードから第1モードに切り替えることができる。この結果、印刷ドライバーのインストール後、さほど待ち時間なく、ホスト装置からプリンター11に印刷ジョブデータを送信して、印刷を速やかに行わせることができる。
ここで、自社製品のプリンター11用に作成したベンダーコマンドを使用することも可能であるが、ベンダーコマンドが自社製品以外の想定外の他種の電子機器にホスト装置から何らかの原因で送信されてしまった場合、その想定外の電子機器に何も起きない保証をすることができない。しかし、本実施形態では、(A)ストレージの範囲外へアクセスすること、(B)取出しコマンドを送信すること、のいずれかなので、仮に想定外の電子機器にストレージの範囲外へアクセスすることになっても、「Out of Range」のエラーが返るだけなので、ホスト装置に他社の電子機器を接続して仮にストレージの範囲外へのアクセスがなされても、その他社の電子機器に悪影響はない。
また、ホスト装置50のインストーラー63は、プリンター11に対してストレージの範囲を取得する指示(リードキャパシティ(Read Capacity))を送り、プリンター11からストレージの範囲の情報を取得する。そして、その取得したストレージの範囲に「1」以上の所定値を加算したアドレスを指定してストレージ範囲外へアクセスする。このため、他社の電子機器に対しても、ストレージの範囲外へのアクセスとすることができる。
また、本例では、ストレージの範囲外へのアクセスは、リード(Read)である。ホスト装置50が想定外の他社の電子機器(例えばプロジェクター又はデジタルカメラ)に対してストレージの範囲外へのアクセスをしたつもりが、実際にはその電子機器のストレージの範囲内のアクセスであっても、ストレージ上のデータが読み出されるだけである。このため、ライト(Write)やベリファイ(Verify)を用いた場合に懸念されるデータの書き替えの心配はない。
また、モード切替え指示として、(C)取出しコマンド(Start Stop Unitコマンド)を送信することを用いた場合、想定外の他社の電子機器が取出装置を備えていても、取出装置のトレイ等が取出動作するだけなので、データへの悪影響はない。
以上詳述した本実施形態によれば、以下に示す効果を得ることができる。
(1)動作部21はホスト装置50の指示を受けて動作を行う第1モードと、ホスト装置50のストレージとして動作する第2モードとを有し、プリンター11の起動時にホスト装置50と接続している場合には第1モードで動作する。よって、ホスト装置50とプリンター11とが接続された状態でプリンター11が起動させれば、動作部21が第1モードでプリンターとして動作するので、プリンター11はホスト装置50の指示を受けて印刷動作を行うことができる。例えばユーザーはホスト装置50とプリンター11とを接続したままにしており、ホスト装置からの指示で印刷動作させたいためにプリンター11の電源を投入すれば、プリンター11を、ストレージとして動作する第2モードではなく、プリンターとして動作する第1モードで動作させることができる。
(2)動作部21は、ホスト装置の指示を受けて動作を行う第1モードと、ホスト装置のストレージとして動作する第2モードとのうち、プリンター11の起動から所定時間の経過前にホスト装置と接続した場合は、第1モードで動作する。よって、動作部21は、プリンター11の起動から所定時間の経過前にホスト装置50と接続すれば、プリンター11を、ストレージとして動作する第2モードではなく、プリンターとして動作する第1モードで動作させることができる。
(3)動作部21は、プリンター11の起動から設定時間T1の経過以後にホスト装置50と接続した場合は、第2モードで動作する。よって、プリンター11を起動から設定時間の経過以後にホスト装置50と接続すれば、第2モードで動作させることができる。このため、プリンター11をホスト装置50のストレージとして使用できる。
(4)動作部21は、ユーザーによる操作スイッチ14Bの操作によって与えられた指示に応じてモードを切り替える。よって、ユーザーは操作スイッチ14Bの操作して表示部15上の第1モードボタン81と第2モードボタン82のいずれかを選択することで、プリンター11のモードを切り替えることができる。
(5)インストーラープログラムP1及び印刷ドライバープログラムP2を記憶する不揮発性メモリー26を備える。そして、動作部21は、第2モードでストレージとして動作した場合、ホスト装置からの要求に応じてインストーラー(インストーラープログラムP1)をホスト装置50に送信し、ホスト装置50で起動されたインストーラー63の指示に従って印刷ドライバープログラムP2をホスト装置50に送信するインストール処理を行う。よって、プリンター11からインストーラー63によりホスト装置50に印刷ドライバー64をインストールすることができる。
(6)印刷システム10は、プリンター11と、プリンター11と通信可能に接続されるホスト装置50が有するインストーラー63と印刷ドライバー64とを含むホスト制御装置65とを備える。ホスト制御装置65は、ホスト装置50の入力装置54(入力操作部の一例)によりインストール実行指示を受け付けると、プリンター11からインストーラーを取得し、そのインストーラーを起動させることでプリンター11から印刷ドライバーをインストールする。よって、プリンター11の動作部21を第1モードに切り替えて、ホスト装置50からの指示でプリンター11の動作部21に印刷動作を行わせることができる。
(7)ホスト制御装置65は、インストール処理を終えると、プリンター11に対して第2モードから第1モードへの切替え指示を行う。よって、ホスト制御装置65は、インストール処理を終えると、プリンター11に第2モードから第1モードへの切替え指示を行う。よって、プリンター11からホスト装置50への印刷ドライバーのインストール後に、プリンター11の動作部21を第2モードから第1モードに切り替えることができる。この結果、第1モードに切り替わったプリンター11の動作部21にホスト装置50から指示された印刷動作を行わせることができる。
(8)例えばマイクロソフト社製のOSである「ウインドウズ(登録商標)」用にインストーラー63(インストーラープログラムP1)を作成した場合、そのインストーラーをアップル社製のOSである例えば「マック(登録商標)OS」を使用するホスト装置(例えばPC)や、ホワイトボード(印刷機能付き黒板)に使用することができない。この場合、プリンター11の起動時に例えばマスストレージクラスである第2モードで起動する構成であると、インストーラーが起動しないので、第1モードに切り替えることができない。これに対して本実施形態のプリンター11では、プリンター11の起動以後におけるホスト装置50との接続タイミングによって、プリンター11を第1モードで動作させるか第2モードで動作させるかを決めることができる。例えばホスト装置50とプリンター11とを通信ケーブル70で接続した状態のままにしている場合でも、プリンター11の電源を投入すれば、プリンター11の動作部21を第1モード(プリンターモード)で動作させることができる。よって、インストーラー63が非対応のOSを使用するホスト装置やホワイトボードを、プリンター11に接続する場合でも、その起動時点から設定時間T1の経過以後のタイミングで接続すれば、第1モードで動作させることができる。よって、ホスト装置やホワイトボードからプリンター11へデータを送れば、プリンター11にそのデータに基づく印刷動作を行わせることができる。
(9)動作部21は第2モードの場合に、ホスト装置50からのアクセスがない時間が閾値を超えるか、ホスト装置50から動作部21の動作範囲から外れたアクセスであってモード切替えの指示として設定されたアクセスがあったか、のいずれかに応じて、第1モードに切り替わる。よって、ホスト装置50がプリンター11以外の他社の電子装置に接続しているときに、仮にインストーラー63がモード切替え指示を何らかの原因で他社の電子機器に対して行ってしまっても、他社の電子機器への影響が少なく済む。
(10)動作部21は第2モードの場合に、ホスト装置50からのアクセスがない時間が閾値を超えるか、ホスト装置50からストレージの範囲外へのアクセスがあったか、ホスト装置50から取出し指示があったかのいずれかに応じて、第1モードに切り替わる。よって、ホスト装置50が仮に他社の電子機器に対して何らかの原因でモード切替え指示を行ってしまっても、ストレージの範囲外へのアクセスなので、他社の電子機器への影響が少なく済む。例えば他社の電子機器はホスト装置50に対してストレージの範囲外である旨(例えば「Out of Range」)を応答するだけで済む。また、取出し指示の場合、仮に他社の電子機器が取出装置を備えていても、その取出装置が取出し動作をするだけなので、この場合も他社の電子機器への影響が少なく済む。
(11)ストレージの範囲外へのアクセスを、読出指示(リード)としている。よって、仮に他社の電子機器に対してストレージの範囲外への読出指示を行っても、他社の電子機器は例えば「Out of Range」の応答をするだけなので、他社の電子機器への影響が少なく済む。ストレージの範囲外へアクセスしたつもりが仮にストレージの範囲内へのアクセスになってしまっても、データを読出すだけなので、書込指示(Write)やベリファイ(Verify)に比べ、ストレージ上のデータの書替えの心配がない。
(12)動作部21は、プリンター11の起動から設定時間T1の経過以後にホスト装置50と接続した場合は第2モードで動作し、この第2モードにおいて、ホスト装置50からのアクセスがない時間が閾値を超えると、第1モードに切り替わる。よって、動作部21が起動から接続までの経過時間に従って第2モードを選択して動作しても、ユーザーがストレージにアクセスすることなく、アクセスがない時間が閾値を超えれば、プリンター11を第1モードに切り替えることができる。このため、ユーザーが第2モードから第1モードへ切り替える操作をしなくても、ユーザーはホスト装置50からの指示でプリンター11に印刷させることができる。
(13)動作部21は、ホスト装置50からストレージの範囲を問い合わせるアクセス(Read Capacity)があると、ストレージの範囲に係る情報をホスト装置50に送信し、この送信の後にホスト装置50からストレージの範囲外へのアクセスがあると、第1モードに切り替わる。よって、ストレージの範囲外へのアクセスを一層確実なものとすることができる。仮に何らかの原因でホスト装置が他社の電子機器にモード切替え指示を行ってしまっても、他社の電子機器に対してもストレージの範囲外へのアクセスとなるので、他社の電子機器への影響がより少なく済む。
(14)プリンター11は、印刷ドライバープログラムP2及びドライバープログラムをインストールさせるインストーラー(インストーラープログラムP1)が記憶されたストレージ用記憶領域26Bを含む不揮発性メモリー26を備える。動作部21は、第2モードで動作したときには、ホスト装置50からインストール要求を受信すると、ホスト装置50にインストーラー(インストーラープログラムP1)及び印刷ドライバープログラムP2を送信する。そして、インストーラー63による印刷ドライバー64のインストールを終えた後、動作部21は、ホスト装置50からストレージの範囲外へのアクセスがあったか、ホスト装置50から取出し指示があったかのいずれかに応じて、第1モードに切り替わる。このため、印刷ドライバー64のインストール後に速やかに、ホスト装置50から印刷ジョブデータを送信してプリンター11に印刷動作を行わせることができる。
(15)ホスト装置50が有するホスト制御装置65は、インストーラー63と、インストーラー63によりインストールされた印刷ドライバー64とを備える。インストーラー63は、印刷ドライバー64のインストール完了後に、プリンター11に対してモード切替え指示を行う。よって、プリンター11の動作部21を第2モードから第1モードに切り替えることができる。このため、速やかにホスト装置50から印刷ジョブデータを送信してプリンター11に印刷動作を行わせることができる。ここで、第2モードにおけるインストール前においては、ユーザーがプリンター11へアクセスしない時間が閾値T2を超えたことをもってモード切替え指示とする。このため、ユーザーの意図に反して第2モードで動作された場合など、ホスト装置50からストレージへのアクセスがない時間が閾値T2を超えると、第1モードに切り替わる。また、インストール完了後は、ストレージの範囲外へのアクセス、取出し指示の送信のいずれかをモード切替え指示とする。このため、ホスト装置50が他社の電子装置に接続しているときに何らかの原因で他社の電子機器にモード切替え指示を行ってしまっても、他社の電子機器への影響が少なく済む。
(16)ストレージ装置のストレージ範囲を問い合わせる問合せ動作と、問合せ動作で得られたストレージ装置のストレージ範囲外に対するアクセスをストレージ装置のモードを切り替える切替指示として、ストレージ装置に対して行うモード切替動作と、をホスト装置50に実行させるインストーラープログラムP1を備える。よって、切替指示にベンダーコマンドを使用しなくても、ホスト装置50からの指示でストレージ装置のモードを切り替えることができる。
(第2実施形態)
次に図13を参照して第2実施形態について説明する。第1実施形態では、プリンター11の起動からの経過時間を計時するタイマー33の計時時間Tが設定時間T1を経過する前であれば、プリンター11はプリンタークラスの第1モードで動作し、設定時間T1を経過した以後は、プリンターはマスストレージクラスの第2モードで動作する。これに対して本実施形態では、ユーザーが操作スイッチ14Bを用いてモード切替え操作をすることで、プリンターとして動作する第1モードから、ストレージとして動作する第2モードへの切り替えが可能になっている。
プリンター11は、初期状態ではプリンタークラスである第1モードに設定されている。印刷ドライバーをインストールする場合、ユーザーは操作スイッチ14Bを操作して表示部15にメニュー画面G1(図3(a))の下位のモード切替え画面G2を表示させ、モード切替え画面G2で操作スイッチ14Bの操作で第2モードボタン82(いずれも図3(b)参照)を選択する。この結果、プリンター11の動作部21は、第1モードから第2モードに切り替わる。なお、本実施形態では、操作スイッチ14Bにより、動作部に指示を与える操作部の一例が構成される。
以下、図13を参照して本実施形態における処理について説明する。なお、プリンター11の構成及びホスト装置50の構成は、第1実施形態と同様である。第1実施形態における図9の処理の一部が異なる他は、基本的に第1実施形態と同様の処理を行うので、図13を参照して特に異なる処理についてのみ説明する。
まずステップS61では、ホスト装置との接続を検出したか否かを判断する。ホスト装置との接続を検出しなければステップS62に進み、ホスト装置との接続を検出すればステップS64に進む。
ステップS62では、モード切替え操作があったか否かを判断する。つまり、本実施形態では初期状態では第1モードに設定されているので、モード切替え操作によって、第2モードへの切替え操作がなされたか否かを判断する。モード切替え操作がなければステップS61に戻り、モード切替え操作があればステップS63に進む。つまり、初期状態の第1モードのままでホスト装置との接続が検出されるか(S61で肯定判定)、第2モードへのモード切替え操作があるまで(S62で肯定判定)、S61,S62の各処理を繰り返す。そして、第2モードへのモード切替え操作があれば(S62で肯定判定)ステップS63に進み、第1モードの状態でホスト装置との接続が検出されれば(S61で肯定判定)ステップS64に進む。
ステップS63では、ホスト装置との接続を検出したか否かを判断する。つまり、第2モードの状態でホスト装置との接続を検出したか否かを判断する。ホスト装置との接続を検出した場合はステップS66に進み、ホスト装置との接続を検出しなければホスト装置との接続が検出されるまでそのまま待機する。つまり、第2モードへのモード切替え操作(S62)と第2モードの状態でホスト装置との接続の検出(S63)との両方が成立すると、ステップS66に進む。
一方、ステップS64では、プリンタークラスで通信を確立し、第1モードで動作する。つまり、初期状態の第1モードのままホスト装置との接続を検出した場合、動作部21は、USBコネクター22を介してプリンタークラスで通信を確立し、第1モードで動作する。
次のステップS65では、モード切替え操作があったか否かを判断する。モード切替え操作があればステップS66に進み、モード切替え操作がなければステップS70に進む。
ステップS66では、マスストレージクラスで通信を確立し、第2モードで動作する。つまり、ユーザーがプリンター11とホスト装置50との接続の前にモード切替え操作を行った場合に加え、プリンター11とホスト装置50との接続の後にモード切替え操作を行った場合も、プリンター11を第2モードでホスト装置との通信を確立する。なお、ステップS65でモード切替え操作があったときは、第1モードでの接続を切断した後にプルアップして、プラグアンドプレイ処理を開始させ、ステップS66の処理を行う。
第2モードのプリンター11は、ホスト装置50のストレージとして動作し、ホスト装置50のモニター55を通してプリンター11のストレージ(図4(a)参照)を見ることができる。
以下のステップS67〜S69の各処理は、第1実施形態におけるステップS18〜S20の処理内容(図9)と同様である。すなわち、インストール要求を受信すると(S67で肯定判定)、ステップS68においてホスト装置への印刷ドライバーのインストール処理を行う。ステップS69では、モード切替え条件成立か否かを判定する。モード切替え条件が不成立であればステップS67に戻り、モード切替え条件が成立すればステップS64に進む。本実施形態でも、第1実施形態と同様に、インストール前においては、アクセスがない時間が閾値T2を超えると、第1モードに切り替わる。印刷ドライバーのインストール完了後は、インストーラー63は、(A)ストレージの範囲外へアクセスすること、(B)取出しコマンドを送信すること、のうちいずれかによってモード切替えを指示する。プリンター11は、(D)ストレージの範囲外へのアクセスがあったことと、(E)取出しコマンドを受信したこととのうちいずれかのモード切替え指示を受け取ると、第2モードから第1モードに切り替わる。このモード切替え指示を受け取ったときは、第2モードでの接続を切断した後にプルアップして、プラグアンドプレイ処理を開始させ、ステップS64の処理を行う。
その後、ユーザーはホスト装置50から印刷ジョブデータをプリンター11に送信する。ステップS70〜S73の各処理は、第1実施形態におけるステップS21〜S24の各処理(図9)とほぼ同様である。すなわち、ステップS70で印刷ジョブを受信すると、印刷処理を行い(S71)、電源オフされなければ、モード切替え操作の有無を判断し(S65)、印刷ジョブを受信する度に印刷処理を行い(S70,S71)、電源オフされると(S72で肯定判定)、電源オフ処理を行う(S73)。
この第2実施形態によれば、以下に示す効果が得られる。
(17)動作部21に指示を与えるために操作される操作スイッチ14Bを備える。動作部21は、プリンター11が起動された初期状態において第1モードで動作し、操作スイッチ14Bの操作により与えられた指示に応じてモードを切り替えることで、第2モードとなる。よって、ユーザーが操作スイッチ14Bでモードを切り替える操作をしなくても、動作部21は第1モードで動作し、ホスト装置50の指示を受けて印刷動作を行うことができる。一方、ユーザーが操作スイッチ14Bの操作で動作部を第2モードに切り替えることで、動作部21をストレージとして動作させることができる。
なお、上記実施形態は以下のような形態に変更することもできる。
・前記各実施形態では、第1モードと第2モードとの2種類のモード(2モード)を備えたが、3種以上のモードを備えてもよい。例えば「ヒューマンインターフェイスデバイス(HID)クラス」を第3モードとして備えてもよい。その他のデバイスクラスに対応するモードを更に加え、4モードや5モードとしてもよい。そして、モードを決めるデバイスクラスの組合せも、プリンタークラス(第1モード)とマスストレージクラス(第2モード)に限定されない。例えばイメージクラス(第1モード)とマスストレージクラス(第2モード)の組合せ、オーディオクラス(第1モード)とマスストレージクラス(第2モード)との組合せ、又はベンダークラス(第1モード)とマスストレージクラス(第2モード)との組合せを含む、少なくとも2種のモードを設定することができる。
・電子機器の起動から設定時間T1の経過前か経過以後かによって、動作部が動作するモードを決めたが、動作部は、電子機器の起動時にホスト装置と接続されている場合は第1モードで動作し、電子機器の起動時にホスト装置と接続されていない場合には第2モードで動作するように構成してもよい。この構成によれば、ユーザーは、電子機器を起動時にホスト装置と接続しておくか接続しておかないかの選択によって、動作部を第1モードで動作させるか第2モードで動作させるかを選択することができる。また、電子機器とホスト装置とを常時接続させた状態で使用しているユーザーは、電子機器の電源を投入すれば、動作部が第1モードで動作するため、ホスト装置から指示を出せばその指示に基づく動作を電子機器の動作部に行わせることができる。一方、電子機器の電源を投入した後に、その電子機器をホスト装置と接続すれば、ユーザーは電子機器をホスト装置からの操作でアクセス可能なストレージとして利用することができる。
・第1モードから第2モードへのモード切替指示は、インストーラー63に替え、印刷ドライバー64が行ってもよい。例えばドライバーのインストール完了後のホスト装置の再起動後に印刷ドライバー64を起動させ、その起動した印刷ドライバーにモード切替え指示を行わせてもよい。
・モード切替え指示の実施時期は、ドライバーのインストール完了後のタイミングに限定されない。例えばストレージ中の開いていたプログラム又はファイルを閉じたとき、ストレージ内のドライバー以外のプログラムのインストール完了後などであってもよい。
・ホスト装置との接続タイミングを報知する方法は、メッセージM1,M2の表示に限定されず、音声メッセージとしたり、ランプの点灯や点滅により報知したりしてもよい。
・設定時間T1を操作スイッチ14Bの操作で変更できるようにしてもよい。また、閾値T2を操作スイッチ14Bの操作で変更できるようにしてもよい。
・動作部21が行う図9〜図11、図13の処理を、プログラムを実行するCPUによりソフトウェアで実現したが、ASIC等の電子回路によりハードウェアで実現したり、ソフトウェアとハードウェアとの協働により実現したりしてもよい。
・動作部の動作範囲から外れたアクセス、すなわち動作部がホスト装置からのアクセスに従って動作しようとしてもエラーとなるアクセスであれば、取出しコマンド以外のコマンドでもよい。この場合、何らかの原因で他社の電子機器にモード切替え指示を行ってしまっても、ベンダーコマンド等の特殊コマンドを使用する場合に比べ、他社の電子機器に与える影響を少なく抑えられる。
・USB規格は、USB2.0の他、USB3.0、USB3.1に適用してもよい。また、USB1.0やUSB1.1に適用してもよい。また、USB規格に限定されず、他の通信規格であってもよい。要するに、ホスト装置と電子機器との間で初期処理(例えばエニュメレーション)が行われ、初期処理において電子機器からホスト装置へクラス情報が送信される通信規格であれば、他の通信規格でもよい。例えばIEEE1394、SCSI(Small Computer System Interface)、ATA(Advanced Technology Attachment)でもよい。また、通信方式は有線通信方式に限定されず、無線通信方式でもよい。
・印刷装置は、印刷専用機に限らず、コピー機能やスキャナー機能を備えた複合機であってもよい。さらに、印刷装置は、シリアルプリンター、ラインプリンターに限らず、ページプリンターでもよい。また、印刷装置は、携帯型、小型、中型及び大型のプリンターでもよい。例えばビジネス用プリンターや大判プリンターでもよい。
・電子機器は、プリンター(複合機を含む。)に限らず、スキャナー、プロジェクター、デジタルカメラ(撮影装置)、デジタルオーディオ装置(音響機器)などであってもよい。