以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
<実施の形態1>
実施の形態1では、測定データの出力フォーマットを対話的に設定できるキーボード信号処理装置101及び設定システム100について説明する。まず、図1乃至図3のブロック図を用いて、本発明の実施の形態1にかかるキーボード信号処理装置101を含む設定システム100の構成について説明する。
設定システム100は、キーボード信号処理装置(以下、インプットツール)101、設定装置102を含む(図1)。インプットツール101と設定装置102とは、相互通信可能な通信インターフェイスにより接続される。本実施の形態では、USBケーブルによって両者を接続する。
インプットツール101は、第1のデータインターフェイス1011、第2のデータインターフェイス1014、変換部1012、制御部1013を有する(図2)。
第1のデータインターフェイス1011は、図示しない測定機器からの出力信号、すなわち測定結果を示す測定データを入力するためのインターフェイスである。ここで、測定機器には、例えばデジタル又はアナログ式のキャリパ、マイクロメータ、インジケータ、電圧計及び電流計等がある。また、測定データは、数値や文字(例えば「OK」「NG」等)を表す文字コード等のデジタルデータのほか、アナログデータ(例えば電圧入力等)であっても良い。
変換部1012は、第1のデータインターフェイス1011から入力された測定データを、キーボード信号に変換する処理を行う。具体的には、測定データが数値又は文字を示すデジタルデータである場合は、当該データを、当該数値又は文字に対応する数字キー又は文字キーの入力を示すキーボード信号に変換する。なお、測定データがアナログデータである場合、変換部1012は、公知のアナログ−デジタル変換手法を用いてアナログデータをデジタルデータに変換し、変換後のデジタルデータ(数値)に対応する数字キーの入力を示すキーボード信号に変換する。また、変換部1012は、キーボード信号に変換された測定データを、第2のデータインターフェイス1014に出力する。その際、測定データに、予め定められたキーボード信号を付加して出力することができる。
制御部1013は、変換部1012が測定データに付加して出力すべきキーボード信号を予め設定し、設定内容を内部に保持する。この設定処理は、設定装置102から第2のデータインターフェイス1014を通して入力される指示に基づいて行う。
第2のデータインターフェイス1014は、変換部1012がキーボード信号に変換した測定データ等を出力するためのインターフェイスである。典型的には、パーソナルコンピュータ(PC)等にデータを出力するための通信装置、例えばUSBコントローラである。第2のデータインターフェイス1014が出力する信号はキーボード信号である。よって、第2のデータインターフェイス1014と接続されたPC等は、インプットツール101を、一般的なキーボードとして認識する。そして、第2のデータインターフェイス1014から入力されるデータ、例えば変換後の測定データを、キーボードにより入力された数値と同様に取り扱うことができる。例えば、その数値をテキストエディタや表計算ソフト等で処理することが可能である。
また、第2のデータインターフェイス1014は、制御部1013と設定装置102が相互に通信を行うためのインターフェイスとしても機能する。この場合においても、第2のデータインターフェイス1014が出力する信号はキーボード信号である。なお、上述のPCと設定装置102とは、同一の装置であっても良い。
設定装置102は、データインターフェイス1021、表示部1022、ユーザ入力部1023、制御部1024を有する(図3)。設定装置102は、典型的にはパーソナルコンピュータ等である。
データインターフェイス1021は、第2のデータインターフェイス1014との間で相互に通信を行う。典型的にはUSBコントローラである。
ユーザ入力部1023は、ユーザによって操作され、キーボード信号を出力可能な装置又は処理手段である。典型的には、ハードウェアキーボードやソフトウェアキーボードである。
制御部1024は、設定装置102に入力されたキーボード信号にかかる制御を行う。キーボード信号のうち、文字や、文字列中に反映可能な制御コード(例えば[TAB]や[ENTER](改行)など)については、相当する文字コードや制御コードを表示部1022に出力する。
また、制御部1024は、Num Lock状態、Scroll Lock状態、Caps Lock状態(以下、NSC状態)を保持する。これらは、いずれもON又はOFFのいずれか状態を有し得る。制御部1024は、設定装置102に接続されたいずれかのキーボードから制御コード[Num Lock]、[Scroll Lock]又は[Caps Lock]が入力された場合に、対応するNSC状態を変更する。その際、制御部1024は、設定装置102に接続された全てのキーボードに対し、NSC状態の変更を示す信号を送信する。なお、ここでいうキーボードには、本実施の形態においては、キーボード信号処理装置101とユーザ入力部1023とが該当する。
表示部1022は、制御部1024が出力する文字コードや制御コードを、ユーザが視認可能に表示する。例えば、テキストエディタである。
ここで、図4を用いて、設定システム100の概念について説明する。設定システム100は、インプットツール101の制御部1013の設定内容、すなわち測定データに付加して出力すべきキーボード信号を、ユーザとの対話的処理により設定することを目的とする。
対話的処理には、一般に表示装置と入力装置が必要である。本実施の形態では、表示装置及び入力装置として、設定装置102を利用する。表示装置としての表示部1022は、例えばテキストエディタ、具体的にはMicrosoft Windows(登録商標)に標準添付されているメモ帳などのアプリケーションであって良い。入力装置としては、ユーザ入力部1023すなわちキーボードの、[Num Lock]キー、[Scroll Lock]キー、及び[Shift]+[Caps Lock]キーのみを利用する。
ユーザは、表示部1022のアプリケーションにフォーカスを設定してから、インプットツール101の設定処理を開始する指示を出す。設定処理中、インプットツール101は、ユーザに対するメッセージをキーボード信号として送り出す。そのキーボード信号に対応する文字列が、表示部1022に表示される。
ユーザがユーザ入力部1023の[Num Lock]キー、[Scroll Lock]キー、又は[Shift]+[Caps Lock]キー(以下、NSCキー)を押すと、ユーザ入力部1023から制御部1024に、Num Lock押下信号、Scroll Lock押下信号、又はCaps Lock押下信号(以下、NSC信号)が送信される。このNSC信号に応じ、制御部1024においてNum Lock状態、Scroll Lock状態又はCaps Lock状態(NSC状態)が変化する。制御部1024は、NSC状態が変化する度に、最新のNSC状態を全てのキーボードに送信する。一般的なキーボードは、受信したNSC状態をLEDで表示することが多い。NSC状態の送信対象には、インプットツール101も含まれる。何故なら、設定装置102は、インプットツール101もキーボードとして認識するからである。インプットツール101は、NSC状態の変化に基づいて、ユーザの入力、すなわち[Num Lock]キー、[Scroll Lock]キー、[Shift]+[Caps Lock]キーの押下を知ることができる。
なお、設定処理においては、必ずしもこれらのキー全てを使う必要は無い。いずれか1個のキーであっても、マウスボタンのシングルクリック、ダブルクリックを識別するような要領で、ユーザの入力内容を識別することが可能である。しかし、一般には、使えるキーの種類が多い方が、操作性が良い。
このように、本実施の形態では、表示装置として表示部1022を、入力装置としてユーザ入力部1023の一部のキーを使って、対話的設定処理を実現する。コンピュータシステムにおける対話的処理の原則は一般に知られている通りである。すなわち、システムはユーザに対するメッセージを表示装置に表示する。具体的には、現在の設定状態、ユーザに入力して欲しい項目、選択肢、選択肢と入力用ボタンの対応などである。ユーザはシステムが出力したメッセージを視認し、それに応じて入力装置を操作する。システムは、ユーザの入力に対応した処理を行い、処理結果等をユーザに対して表示する。このような表示、入力、処理を幾度にもわたって繰り返すならば、複雑な設定処理も可能となる。
なお、対話的設定処理におけるユーザとの具体的なやり取りや、設定モードへの入り方は、何通りも考えられるところ、諸々の制約条件に鑑みて適切なものを採用することが望まれる。
つづいて、図5乃至図7を用いて、設定システム100の動作について説明する。
まず、ユーザは、設定装置102(本実施の形態ではPCとする)においてテキストエディタを起動し、起動したアプリケーションに入力フォーカスをおく。以降、このテキストエディタは、表示部1022として使用される。
この際、PC102においてOSの入力言語を選択できるならば、ユーザは、その入力モードを「英語」に設定することが望ましい(図6)。その理由は以下の通りである。1つは、日本語、中国語、韓国語キーボード等を用いた文字入力においては、OSの入力言語を日本語、中国語、韓国語等に設定するとともに、各言語の入力方式エディタ(IME)を使用することが一般的であるが、インプットツール101がIMEを制御することが不可能なためである。インプットツール101側からIMEの状態、例えば現在のかな漢字変換モードや変換候補等を知る手段は存在しない。よって、インプットツール101が入力可能な文字は、変換や確定の操作が不要な、英語系の文字に限定することが好ましい。2つめの理由は、キーボードレイアウトは国によって相違するためである。例えば、英語キーボードの「y」とドイツ語キーボードの「z」とはキーボード上の位置が同じであり、キーコードも同じである。英語キーボードの「z」とドイツ語キーボードの「y」についても同様である。従って、例えば、英語キーボードと「ドイツ語」入力モードとを使用して「Mitutoyo」とタイプすると、出力される文字列は「Mitutozo」となってしまう。別の例では、日本語キーボードと英語キーボードとは括弧などの英記号の位置が異なる。このように、あるキーコードに対応して出力される文字コードは、OSのキーボードレイアウトの設定に応じて異なってくる。しかしながら、インプットツール101は、OSがどのようなキーボードレイアウトを想定しているかを知る手段が無い。したがって、ひとつのキーボードレイアウトを仮定するしかなく、それには最もポピュラーな英語レイアウトが無難である。よって、本実施の形態のインプットツール101は、OSのキーボードレイアウトが「英語」設定であることを前提として、ユーザへのメッセージを出力することとしている。
また、ユーザは、インプットツール101とPC102との接続、及び測定機器とインプットツール101との接続を外す。インプットツール101は、測定機器が接続されているときは設定モードに入らないためである。
しかる後、インプットツール101とPC102とを接続する。具体的には、第2のデータインターフェイス1014と、データインターフェイス1021とを、例えばUSBケーブルや無線通信モジュール等によって、通信可能に接続する。
接続が成功すると、インプットツール101の制御部1013は、PCのオペレーティングシステム(OS)と通信を開始し、10秒のカウントダウンタイマーを起動する。
ここで、ユーザは10秒以内に、ユーザ入力部1023を使用し、以下の2回のキーボード操作を完了させることにより、設定モードを開始することができる。
[Shift]+[Caps Lock] [Num Lock] [Scroll Lock]
[Shift]+[Caps Lock] [Num Lock] [Scroll Lock]
このように、設定モード開始シーケンスとして、2回のキーボード操作を要求することには以下の利点がある。まず、設定モードに偶然入るリスクを十分小さくできる。さらに、NSC状態が2回反転するため、操作前と操作後のNSC状態が同じになる。
ここで、インプットツール101の制御部1013は、Caps Lock状態、Num Lock状態、Scroll Lock状態を記憶しておくことが望ましい。後に、設定モードを終了する際、ここで記憶したNSC状態を復元することにより、ユーザが設定モードに入る直前のNSC状態を復元することができる。本実施の形態では、上述のように設定モード開始シーケンスで2回のキーボード操作を要求しているため、ここで記憶したNSC状態と、設定モード開始シーケンス直前のNSC状態と、は同一となるからである。
ユーザ入力部1023は、入力に対応するキーコードすなわちキーボード信号を制御部1024に出力する。上記入力はいずれもNSC状態を変化させる入力である。よって、制御部1024は、ユーザ入力部1023からの入力によって変化したNSC状態を、他の全てのキーボード、すなわち本実施の形態ではインプットツール101に対して通知する。
インプットツール101は、カウントダウンタイマー起動中に受信した上記NSC状態の通知を、設定モードへ入る指示として認識する。したがって、インプットツール101は設定モードに入る。
設定モードにおいて、インプットツール101の制御部1013は、キーボード信号によってユーザに対するメッセージを出力する。出力されたメッセージは、第2のデータインターフェイス1014、データインターフェイス1021、制御部1024を経由して、表示部1022に文字列等として表示される。
また、ユーザがユーザ入力部1023から入力するキーボード信号も、制御部1024によってエコーされ、表示部1022に表示される。
一連の対話的設定処理により、表示部1022には、いわばチャットのログのような文字列が残ることになる。その例を図5(a)乃至図5(d)に示す。以降、図5(a)乃至図5(d)のログに沿って、設定システム100の動作について説明する。
制御部1013は、設定モードに入った直後、ログ1〜14行及びログ15行の「<?>:」を表示部1022に表示する。
ログ1行は、空行である。読み易くするため、空行が適宜出力される。ログ2行の<<Setup Entrance>>は、現在の操作場面が設定の入り口であることを示す。本実施の形態では、制御部1013は、この後も適宜、<<操作場面名>>の書式で、現在の操作場面を示す。これにより、ユーザが深い操作階層の森で迷子になることを抑制することができる。ログ3〜4行は、インプットツール101の型番やメーカなどの情報である。このような情報をインプットツール101の小さな筐体に印字するのは困難であるから、設定モードで参照できるようにすることには利点がある。
ログ5行は、測定モードにおける変換部1012による測定データ等の出力形式に関する、現在の設定を表示している。設定モードでは、テキストエディタの広い領域を利用できる、すなわち多くの文字を使用できるので、このように現在の設定を一覧性を確保した形で表示することが可能である。
{Data}は、測定モードにおける出力時には測定データで置き換えられる。[Shift]+[Tab]は、[Shift]キーを押しながら[Tab]キーを押すことに相当するキーボード信号を示す。これらのキーボード信号は、表計算ソフトではアクティブセルを左隣のセルに移動させる意義がある。[B]は大文字のアルファベット[B]を入力することに相当するキーボード信号を示す。変換部1012は、出力時にCaps Lock状態がオンであれば[B]を出力し、オフであれば自動的に[Shift]+[B]を出力する。#はカーソルであって、以降の設定処理において、挿入や削除等の処理を行う位置を示す。カーソルの位置は、測定モードで出力内容には影響しない。
ログ7〜10行は、ユーザに対し、選択肢を指定するためのキーボード操作のガイダンスを提示している。これにより、取扱説明書を読んでいなかったり、操作方法がうろ覚えであっても、ユーザは容易に設定操作を行うことができる。
ログ8行は、ユーザ入力部1023で[Num Lock]キーを押す操作が、「<N>」印の選択肢を指定したり、カーソルを右移動したりすることに割り当てられていることを示している。ログ9行は、ユーザ入力部1023で[Scroll Lock]キーを押す操作が、「<S>」印の選択肢を指定したり、カーソルを左移動したりすることに割り当てられていることを示している。ログ10行は、ユーザ入力部1023で[Shift]キーを押しながら「Caps Lock」キーを押す操作が、「<C>」印の選択肢を指定することに割り当てられていることを示している。
ログ12〜14行は、実行しうる設定処理の選択肢を示している。ログ12行は、選択肢<C>として、<<Setup Exit>>場面へ遷移する処理を示している。ここで、「−> <<場面名>>」なる書式は、その場面に遷移するという処理を簡潔に示すものである。これに限らず、例えば「Go to <<場面名>>」等の書式を採用しても良いが、前者のほうが英語への拒絶反応を和らげることができる。
ログ15行の「<?>:」は、選択肢の入力プロンプトである。ユーザは、この入力プロンプロが表示されたならば、ユーザ入力部1023より所望の選択肢を指定するためのキー入力を行うことができる。例えばここで、ユーザが選択肢<N>を選ぶ為に、[Num Lock]キーを押したものとする。
制御部1013は、Num Lock状態の変化から、ユーザが<N>を選択したことを検知し、選ばれた選択肢を示す「<N>(−> <<Set Left Key>>)」なる文字列を、プロンプトの右にエコーバックする。
制御部1013は、ユーザの選択に従い、設定処理を<<Set Left Key>>場面に遷移させる。制御部1013は、ログ16〜20行とプロンプトを表示部1022に表示させる。
<<Set Left Key>>場面では、ユーザは、カーソルの左移動に使うキーを選択することができる。この例では、[Num Lock]又は[Scroll Lock]キーからいずれか1つを選択することができる(選択肢<N>又は<S>)。選択されなかったほうのキーはカーソルの右移動に割り当てられる。設定を変更せずに戻ることも可能である(選択肢<C>)。なお、一般的には、キーボードの左寄りに位置するキーを左移動に、右寄りに位置するキーを右移動に使うと、使い勝手が良い。
この例では、ユーザは選択肢<N>、すなわち[Num Lock]キーによりカーソルを左移動させることを選択したものとする。制御部1013は、ユーザの選択結果を保持する。具体的には、インプットツール101内の図示しない不揮発メモリ内にこの設定を格納する。その後は、少なくともユーザ入力部1023として同じキーボードを使い続ける限り、インプットツール101の電源を切ったとしても、この設定をやり直す必要は無い。
これらの処理の後、制御部1013は、設定処理を<<Setup Entrance>>場面に自動的に遷移させ、ログ22〜35行と入力プロンプトとを表示部1022に表示させる。ログ29〜30行は、左右移動キーの新たな割り当てを示している。
ログ36行で、ユーザが<<Edit Setting>>場面を選択したものとする。制御部1013は、設定処理を<<Edit Setting>>場面に遷移させ、ログ37〜42行と入力プロンプトとを表示部1022に表示させる。
ログ39行は、測定モードにおける出力形式についての現在の設定である。#はカーソル位置を示す。制御部1013は、カーソル位置についても不揮発性メモリに記憶しておくことが望ましい。
本実施の形態では、ユーザは、現在の設定の[B]を、新たに[g]に変更したいという意思を有しているものとする。そこで、まずは[B]を削除すべく、[B]のすぐ右にカーソル位置を移す処理を行う。ユーザは、ユーザ入力部1023から[Num Lock]キーを入力して、<<Move Cursor #>>場面を選択する。この選択を受け、制御部1013は、<<Move Cursor #>>場面に遷移し、ログ44〜49行と入力プロンプトを表示する。
ユーザは、カーソルを左に移動するために、ユーザ入力部1023から[Num Lock]キーを入力して、「<− #」を選択したものとする。制御部1013は、この選択を検知し、カーソル位置を1つ左に移動させる。その後、<Move Cursor #>>場面に留まり、ログ51〜56行と入力プロンプトを表示する。ログ53行は新たなカーソル位置を示している。
同様にして、もう1回、カーソルを左に移動する操作が行われると、制御部1013はログ58〜63行と入力プロンプトを表示部1022に表示させる。ログ60行は、カーソルが[B]の右隣に来たことを示している。
以上の処理によってカーソルが目的の位置に来たので、ユーザは、<<Move Cursor #>>場面を脱し、<<Edit Setting>>場面に戻るため、ユーザ入力部1023から[Caps Lock]キーを入力し、選択肢<C>を選択する。
制御部1013は<<Edit Setting>>場面に遷移し、ログ65〜70と入力プロンプトを表示部1022に表示させる。
ユーザは、カーソルの左の[B]を変更するため、ユーザ入力部1−23から[Scroll Lock]キーを入力して選択肢<S>を選択する。<<Change Setting>>場面を選択する。これに応じ、制御部1013は、<<Change Setting>>場面に遷移し、ログ72〜78行と入力プロンプトとを表示部1022に表示させる。
ここで、ユーザは、まず[B]を削除してから、[g]を挿入しようという意図を有しているものとする(逆順だと操作の手数が多いためである)。そこで、ユーザは、まず[B]を削除すべく、ユーザ入力部1−23から[Num Lock]キーを入力し、選択肢<N>、すなわちDeleteを選択した。
これに応じ、制御部1013は、カーソルの左隣に存在する文字列等、この例では[B]を削除する処理を行う。その後、<<Change Setting>>場面に留まったまま、ログ79〜84行と入力プロンプトとを表示部1022に表示する。ログ81行は、[B]が削除されたことを示している。
つづいて、ユーザは、カーソル左隣に[g]を挿入すべく、ユーザ入力部1−23から[Scroll Lock]キーを入力し、選択肢<S>、すなわちInsertを選択した。
これに応じ、制御部1013は、<<Insert(All)>>場面に遷移し、ログ86〜88行と入力プロンプトとを表示部1022に表示する。ログ88行の選択肢「A〜Za〜z」はアルファベット、「Others」はそれ以外の文字及び[Tab]などの制御コードを示している。ここでユーザが入力したいのは「g」であるから、ユーザは、「g」が含まれる「A〜Za〜z」を選択すべく、ユーザ入力部1−23から[Num Lock]キーを入力し、選択肢<N>を選択する。
これに応じ、制御部1013は、<<Insert(A〜Za〜z)>>場面に遷移し、ログ90〜92行と入力プロンプトとを表示部1022に表示する。ログ92行で、選択肢「A〜Z」は大文字アルファベット、選択肢「a〜z」は小文字アルファベットを示している。ユーザは、「g」が含まれる「a〜z」を選択すべく、ユーザ入力部1−23から[Scroll Lock]キーを入力し、選択肢<S>を選択する。
これに応じ、制御部1013は、<<Insert(a〜z)>>場面に遷移し、ログ94〜96行と入力プロンプトとを表示部1022に表示する。ログ96行は、小文字アルファベットを前半と後半とで分けた選択肢をユーザに提示している。ユーザは、「g」が含まれる「abcdefghijklm」を選択すべく、ユーザ入力部1−23から[Num Lock]キーを入力し、選択肢<N>を選択する。
これに応じ、制御部1013は、<<Insert(abcdefghijklm)>>場面に遷移し、ログ98〜100行と入力プロンプトとを表示部1022に表示する。選択肢は、先に選択した「abcdefghijklm」を、さらに前半と後半とに分けたものである。ユーザは、「g」が含まれる「abcdefg」を選択すべく、ユーザ入力部1023から[Num Lock]キーを入力し、選択肢<N>を選択する。
このように「先に選択した挿入候補群の前半、後半のどちらかを選択する」という操作を繰り返すことによって、挿入候補を絞り込んでいくことができる。
ログ108行の選択肢は「ef」と「g」である。ここで「g」を選択すると、これ以上の絞り込みはできないから、カーソル左隣に挿入すべき文字を「g」と決定することができる。「g 、 −> <<Change Setting>>」とは、「g」を挿入後、<<Change Setting>>場面に戻ることを示している。ユーザは、「g 、 −> <<Change Setting>>」を選択すべく、ユーザ入力部1−23から[Scroll Lock]キーを入力する。
これに応じ、制御部1013は、現在のカーソル位置の左隣に[g]を挿入する処理を行う。その後、<<Change Setting>>場面に遷移し、ログ110〜115を出力する。ログ112行は、カーソルの左に[g]が挿入されたことを示している。変換部1012は、測定モードにおいてこの[g]を出力する際、Caps Lock状態がオフなら[g]、オンなら自動的に[Shift]+[g]を出力する。
以上の設定処理により、[B]を削除してから、[g]を挿入する設定が完了した。ここで、ユーザは、以下のような操作を行うことにより、設定モードを終了し、測定モードに移ることができる。
制御部1013は、以下の事象を検知すると、設定モードを終了し、変換部1012に処理を引き継いで、インプットツール101を測定モードに遷移させる。
測定機器を外した状態で設定処理を実行していたインプットツール101の第1のデータインターフェイス1011に、測定機器が接続された。
測定機器が接続されているが測定データが来ない状態で設定処理を実行していたインプットツール101の第1のデータインターフェイス1011に、測定機器から測定データが入力された。
インプットツール101と設定装置102との接続が外され、再接続された。
また、インプットツール101は、ユーザの以下の対話操作により測定モードに遷移することも可能である。
・<<Change Setting>>場面で、「Return −> <<Edit Setting>>」を選択する。
・<<Edit Setting>>場面で、「Return −> <<Setup Entrance>>」を選択する。
・<<Setup Entrance>>場面で、<<Setup Exit>>を選択する。
・<<Setup Exit>>場面で、「−> <<Measurement mode>>」を選択する。
制御部1013は、測定モードに遷移するための上記選択を検知した場合、表示部1022にログ144〜158を表示する。そして、設定モードに入った時に保持した、Caps Lock状態、Num Lock状態、Scroll Lock状態を読み出し、これらの状態が現在と相違するならば、[Caps Lock][Num Lock]又は[Scroll Lock]信号を制御部1024に出力することにより、NSC状態を設定モードに入る前のものに復元する。しかる後、インプットツール101は測定モードに遷移する。
ログ147行は、ユーザに対し、Caps Lock状態、Num Lock状態、Scroll Lock状態の確認を促すためのものである。ログ148行は、OSの入力言語等の確認を促すものである。ユーザは、このメッセージに応じて、先に「英語」に変更したOSの入力言語の設定を、変更前の設定に直すことが好ましい(図7)。ログ150〜155行は、後で再び設定モードに入るための操作を案内している。ログ157は、この直後に測定モードに入ることを示している。ログ158の空行は、設定モードのメッセージの終わりが分かり易いように出力される。
以上の設定操作により、インプットツール101が測定モードで測定データを出力する際の出力形式は、「[Enter][Shift]+[Tab][2][−][g]#[Tab]{Data}」に設定された。但し、カーソル#は出力時には無視される。
例えば、測定データが「−12.456」の場合、変換部1012は、{Data}に、測定データに対応する数字キーをこの順に従って押下したことに相当するキーボード信号をあてる。そして、上記設定に従い、以下の形式のキーボード信号を、第2のデータインターフェイス1014に対し出力する。
・Caps Lock On時:[Enter][Shift]+[Tab][2][−][Shift]+[G][Tab][−][1][2][.][4][5][6]
・Caps Lock Off時: [Enter][Shift]+[Tab][2][−] [G][Tab][−][1][2][.][4][5][6]
ここで、[Shift]+[G]は[Shift]キーを押しながら、[G]キーを押すことに相当するキーボード信号を示す。
実施の形態1では、表示部1022、ユーザ入力部1023、及び制御部1013が、ユーザとの対話的設定処理を行う。これにより、測定データの前後に付加すべき文字や制御コードを柔軟に設定することができ、インプットツール101の使い勝手が向上する。具体的には、測定データの前後に[Tab]や[ENTER]などを任意に挿入できるので、カーソルキーの移動操作などが可能となり、例えば表計算ソフトにおけるにセル移動等を制御できる。また、測定データの前後に任意の文字を付加できるので、例えば測定データに測定機器を識別する符号等を付加できる。
また、実施の形態1では、設定装置(PC)102が通常備える表示部1022、ユーザ入力部1023等を用いて、対話的設定を実現している。
実施の形態1によらずに対話的設定を実現する手法としては、例えば、インプットツール自体に数個のボタンとドットマトリックス液晶ディスプレイが付けるなどの手法も考えられる。しかし、この手法では、これらの部品の為にコストがかさみ、かつ嵩張ることとなる。また、これらの部品が弱点になって、堅牢性が損なわれる恐れもある。
または、PC等で稼働し、PCのUSBインターフェイス等を介して、何らかの専用プロトコルでインプットツールと通信を行うような、専用の設定用プログラムを提供する手法も考え得る。しかし、この手法では、専用プログラムをユーザのPC等にインストールする必要が生じる。
あるいは、何らかのコネクタ等でインプットツールと接続できる、専用の設定用マシンを提供する手法も考え得る。しかし、インプットツールを設定する為に、設定用マシンをも購入する必要が生じ、導入コストは割高になる。
一方、実施の形態1によれば、上述のように、設定装置(PC)102が通常備える表示部1022、ユーザ入力部1023等を用いるため、設定用のプログラムを特別にインストールする必要が無い。
さらに、実施の形態1では、対話的設定を実現する為に専用のボタンや表示装置をインプットツールに付加する必要がない。そのため、コストを低減できる。また、故障要因が増えず又は省略され、堅牢性が保たれる。加えて、小型化も可能となる。
また、実施の形態1では、1つのインプットツール101の設定を変えることにより、多様な使い方に対応できる。そのため、ユーザは、多くのインプットツールを購入する必要がなく、コストを抑制できる。インプットツールのメーカ等は、ラインアップの品種を少なくできる。これにより、開発、製造、物流(在庫管理を含む)等において、量産効果を発揮できる。また、購入検討中の顧客に細かな違いを説明する手間が不要となる。さらに、ユーザが似た品物を誤発注するリスクや、品違い納品のリスクを抑えられる。
<実施の形態2>
実施の形態2では、NSC信号を測定又は転送トリガとして利用することができるキーボード信号処理装置101及び設定システム100について説明する。
実施の形態2におけるキーボード信号処理装置101及び設定システム100は、実施の形態1と同様の構成要素を有する。実施の形態2は、主にキーボード信号処理装置101の制御部1013の動作に特徴を有する。
実施の形態2では、ユーザ入力部1023からの[Num Lock]キー、[Scroll Lock]キー、及び[Shift]+[Caps Lock]キーの入力を、実施の形態1で示した設定処理だけでなく、測定機器に測定又は測定データの転送の開始を指示するトリガとしても利用する。具体的には、インプットツール101の制御部1013は、[Num Lock]キー、[Scroll Lock]キー、又は[Shift]+[Caps Lock]キーの入力を検知すると、測定機器に対し、測定開始又は測定データの転送開始を指示する。測定機器は、当該指示に応じて、測定又は測定データの転送を開始する。変換部1012は、当該指示を契機として測定機器から転送されてくる測定データを受信し、受信した測定データをキーボード信号に変換する。
ここで、トリガキーとしては、通常はあまり使われない[Scroll Lock]キーを利用することが好ましい。また、マウスのダブルクリックのように2回連打をすることで1回のトリガとみなすようにすれば、NSC状態を元に戻すことができ、不都合が生じ難い。その際、狙った瞬間にラッチタイミングを合わせ易くするため、1打目でラッチし、直ちに(例えば1秒以内に)2打目が来た場合だけデータを転送することがなお望ましい。
あるいは、[Shift]+[Caps Lock]、[Num Lock]、[Scroll Lock]を複数の異なるインプットツール101にそれぞれ割り当てれば、PCに接続された最大3個のインプットツールを個別にトリガすることもできる。又は、1個のインプットツールに最大3個の測定機器を接続し、上記3個のキーと測定機器とを一対一に対応させることもできる。又は、1個のキーで複数個の測定機器に同時にトリガを出すこともできる。
実施の形態2におけるインプットツール101では、設定モード及び測定モードの2つの動作モードを設けることが好ましい。測定時に、設定用のメッセージが出力されたり、ユーザによる[Num Lock]キー等の入力に反応しては、測定に不都合だからである。すなわち、インプットツール101は、設定モードにおいては実施の形態1に示した対話的設定を行い、測定モードにおいては測定データをキーボード信号に変換して出力する処理を行う。
インプットツール101の制御部1013は、あらかじめ定められた特別な条件の成立を検知した時に、測定モードと設定モードとを切り替える制御を行うことが好ましい。測定モードの実行中に不用意に設定モードに入っては不都合であるためである。この条件は、通常の測定では偶然に成立ない条件とすることが好ましい。例えば、制御部1013は、PCとの通信開始直後の短時間に、Caps Lock、Num Lock、Scroll Lockの状態があらかじめ定められた特別な順番で変化したことを検出した場合にのみ、設定モードに入るよう制御することができる。加えて、一旦、設定モードを出たら、インプットツール101とPCとを再接続しない限り、設定モードに入れないこととすることが好ましい。また、測定機器が接続されている場合にも、設定モードに入れないこととすることが好ましい。
実施の形態2における測定データの出力形式も、実施の形態1と同様に対話的に設定できるであろう。例えば、制御部1013は、以下のような設定を保持する。
[Enter][Shift]+[Tab][Shift]+[Tab]{Data1}[Tab]{Data2}[Tab]{Data3}
ここで、{Data1}、{Data2}、{Data3}はインプットツール101の第1のデータインターフェイス1011−1、1011−2及び1011−3に接続された、3つの測定機器の測定データを意味する。
測定モードにおける、キー入力と測定動作との関連付けの設定についても、上述の出力書式の設定と同様に対話的に実行し、制御部1013に設定を保持させることが可能である。変換部1012は、制御部1013に保持された設定を参照して動作するよう構成できる。
上述の実施の形態2では、インプットツール101が測定機器に対し、1回のNSCキー入力をトリガとして1回の測定を実行させる場合を主に例示した。しかしながら、本発明のインプットツール101はこの形態に限定されるものでなく、例えば複数回にわたって入力されるNSC信号を測定開始及び測定終了の指令として使用し、これらの指令によって定義される一定期間にわたって測定機器に測定を実行させるものであっても良い。
以下、上述の実施の形態2の応用例として、インプットツール101が、測定機器から一定期間にわたる測定データを入力し、入力されたデータ全体又はその統計処理データを出力する例を示す。この例において、インプットツール101は、測定機器に対し、上記一定期間の開始や終了を指令する。
<応用例1 ゲージによる振れ測定>
応用例1は、インプットツール101が、測定機器としてのゲージに対し、測定開始及び測定終了を指令するものである。この例において、ゲージは、カムのフルストロークを測定するものとする。
はじめに、ユーザはゲージをカムに押し当てるとともに、測定を開始するため、ユーザ入力部1023において任意のNSCキー、好ましくは[Scroll Lock]キーを入力する。制御部1013がこのキー入力によるNSC信号を検知し、ゲージに対し、測定を開始すべき旨を示す信号(測定開始指令)を送信する。
ゲージは、測定開始指令を受信すると、(短周期)サンプリングを開始する。ゲージは、サンプリング継続中、カムとゲージの接触点の位置を所定の周期でサンプリングする。ゲージは、サンプリングデータを、ゲージ内のバッファに蓄積する。あるいは、ゲージは、サンプリングデータを逐次インプットツール101の変換部1012に対し送信しても良い。
ユーザは、測定を終了するため、ユーザ入力部1023において任意のNSCキー、好ましくは[Scroll Lock]キーを入力する。制御部1013がこのキー入力を検知し、ゲージに対し、測定を終了すべき旨を示す信号(測定終了指令)を送信する。
ゲージは、測定終了指令を受信すると、サンプリングを終了する。ここで、ゲージ又は変換部1012の少なくともいずれか一方は、一連のサンプリングデータを利用して、カムの振れすなわちストロークを算出、出力する。振れは、サンプリングデータ中の最大値と最小値との差分として算出可能である。最大値、最小値、振れの算出は、ゲージ又は変換部1012のいずれか一方または両者が協働して行うことができる。例えば、ゲージが、ゲージ内に蓄積したサンプリングデータのうち最大値、最小値を変換部1012に出力し、変換部1012がこれらに基づいて振れを算出しても良い。あるいは、変換部1012が、ゲージから全てのサンプリングデータを受信したうえで、最大値、最小値、振れを算出しても良い。測定機器は、自発的なサンプリングデータの出力を常時繰り返し、変換部1012は、受信したサンプリングデータが不要な時は読み捨てることとしても良い。測定機器は、自発的なサンプリングデータの出力を、測定終了指令を受信するまで繰り返すことができる。あるいは、制御部1013が、測定開始指令を繰り返し送信し、測定機器は、1回の測定開始指令に対し測定値を1回出力することとしても良い。
<応用例2 LSMによる線径の平均と標準偏差の測定>
応用例2は、インプットツール101が、測定機器としてのLaser Scan Micrometer(LSM)に対し、測定開始及び測定終了を指令するものである。この例において、LSMは、一定の長さを有する電線の径の平均と標準偏差を測定するものとする。
はじめに、ユーザは電線をLSMの感知部に通すとともに、測定を開始するため、ユーザ入力部1023において任意のNSCキー、好ましくは[Scroll Lock]キーを入力する。制御部1013がこのキー入力によるNSC信号を検知し、LSMに対し、測定を開始すべき旨を示す信号(測定開始指令)を送信する。
LSMは、測定開始指令を受信すると、(短周期)サンプリングを開始する。LSMは、サンプリング継続中、電線を長さ方向に移動してその径を所定の周期でサンプリングする。LSMは、サンプリングデータを、ゲージ内のバッファに蓄積する。あるいは、LSMは、サンプリングデータを逐次インプットツール101の変換部1012に対し送信しても良い。
ユーザは、測定を終了するため、ユーザ入力部1023において任意のNSCキー、好ましくは[Scroll Lock]キーを入力する。制御部1013がこのキー入力を検知し、LSMに対し、測定を終了すべき旨を示す信号(測定終了指令)を送信する。
LSMは、測定終了指令を受信すると、サンプリングを終了する。ここで、LSM又は変換部1012のいずれか一方は、径のサンプリングデータ群を利用して、径の平均及び標準偏差を算出する。例えば、LSMが、LSM内に蓄積したサンプリングデータから平均及び標準偏差を算出しても良い。あるいは、変換部1012が、LSMから全てのサンプリングデータを受信したうえで、平均及び標準偏差を算出しても良い。
<応用例3 温度の時系列データの記録>
応用例3は、インプットツール101が、測定機器としての温度計に対し、測定開始及び測定終了を指令するものである。
ユーザは温度測定を開始するため、ユーザ入力部1023において任意のNSCキーを押下、好ましくは[Scroll Lock]キーを2回連打する。制御部1013がこのキー入力によるNSC信号を検知し、温度計に対し、測定を開始すべき旨を示す信号(測定開始指令)を送信する。
ここで、測定開始トリガを2回連打にすることが好ましい理由は以下の通りである。一般に、温度変化は緩やかであって、測定は長時間にわたることが多い。そのため、測定の間に[Scroll Lock]キーが他の用途のために使用される恐れがある。よって、本応用例における制御部1013は、[Scroll Lock]キーの単打は本来の用途のために使用されるものとして無視し、2連打を測定開始及び終了トリガとして認識する。
温度計は、測定開始指令を受信すると、サンプリングを開始する。温度計は、所定の周期で温度をサンプリングする。温度計は、サンプリングデータを測定毎に逐次インプットツール101の変換部1012に対し送信する。測定機器は、自発的なサンプリングデータの出力を常時繰り返し、変換部1012は、受信したサンプリングデータが不要な時は読み捨てることとしても良い。測定機器は、自発的なサンプリングデータの出力を、測定終了指令を受信するまで繰り返すことができる。又は、制御部1013が、測定開始指令を繰り返し送信し、測定機器は、1回の測定開始指令に対し測定値を1回出力することとしても良い。あるいは、温度計は、サンプリングデータを、ゲージ内のバッファに蓄積しても良い。
ユーザは、測定を終了するため、ユーザ入力部1023において任意のNSCキーを押下、好ましくは[Scroll Lock]キーを2回連打する。制御部1013がこのキー入力を検知し、温度計に対し、測定を終了すべき旨を示す信号(測定終了指令)を送信する。
温度計は、測定終了指令を受信すると、サンプリングを終了する。ここで、温度計は、サンプリングデータをゲージ内のバッファに蓄積しているならば、蓄積したデータを変換部1012に対し送信する。
応用例3によれば、サンプリングデータが逐次インプットツール101に出力することができ、略リアルタイムで測定値の変化を記録できる。但し、一般にキーボード信号は比較的出力速度が遅いため、比較的変化の速い測定値には本応用例は適さない。
実施の形態2によれば、インプットツール101においては、測定又は転送トリガボタンを省略することができる。そのため、コストを低減できる。また、故障要因が増えず又は省略され、堅牢性が保たれる。加えて、小型化も可能となる。
また、実施の形態2によれば、ユーザ入力部1023は、測定モードにおいて測定機器に対し測定・転送トリガを出す機能を果たすことができるので、例えば、表計算ソフトにおいて、測定データ入力の合間に他の操作(コメント入力やマクロ起動等)を行う場合に、キーボードから手を離さずに済み、作業効率が高まる。
<その他の実施の形態>
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
(NSC信号だけで多種の操作をする方法)
NSCキーの単打、2連打、3連打、・・・を区別することによって、ユーザが入力可能なキー操作を3種類より多くできる。例えば、メニューや選択肢群をナビゲーションするためのキー操作を、以下のように実現できる。
・決定:[Shift]+[Caps Lock] 単打
・取消:[Shift]+[Caps Lock] 2連打
・→:[Num Lock] 単打
・←:[Num Lock] 2連打
・↓:[Scroll Lock] 単打
・↑:[Scroll Lock] 2連打
・選択肢の選択:N番目の選択肢を選ぶ時、N連打する。
(NSC信号の他の用途)
また、測定モードにおいて、直前入力データの削除、1行スキップ(空欄)など測定データ入力以外の操作を、いずれかのNSCキーに割り当てることもできる。例えば、
・[Num Lock] に、「[Enter][Shift]+[Tab][2][−][g][Tab]{Data}」を割り当て、測定データの入力を行わせる。
・[Scroll Lock]に、「[Delete][Shift]+[Tab][Delete]」を割り当て、直前の測定データの削除を行わせる。
・[Shift]+[Caps Lock]に、「[Enter][Shift]+[Tab]*[Tab]*」を割り当て、1行スキップを行わせる。ここで、「*」は、故意にデータを入れていないことを明示する為に挿入する。
このような、測定モードにおいて使用可能なキー入力を割当てるための設定処理は、実施の形態1と同様に、表示部1022及びユーザ入力部1023を利用することにより実現できるであろう。設定処理の実行及び設定結果の保持は、制御部1013が行う。変換部1012は、制御部1013に保持された設定を参照して動作するよう構成できる。
また、NSCキーは、インプットツール101にかかる対話的に行われない設定のためにも用いることができる。例えば、インプットツール101の機能オフ(節電、意図しない測定データ転送の予防を目的とする)、測定機器の切り替え(インプットツール101に複数の測定機器が接続され、アクティブな測定機器がLEDなどで分かる場合など)、測定モード(最大値、最小値、振れ値、現在値など)の切り替え(モードはLEDなどで分かる場合など)、インプットツール101内に蓄積されたデータのクリア(例えば、ゲージが常時周期的にデータを送信している場合における、振れ測定モード時の最大値、最小値のクリアなど)、データのラッチ、PCへの転送(測定機器が常時周期的にデータを出している場合など)等の各種設定を、NSCキーにより実行させることができる。
(NSC信号以外による入力方法)
また、上述の実施の形態では、ユーザは、設定メッセージに対する応答として、[Num Lock]、[Shift]+[Caps Lock]、[Scroll Lock]の3種類のキー入力を用いる構成を例示したが、応答の入力は、インプットツール101が備えるスイッチにより行うこととしても良い。例えば、インプットツール101が通常のテンキーボードと合体している場合、当該テンキーボードでインプットツールを操作できると、ボタン数が豊富で、操作し易いので、便利である。
(出力フォーマットの他の形態)
また、上述の実施の形態では、変換部1012が測定データの前後に所定のキーボード信号を付加して出力し、制御部1013が付加すべきキーボード信号を設定する例を示した。しかしながら、変換部1012の動作は上記に限定されず、測定データを任意の出力フォーマットに変換して出力するものであって良い。例えば、変換部1012は測定データを以下のようなフォーマットに整型して出力することが可能である。
・小数点を示す文字を「,」(コンマ)又は「.」(ピリオド)のいずれかとする。
・上位又は下位ゼロサプレスを行う。すなわち指定した桁数に満たない数値を文字として表現する際、先頭又は末尾の「0」を削除又は空白とする。
・測定データを3桁毎に「,」(コンマ)等で区切って表示する。
・小数点以下を所定の桁数まで表示する。
・所定の方式による+表示(数値が正であることの表現)を行う。例えば、+記号を前置する(例:「+12.34」)。空白を前置する(例:「 12.34」)。或いは、前置なし(例「12.34」)。
この場合、制御部1013は、上記出力フォーマットの形態を、上述の実施の形態の如く対話的に設定することができる。すなわち、制御部1013は、設定のオプションをユーザに対して表示し、ユーザによるオプションの選択結果をNSC信号等として受信し、その選択結果を保持する。変換部1012は、制御部1013が保持するオプション設定を参照し、上述の出力フォーマット整型を行う。
(他のキーボードインターフェイス)
また、インプットツール101が使用するキーボードインターフェイス、すなわち第2のデータインターフェイス1014及びデータインターフェイス1021は、USBに限定されない。例えば、Bluetooth(登録商標)のようなワイヤレスインターフェイスであっても良く、キーボード信号を送信可能な他の任意の通信規格を用いたものであっても良い。
(キーボードレイアウトの変更)
さらに、制御部1013が表示部1022に対話メッセージを出力する際、制御部1013が用いるキーボードレイアウトを、可変にすることもできる。実施の形態1では、制御部1013側のキーボードレイアウトを英語に固定し、設定装置102側のOSのキーボードレイアウトの設定をそれに合わせた。しかし、制御部1013側のキーボードレイアウトを可変とし、設定装置102側のOSの通常のキーボードレイアウト設定に合わせるようにするならば、よりユーザに親切である。設定は、DIP SWなどで実現することも可能であるが、本発明の趣旨である部品数抑制の観点からは好ましくない。そこで、インプットツール101側のキーボードレイアウトの設定も対話的設定メニューにおいて行えることが望ましい。また、この設定も制御部1013により不揮発性メモリに格納されることが望ましい。
このインプットツール101側のキーボードレイアウトの設定を完了するまでは、インプットツール101と設定装置102のキーボードレイアウトが一致せず、インプットツール101が出力するメッセージが、設定装置102側では文字化けしてユーザが読めない恐れがある。この問題に関しては、以下のような対応が望ましい。
・キーボードレイアウトの設定操作は、設定モードの入り口付近に設ける。
・工場出荷時は最もポピュラーな英語レイアウトに設定しておく。
・取扱説明書で、キーボードレイアウトの設定までの手順を、特に詳しく説明する。
・キーボードレイアウトの設定操作までの対話メッセージは、文字化けの恐れのある文字をなるべく使わない。但し、理解に支障の無い程度の文字化けは許容する。例えば、キーボードレイアウト設定中に「Mitutoyo」が「Mitutozo」になっても、キーボードレイアウトの設定はできるであろう。
・キーボードレイアウトの設定操作までの対話メッセージは、同じメッセージを複数のキーボードレイアウトで出力することができる。ユーザは自分が読める行を読めば良いからである。インプットツール101のキーボードレイアウトに対応する言語でメッセージを出力しても良い。例えば、インプットツール101のキーボードレイアウトがGermanであれば、ドイツ語表記のメッセージを出力しても良い。
例えば、設定装置102側のキーボードレイアウトが英語の場合、設定装置102側では、インプットツール101が出力するメッセージは以下のように見える。
・インプットツール101のキーボードレイアウト=English: made by Mitutoyo Corp.
・インプットツール101のキーボードレイアウト=German: made bz Mitutozo Corp.
設定装置102側のキーボードレイアウトがドイツ語の場合は以下のように見える。
・インプットツール101のキーボードレイアウト=English: made bz Mitutozo Corp.
・インプットツール101のキーボードレイアウト=German: made by Mitutoyo Corp.
・設定モード入り口からキーボードレイアウトの設定操作完了までのメッセージは極力、単純にする。例えば、以下のようなものとする。
Keyboard Layout English OK−Scroll Lock No−Num Lock
Keyboard Layout German OK−Scroll Lock No−Num Lock
Keyboard Layout Japanese OK−Scroll Lock No−Num Lock
Japanese keyborad layout is used.
English行は英語キーボードレイアウトで、German行はドイツ語キーボードレイアウトで、Japanse行はJapaneseキーボードレイアウトで出力される。
ユーザは1行目を見て、[Num Lock]キーを押し、2行目を見て、[Num Lock]キーを押し、3行目を見て、[Scroll Lock]キーを押した。その結果、Japanese keyboradが選択された。この後、再度、設定モードに入った時は、不揮発記憶されていたキーボード設定がデフォルト値になっているので、操作は1回で済む。
Keyboard Layout Japanese OK−Scroll Lock No−Num Lock
Japanese keyborad layout is used.
オペレータは1行目を見て、[Scroll Lock]キーを押す。
また、キーボードレイアウトに応じて、測定データに付加する文字の選択肢を変更できるよう構成しても良い。例えば、「O」、「o」、「A」、「a」等は、英語キーボードレイアウトや日本語キーボードレイアウトでは選択肢に含めず、ドイツ語キーボードレイアウトでは選択肢に含めることができる。
(キーボード信号を用いた対話的設定手法の他の装置等への適用)
また、上述の実施の形態において示した、キーボード信号を用いた対話的設定手法は、インプットツール110以外の装置においても採用可能である。例えば、PCやインプットツール110等と共に使用されるスイッチであって、PCに入力された測定データを取り消したり、ブランクを入力したりするため、PCにキーボード信号を出力するフットスイッチ等にも、当該キーボード信号の出力内容を設定するために、上述のキーボード信号を用いた対話的設定手法を応用し得るであろう。
(キーボード信号処理装置の形態)
また、上述の実施の形態では、キーボード信号処理装置を、主に測定機器とは独立し当該測定機器と通信可能に接続される装置として説明した。しかしながら、キーボード信号処理装置は、測定機器と一体の装置であってもよい。例えば、測定機器がキーボード信号処理装置を内蔵したものも本発明に含まれる。この場合、測定機器は、測定データを内部信号としてキーボード信号処理装置に出力する。
また、上述の実施の形態では、本発明を主にハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。