図13は、背景技術に係るリモートコントローラにおいて、同一キーが連打された場合のコマンドの送信状況を示す図である。図13の(B)に示すように、この例ではコマンド送信間隔が200msecに設定されている。このようなリモートコントローラにおいて、図13の(A)に示すようにユーザがキー操作X1〜X4によって同一キーを4回連打した状況を想定する。リモートコントローラは、キー操作X1に対応するコマンドC1を生成して送信する。しかし、キー操作X2,X3は、コマンドC1の送信を開始してからコマンド送信間隔(200msec)が経過する前に行われているため、リモートコントローラは、キー操作X2,X3を無効として扱い、キー操作X2,X3に対応するコマンドを送信しない。キー操作X4は、コマンド送信間隔が経過した後に行われているため、リモートコントローラは、キー操作X4に対応するコマンドC4を生成して送信する。
このように背景技術に係るリモートコントローラでは、コマンド送信間隔が、100msec〜数100msecという比較的長い時間に設定されている。従って、例えば同一キーの連打のように、コマンド送信間隔よりも短い間隔でユーザがキー操作を行った場合には、全てのキー操作を反映した正しいコマンドを送信できない状況が生じ得る。
本発明はかかる事情に鑑みて成されたものであり、コマンド送信間隔よりも短い間隔でキー操作が行われた場合であっても、許容遅延時間内の全てのキー操作を反映した正しいコマンドを送信することが可能な、リモートコントローラ、信号処理装置、及びプログラムを得ることを目的とするものである。
本発明の第1の態様に係るリモートコントローラは、操作キーと、前記操作キーがオン操作されたことを第1イベントとして検出することにより第1イベント信号を出力し、前記操作キーがオフ操作されたことを第2イベントとして検出することにより第2イベント信号を出力する、イベント検出部と、前記イベント検出部が出力した第1イベント信号及び第2イベント信号を一時的に保持するイベント保持部と、前記イベント保持部が保持している第1イベント信号に基づいて、第1イベントに対応する第1コードを生成し、前記イベント保持部が保持している第2イベント信号に基づいて、第2イベントに対応する第2コードを生成する、コード生成部と、前記コード生成部によって生成された第1コード及び第2コードを含むコマンドを送信する、コマンド送信部と、を備え、前記イベント保持部は、前記イベント検出部が順に出力した複数の第1イベント信号を保持する第1のキューと、前記イベント検出部が順に出力した複数の第2イベント信号を保持する第2のキューと、を有することを特徴とするものである。
第1の態様に係るリモートコントローラによれば、イベント保持部は、イベント検出部が順に出力した複数の第1イベント信号を保持する第1のキューと、イベント検出部が順に出力した複数の第2イベント信号を保持する第2のキューと、を有する。そして、コード生成部は、イベント保持部が保持している第1イベント信号に基づいて、第1イベントに対応する第1コードを生成し、イベント保持部が保持している第2イベント信号に基づいて、第2イベントに対応する第2コードを生成する。従って、コマンド送信間隔よりも短い間隔でキー操作が行われた場合であっても、オン操作に伴う第1イベント信号は第1のキューに保持され、オフ操作に伴う第2イベント信号は第2のキューに保持されているため、コード生成部は、第1のキュー及び第2のキューから入力された第1イベント信号及び第2イベント信号に基づいて、第1コード及び第2コードを生成することができる。その結果、コマンド送信間隔よりも短い間隔でキー操作が行われた場合であっても、当該キー操作に対応する第1コード及び第2コードを含むコマンドを、コマンド送信部から受信機に向けて送信することが可能となる。
しかも、イベント保持部は、第1イベント信号を保持する第1のキューと、第2イベント信号を保持する第2のキューとを個別に有する。従って、第1のキュー及び第2のキューへのイベント信号の入力制御を簡易に行うことが可能となる。例えばユーザによって同一キーが連打された場合において、オーバーフローによって第1のキューに第1イベント信号を入力できなかった場合には、当該第1イベント信号に対応する第2イベント信号を第2のキューに入力しないというキュー制御を、簡易に行うことができる。
本発明の第2の態様に係るリモートコントローラは、第1の態様に係るリモートコントローラにおいて特に、前記第1のキューは、最大でN個の第1イベント信号を保持可能であり、前記第2のキューは、最大でN+1個の第2イベント信号を保持可能であることを特徴とするものである。
第2の態様に係るリモートコントローラによれば、第1のキューは、最大でN個の第1イベント信号を保持可能であり、第2のキューは、最大でN+1個の第2イベント信号を保持可能である。例えばユーザによって同一キーが連打された場合には、1回目のオン操作に対応する第1イベント信号は、第1のキューに保持されずにコード生成部に入力され、1回目のオフ操作に対応する第2イベント信号は、第2のキューに保持される。また、2回目以降のオン操作及びオフ操作に対応する第1イベント信号及び第2イベント信号は、それぞれ第1のキュー及び第2のキューに保持される。このように、第1のキューは2回目以降のオン操作に対応する第1イベント信号を保持し、第2のキューは1回目以降のオフ操作に対応する第2イベント信号を保持する。第2の態様に係るリモートコントローラによれば、第2のキューには、第1のキューが保持可能な第1イベント信号の個数よりも1個多い個数の第2イベント信号を保持可能であるため、上記のようにユーザによって同一キーが連打された場合であっても、2回目以降のキー操作に対応する第1イベント信号及び第2イベント信号を、一対一に対応付けて第1のキュー及び第2のキューによって保持することが可能となる。
本発明の第3の態様に係るリモートコントローラは、第2の態様に係るリモートコントローラにおいて特に、前記操作キーが連打された場合に生じる遅延時間が許容遅延時間内に納まる最大の連打回数をZとして、前記第1のキューの段数はZ−1段に設定され、前記第2のキューの段数はZ段に設定されることを特徴とするものである。
第3の態様に係るリモートコントローラによれば、操作キーが連打された場合に生じる遅延時間が許容遅延時間内に納まる最大の連打回数をZとして、第1のキューの段数はZ−1段に設定され、第2のキューの段数はZ段に設定される。これにより、操作キーが連打された場合、キー連打の2回目のオン操作から最終回のオン操作までの全ての第1イベント信号を第1のキューに保持することができ、キー連打の初回のオフ操作から最終回のオフ操作までの全ての第2イベント信号を第2のキューに保持することができる。その結果、許容連打回数Z内の全てのキー操作を反映した正しいコマンドを送信することが可能となる。
本発明の第4の態様に係るリモートコントローラは、第1〜第3のいずれか一つの態様に係るリモートコントローラにおいて特に、前記第1のキューへの第1イベント信号の入力と、前記第2のキューへの第2イベント信号の入力とを制御する、キュー制御部をさらに備え、前記キュー制御部は、前記第1のキューのオーバーフローに起因して第1イベント信号を前記第1のキューに入力できない場合には、当該第1イベント信号に対応する第2イベント信号を、前記第2のキューに入力しないことを特徴とするものである。
第4の態様に係るリモートコントローラによれば、キュー制御部は、第1のキューのオーバーフローに起因して第1イベント信号を第1のキューに入力できない場合には、当該第1イベント信号に対応する第2イベント信号を第2のキューに入力しない。その結果、第1のキューが保持する第1イベント信号と第2のキューが保持する第2イベント信号とが一対一に対応しないという事態を回避することが可能となる。つまり、オーバーフローによって第1イベント信号を第1のキューに入力できないにも拘わらず、当該第1イベント信号に対応する第2イベント信号が第2のキューに入力されるという事態を回避することができる。
本発明の第5の態様に係るリモートコントローラは、第4の態様に係るリモートコントローラにおいて特に、前記キュー制御部は、前記第1のキューのオーバーフローに起因して第1イベント信号を前記第1のキューに入力できない場合には、所定のフラグの設定を有効とし、当該フラグの設定が有効である時に前記イベント検出部から第2イベント信号を受領した場合には、当該第2イベント信号を前記第2のキューに入力しないとともに、当該フラグの設定を無効とすることを特徴とするものである。
第5の態様に係るリモートコントローラによれば、キュー制御部は、第1のキューのオーバーフローに起因して第1イベント信号を第1のキューに入力できない場合には、所定のフラグの設定を有効とし、当該フラグの設定が有効である時にイベント検出部から第2イベント信号を受領した場合には、当該第2イベント信号を第2のキューに入力しない。このように、所定のフラグの設定によって第2のキューへの第2イベント信号の入力の可否を管理することにより、第2のキューへの第2イベント信号の入力制御を簡易に行うことが可能となる。また、キュー制御部は、当該フラグの設定が有効である時にイベント検出部から第2イベント信号を受領した場合には、当該フラグの設定を無効とする。フラグの設定を無効にすることにより、オーバーフローの解消によって次の第1イベント信号を第1のキューに入力できた場合には、当該第1イベント信号に対応する第2イベント信号を第2のキューに入力することが可能となる。
本発明の第6の態様に係るリモートコントローラは、操作キーと、前記操作キーがオン操作されたことを第1イベントとして検出することにより第1イベント信号を出力し、前記操作キーがオフ操作されたことを第2イベントとして検出することにより第2イベント信号を出力する、イベント検出部と、前記イベント検出部が出力した第1イベント信号及び第2イベント信号を一時的に保持するイベント保持部と、前記イベント保持部が保持している第1イベント信号に基づいて、第1イベントに対応する第1コードを生成し、前記イベント保持部が保持している第2イベント信号に基づいて、第2イベントに対応する第2コードを生成する、コード生成部と、前記コード生成部によって生成された第1コード及び第2コードを含むコマンドを送信する、コマンド送信部と、を備え、前記イベント保持部は、前記イベント検出部が順に出力した複数の第1イベント信号と、前記イベント検出部が順に出力した複数の第2イベント信号とを保持するキューを有し、前記操作キーが連打された場合に生じる遅延時間が許容遅延時間内に納まる最大の連打回数をZとして、前記キューの段数は2×Z−1段に設定されることを特徴とするものである。
第6の態様に係るリモートコントローラによれば、イベント保持部は、イベント検出部が順に出力した複数の第1イベント信号と、イベント検出部が順に出力した複数の第2イベント信号とを保持するキューを有する。そして、コード生成部は、イベント保持部が保持している第1イベント信号に基づいて、第1イベントに対応する第1コードを生成し、イベント保持部が保持している第2イベント信号に基づいて、第2イベントに対応する第2コードを生成する。従って、コマンド送信間隔よりも短い間隔でキー操作が行われた場合であっても、オン操作に伴う第1イベント信号及びオフ操作に伴う第2イベント信号はキューに保持されているため、コード生成部は、キューから入力された第1イベント信号及び第2イベント信号に基づいて、第1コード及び第2コードを生成することができる。その結果、コマンド送信間隔よりも短い間隔でキー操作が行われた場合であっても、当該キー操作に対応する第1コード及び第2コードを含むコマンドを、コマンド送信部から受信機に向けて送信することが可能となる。
しかも、操作キーが連打された場合に生じる遅延時間が許容遅延時間内に納まる最大の連打回数をZとして、キューの段数は2×Z−1段に設定される。これにより、操作キーが連打された場合、キー連打の初回のオフ操作から最終回のオフ操作までの全ての第1イベント信号及び第2イベント信号を、キューに保持することができる。その結果、許容連打回数Z内の全てのキー操作を反映した正しいコマンドを送信することが可能となる。
本発明の第7の態様に係る信号処理装置は、リモートコントローラに搭載される信号処理装置であって、操作キーがオン操作されたことを第1イベントとして検出することにより第1イベント信号を出力し、前記操作キーがオフ操作されたことを第2イベントとして検出することにより第2イベント信号を出力する、イベント検出部と、前記イベント検出部が出力した第1イベント信号及び第2イベント信号を一時的に保持するイベント保持部と、前記イベント保持部が保持している第1イベント信号に基づいて、第1イベントに対応する第1コードを生成し、前記イベント保持部が保持している第2イベント信号に基づいて、第2イベントに対応する第2コードを生成する、コード生成部と、を備え、前記イベント保持部は、前記イベント検出部が順に出力した複数の第1イベント信号を保持する第1のキューと、前記イベント検出部が順に出力した複数の第2イベント信号を保持する第2のキューと、を有することを特徴とするものである。
第7の態様に係る信号処理装置によれば、イベント保持部は、イベント検出部が順に出力した複数の第1イベント信号を保持する第1のキューと、イベント検出部が順に出力した複数の第2イベント信号を保持する第2のキューと、を有する。そして、コード生成部は、イベント保持部が保持している第1イベント信号に基づいて、第1イベントに対応する第1コードを生成し、イベント保持部が保持している第2イベント信号に基づいて、第2イベントに対応する第2コードを生成する。従って、コマンド送信間隔よりも短い間隔でキー操作が行われた場合であっても、オン操作に伴う第1イベント信号は第1のキューに保持され、オフ操作に伴う第2イベント信号は第2のキューに保持されているため、コード生成部は、第1のキュー及び第2のキューから入力された第1イベント信号及び第2イベント信号に基づいて、第1コード及び第2コードを生成することができる。その結果、コマンド送信間隔よりも短い間隔でキー操作が行われた場合であっても、当該キー操作に対応する第1コード及び第2コードを含むコマンドを、コマンド送信部から受信機に向けて送信することが可能となる。
しかも、イベント保持部は、第1イベント信号を保持する第1のキューと、第2イベント信号を保持する第2のキューとを個別に有する。従って、第1のキュー及び第2のキューへのイベント信号の入力制御を簡易に行うことが可能となる。例えばユーザによって同一キーが連打された場合において、オーバーフローによって第1のキューに第1イベント信号を入力できなかった場合には、当該第1イベント信号に対応する第2イベント信号を第2のキューに入力しないというキュー制御を、簡易に行うことができる。
本発明の第8の態様に係るプログラムは、リモートコントローラに搭載される信号処理装置を、操作キーがオン操作されたことを第1イベントとして検出することにより第1イベント信号を出力し、前記操作キーがオフ操作されたことを第2イベントとして検出することにより第2イベント信号を出力する、イベント検出部と、前記イベント検出部が出力した第1イベント信号及び第2イベント信号を一時的に保持し、前記イベント検出部が順に出力した複数の第1イベント信号を保持する第1のキューと、前記イベント検出部が順に出力した複数の第2イベント信号を保持する第2のキューとを有するイベント保持部と、前記イベント保持部が保持している第1イベント信号に基づいて、第1イベントに対応する第1コードを生成し、前記イベント保持部が保持している第2イベント信号に基づいて、第2イベントに対応する第2コードを生成する、コード生成部と、として機能させるためのプログラムである。
第8の態様に係るプログラムによれば、イベント保持部は、イベント検出部が順に出力した複数の第1イベント信号を保持する第1のキューと、イベント検出部が順に出力した複数の第2イベント信号を保持する第2のキューと、を有する。そして、コード生成部は、イベント保持部が保持している第1イベント信号に基づいて、第1イベントに対応する第1コードを生成し、イベント保持部が保持している第2イベント信号に基づいて、第2イベントに対応する第2コードを生成する。従って、コマンド送信間隔よりも短い間隔でキー操作が行われた場合であっても、オン操作に伴う第1イベント信号は第1のキューに保持され、オフ操作に伴う第2イベント信号は第2のキューに保持されているため、コード生成部は、第1のキュー及び第2のキューから入力された第1イベント信号及び第2イベント信号に基づいて、第1コード及び第2コードを生成することができる。その結果、コマンド送信間隔よりも短い間隔でキー操作が行われた場合であっても、当該キー操作に対応する第1コード及び第2コードを含むコマンドを、コマンド送信部から受信機に向けて送信することが可能となる。
しかも、イベント保持部は、第1イベント信号を保持する第1のキューと、第2イベント信号を保持する第2のキューとを個別に有する。従って、第1のキュー及び第2のキューへのイベント信号の入力制御を簡易に行うことが可能となる。例えばユーザによって同一キーが連打された場合において、オーバーフローによって第1のキューに第1イベント信号を入力できなかった場合には、当該第1イベント信号に対応する第2イベント信号を第2のキューに入力しないというキュー制御を、簡易に行うことができる。
本発明によれば、コマンド送信間隔よりも短い間隔でキー操作が行われた場合であっても、許容遅延時間内の全てのキー操作を反映した正しいコマンドを送信することが可能となる。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
<実施の形態1>
図1は、本発明の実施の形態1に係るリモートコントローラ1の構成を簡略化して示すブロック図である。図1の接続関係で示すように、リモートコントローラ1は、操作キー2、信号処理装置3、変調部4、送信部5、及び記憶部6を備えて構成されている。記憶部6には、信号処理装置3を動作させるためのプログラム7が格納されている。なお、信号処理装置3は、ハードウェアによって構成されていても良い。
図2は、信号処理装置3の機能を示すブロック図である。図1,2を参照して、記憶部6からプログラム7を読み出して動作することにより、信号処理装置3は、イベント検出部11、イベント保持部12、及びコード生成部13として機能する。換言すれば、プログラム7は、リモートコントローラ1に搭載される信号処理装置3を、イベント検出部11、イベント保持部12、及びコード生成部13として機能させるためのプログラムである。
図3は、イベント保持部12の構成を示す図である。本実施の形態の例において、イベント保持部12は、第1段31〜第7段37から成る、FIFO(First In First Out)型の7段構成のキュー20を有している。キュー20の段数は、キー操作からコマンド送信までの許容遅延時間に応じて設定される。許容遅延時間が長い場合はキュー20の段数は多く設定され、短い場合は少なく設定される。
図4は、キュー20の段数設定を説明するための図である。一例として、ユーザによって操作キー2が連打される状況を想定すると、遅延時間P3は、キー連打における最終回のオフ操作から、最終のコマンド送信が完了するまでの時間間隔として規定される。リモートコントローラ1に設定されているコマンド間の最小の送信間隔をP1とし、キー連打の回数をZ0とし、キー連打における初回のオン操作から最終回のオフ操作までの平均的な所要時間をP2とすると、遅延時間P3はP3=P1×Z0−P2として求められる。従って、連打回数Z0が増えると、遅延時間P3は長くなる。ユーザが遅延に対して違和感を抱かない許容遅延時間の範囲内に遅延時間P3は設定されるため、それに応じて、遅延時間P3が許容遅延時間内に納まる最大の連打回数(許容連打回数)Zが定まる。キー連打における初回のオン操作に対応するイベント信号はキュー20には保持せず、キー連打の初回のオフ操作から最終回のオフ操作までの全てのイベント信号をキュー20に保持することを想定すると、キュー20の必要段数は2×Z−1(段)に設定される。図3を参照して、本実施の形態の例では許容連打回数Zが4回であることにより、キュー20の段数は7段に設定されている。
図5は、イベント検出部11の処理内容を説明するための図である。ここでは、ユーザがキー操作XA〜XDによって操作キー2を4回連打した状況を想定している。まずイベント検出部11は、キー操作XAにおいて操作キー2がオン操作されたことをプレスイベントとして検出することにより、イベント信号SPAを出力し、その後、キー操作XAにおいて操作キー2がオフ操作されたことをリリースイベントとして検出することにより、イベント信号SRAを出力する。次にイベント検出部11は、キー操作XBにおいて操作キー2がオン操作されたことをプレスイベントとして検出することにより、イベント信号SPBを出力し、その後、キー操作XBにおいて操作キー2がオフ操作されたことをリリースイベントとして検出することにより、イベント信号SRBを出力する。次にイベント検出部11は、キー操作XCにおいて操作キー2がオン操作されたことをプレスイベントとして検出することにより、イベント信号SPCを出力し、その後、キー操作XCにおいて操作キー2がオフ操作されたことをリリースイベントとして検出することにより、イベント信号SRCを出力する。次にイベント検出部11は、キー操作XDにおいて操作キー2がオン操作されたことをプレスイベントとして検出することにより、イベント信号SPDを出力し、その後、キー操作XDにおいて操作キー2がオフ操作されたことをリリースイベントとして検出することにより、イベント信号SRDを出力する。
イベント信号SPA,SRA,SPB,SRB,SPC,SRC,SPD,SRDは、この順にイベント検出部11から出力され、この順にイベント保持部12に入力される。
図6,7は、イベント保持部12の処理内容を説明するための図である。イベント保持部12は、最初に入力されたイベント信号SPAを、キュー20に保持することなくコード生成部13に入力する。コード生成部13は、イベント信号SPAに対応するコードを生成する。コード生成部13は、リモートコントローラ1においてMAKEコードが定義されている場合には、イベント信号SPAに対応してMAKEコードを生成し、MAKEコードが定義されていない場合には、イベント信号SPAに対応してREPEATコードを生成する。また、コード生成部13は、イベント信号SPAに対応するリリースイベントを示すイベント信号が入力されるまでの間、REPEATコードを定期的に(例えば10msec〜数10msec間隔で)生成する。
コード生成部13がイベント信号SPAに関するコード生成処理を完了するよりも前に、続くイベント信号SRA,SPB,SRB,SPC,SRC,SPD,SRDがイベント保持部12に入力された場合には、図6に示すようにイベント保持部12は、イベント信号SRA,SPB,SRB,SPC,SRC,SPD,SRDを、キュー20の第1段31,第2段32,第3段33,第4段34,第5段35,第6段36,第7段37にそれぞれ保持する。
イベント信号SPAに関するコード生成処理が完了すると、イベント保持部12からコード生成部13にイベント信号SRAが入力され、コード生成部13は、イベント信号SRAに対応するコードを生成する。コード生成部13は、リモートコントローラ1においてBREAKコードが定義されている場合には、イベント信号SRAに対応してBREAKコードを生成し、BREAKコードが定義されていない場合には、イベント信号SPAに対応して定期的なREPEATコードの生成を停止する。また、イベント保持部12においては、第1段31に保持していたイベント信号SRAがコード生成部13に向けて出力されたことにより、図6において第2段32〜第7段37に保持されていたイベント信号SPB,SRB,SPC,SRC,SPD,SRDが、図7に示すように第1段31〜第6段36にシフトされる。
図2を参照して、コード生成部13は、キー操作XAに関するイベント信号SPA,SRAに対応するコードを含むコマンドCAを生成する。リモートコントローラ1においてMAKEコード及びBREAKコードが定義されている場合には、コード生成部13は、MAKEコード、REPEATコード(必要に応じて)、及びBREAKコードを含むコマンドCAを生成する。リモートコントローラ1においてMAKEコードが定義されておりBREAKコードが定義されていない場合には、コード生成部13は、MAKEコード及びREPEATコード(必要に応じて)を含むコマンドCAを生成する。リモートコントローラ1においてMAKEコードが定義されておらずBREAKコードが定義されている場合には、コード生成部13は、REPEATコード及びBREAKコードを含むコマンドCAを生成する。リモートコントローラ1においてMAKEコード及びBREAKコードが定義されていない場合には、コード生成部13は、REPEATコードを含むコマンドCAを生成する。
図1を参照して、変調部4は、信号処理装置3(コード生成部13)から入力されたコマンドCAを、所定の変調方式によって変調処理する。送信部5は、変調部4から入力された変調後のコマンドCAを、LEDを用いた赤外線信号として図示しない受信機に向けて無線送信する。
以降は同様に、キー操作XB,XC,XDに対応するコマンドCB,CC,CDが順に生成されて、受信機に向けて順に送信される。
図8は、本実施の形態に係るリモートコントローラ1において、操作キー2が連打された場合のコマンドCA〜CDの送信状況を示す図である。送信部5は、キー操作XAに対応するコマンドCA、キー操作XBに対応するコマンドCB、キー操作XCに対応するコマンドCC、及びキー操作XDに対応するコマンドCDを、この順に受信機に向けて送信する。また、受信機がコマンドCA〜CDを誤認識することを防止すべく、連続するコマンド間に一定の空白期間が設けられており、コマンド間の最小の送信間隔Pは、100msec〜数100msecに設定されている。
このように本実施の形態に係るリモートコントローラ1(信号処理装置3、プログラム7)によれば、イベント保持部12は、イベント検出部11が順に出力した複数の第1イベント信号(イベント信号SPB〜SPD)及び複数の第2イベント信号(イベント信号SRA〜SRD)を保持するキュー20を有する。そして、コード生成部13は、イベント保持部12が保持している第1イベント信号に基づいて、第1イベントに対応する第1コード(例えばMAKEコード)を生成し、イベント保持部12が保持している第2イベント信号に基づいて、第2イベントに対応する第2コード(例えばBREAKコード)を生成する。従って、コマンド送信間隔Pよりも短い間隔でキー操作が行われた場合であっても、オン操作に伴う第1イベント信号及びオフ操作に伴う第2イベント信号はキュー20に保持されているため、コード生成部13は、キュー20から入力された第1イベント信号及び第2イベント信号に基づいて、第1コード及び第2コードを生成することができる。その結果、コマンド送信間隔Pよりも短い間隔でキー操作が行われた場合であっても、当該キー操作に対応する第1コード及び第2コードを含むコマンドCA〜CDを、コマンド送信部(送信部5)から受信機に向けて送信することが可能となる。
しかも、操作キー2が連打された場合に生じる遅延時間P3が許容遅延時間内に納まる最大の連打回数をZとして、キュー20の段数は2×Z−1段に設定される。これにより、操作キー2が連打された場合、キー連打の初回のオフ操作から最終回のオフ操作までの全ての第1イベント信号及び第2イベント信号を、キュー20に保持することができる。その結果、許容連打回数Z内の全てのキー操作を反映した正しいコマンドCA〜CDを送信することが可能となる。
<実施の形態2>
図9は、上記実施の形態1に係るリモートコントローラ1において、操作キー2が5回連打された場合のイベント検出部11の処理内容を説明するための図である。イベント検出部11は、1回目のキー操作XAに対応してイベント信号SPA,SRAを出力し、2回目のキー操作XBに対応してイベント信号SPB,SRBを出力し、3回目のキー操作XCに対応してイベント信号SPC,SRCを出力し、4回目のキー操作XDに対応してイベント信号SPD,SRDを出力し、5回目のキー操作XEに対応してイベント信号SPE,SREを出力する。
図10は、図9に対応してイベント保持部12の処理内容を説明するための図である。図6に示した状態(つまりイベント信号SRA,SPB,SRB,SPC,SRC,SPD,SRDがキュー20の第1段31,第2段32,第3段33,第4段34,第5段35,第6段36,第7段37にそれぞれ保持された状態)で、5回目のキー操作XEに伴うイベント信号SPEがイベント保持部12に入力されると、キュー20がオーバーフローするため、イベント保持部12はイベント信号SPEを破棄し、イベント信号SPEをキュー20に保持しない。その後、イベント信号SPAに関するコード生成処理が完了すると、イベント保持部12からコード生成部13にイベント信号SRAが入力され、キュー20は図7に示した状態(つまり第7段37が空いた状態)となる。そのタイミングで、5回目のキー操作XEに伴うイベント信号SREがイベント保持部12に入力されると、図10に示すように、イベント信号SREは空いている第7段37に入力され保持される。そのため、5回目のキー操作XEに伴うイベント信号SPEがキュー20に保持されていないにも拘わらず、それに対応するイベント信号SREがキュー20に保持されることとなり、その結果、イベント保持部12において、プレスイベントに伴うイベント信号SPEとリリースイベントに伴うイベント信号SREとが一対一に対応しないという事態が発生する。本実施の形態では、このような事態の発生を簡易に回避することが可能なリモートコントローラ1について、上記実施の形態1との相違点を中心に説明する。
図11は、本実施の形態に係るイベント保持部12の構成を示す図である。イベント保持部12は、プレスイベントに伴うイベント信号を保持するためのキュー41と、リリースイベントに伴うイベント信号を保持するためのキュー42とを、個別に有している。また、イベント保持部12は、キュー41,42へのイベント信号の入力を制御するためのキュー制御部70を有している。キュー制御部70は1ビットのフラグ71を管理しており、キュー41がオーバーフローしていないことによりイベント信号をキュー41(又はコード生成部13)に入力できた場合には、フラグ71を「無効」(例えば「0」)に設定する。一方、キュー41がオーバーフローしたことによりイベント信号をキュー41に入力できなかった場合には、フラグ71を「有効」(例えば「1」)に設定する。
キュー42の段数は、キュー41の段数よりも1段多く設定されている。本実施の形態の例において、キュー41は、第1段51〜第3段53から成る3段構成のキューであり、キュー42は、第1段61〜第4段64から成る4段構成のキューである。キュー41,42の段数は、キー操作からコマンド送信までの許容遅延時間に応じて設定される。許容遅延時間が長い場合はキュー41,42の段数は多く設定され、短い場合は少なく設定される。
図4に示したように、遅延時間P3はP3=P1×Z0−P2として求められる。ユーザが遅延に対して違和感を抱かない許容遅延時間の範囲内に遅延時間P3は設定されるため、それに応じて、遅延時間P3が許容遅延時間内に納まる許容連打回数Zが定まる。キー連打における初回のオン操作に対応するイベント信号はキュー41には保持せず、キー連打の2回目から最終回までの全てのオン操作に対応するイベント信号をキュー41に保持することを想定して、キュー41の必要段数はZ−1(段)に設定される。また、キー連打の初回から最終回までの全てのオフ操作に伴うイベント信号をキュー42に保持することを想定して、キュー42の必要段数はZ(段)に設定される。図11を参照して、本実施の形態の例では許容連打回数Zが4回であることにより、キュー41の段数は3段に設定され、キュー42の段数は4段に設定されている。
図12は、本実施の形態に係るイベント保持部12の処理内容を説明するための図である。ここでは、図9に示したようにユーザによって操作キー2が5回連打された状況を想定している。イベント信号SPA,SRA,SPB,SRB,SPC,SRC,SPD,SRD,SPE,SREは、この順にイベント検出部11からキュー制御部70に入力される。キュー制御部70は、最初に入力されたイベント信号SPAを、キュー41に保持することなくコード生成部13に入力するとともに、フラグ71を「無効」に設定する。コード生成部13は、イベント信号SPAに対応するコードを生成する。
コード生成部13がイベント信号SPAに関するコード生成処理を完了するよりも前に、続くイベント信号SRA,SPB,SRB,SPC,SRC,SPD,SRD,SPE,SREがイベント保持部12に入力された場合には、図12に示すようにキュー制御部70は、まず、フラグ71が「無効」に設定されていることにより、イベント信号SPAに対応するイベント信号SRAを、キュー42の第1段61に入力する。次にキュー制御部70は、イベント信号SPBをキュー41の第1段51に入力するとともに、フラグ71を「無効」に設定する。次にキュー制御部70は、フラグ71が「無効」に設定されていることにより、イベント信号SPBに対応するイベント信号SRBを、キュー42の第2段62に入力する。次にキュー制御部70は、イベント信号SPCをキュー41の第2段52に入力するとともに、フラグ71を「無効」に設定する。次にキュー制御部70は、フラグ71が「無効」に設定されていることにより、イベント信号SPCに対応するイベント信号SRCを、キュー42の第3段63に入力する。次にキュー制御部70は、イベント信号SPDをキュー41の第3段53に入力するとともに、フラグ71を「無効」に設定する。次にキュー制御部70は、フラグ71が「無効」に設定されていることにより、イベント信号SPDに対応するイベント信号SRDを、キュー42の第4段64に入力する。これにより、キュー41,42の全ての段が埋まる。
次にキュー制御部70は、キュー41がオーバーフローしたことにより、イベント信号SPEをキュー41に入力することなく破棄する。また、キュー制御部70は、フラグ71を「有効」に設定する。次にキュー制御部70は、フラグ71が「有効」に設定されていることにより、イベント信号SPEに対応するイベント信号SREを、キュー42に入力することなく破棄する。仮にこのタイミングでキュー42の第4段64に空きが生じていたとしても、キュー制御部70はイベント信号SREを破棄する。また、キュー制御部70は、イベント信号SREを破棄するとともに、フラグ71を「無効」に設定する。
イベント信号SPAに関するコード生成処理が完了すると、イベント保持部12からコード生成部13にイベント信号SRAが入力され、コード生成部13は、イベント信号SRAに対応するコードを生成する。コード生成部13は、キー操作XAに関するイベント信号SPA,SRAに対応するコードを含むコマンドCAを生成する。変調部4は、信号処理装置3から入力されたコマンドCAを、所定の変調方式によって変調処理する。送信部5は、変調部4から入力された変調後のコマンドCAを、LEDを用いた赤外線信号として図示しない受信機に向けて無線送信する。
以降は同様に、キー操作XB,XC,XDに対応するコマンドCB,CC,CDが順に生成されて、受信機に向けて順に送信される。
このように本実施の形態に係るリモートコントローラ1(信号処理装置3、プログラム7)によれば、イベント保持部12は、イベント検出部11が順に出力した複数の第1イベント信号(イベント信号SPB〜SPD)を保持するキュー41(第1のキュー)と、イベント検出部11が順に出力した複数の第2イベント信号(イベント信号SRA〜SRD)を保持するキュー42(第2のキュー)と、を有する。そして、コード生成部13は、イベント保持部12が保持している第1イベント信号に基づいて、第1イベントに対応する第1コードを生成し、イベント保持部12が保持している第2イベント信号に基づいて、第2イベントに対応する第2コードを生成する。従って、コマンド送信間隔よりも短い間隔でキー操作が行われた場合であっても、オン操作に伴う第1イベント信号はキュー41に保持され、オフ操作に伴う第2イベント信号はキュー42に保持されているため、コード生成部13は、キュー41及びキュー42から入力された第1イベント信号及び第2イベント信号に基づいて、第1コード及び第2コードを生成することができる。その結果、コマンド送信間隔よりも短い間隔でキー操作が行われた場合であっても、当該キー操作に対応する第1コード及び第2コードを含むコマンドCA〜CDを、コマンド送信部(送信部5)から受信機に向けて送信することが可能となる。
しかも、イベント保持部12は、第1イベント信号を保持するキュー41と、第2イベント信号を保持するキュー42とを個別に有する。従って、キュー41及びキュー42へのイベント信号の入力制御を簡易に行うことが可能となる。例えばユーザによって同一キーが連打された場合において、オーバーフローによってキュー41に第1イベント信号を入力できなかった場合には、当該第1イベント信号に対応する第2イベント信号をキュー42に入力しないというキュー制御を、簡易に行うことができる。
また、本実施の形態に係るリモートコントローラ1によれば、キュー41は、最大でN個(上記の例では3個)の第1イベント信号を保持可能であり、キュー42は、最大でN+1個(上記の例では4個)の第2イベント信号を保持可能である。例えばユーザによって同一キーが連打された場合には、1回目のオン操作に対応する第1イベント信号は、キュー41に保持されずにコード生成部13に入力され、1回目のオフ操作に対応する第2イベント信号は、キュー42に保持される。また、2回目以降のオン操作及びオフ操作に対応する第1イベント信号及び第2イベント信号は、それぞれキュー41及びキュー42に保持される。このように、キュー41は2回目以降のオン操作に対応する第1イベント信号を保持し、キュー42は1回目以降のオフ操作に対応する第2イベント信号を保持する。本実施の形態に係るリモートコントローラ1によれば、キュー42には、キュー41が保持可能な第1イベント信号の個数よりも1個多い個数の第2イベント信号を保持可能であるため、上記のようにユーザによって同一キーが連打された場合であっても、2回目以降のキー操作に対応する第1イベント信号及び第2イベント信号を、一対一に対応付けてキュー41及びキュー42によって保持することが可能となる。
また、本実施の形態に係るリモートコントローラ1によれば、操作キー2が連打された場合に生じる遅延時間P3が許容遅延時間内に納まる最大の連打回数をZとして、キュー41の段数はZ−1段に設定され、キュー42の段数はZ段に設定される。これにより、操作キー2が連打された場合、キー連打の2回目のオン操作から最終回のオン操作までの全ての第1イベント信号をキュー41に保持することができ、キー連打の初回のオフ操作から最終回のオフ操作までの全ての第2イベント信号をキュー42に保持することができる。その結果、許容連打回数Z内の全てのキー操作を反映した正しいコマンドCA〜CDを送信することが可能となる。
また、本実施の形態に係るリモートコントローラ1によれば、キュー制御部70は、キュー41のオーバーフローに起因して第1イベント信号をキュー41に入力できない場合には、当該第1イベント信号に対応する第2イベント信号をキュー42に入力しない。その結果、キュー41が保持する第1イベント信号とキュー42が保持する第2イベント信号とが一対一に対応しないという事態を回避することが可能となる。つまり、オーバーフローによって第1イベント信号をキュー41に入力できないにも拘わらず、当該第1イベント信号に対応する第2イベント信号がキュー42に入力されるという事態を回避することができる。
また、本実施の形態に係るリモートコントローラ1によれば、キュー制御部70は、キュー41のオーバーフローに起因して第1イベント信号をキュー41に入力できない場合には、所定のフラグ71の設定を有効とし、当該フラグ71の設定が有効である時にイベント検出部11から第2イベント信号を受領した場合には、当該第2イベント信号をキュー42に入力しない。このように、所定のフラグ71の設定によってキュー42への第2イベント信号の入力の可否を管理することにより、キュー42への第2イベント信号の入力制御を簡易に行うことが可能となる。また、キュー制御部70は、当該フラグ71の設定が有効である時にイベント検出部11から第2イベント信号を受領した場合には、当該フラグの設定を無効とする。フラグ71の設定を無効にすることにより、オーバーフローの解消によって次の第1イベント信号をキュー41に入力できた場合には、当該第1イベント信号に対応する第2イベント信号をキュー42に入力することが可能となる。