以下、本発明を具体化した実施形態について図面を参照して説明する。まず、図1を参照して、入力装置1の構成について説明する。以下の説明では、シート61,62,63(図2、図3、及び図17参照)について説明するが、シート61,62,63を総称する場合、又はいずれかを特定しない場合、「シート6」という。また、シートデータテーブル91,92,93(図4、図5、及び図18参照)について説明するが、シートデータテーブル91,92,93を総称する場合、又はいずれかを特定しない場合「シートデータテーブル9」という。
入力装置1は、キャラクタ(文字、数字、及び記号等)を印字する印字装置の機能を備える。入力装置1の内部には、巻回されたテープ状の印字媒体45が巻回されたテープロール(図示外)が設置される。入力装置1が印字を実行する際には、該テープロールから印字媒体45が引き出されて、印字媒体45に対して印字が行われる。そして、印字された印字媒体45が切断され、外部に排出される。例えば、キャラクタ「Apple Pie」が印字されると、図1に示す印刷済みの印字媒体451が作成される。
入力装置1は、上面にタッチパッド207を備える。なお、タッチパッド207の下にはディスプレイは設けられていない。タッチパッド207の上側には、シート6(図2及び図3参照)が交換可能に配置される。シート6はタッチパッド207の平面視の形状と同じ形状に形成されている。また、タッチパッド207の周囲には、タッチパッド207より上方に突出する壁部219が設けられている。シート6がタッチパッド207の上側に配置される場合には、壁部219の内側に配置される。タッチパッド207の後方には、ディスプレイ216が設けられている。タッチパッド207の前方には操作スイッチ220等が配置されている。
図2及び図3を参照し、タッチパッド207の第二操作キー7及びシート6について説明する。図2(A)及び図3(A)の下側、上側、右側、左側を、シート6及びタッチパッド207の前側、後側、右側、左側と定義して説明する。図2及び図3では、ディスプレイ216、タッチパッド207、及びシート6の位置関係の概略を示している。図2及び図3のシート61,62は、タッチパッド207の表面に配置されている。シート6には、種々の第一操作キー5が印刷によって描かれている。タッチパッド207の表面全体には、操作領域76が設定されている。操作領域76には、複数の第二操作キー7が設定されている。第二操作キー7は、第一操作キー5に対応する操作領域76上の位置に設定されている。ユーザは、シート6に描かれた第一操作キー5を押下することで、タッチパッド207の操作領域76に設定された第二操作キー7を操作することができる。
ユーザはシート6の向きを変更してタッチパッド207に配置することができる。以下の説明では、図2(A)及び図3(A)に示すシート6の向きを「0度(°)」の向きであるとする。また、図2(B)及び図3(B)に示すように、シート6を180度回転させて操作領域76に配置した場合のシート6の向きを「180度」の向きであるとする。
なお、入力装置1のフラッシュメモリ203には、シート6の種類毎にタッチパッド207に配置する第二操作キー7の位置が登録されたシートデータテーブル9(図4及び図5参照)が記憶されている。詳細は後述するが、シート6の向きが「180度」の場合、シートデータテーブル9の「第二操作キー7の位置」が180度回転されて、タッチパッド207の操作領域76に配置される。また、シート6の向きが「0度」の場合、シートデータテーブル9の「第二操作キー7の位置」が、タッチパッド207の操作領域76に配置される。
図2に示すように、シート61の第一操作キー5は、数字キー51、上キー52、下キー53、左キー54、右キー55、及びENTERキー57を含む。シート61の数字キー51は、数字「1」〜「16」の16個設けられている。数字キー51には、数字「0」〜「16」が描かれている。以下の説明では、例えば、数字「1」の数字キー51を特定する場合、数字キー51「1」と記載する。上キー52、下キー53、左キー54、右キー55は、ディスプレイ216に表示されるカーソル(図示外)を上下左右に移動させるキーである。ENTERキー57は、印字の実行の決定等が行われる場合に操作されるキーである。
図2の操作領域76には、シート61の数字キー51、上キー52、下キー53、左キー54、右キー55、及びENTERキー57に対応する第二操作キー7である数字キー71、上キー72、下キー73、左キー74、右キー75、及びENTERキー77が設定されている。
図3に示すように、シート62の第一操作キー5は、数字キー51及びENTERキー57を含む。シート62の数字キー51は数字「1」〜「24」の24個設けられている。数字キー51には、数字「0」〜「24」が描かれている。図3の操作領域76には、シート62の数字キー51及びENTERキー57に対応する第二操作キー7である数字キー71及びENTERキー77が設定されている。
操作領域76の座標(X,Y)について説明する。操作領域76では、右方向がX軸の+方向(X方向)であるとし、下方向がY軸の+方向(Y方向)であるとする。図2及び図3に示すように、操作領域76の左後の座標は原点(0,0)である。操作領域76の右前の座標は、(250,500)である。すなわち、操作領域76の範囲(X1,Y1)〜(X2,Y2)は、(0,0)〜(250,500)の範囲である。
図4及び図5を参照し、シートデータテーブル9について説明する。シートデータテーブル9は、シート6の種類に応じた第一操作キー5の配置に対応する操作領域76上の位置(第二操作キー7の位置)がシート6の種類ごとに設定されたデータテーブルである。シートデータテーブル9はフラッシュメモリ203に記憶されている。図4及び図5に示すように、シートデータテーブル9には、コード、第二操作キー7の名称、及び第二操作キー7の位置が対応付けられて記憶されている。
コードは、「1」〜「31」の数値で設定されている。第二操作キー7の名称は、前述の第二操作キー7の名称と同じである。「第二操作キー7の位置」に記載のX1,Y1,X2,Y2は、各第二操作キー7の位置が(X1,Y1)〜(X2,Y2)の範囲に設定されていることを示している。なお、例えば、図4に示す数字キー71「17」〜「24」、SPACEキー、CLEARキーのように、「第二操作キー7の位置」が(0,0)〜(0,0)に設定されている場合、「第二操作キー7の位置」が設定されていないことを示している。本実施形態では、コードに対応付けられる第二操作キー7の名称は全てのシートデータテーブル9間で同一である。すなわち、配置できる第二操作キー7は予め定められている。
なお、図示しないが、シートデータテーブル91,92のそれぞれには、各第二操作キー7が操作された場合に実行される機能が記憶された機能データテーブルが対応付けられている。例えば、シートデータテーブル91の数字キー71「1」には、キャラクタ「Apple Pie」の印字機能が対応付けられているとする。この場合、操作領域76の数字キー71「1」が操作されると、「Apple Pie」が印字された印字媒体451(図1参照)が作成される。機能データテーブルに登録されている機能は特には限定されず、例えば、数字をディスプレイ216に表示する機能でもよい。
図6を参照して、入力装置1の電気的構成を説明する。入力装置1は、入力装置1の制御を行うCPU201を備えている。CPU201は、ROM202、フラッシュメモリ203、RAM204、CGROM205、出力回路213、操作スイッチ220、及び駆動回路209〜212に接続されている。
ROM202には、入力装置1のCPU201が実行する各種プログラム(例えば、図7のメイン処理のプログラム及び図16のシートデータテーブル作成処理等)が記憶されている。フラッシュメモリ203には、種々のデータ(例えば、シートデータテーブル9(図4及び図5参照)、第一、第二、第三データテーブル81,82,83(図8、図9、及び図11参照)等)が記憶される。RAM204には、種々の一時データが記憶される。CGROM205には、種々のキャラクタを印字媒体45に印字するための印字用のドットパターンデータが記憶されている。
駆動回路212は、タッチパッド207を駆動するための電子回路である。ユーザが、タッチパッド207上に配置されるシート6に描かれた第一操作キー5を操作(押下)すると、CPU201はタッチパッド207を介して操作された位置(座標)を検出する。これによって、CPU201は操作された第二操作キー7を特定する。駆動回路209は、サーマルヘッド217を駆動するための電子回路である。CPU201は、駆動回路209を介して、サーマルヘッド217を制御し、印字媒体45に印字を行うことができる。駆動回路210は、入力装置1の内部で巻回された印字媒体45を外部に搬送するためのテープ送りモータ214を駆動するための電子回路である。駆動回路211は、印字済みの印字媒体45を切断する移動刃(図示外)を動作させるカッターモータ215を駆動するための電子回路である。
図7を参照して、本発明のメイン処理について説明する。入力装置1の電源がオンされると、CPU201は、ROM202に記憶されているメイン処理のプログラムを読み出し、メイン処理を実行する。メイン処理は、シート6の向きを特定した後、シート6の種類を特定して、操作領域76に第二操作キー7の位置を設定する処理である。以下の説明では、フラッシュメモリ203にシートデータテーブル91(図4参照)及びシートデータテーブル92(図5参照)が記憶されているとする。
メイン処理では、まず、第一データテーブル81(図8参照)と第二データテーブル82(図9参照)とが作成される(S11)。S11では、全てのシートデータテーブル9の「第二操作キー7の位置」のうち、コード「N」が同じ「第二操作キー7の位置」が取得される。そして、例えば、コード「25」及び「26」のように、全てのシートデータテーブル9(図4及び図5参照)に「第二操作キー7の位置」が設定されていない場合、第二データテーブル82には「TRUE」が設定され、その他のコードには「FALSE」が設定される。これによって、図9に示すように、第二データテーブル82のコード「25」及び「26」が「TRUE」に設定され、コード「25」及び「26」以外のコードが「FALSE」に設定される。
また、コード「17」〜「24」及び「28」〜「31」のように、全てのシートデータテーブル9の少なくとも1つ(「全てのシートデータテーブル9」を除く)に「第二操作キー7の位置」が設定されている場合、第一データテーブル81には、「TRUE」が設定される。その他のコードは「FALSE」に設定される。これによって、図8に示すように、第一データテーブル81のコード「17」〜「24」及び「28」〜「31」が「TURE」に設定され、コード「17」〜「24」及び「28」〜「31」以外のコードは「FALSE」に設定される。
次いで、シート向き特定処理が実行される(S12)。図10を参照して、シート向き特定処理について説明する。シート向き特定処理は、操作領域76に配置されたシート6の向きを特定する処理である。まず、シート6の所定の位置を操作するようにユーザに促すメッセージが表示される(S31)。本実施形態の場合、所定の位置は、シート6の左後部であるとする。S31では、例えば、「シートの左後部をタッチ(操作)してください。」のメッセージがディスプレイ216に表示される。
次いで、ユーザによる操作がなされたことで、操作領域76の操作された位置である操作位置が取得されたか否かが判断される(S32)。操作位置が取得されていない場合(S32:NO)、S32が繰り返される。操作位置が取得された場合(S32:YES)、操作位置が操作領域76の左後部又は右前部であるか否かが判断される(S33)。この判断は、S32で取得された操作位置(座標)が、操作領域76の左後部の所定の範囲内(例えば、(0,0)〜(50,50)の範囲内)又は右前部の所定の範囲内(例えば、(200、450)〜(250,500)の範囲内)にあるか否かが判断されることで行われる。
操作位置が操作領域76の左後部又は右前部でない場合(S33:NO)、処理はS31に戻る。操作位置が操作領域76の左後部又は右上部である場合(S33:YES)、操作位置が操作領域76の左後部であるか否かが判断される(S34)。左後部である場合(S34:YES)、反転フラグが「TRUE」に設定される(S35)。操作位置が操作領域76の右前部である場合、左後部でないと判断され(S34:NO)、反転フラグが「FALSE」に設定される(S36)。S35又はS36で設定された反転フラグは、RAM204に記憶される。
例えば、図2(A)に示すように、シート6が「0度」の状態で操作領域76に配置されている場合、シート6の左後部は、操作領域76の左後部にある。このため、ユーザによってシート6の左後部が操作されると、操作位置が取得され(S32:YES)、操作位置が操作領域76の左後部であるため(S33:YES、S34:YES)、反転フラグが「TRUE」に設定される(S35)。
また、図2(B)に示すように、シート6が「180度」の状態で操作領域76に配置されている場合、シート6の左後部は、操作領域76の右前部にある。このため、ユーザによってシート6の左後部が操作されると、操作位置が取得され(S32:YES)、操作位置が操作領域76の右前部であるため(S33:YES、S34:NO)、反転フラグが「FALSE」に設定される(S36)。このように、シート6が「0度」であれば、反転フラグが「TRUE」に設定され、シート6が「180度」であれば、反転フラグが「FALSE」に設定される。すなわち、S32で取得された操作位置からシート6の向きが特定されている。
S35又はS36が実行された後、シート向き特定処理が終了され、処理はメイン処理(図7参照)に戻る。次いで、第三データテーブル83(図11参照)が作成される(S13)。S13では、フラッシュメモリ203に記憶されている全てのシートデータテーブル9が特定される。そして、特定された全てのシートデータテーブル9が「TRUE」に対応付けられ、第三データテーブル83が作成される。例えば、フラッシュメモリ203にシートデータテーブル91,92が記憶されている場合、図11に示すように、第三データテーブル83が作成される。
なお、後述する処理によって、操作領域76上に配置されたシート6に対応するシートデータテーブル9が特定される。第三データテーブル83は、シートデータテーブル9の特定に用いられるデータである。第三データテーブル83の「TRUE」は、操作領域76上に配置されている可能性のあるシート6についてのシートデータテーブル9であることを示している。また、第三データテーブル83の「FALSE」(図13参照)は、操作領域76上に配置されている可能性のないシート6についてのシートデータテーブル9であることを示している。
次いで、S35又はS36(図10参照)でRAM204に記憶された反転フラグが「FALSE」であるか否かが判断される(S14)。すなわち、シート6が「180度」の向きで配置されているか否かが判断される。
反転フラグが「FALSE」である場合(S14:YES)、全てのシートデータテーブル9の「第二操作キー7の位置」が180度反転される(S15)。S15では、例えば、シートデータテーブル9の第二操作キー7の位置(X1,Y1)、(X2,Y2)について、「(操作領域76の左右方向の長さ)−(X座標)」及び「(操作領域76の上下方向の長さ)−(Y座標)」が算出される。そして、算出された値が新たな第二操作キー7の位置(X1,Y1)、(X2,Y2)に設定され、「第二操作キー7の位置」が180度回転される。第二操作キー7の位置が180度回転されたシートデータテーブル9は、フラッシュメモリ203に記憶される。これによって、S33〜S36(図10参照)によって特定されたシート6の向きに応じて回転された第二操作キー7の位置が取得される。なお、操作領域76の左右方向の長さは操作領域76の右端の座標「250」と同じである。また、操作領域76の上下方向の長さは操作領域76の下端の座標「500」と同じである。次いで、S16(後述)が実行される。
反転フラグが「FALSE」でない場合(S14:NO)、すなわち、シート6が「0度」の向きで配置されている場合、S16の処理が実行される。すなわち、シート6が「0度」である場合、シートデータテーブル9の「第二操作キー7の位置」を回転させる必要がないので、S15が実行されない。S16では、第三データテーブル83(図11参照)に登録されているシートデータテーブル9が1つであるか否かが判断される(S16)。すなわち、フラッシュメモリ203に記憶されているシートデータテーブル91が1つであるか否かが判断される。
シートデータテーブル9が1つである場合(S16:YES)、1つのシートデータテーブル9に基づいて操作領域76に第二操作キー7の位置が設定される(S21)。S21の処理については、後述する。シートデータテーブル9が1つでない場合(S16:NO)、第一シート絞り込み処理が実行される(S17)。
図12を参照して、第一シート絞り込み処理について説明する。第一シート絞り込み処理は、第一データテーブル81を使用して、操作領域76に配置されているシート6に対応するシートデータテーブル9を特定する処理である。
第一シート絞り込み処理では、まず、変数Nが「1」に設定される(S41)。次いで、第一データテーブル81のコード「N」が「TRUE」であるか否かが判断される(S42)。例えば、図8に示すように、第一データテーブル81のコード「1」は「FALSE」である。よって、第一データテーブル81のコード「N」が「TRUE」でないと判断され(S42:NO)、変数Nがインクリメントされる(S51)。次いで、変数Nが第一データテーブル81のコードの最大値より大きいか否かが判断される(S52)。本実施形態では、コードの最大値は「31」である。変数Nがコードの最大値より大きくない場合(S52:NO)、処理はS42に戻る。図8に示す第一データテーブル81では、コード「1」〜「16」は「FALSE」である。よって、S42、S51、及びS52の処理が繰り返される。そして、変数Nが「17」になると、第一データテーブル81(図8参照)ではコード「17」が「TRUE」であるので、コード「N」が「TRUE」であると判断される(S42:YES)。なお、第一データテーブル81のコード「N」が「TRUE」である場合とは、全てのシートデータテーブル9の少なくとも1つ(「全てのシートデータテーブル9」を除く)に「第二操作キー7の位置」が設定されている場合である。
次いで、コード「N」の第二操作キー7の操作を促す表示がディスプレイ216に表示される(S43)。S43では、コード「N」の第二操作キー7が無い場合には、操作スイッチ220を操作するように指示する表示がディスプレイ216に表示される。例えば、「数字キー「17」を操作してください。数字キー「17」が無い場合、操作スイッチを操作してください。」等のメッセージが表示される。
次いで、コード「N」の第一操作キー5がないことを示す操作が入力されたか否かが判断される(S44)。この判断は、操作スイッチ220が操作されたか否かが判断されることで行われる。コード「N」の第一操作キー5がないことを示す操作が入力されていない場合(S44:NO)、操作領域76上の位置が操作されたか否かが判断される(S45)。操作領域76上の位置が操作されていない場合(S45:NO)、処理はS44に戻る。
以下の説明では、第一具体例として、図2(B)に示すように、シート61が「180度」の向きで操作領域76に配置されている場合を例示しながら説明する。この場合、S15でシートデータテーブル91,92の「第二操作キー7の位置」が180度回転されている。図2(B)に示すように、シート61には、第一操作キー5「17」がない。このため、ユーザは、第一操作キー5「17」を操作することができない。よって、ユーザは、S43で表示されたメッセージに従って操作スイッチ220(図1参照)を操作する。すなわち、コード「N」の第一操作キー5がないことを示す操作を行う。この場合、コード「N」の第一操作キー5がないことを示す操作が入力されたと判断される(S44:YES)。次いで、第三データテーブル83(図11参照)で「TRUE」に設定されているシートデータテーブル9のうち、コード「N」の第二操作キー7が設定されているシートデータテーブル9が特定される(S46)。そして、第三データテーブル83において、特定されたシートデータテーブル9が「FALSE」に設定される(S46)。
例えば、第三データテーブル83で「TRUE」に設定されているシートデータテーブル91,92のうち、シートデータテーブル92(図5参照)には、コード「17」の「第二操作キー7の位置」は設定されている。このため、図13に示すように、第三データテーブル83のシートデータテーブル92が「FALSE」に設定される。すなわち、S44でコード「17」の第一操作キー5がないことを示す操作が行われているので(S44:YES)、操作領域76には、コード「17」の第二操作キー7のないシート6が配置されているはずである。よって、コード「17」の「第二操作キー7の位置」が設定されているシートデータテーブル92を候補から外すのである。
次いで、シートデータテーブル9が1つに絞り込まれたか否かが判断される(S50)。S50の処理は、第三データテーブル83のシートデータテーブル9のうちの1つが「TRUE」であり、他のシートデータテーブル9が「FALSE」になったか否かが判断されることで行われる。例えば、図13では、1つのシートデータテーブル91が「TRUE」であり、他のシートデータテーブル92が「FALSE」であるので、1つに絞り込まれたと判断され(S50:YES)、第一シート絞り込み処理が終了され、処理はメイン処理(図7参照)に戻る。
次いで、S17の結果、シートデータテーブル9が1つに絞り込まれたか否かが判断される(S18)。1つに絞り込まれた場合(S18:YES)、1つのシートデータテーブル9に基づいて操作領域76に第二操作キー7が設定される(S21)。例えば、図13に示すように、1つのシートデータテーブル91に絞り込まれている場合(S18:YES)、シートデータテーブル91に基づいて操作領域76に第二操作キー7が設定される(S21)。このとき、第一具体例では、S15で、シートデータテーブル91の「第二操作キー7の位置」が回転されているので、第二操作キー7の位置が回転されたシートデータテーブル91が使用されて、第二操作キー7が操作領域76に設定される。これによって、シート61が180度回転された状態(図2(B)参照)で、入力装置1の操作を実行することができる状態になる。なお、仮に、S15が実行されなかった場合(S14:YES)、シート61は「0度」で配置されているので、第二操作キー7の位置が回転されていないシートデータテーブル91が使用されて、第二操作キー7が操作領域76に設定される。
次に、第二具体例として、図3(B)に示すように、シート62が「180度」の向きで操作領域76に配置されている場合を例示しながら説明する。この場合、S15でシートデータテーブル91,92の「第二操作キー7の位置」が180度回転されている。前述したように、変数Nが「17」になると、第一データテーブル81(図8参照)ではコード「17」が「TRUE」であるので、コード「N」が「TRUE」であると判断される(S42:YES)。
図3(B)に示すように、シート62には、第一操作キー5「17」がある。このため、ユーザは、S43で表示されたメッセージに従って第一操作キー5「17」を操作する。この場合、操作領域76上の位置が操作されたと判断される(S45:YES)。なお、S45の処理では、操作された位置も取得されている。次いで、第三データテーブル83で「TRUE」に設定されているシートデータテーブル9のうち、コード「N」の第二操作キー7が設定されていないシートデータテーブル9が特定される(S47)。そして、第三データテーブル83において、特定されたシートデータテーブル9が「FALSE」に設定される(S47)。
例えば、第三データテーブル83で「TRUE」に設定されているシートデータテーブル91,92のうち、シートデータテーブル91には、コード「17」の「第二操作キー7の位置」が設定されていない。このため、図14に示すように、第三データテーブル83のシートデータテーブル91が「FALSE」に設定される(S47)。すなわち、S45でコード「17」の操作領域76の操作が行われているので、操作領域76には、コード「17」の第二操作キー7のあるシート6が配置されているはずである。よって、コード「17」の「第二操作キー7の位置」が設定されていないシートデータテーブル91を候補から外すのである。S47が実行されると、第三データテーブル83には、コード「N」の「第二操作キー7の位置」が設定されているシートデータテーブル9が候補として残った状態(「TRUE」に設定された状態)となる。
次いで、S50と同様に、シートデータテーブル9が1つに絞り込まれたか否かが判断される(S48)。例えば、図14では、1つのシートデータテーブル92が「TRUE」であり、他のシートデータテーブル91が「FALSE」であるので、1つに絞り込まれたと判断され(S50:YES)、第一シート絞り込み処理が終了される。そして、処理はメイン処理に戻る。図13に示すように、1つのシートデータテーブル92に絞り込まれている場合(S18:YES)、1つのシートデータテーブル92に基づいて操作領域76に第二操作キー7が設定される(S21)。このとき、第二具体例では、S15の処理で、シートデータテーブル92の「第二操作キー7の位置」が回転されているので、第二操作キー7の位置が回転されたシートデータテーブル92が使用されて、第二操作キー7が操作領域76に設定される。これによって、図3(B)に示すように、シート62が180度回転された状態で、入力装置1の操作を実行することができる状態になる。なお、仮に、S15が実行されなかった場合(S14:YES)、シート62は「0度」で配置されているので、第二操作キー7の位置が回転されていないシートデータテーブル92が使用されて、第二操作キー7が操作領域76に設定される(S21)。以上で、第二具体例についての説明は終了する。
仮に、S48でシートデータテーブル9が1つに絞り込まれていないと判断されたとする(S48:NO)。この場合、第三データテーブル83で「TRUE」に設定されているシートデータテーブル9のうち、コード「N」の「第二操作キー7の位置」が、S45で操作された操作領域76の位置を含むシートデータテーブル9が特定される(S49)。そして、第三データテーブル83において、特定されたシートデータテーブル9以外のシートデータテーブル9が「FALSE」に設定される(S49)。すなわち、S43でコード「N」の第一操作キー5を操作するように促されているので、S45で取得された操作領域76の位置は、コード「N」の「第二操作キー7の位置」であるはずである。よって、コード「N」の「第二操作キー7の位置」が、S45で取得された操作領域76の位置ではないシートデータテーブル9を候補から外すのである。
なお、S15でシートデータテーブル9の「第二操作キー7の位置」が回転されている場合、シート6は「180度」で配置されているので、「第二操作キー7の位置」が回転されたシートデータテーブル9が使用されて、S49の処理が行われる。また、S15が実行されなかった場合、シート6は「0度」で配置されているので、「第二操作キー7の位置」が回転されていないシートデータテーブル9が使用されて、S49の処理が行われる。
例えば、3つ以上のシートデータテーブル9がフラッシュメモリ203に記憶されており、第三データテーブル83に3つ以上のシートデータテーブル9が登録されているとする。この場合、第一具体例及び第二具体例のように1回のS46又はS47の処理で、1つのシートデータテーブル9に絞り込めない場合がある。この場合、S42〜S52が繰り返され、S46、S47、及びS49によって、シートデータテーブル9が絞り込まれていく。換言すれば、操作領域76上に配置されたシート6の種類に対応するシートデータテーブル9が特定されていく。特に、S49では、S36(図10参照)で特定されたシート6の向きに応じてS15(図7参照)で回転させた第二操作キー7の位置と、順次操作される複数の第一操作キー5に応じてS45で順次取得された複数の第二操作キー7の位置とが参照され、シートデータテーブル9が特定されていく。
S42〜S52が繰り返されても、1つのシートデータテーブル9に絞り込めない場合、変数Nがコードの最大値より大きくなり(S51、S52:YES)、第一シート絞り込み処理が終了され、処理はメイン処理(図7参照)のS18に進む。この場合、1つに絞り込まれていないと判断され(S18:NO)、第二シート絞り込み処理が実行される(S19)。
図15を参照して第二シート絞り込み処理について説明する。第二シート絞り込み処理は、全てのシートデータテーブル9に設定されている第二操作キー7に基づいて、操作領域76に配置されているシート6に対応するシートデータテーブル9を特定する処理である。
第二シート絞り込み処理では、まず、変数Nが「1」に設定される(S61)。変数NはRAM204に記憶される。次いで、第一データテーブル81のコード「N」が「FALSE」であるか否かが判断される(S62)。第一データテーブル81のコード「N」が「FALSE」でない場合(S62:NO)、処理はS68(後述)に進む。第一データテーブル81のコード「N」が「FALSE」である場合(S62:YES)、第二データテーブル82のコード「N」が「FALSE」であるか否かが判断される(S63)。第二データテーブル82のコード「N」が「FALSE」でない場合(S63:NO)、処理はS68に進む。第一データテーブル81のコード「N」と第二データテーブル82のコード「N」とが共に「FALSE」である場合とは、全てのシートデータテーブル9に第二操作キー7が設定されている場合である(図4及び図5参照)。
第二データテーブル82のコード「N」が「FALSE」である場合(S63:YES)、コード「N」の第二操作キー7の操作を促す表示がディスプレイ216に表示される(S43)。例えば、「数字キー「1」を操作してください。」等のメッセージが表示される。次いで、操作領域76上の位置が操作されたか否かが判断される(S65)。操作領域76上の位置が操作されていない場合(S65:NO)、S65が繰り返される。操作領域76上の位置が操作された場合(S65:YES)、S66が実行される。なお、S66の処理では、操作された位置も取得されている。
S66では、第三データテーブル83で「TRUE」に設定されているシートデータテーブル9のうち、コード「N」の「第二操作キー7の位置」が、S65で取得された操作領域76の位置を含むシートデータテーブル9が特定される(S66)。そして、第三データテーブル83において、特定されたシートデータテーブル9以外のシートデータテーブル9が「FALSE」に設定される(S66)。すなわち、S64でコード「N」の第一操作キー5を操作するように促されているので、S65で取得された操作領域76の位置は、コード「N」の「第二操作キー7の位置」であるはずである。よって、コード「N」の「第二操作キー7の位置」が、S65で取得された操作領域76の位置ではないシートデータテーブル9を候補から外すのである。
なお、S15(図7参照)で、シートデータテーブル9の「第二操作キー7の位置」が回転されている場合、シート6は「180度」で配置されているので、「第二操作キー7の位置」が回転されたシートデータテーブル9が使用されて、S66の処理が行われる。また、S15が実行されなかった場合、シート6は「0度」で配置されているので、「第二操作キー7の位置」が回転されていないシートデータテーブル9が使用されて、S66の処理が行われる。
次いで、S50(図12参照)と同様に、シートデータテーブル9が1つに絞り込まれたか否かが判断される(S67)。1つの絞り込めていない場合(S67:NO)、変数Nがインクリメントされる(S68)。次いで、変数Nがコードの最大値より大きいか否かが判断される(S69)。変数Nがコードの最大値より大きくない場合(S69:NO)、処理はS62に戻る。
S62〜S69が順次繰り返され、S66によって、シートデータテーブル9が絞り込まれていく。換言すれば、操作領域76上に配置されたシート6の種類に対応するシートデータテーブル9が特定されていく。S66では、S36(図10参照)で特定されたシート6の向きに応じてS15(図7参照)で回転させた第二操作キー7の位置と、順次操作される複数の第一操作キー5に応じてS65で順次取得された複数の第二操作キー7の位置とが参照され、シートデータテーブル9が特定されていく。
シートデータテーブル9が1つに絞り込まれた場合(S67:YES)、又は、変数Nが第一データテーブル81のコードの最大値より大きくなった場合(S69:YES)、第二シート絞り込み処理が終了され、処理はメイン処理(図7参照)に戻る。次いで、S19の結果、シートデータテーブル9が1つに絞り込まれたか否かが判断される(S20)。1つに絞り込まれた場合(S20:YES)、処理はS21に進む。1つに絞り込めなかった場合(S20:NO)、エラー表示がディスプレイ216に表示される(S22)。S22では、例えば、「シートの種類が特定できませんでした。」のメッセージがディスプレイ216に表示される。S21又はS22が実行された後、メイン処理が終了される。
以上のように、メイン処理が実行される。メイン処理では、入力装置1のCPU201は、シート6の向きを特定し(図10のS33〜S36参照)、シート6の向きに対応する操作領域76上の第二操作キー7の位置を設定することができる(図7のS15及びS21参照)。よって、シート6の向きが回転された場合でも、入力装置1のCPU201は、シート6の第一操作キー5がユーザによって操作された場合に、どの第一操作キー5が操作されたのかを特定することができる。
また、ユーザはシート6の向きを回転させて任意の向きでシート6を操作して、入力装置1を操作することができる。よって、ユーザの利便性が向上する。
また、S49(図12参照)では、S36(図10参照)で特定されたシート6の向きに応じてS15で回転させた第二操作キー7の位置と、順次操作される複数の第一操作キー5に応じてS45で順次取得された複数の第二操作キー7の位置とが参照され、シートデータテーブル9が特定されていく。また、S66(図15参照)では、S36(図10参照)で特定されたシート6の向きに応じてS15(図7参照)で回転させた第二操作キー7の位置と、順次操作される複数の第一操作キー5に応じてS65で順次取得された複数の第二操作キー7の位置とが参照され、シートデータテーブル9が特定されていく。すなわち、シートデータテーブル9が特定されることで、シート6の種類が特定される。このように、ユーザは複数の第一操作キー5(第二操作キー7)を操作することで、入力装置1にシート6の種類を特定させることができる。よって、ユーザの利便性が向上する。
次いで、図16を参照して、シートデータテーブル作成処理について説明する。シートデータテーブル作成処理は、ユーザが任意に第一操作キー5を配置して作成したシート6について、新たなシートデータテーブル9を作成し、登録(記憶)する処理である。以下の説明では、ユーザによって図17に示すシート63が作成された場合に、CPU201によって図18に示すシートデータテーブル93が作成される場合を例示しながら説明する。なお、シート63の向きは「0度」であるとする(図17(A)参照)。
シートデータテーブル作成処理では、まず、シート向き特定処理(図10参照)が実行される(S81)。シート向き特定処理は、前述の場合と同様なので、詳細な説明は省略する。シート向き特定処理では、シート63の向きが「0度」の場合、反転フラグが「TRUE」に設定される(S35)。シート63の向きが「180度」の場合、反転フラグが「FALSE」に設定される(S36)。
次いで、変数Nが「1」に設定される(S82)。次いで、コード「N」の第一操作キー5の操作を促す表示がディスプレイ216に表示される(S83)。例えば、変数Nが「1」の場合、コード「1」に対応する第二操作キー7の名称は「数字キー71「1」」であるので、「数字キー「1」を操作してください。数字キー「1」が無い場合、操作スイッチ220を操作してください。」等のメッセージが表示される。次いで、コード「N」の第一操作キー5がないことを示す操作が入力されたか否かが判断される(S84)。この判断は、操作スイッチ220が操作されたか否かが判断されることで行われる。コード「N」の第一操作キー5がないことを示す操作が入力されていない場合(S84:NO)、操作領域76上の位置が操作されたか否かが判断される(S85)。操作領域76上の位置が操作されていない場合(S85:NO)、処理はS84に戻る。
操作領域76上の位置が操作された場合(S85:YES)、コード「N」の「第二操作キー7の位置」が設定される(S86)。S85の処理では、操作された位置も取得されている。S86では、操作された位置を中心とした所定の範囲が、コード「N」の「第二操作キー7の位置」であるとする。例えば、変数Nが「1」の場合に、ユーザがシート63の数字キー51「1」の中心を操作したとする。そして、S86で、操作された位置として、「(35,35)」が取得されたとする。この場合、(35,35)を中心として、X方向に±25、Y方向に±25の範囲がコード「1」の「第二操作キー7の位置」として設定される。これによって、図18に示すように、シートデータテーブル93のコード「1」の「第二操作キー7の位置」は、「(10,10)〜(60,60)」に設定される。
次いで、変数Nがインクリメントされる(S88)。次いで、変数Nがコードの最大値より大きいか否かが判断される(S89)。本実施形態のコードの最大値は「31」である。変数Nがコードの最大値より大きくない場合(S89:NO)、処理はS83に戻る。そして、S83〜S89が繰り返され、コード「2」〜「16」の間、コード「1」の場合と同様に、「第二操作キー7の位置」が設定される(図18参照)。そして、変数Nが「17」に設定される(S88)。
図17に示すように、シート63には、数字キー51「17」は設定されていない。このため、変数Nが「17」の場合、ユーザは、第一操作キー5を操作できない。よって、ユーザは、S83で表示される表示に従って、操作スイッチ220を操作する。操作スイッチ220が操作された場合、コード「17」の第一操作キー5がないことを示す操作がされたと判断され(S84:YES)、第二操作キー7の位置が(0,0)〜(0,0)に設定される(S87)。すなわち、コード「17」の第二操作キー7が存在しない状態に設定される。次いで、処理はS88に進む。同様に、コード「18」〜「26」及び「28」〜「31」の場合、S87が実行され、第二操作キー7の位置が(0,0)〜(0,0)に設定される(S87)。なお、コード「27」の場合、S86が実行される。
変数Nがコードの最大値より大きくなった場合(S89:YES)、S35又はS36(図7参照)でRAM204に記憶された反転フラグが「FALSE」であるか否かが判断される(S90)。すなわち、シート63が「180度」の向きで配置されているか否かが判断される。反転フラグが「FALSE」でない場合(S90:NO)、作成されたシートデータテーブル93(図18参照)がフラッシュメモリ203に記憶される(S92)。
反転フラグが「FALSE」である場合(S90:YES)、S87及びS86が繰り返されて作成されたシートデータテーブル9の「第二操作キー7の位置」が180度回転される。回転の計算はS15(図7参照)の場合と同様である。
次いで、作成されたシートデータテーブル93がフラッシュメモリ203に記憶される。このように、S92では、シート63が「0度」の状態を基準として、シートデータテーブル93が記憶されている。次いで、シートデータテーブル作成処理が終了される。
シートデータテーブル作成処理では、順次操作される複数の第一操作キー5に応じてS85で取得された複数の操作位置を第二操作キー7の位置としてシートデータテーブル93に含めることができる(S86)。そして、シートデータテーブル93をフラッシュメモリ203に記憶させることができる(S92)。よって、ユーザが任意に第二操作キー7を配置して作成したシート63についての新たなシートデータテーブル93をフラッシュメモリ203に記憶させることができる。よって、ユーザの利便性が向上する。
上記実施形態において、第一操作キー5が本発明の「操作キー」に相当する。タッチパッド207が本発明の「操作部材」に相当する。S32の処理を行うCPU201が本発明の「操作位置取得手段」に相当する。S33〜S36の処理を行うCPU201が本発明の「向き特定手段」に相当する。S14、S15、及びS21の処理を行うCPU201が本発明の「操作キー位置設定手段」に相当する。シートデータテーブル9が本発明の「シート種類情報」に相当する。フラッシュメモリ203が本発明の「記憶手段」に相当する。S49の処理を行うCPU201が本発明の「シート種類特定手段」に相当する。S86及びS92の処理を行うCPU201が本発明の「シート情報作成手段」に相当する。
なお、本発明は上記の実施形態に限定されるものではなく、種々の変更が可能である。例えば、上記実施形態では、シート6は「0度」と「180度」との2つに回転可能であったが、これに限定されない。例えばシート6を正方形にして、「0度」、「90度」、「180度」、及び「270度」の4つの向きに回転可能であってもよい。この場合でも、例えば、シート6の左後部をユーザに操作させれば(S31、S32:YES)、シート6の向きによって、操作される位置が異なるので、シートの向きを特定することができる。
また、シートデータテーブル9でコードに対応付けられている第二操作キー7の名称は、全てのシートデータテーブル9間で同一であったが、これに限定されず、同一でなくてもよい。また、CPU201は、シートデータテーブル作成処理(図16参照)でユーザが任意に作成したシート6について、新たなシートデータテーブル9を作成可能であったが、これに限定されない。例えば、予め設定されたシートデータテーブル9のみを使用可能であり、新たなシートデータテーブル9を作成できなくてもよい。
また、S86(図16参照)における、コード「N」の第二操作キー7の位置の設定方法は限定されない。例えば、第二操作キー7の種類(数字キー71やENTERキー77等)ごとに、予め第二操作キー7の大きさが決められており、S85で操作された場合に、予め大きさが決められた第二操作キー7が配置されてもよい。また、例えば、S85で操作された位置を中心とした所定の範囲が、コード「N」の第二操作キー7に設定される場合、複数の第二操作キー7が重なる場合があり得る。この場合、例えば、重なった領域は、後から設定された第二操作キー7の領域にしてもよい。また、例えば、複数の第二操作キー7の中心点同士の中間点で、第二操作キー7を分けてもよい。また、入力装置1は印字装置の機能を備えていたが、これに限定されず、印字装置の機能を備えなくてもよい。