(57)【要約】【課題】  ユーザインターフェースとしての操作部材に対して多様な機能を割り当てることができる電子機器、キーコード生成方法及びプログラムを提供することである。【解決手段】  実施形態による電子機器は、複数のキーを備え、いずれかのキーが操作されると、第１キーコードを出力するキーボードに接続され得る電子機器であって、前記キーボードの前記複数のキーの数より少ない数のキーを備えるキー操作部と、第１モードと第２モードのいずれかで動作可能であり、前記第１モードでは、前記キー操作部のいずれかのキーが操作されると第２キーコードを出力し、前記第２モードでは、前記キー操作部のいずれかのキーが操作されると第３キーコードを出力し、前記第３キーコードを変換した第４キーコードを出力するキーコード生成手段と、を具備する。前記第３キーコードは前記第１キーコードに含まれないキーコードからなる。【選択図】図５
2019212212.tif 000002
【特許請求の範囲】
【請求項１】
複数のキーを備え、いずれかのキーが操作されると、第１キーコードを出力するキーボードに接続され得る電子機器であって、
前記キーボードの前記複数のキーの数より少ない数のキーを備えるキー操作部と、
第１モードと第２モードのいずれかで動作可能であり、前記第１モードでは、前記キー操作部のいずれかのキーが操作されると第２キーコードを出力し、前記第２モードでは、前記キー操作部のいずれかのキーが操作されると第３キーコードを出力し、前記第３キーコードを変換した第４キーコードを出力するキーコード生成手段と、を具備し、
前記第３キーコードは前記第１キーコードに含まれないキーコードからなる電子機器。
【請求項２】
前記キーコード生成手段は、前記第２モードでは、前記キー操作部のいずれかのキーが操作されると、前記第３キーコードを前記キー操作部のいずれかのキーの操作態様に応じて異なる複数の第４キーコードに変換し、前記複数の第４キーコードを出力する請求項１記載の電子機器。
【請求項３】
前記操作態様は、一定時間の１回の操作と、前記一定時間より長い時間の１回の操作又は前記一定時間の複数回の操作とを含む請求項２記載の電子機器。
【請求項４】
前記複数の第４キーコードのいずれかは前記第２キーコードである請求項２又は請求項３記載の電子機器。
【請求項５】
前記キーコード生成手段は、前記第２モードでは、前記キー操作部のいずれかの複数のキーが操作されると、特定の機能を実現するための信号を出力する請求項１乃至請求項４のいずれか一項記載の電子機器。
【請求項６】
前記キー操作部は上下左右のカーソル移動キーを備える請求項１乃至請求項５のいずれか一項記載の電子機器。
【請求項７】
前記キーコード生成手段の動作モードを前記第１モードと前記第２モードのいずれかに設定する切替手段をさらに具備する請求項１乃至請求項６のいずれか一項記載の電子機器。
【請求項８】
前記キーコード生成手段は、
前記第２モードで前記キー操作部のいずれかのキーが操作されると前記第３キーコードを出力するキーコードテーブルと、
前記第３キーコードのキーイベントを検出するキーイベント検出手段と、
前記キーイベント検出手段が前記第３キーコードのキーイベントを検出すると、前記切替手段へ検出結果を通知する通知手段と、を具備し、
前記切替手段は、前記通知手段から前記検出結果が通知されると、前記第３キーコードを前記第４キーコードに変換する請求項７記載の電子機器。
【請求項９】
前記キーコード生成手段は、
前記第２モードで前記キー操作部のいずれかのキーが操作されると前記第３キーコードを出力するキーコードテーブルと、
前記第３キーコードを前記第４キーコードに変換する変換手段と、
を具備する請求項１乃至請求項７のいずれか一項記載の電子機器。
【請求項１０】
複数のキーを備え、いずれかのキーが操作されると、第１キーコードを出力するキーボードに接続され得る電子機器であって、前記キーボードの前記複数のキーの数より少ない数のキーを備えるキー操作部を具備する前記電子機器のキーコード生成方法であって、
第１モードでは、前記キー操作部のいずれかのキーが操作されると第２キーコードを出力することと、
第２モードでは、前記キー操作部のいずれかのキーが操作されると前記第１キーコードに含まれないキーコードからなる第３キーコードを出力し、前記第３キーコードを変換した第４キーコードを出力することと、
を具備するキーコード生成方法。
【請求項１１】
複数のキーを備え、いずれかのキーが操作されると、第１キーコードを出力するキーボードに接続され得る電子機器であって、前記キーボードの前記複数のキーの数より少ない数のキーを備えるキー操作部を具備する前記電子機器を制御するコンピュータにより実行されるプログラムであって、前記プログラムは前記コンピュータに、
第１モードでは、前記キー操作部のいずれかのキーが操作されると第２キーコードを出力することと、
第２モードでは、前記キー操作部のいずれかのキーが操作されると前記第１キーコードに含まれないキーコードからなる第３キーコードを出力し、前記第３キーコードを変換した第４キーコードを出力することと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、キー操作により発生されるキーコードを変更可能な電子機器、キーコード生成方法及びプログラムに関する。
【背景技術】
【０００２】
最近、多くのモノがインターネットでつながるＩｏＴ時代となり、オフィス、工場、その他様々な場面において、ネットワークコミュニケーションや情報共有のツールとしてモバイルエッジコンピューティングと呼ばれる技術が求められている。このモバイルエッジコンピューティングを実現するためにはデータセンター（或いはクラウド）とは別にユーザが作業現場で使用可能な、高度の汎用性と処理能力を持つ実用的なモバイルエッジコンピューティングデバイスの開発が必要とされている。
【０００３】
モバイルエッジコンピューティングデバイスがディスプレイや文字入力用のハードウェアキーボードを備えていると、ユーザは作業に専念しづらい。これを解決するために、ディスプレイやハードウェアキーボードを備えないモバイルエッジコンピューティングデバイスが検討されている。このようなモバイルエッジコンピューティングデバイスは、必要に応じて、外付けのディスプレイやハードウェアキーボードに接続される。例えば、モバイルエッジコンピューティングデバイスはタッチパネル・ディスプレイ付きのウェアラブル機器に接続されることがある。この場合、ウェアラブル機器のディスプレイに情報を表示することや、タッチパネルから情報を入力することができる。しかし、ウェアラブル機器のタッチパネルは小型であり、操作しづらい場合があるので、モバイルエッジコンピューティングデバイスにもカーソル移動キー、エンターキー等の最小限のキーが設けられている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2001-175402号公報
【特許文献２】特開2003-256112号公報
【特許文献３】特開2004-157712号公報
【特許文献４】米国特許出願公開第2007/236464号明細書
【特許文献５】米国特許第7242385号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
モバイルエッジコンピューティングデバイスのような少ない数のキー（ユーザインターフェースとも称する）を備える電子機器では、少ない数のユーザインターフェースに対し、多様な操作性が求められる。
本発明の目的はユーザインターフェースとしての操作部材に対して多様な機能を割り当てることができる電子機器、キーコード生成方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態による電子機器は、複数のキーを備え、いずれかのキーが操作されると、第１キーコードを出力するキーボードに接続され得る電子機器であって、前記キーボードの前記複数のキーの数より少ない数のキーを備えるキー操作部と、第１モードと第２モードのいずれかで動作可能であり、前記第１モードでは、前記キー操作部のいずれかのキーが操作されると第２キーコードを出力し、前記第２モードでは、前記キー操作部のいずれかのキーが操作されると第３キーコードを出力し、前記第３キーコードを変換した第４キーコードを出力するキーコード生成手段と、を具備する。前記第３キーコードは前記第１キーコードに含まれないキーコードからなる。
【図面の簡単な説明】
【０００７】
【図１】実施形態による電子機器であるモバイルコンピュータを含むシステムの構成の一例を示す図である。
【図２】実施形態による電子機器であるモバイルコンピュータの構造の一例を示す図である。
【図３】実施形態による電子機器であるモバイルコンピュータの電気的な構成の一例を示すブロック図である。
【図４】第１実施形態におけるノーマルキーモードにおけるキーコード生成手段の一例を示す図である。
【図５】第１実施形態におけるスペシャルキーモードにおけるキーコード生成手段の一例を示す図である。
【図６】第１実施形態におけるスペシャルキーモードで第３キーコードを第４キーコードに変換するための定義テーブルの一例を示す図である。
【図７】第１実施形態におけるスペシャルキーモードで第３キーコードを第４キーコードに変換するための定義テーブルの他の例を示す図である。
【図８】第１実施形態におけるスペシャルキーモードの場合のキーコード生成方法の一例を示すフローチャートである。
【図９】第２実施形態におけるスペシャルキーモードの場合のキーコード生成手段の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、実施の形態について図面を参照して説明する。なお、開示はあくまで一例にすぎず、以下の実施形態に記載した内容により発明が限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各部分のサイズ、形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、対応する要素には同じ参照数字を付して、詳細な説明を省略する場合もある。
【０００９】
［第１実施形態（システム構成）］  
図１は実施形態による電子機器であるモバイルエッジコンピューティングデバイス（以下、モバイルコンピュータと称する）を含むシステムの構成の一例を示す図である。
モバイルコンピュータ１２は略直方体の形状で、片手で持てる小型・計量のパーソナルコンピュータであり、そのサイズは、幅が約９ｃｍ、高さが約１７ｃｍ、厚さが２ｃｍ程度であり、重量は約３００ｇ程度である。このため、モバイルコンピュータ１２は作業着のポケット、ベルトに装着されるホルスタあるいはショルダーケースに収納でき、ウェアラブルである。モバイルコンピュータ１２はＣＰＵや半導体メモリ等の半導体チップやＳＳＤ(Solid State Disk)等のストレージデバイスを収納するが、ディスプレイと文字・数字・記号等の入力用のハードウェアキーボード（以下、単にキーボードと称する）は備えない。しかし、モバイルコンピュータ１２は、ユーザインターフェースとして少数のキーを備えるキー操作部を備える。キー操作部は、例えば上下左右のカーソル移動キーとエンターキーからなる５ボタンキー２０２からなる。
【００１０】
モバイル環境で使用する場合、モバイルコンピュータ１２は、例えば、タッチパネル・ディスプレイ付きのメガネ型のウェアラブル機器に接続されることがある。メガネ型のウェアラブル機器をユーザが頭部に装着した時、ユーザの両眼の前方にディスプレイが、ユーザの頭部の側方にタッチパネルが設けられ、ディスプレイに画面を表示することや、ディスプレイの画面上のアイコンをタッチパネルを用いて選択することができる。しかし、ウェアラブル機器のタッチパネルは小型であり、操作しづらい場合があるので、モバイルコンピュータ１２にも５ボタンキー２０２が設けられ、タッチパネルを使わなくてもアイコンの選択等ができるようになっている。
【００１１】
しかし、モバイルコンピュータ１２はいわゆるコンピュータ本体と等価であるので、モバイル環境ではなくデスクトップ環境で使用することもできる。この場合、図１に示すように、モバイルコンピュータ１２にディスプレイ１６、キーボード１８、マウス２０等が接続される。モバイルコンピュータ１２の５ボタンキー２０２に含まれるキーはキーボード１８にも含まれる。すなわち、カーソル移動操作、エンター操作はモバイルコンピュータ１２とキーボード１８の両方により行うことができる。
【００１２】
モバイルコンピュータ１２は、小型化のため、コネクタはＵＳＢ（登録商標）コネクタを備える。ＵＳＢコネクタはＵＳＢ３．０（登録商標）コネクタと、ＵＳＢＴｙｐｅ−Ｃ（登録商標）コネクタを含む。ＵＳＢＴｙｐｅ−Ｃのケーブルは映像信号も伝送可能であるが、モバイルコンピュータ１２は、ＨＤＭＩ（登録商標）等の映像信号専用のコネクタを備えない。そのため、有線ＬＡＮコネクタ、ＵＳＢ３．０コネクタ、ＨＤＭＩコネクタ、ＲＧＢコネクタ等を備えるポート拡張アダプタ１４がモバイルコンピュータ１２のＵＳＢＴｔｐｅ−Ｃコネクタに接続される。ディスプレイ１６がポート拡張アダプタ１４のＨＤＭＩコネクタ、ＲＧＢコネクタ等に接続される。キーボード１８がモバイルコンピュータ１２のＵＳＢ３．０コネクタ（あるいはポート拡張アダプタ１４のＵＳＢ３．０コネクタ）に接続され、マウス２０がポート拡張アダプタ１４のＵＳＢ３．０コネクタ（あるいはモバイルコンピュータ１２のＵＳＢ３．０コネクタ）に接続される。
【００１３】
図示しないが、モバイルコンピュータ１２はネットワークを介してデータセンター、サーバ等に接続される。モバイルコンピュータ１２とデータセンター・サーバは相互に接続され、通信可能となっている。ネットワークとの接続は有線ＬＡＮによっても良いし、無線ＬＡＮ、ブルートゥース（登録商標）等の無線通信によっても良い。
【００１４】
［モバイルコンピュータ１２］  
図２はモバイルコンピュータ１２の構造の一例を示す図である。モバイルコンピュータ１２の正面に配置される５ボタンキー２０２は、アップキー２０２ａ、ライトキー２０２ｂ、ダウンキー２０２ｃ、レフトキー２０２ｄの４つのカーソル移動キーボタンと、エンターキー（決定キー、センターキーとも称する）２０２ｅからなる。
【００１５】
５ボタンキー２０２の下に指紋センサ２０４が配置される。キーボードが備わっておらず暗証番号（ＰＩＮとも称する）を入力することができないので、指紋センサ２０４はモバイルコンピュータ１２のログイン時のユーザ認証のために用いられる。
なお、後述するように、本実施形態によれば、５ボタンキー２０２の機能をユーザがソフトウェア的に変更可能であるので、ログイン時に、５ボタンキー２０２の４つのカーソル移動キー２０２ａ〜２０２ｄに数字を割り当て、暗証番号を入力することにより、ログイン時のユーザ認証を行うこともできる。この場合、指紋センサ２０４は省略可能である。５ボタンキー２０２の４つのカーソル移動キー２０２ａ〜２０２ｄに数字を割り当てる際、数字は４つしか割り当てられないので、ランダムに入力した数字が暗証番号に一致する可能性が０ではない。しかし、暗証番号の桁数を大きくすれば、ランダムに入力した数字が暗証番号に一致する確率を実質的に０にすることができる。
【００１６】
指紋センサ２０４を備えるモバイルコンピュータ１２でも５ボタンキー２０２による暗証番号による認証も可能としてもよい。１台のモバイルコンピュータ１２を複数のユーザで共有することがあるが、指紋認証だけではこのような場合に対応できないからである。
【００１７】
モバイルコンピュータ１２の上端面には、ＵＳＢ３．０コネクタ２０６とＵＳＢｔｙｐｅ−Ｃコネクタ２０７とオーディオジャック２０８が設けられる。
モバイルコンピュータ１２の一方の側面（正面から見て左側の側面）には、メモリカード用のカードスロット２１８が設けられる。メモリカードは、例えばＳＤカード（登録商標）、マイクロＳＤカード（登録商標）等を含む。
【００１８】
モバイルコンピュータ１２の他方の側面（正面から見て右側の側面）には、ケンジントンロック（登録商標）のためのスロット２１０、電源スイッチ２１２、パワーＬＥＤ２１３、ＤＣ  ＩＮ／バッテリＬＥＤ２１４、電源コネクタ２１６、冷却用の通風口２２２が設けられる。パワーＬＥＤ２１３は電源スイッチ２１２の周囲に配置されるリング状のＬＥＤであり、電源オンの期間点灯する。パワーＬＥＤ２１３は起動状態やネットワーク接続状態に応じた色や態様で点灯・点滅する。ＤＣ  ＩＮ／バッテリＬＥＤ２１４はバッテリが充電中であるか否か等のモバイルコンピュータ１２の状態とバッテリの残量に応じた色や態様で点灯・点滅する。モバイルコンピュータ１２はバッテリで駆動可能であるが、電源コネクタ２１６にＡＣアダプタを接続した状態でも駆動可能である。図示しないが、裏面はワンタッチでバッテリが交換可能に構成されている。
【００１９】
図３はモバイルコンピュータ１２の電気的構成の一例を示すブロック図である。モバイルコンピュータ１２はシステムコントローラ３０２を備える。図示しないが、システムコントローラ３０２はプロセッサ（ＣＰＵ）とコントローラ・ハブからなる。プロセッサには、主メモリ３０８、パワーＬＥＤ２１３、ＤＣ  ＩＮ／バッテリＬＥＤ２１４、ＵＳＢコントローラ３２２が接続される。コントローラ・ハブには、ＢＩＯＳ−ＲＯＭ３１０、フラッシュメモリ３２６、メモリカードコントローラ３２８、ＳＳＤ又はＨＤＤ(Hard Disk Drive)からなるストレージデバイス３３０、ＵＳＢ切替器３２４、オーディオコーデック３３４、３Ｇ／ＬＴＥ／ＧＰＳデバイス３３６、指紋センサ２０４、ＵＳＢ３．０コネクタ２０６、ブルートゥースデバイス／無線ＬＡＮデバイス３４０、ＥＣ／ＫＢＣ（エンベデッドコントローラ／キーボードコントローラ）３４４が接続される。
【００２０】
システムコントローラ３０２はストレージデバイス３３０から主メモリ３０８にロードされる様々なプログラムを実行する。これらプログラムは、ＯＳ（オペレーティングシステム）４０４、アプリケーションプログラム４０６、ボタンマネージャ４１０を含む。ボタンマネージャ４１０は、５ボタンキー２０２の機能を変更するソウトウェアプログラムである。システムコントローラ３０２は不揮発性メモリであるＢＩＯＳ−ＲＯＭ３１０に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳはハードウェア制御のためのシステムプログラムである。
【００２１】
オーディオコーデック３３４は、再生対象のデジタルのオーディオ信号をアナログのオーディオ信号に変換して、オーディオジャック２０８に供給する。オーディオコーデック３３４は、オーディオジャック２０８から入力されるアナログのオーディオ信号をデジタル信号に変換する。メモリカードコントローラ３２８はメモリカードスロット２１８に挿入される図示しないメモリカード、例えばＳＤカードにアクセスして、ＳＤカードに対するデータの読み書きを制御する。
【００２２】
ＵＳＢコントローラ３２２はＵＳＢｔｙｐｅ−Ｃコネクタ２０７又はＵＳＢ３．０コネクタ２０６に電気的に接続され、これらのコネクタ２０７、２０６に電気的に接続されるＵＳＢ機器（図示せず）に対するデータの送受信を制御する。ＵＳＢｔｙｐｅ−Ｃコネクタ２０７にはポート拡張アダプタ１４が接続可能である。
【００２３】
ブルートゥース／無線ＬＡＮデバイス３４０は、ネットワークとの接続のためにブルートゥース規格の無線通信を実行する。無線ＬＡＮデバイス３４０は、ネットワーク２２との接続のためにＩＥＥＥ８０２．１１規格の無線ＬＡＮ通信を実行する。なお、ネットワーク２２との接続は無線通信によらず、ＩＥＥＥ８０２．３規格の有線ＬＡＮ通信によってもよい。
【００２４】
ＥＣ／ＫＢＣ３４４には、サブプロセッサ３４６、電源スイッチ２１２、５ボタンキー２０２及び電源回路３５０が接続される。ＥＣ／ＫＢＣ３４４は、電源スイッチ２１２の操作に応じてモバイルコンピュータ１２をパワーオン又はパワーオフする機能を有する。パワーオン及びパワーオフの制御は、ＥＣ／ＫＢＣ３４４と電源回路３５０との協働動作によって実行される。電源回路３５０はバッテリ３５２、充電器３５４及び電圧レギュレータモジュール３５６を含む。ＥＣ／ＫＢＣ３４４はモバイルコンピュータ１２がパワーオフされている期間中も、バッテリ３５２又はＡＣアダプタ３５８からの電力によって動作する。電圧レギュレータモジュール３５６は、バッテリ３５２からの電力又は外部電源として接続されるＡＣアダプタ３５８からの電力を用いて、モバイルコンピュータ１２の各コンポーネントへ供給すべき電力を生成する。電圧レギュレータモジュール３５６はシステムコントローラ３０２内のプロセッサに接続される。
【００２５】
［ボタンマネージャ４１０］  
ボタンマネージャ４１０による５ボタンキー２０２の機能を変更する動作を説明する。実施形態では、ボタンマネージャ４１０は、５ボタンキー２０２の中のカーソル移動キー（アップキー２０２ａ、ライトキー２０２ｂ、ダウンキー２０２ｃ、レフトキー２０２ｄ）の機能を変更し、エンターキー２０２ｅの機能は変更しないが、エンターキー２０２ｅも含めた５つのキーの機能を変更してもよい。
【００２６】
ボタンマネージャ４１０は任意のタイミングで起動される。ボタンマネージャ４１０が起動されると、ＥＣ／ＫＢＣ３４４の動作モードが切り替えられる。ＥＣ／ＫＢＣ３４４の動作モードは第１モードであるノーマルキーモード（通常キーモード）と第２モードであるスペシャルキーモード（特殊キーモード）とを備え、モバイルコンピュータ１２の電源がオンされると、初期状態としてはノーマルキーモードで動作するように設定されている。ボタンマネージャ４１０は、起動されると、ＥＣ／ＫＢＣ３４４の動作モードをスペシャルキーモードに切り替える。そのため、ボタンマネージャ４１０は、ＥＣ／ＫＢＣ３４４の動作モードをノーマルキーモードからスペシャルキーモードに切り替えたい時に起動される。そして、ＥＣ／ＫＢＣ３４４の動作モードをスペシャルキーモードからノーマルキーモードに戻したい時に、ボタンマネージャ４１０の動作は終了される。例えば、ボタンマネージャ４１０は、ＯＳ４０４が起動されると、自動的に起動されるようにしても良い。また、ボタンマネージャ４１０は、起動も終了もユーザが希望するタイミングでユーザからの操作により実行されても良い。ボタンマネージャ４１０の起動、終了のためのユーザ操作は、起動、終了コマンドを入力することや、メニュー画面上で起動、終了アイコンを選択することを含む。
【００２７】
図４はノーマルキーモードにおけるキーコード生成手段の一例を示す。キーボード１８がＵＳＢ３．０コネクタ２０６を介してＵＳＢコントローラ３２２に接続される。キーボード１８はキーコードテーブルを含む。キーコードテーブルは、キーボード１８内の各キーのキー番号とそれに割り当てられたキーコードとの対を記憶する。そのため、キーボード１８は、操作されたキーに応じたキー番号に応じたキーコードをキーコードテーブルから読み出し、ＵＳＢコントローラ３２２、ドライバ（キーボードドライバ）４０２を介してＯＳ４０４に供給する。ドライバ４０２はキーボード１８からのキーコードをＯＳ４０４が解釈できる情報に変換する。キーボード１８から出力されるキーコードを第１キーコードと称する。第１キーコードはキーに印字されている数字・文字・機能を示すものである。なお、ＵＳＢコントローラ３２２はスペシャルキーモードでも第１キーコードを出力する。
【００２８】
キーボード１８と同様に、５ボタンキー２０２も操作されたキーに応じたキー番号を示す信号を出力する。５ボタンキー２０２からのキー番号を示す信号がＥＣ／ＫＢＣ３４４に供給される。ＵＳＢコントローラ３２２と同様に、ＥＣ／ＫＢＣ３４４も５つのキーのキー番号とそれに割り当てられたキーコードとの対を記憶するキーコードテーブルを含む。ＥＣ／ＫＢＣ３４４のキーコードテーブルは、ノーマルキーモードで使用されるキーコードテーブル（以下、ノーマルキーコードテーブルと称する）と、スペシャルキーモードで使用されるキーコードテーブル（以下、スペシャルキーコードテーブルと称する）からなる。
【００２９】
ノーマルキーコードテーブルは、５ボタンキー２０２の中の４つのカーソル移動キー２０２ａ〜２０２ｄをそのままカーソル移動キーとして機能させ、５ボタンキー２０２の中のエンターキー２０２ｅもそのままエンターキーとして機能させるためのものである。ノーマルキーコードテーブルは、アップキー２０２ａのキー番号を示す信号を受信すると、カーソルを上へ移動させるためのカーソルアップキーコードを発生し、ライトキー２０２ｂのキー番号を示す信号を受信すると、カーソルを右へ移動させるためのカーソルライトキーコードを発生し、ダウンキー２０２ｃのキー番号を示す信号を受信すると、カーソルを下へ移動させるためのカーソルダウンキーコードを発生し、レフトキー２０２ｄのキー番号を示す信号を受信すると、カーソルを左へ移動させるためのカーソルレフトキーコードを発生し、エンターキー２０２ｅのキー番号を示す信号を受信すると、エンターキーコードを発生する。ノーマルキーコードテーブルから出力されるキーコードを第２キーコードと称する。すなわち、第２キーコードは５ボタンキー２０２の中の４つのカーソル移動キー２０２ａ〜２０２ｄをそのままカーソル移動キーとして機能させ、５ボタンキー２０２の中のエンターキー２０２ｅもそのままエンターキーとして機能させるためのものである。第２キーコードはドライバ４０２を介してＯＳ４０４に供給される。
【００３０】
ノーマルキーモードの場合、キーボード１８の操作により発生される第１キーコードと５ボタンキーの操作により発生される第２キーコードがそのままアプリケーションプログラム４０６に送られる。アプリケーションプログラム４０６は、キーボード１８の操作により発生される文字、数字、記号等を入力するとともに、５ボタンキー２０２の中のカーソル移動キーの操作により指示される方向にカーソルを移動させる。なお、アプリケーションプログラム４０６は、キーボード１８の操作によってもカーソルを移動させることができる。
【００３１】
図５はスペシャルキーモードにおけるキーコード生成手段の一例を示す。実施形態では、ボタンマネージャ４１０は、５ボタンキー２０２の中のカーソル移動キー（アップキー２０２ａ、ライトキー２０２ｂ、ダウンキー２０２ｃ、レフトキー２０２ｄ）の機能を変更するので、以下では、エンターキー２０２ｅの説明は省略する。ノーマルキーモードの場合と同様に、ＵＳＢコントローラ３２２は、キーボード１８のキー操作に応じた第１キーコードをドライバ４０２を介してＯＳ４０４に供給する。
【００３２】
ボタンマネージャ４１０が起動されると、ボタンマネージャ４１０はＥＣ／ＫＢＣ３４４の動作モードをノーマルキーモードからスペシャルキーモードに切り替える。スペシャルキーモードでは、ＥＣ／ＫＢＣ３４４はノーマルキーコードテーブルではなく、スペシャルキーコードテーブルを使用する。スペシャルキーコードテーブルは、４つのカーソル移動キー２０２ａ〜２０２ｄをカーソル移動キー以外のキーあるいは複数のキーの組み合わせとして機能させるためのものである。
【００３３】
スペシャルキーコードテーブルは、カーソル移動キー２０２ａ〜２０２ｄのキー番号を示す信号を受信すると、ユニークキーコードを発生する。ユニークキーコードは、ＵＳＢコントローラ３２２がＯＳ４０６に供給する第１キーコードには含まれないキーコードである。例えば、スペシャルキーコードテーブルは、アップキー２０２ａのキー番号を示す信号を受信すると、“７８”を示すユニークキーコードを発生し、ライトキー２０２ｂのキー番号を示す信号を受信すると、“７４“を示すユニークキーコードを発生し、ダウンキー２０２ｃのキー番号を示す信号を受信すると、”７２“を示すユニークキーコードを発生し、レフトキー２０２ｄのキー番号を示す信号を受信すると、“５５”を示すユニークキーコードを発生する。
【００３４】
スペシャルキーコードテーブルから出力されるユニークキーコードを第３キーコードと称する。第３キーコードはドライバ４０２を介してＯＳ４０４に供給される。
ＯＳ４０４は、キーボード１８の操作により発生される第１キーコードと、カーソル移動キー２０２ａ〜２０２ｄの操作により発生される第３キーコードをアプリケーションプログラム４０６に送るが、第３キーコードはアプリケーションプログラム４０６で無視される。ＯＳ４０４は、ドライバ４０２からの第１キーコードと第３キーコードを受信して、キーイベントを検出し、検出したキーイベントをボタンマネージャ４１０へ通知する。
【００３５】
ボタンマネージャ４１０は検出したキーイベントが第１キーコードのキーイベントである場合、何の動作も行わない。ボタンマネージャ４１０は検出したキーイベントが第３キーコードのキーイベントである場合、第３キーコードを第４キーコードに変換する。ボタンマネージャ４１０は第４キーコードをＯＳ４０４へ供給する。ＯＳ４０４は、ボタンマネージャ４１０から供給された第４キーコードをそのままアプリケーションプログラム４０６へ送る。
【００３６】
第３キーコードから第４キーコードへの変換は、定義テーブルに従って行われる。定義テーブルはフラッシュメモリ３２６内に格納される。定義テーブルの一例を図６に示す。
この定義テーブルは、カーソル移動キー２０２ａ〜２０２ｄの操作態様の違いにより２通りの変換、すなわち２種類の第４キーコードを定義している。ここでは、操作態様は操作時間により区別され、７００ミリ秒未満の短時間の操作（短押しとも称する）と、７００ミリ秒以上の時間の操作（長押しとも称する）を含む。なお、操作態様の違いは２種類だけではなく、３種類以上でも良い。さらに、操作態様は操作時間に限らず、シングルクリック、ダブルクリック、トリプルクリック等の操作回数により区別しても良い。ＯＳ４０４は、操作態様もキーイベントとして検出可能であり、ボタンマネージャ４１０はＯＳ４０４から通知されたキーイベントに基づき操作態様を認識することができ、操作態様に応じて異なる第４キーコードに変換することができる。
【００３７】
上記した定義テーブルは、アップキー２０２ａが短押しされると、“Ａｌｔ”キーと“Ｃｔｒｌ”キーと“ｋ”キーが押された場合と同じキーコードを第４キーコードとして発生し、ダウンキー２０２ｃが短押しされると、ダウンキーが押された場合と同じキーコードを第４キーコードとして発生し、レフトキー２０２ｄが短押しされると、“Ｓｈｉｆｔ”キーと“２”キーが押された場合と同じキーコードを第４キーコードとして発生し、ライトキー２０２ｂが短押しされると、“ｄｅｌｅｔｅ”キーが押された場合と同じキーコードを第４キーコードとして発生することを示す。
【００３８】
また、定義テーブルは、アップキー２０２ａが長押しされると、“Ｂａｃｋ  ｓｐａｃｅ”キーが押された場合と同じキーコードを第４キーコードとして発生し、ダウンキー２０２ｃが長押しされると、“Ｓｈｉｆｔ”キーと“Ｄ”キーが押された場合と同じキーコードを第４キーコードとして発生し、レフトキー２０２ｄが長押しされると、“Ｓｐａｃｅ”キーが押された場合と同じキーコードを第４キーコードとして発生し、ライトキー２０２ｂが長押しされると、“０ｘ２０”キーが押された場合と同じキーコードを第４キーコードとして発生することを示す。
【００３９】
なお、カーソル移動キー２０２ａ〜２０２ｄの操作態様の違いにより２通りの変換を定義する場合、１つの変換ではノーマルキーモードの場合のキーコードを第４キーコードとして出力するように変換しても良い。この場合の定義テーブルを図７に示す。すなわち、スペシャルキーモードにおいて、カーソル移動キー２０２ａ〜２０２ｄは、短押しされた場合、カーソル移動キーとして機能され、長押しされた場合は、図６の場合と同様にカーソル移動キー以外のキーあるいは複数のキー（組み合わせ）として機能される。
【００４０】
スペシャルキーモードの場合、キーボード１８の操作により発生される第１キーコードとカーソル移動キー２０２ａ〜２０２ｄの操作により発生される第３キーコードがそのままアプリケーションプログラム４０６に送られ、第３キーコードはアプリケーションプログラム４０６で無視される。そのため、アプリケーションプログラム４０６は、キーボード１８の操作のみにより発生される文字、数字、記号等を入力するとともに、キーボード１８の操作によりカーソルを移動させる。
【００４１】
一方、カーソル移動キー２０２ａ〜２０２ｄの操作により発生される第３キーコードはボタンマネージャ４１０により第４キーコードに変換され、第４キーコードがＯＳ４０４を介してアプリケーションプログラム４０６に送られる。アプリケーションプログラム４０６は５ボタンキーの操作により第４キーコードで指定される機能を実行する。
【００４２】
このように、ボタンマネージャ４１０はＯＳ４０４からのキーイベントに応じて特定キーコード（第３キーコード）を他のキーコード（第４キーコード）に変換するが、キーイベントの検出ではキーコードがキーボード１８の操作により生成されたのか又はカーソル移動キー２０２ａ〜２０２ｄの操作により生成されたのか検出できない。そのため、キーボード１８の操作により特定キーコードが生成されると、キーボード１８の操作により生成された特定キーコードも第４キーコードに変換されてしまう。これを防ぐために、スペシャルキーコードテーブルが記憶するユニークキーコードはキーボード１８の操作により生成される第１キーコードに含まれないものとされている。すなわち、キーボード１８の操作により生成されたキーコードはボタンマネージャ４１０で他のキーコードに変換されることがない。ユニークキーコードの例は、上記の数字に限らず、ＵＳＢコントローラ３２２のキーコードテーブルで未使用のものなら何でも良い。
【００４３】
［キーコード生成］  
図８はスペシャルキーモードにおけるキーコード生成動作の一例を示すフローチャートである。ステップ７０２で、ボタンマネージャ４１０が起動されると、ステップ７０４で、ボタンマネージャ４１０は、ＥＣ／ＫＢＣ３４４の動作モードをノーマルキーモードからスペシャルキーモードに切替える。
【００４４】
ステップ７０６で、ＥＣ／ＫＢＣ３４４の処理は、カーソル移動キー２０２ａ〜２０２ｄのいずれかが操作されるまで待機する。カーソル移動キー２０２ａ〜２０２ｄのいずれかが操作されると、ステップ７０８で、ＥＣ／ＫＢＣ３４４はスペシャルキーコードテーブルに従い、第３キーコード（ユニークキーコード）を出力する。第３キーコードはドライバ４０２、ＯＳ４０４を介してアプリケーションプログラム４０６に送られるが、アプリケーションプログラム４０６で無視される。
【００４５】
ステップ７１２で、ＯＳ４０４は、第３キーコードを受信して、キーイベントを検出し、検出したキーイベントをボタンマネージャ４１０へ通知する。検出したキーイベントが第３キーコードのキーイベントであれば、ステップ７１４で、ボタンマネージャ４１０は、スペシャルキーコードテーブルを参照して第３キーコードを第４キーコードに変換し、第４キーコードをＯＳ４０４へ供給する。ステップ７１６で、ＯＳ４０４は、ボタンマネージャ４１０から供給された第４キーコードをそのままアプリケーションプログラム４０６へ送る。
【００４６】
ステップ７１８で、ボタンマネージャ４１０が起動中であるか否かが判定され、起動中である場合、ＥＣ／ＫＢＣ３４４の動作モードはスペシャルキーモードのままとする。ＥＣ／ＫＢＣ３４４の処理は、ステップ７０６で、カーソル移動キー２０２ａ〜２０２ｄのいずれかが操作されるまで待機する。ボタンマネージャ４１０が動作終了した場合、ステップ７２２で、ＥＣ／ＫＢＣ３４４の動作モードがスペシャルキーモードからノーマルキーモードに変更される。
【００４７】
第１実施形態によるモバイルコンピュータ１２において、カーソル移動キー２０２ａ〜２０２ｄがＥＣ／ＫＢＣ３４４に接続される。キーが操作されると、ＥＣ／ＫＢＣ３４４は操作されたキーに応じたキーコードを生成し、ドライバ４０２経由でＯＳ４０４にキーコードを伝え、アプリケーションプログラム４０６がキーコードを利用する。
【００４８】
ＥＣ／ＫＢＣ３４４の動作モードを切り替えるボタンマネージャ４１０が設けられる。ＥＣ／ＫＢＣ３４４は、ノーマルキーモード（第１モード）では、第２キーコードを生成し、スペシャルキーモード（第２モード）では、第３キーコードを生成し、ボタンマネージャ４１０が定義テーブルに従って第３キーコードを第４キーコードに変換し、ＯＳ４０４経由で第４キーコードをアプリケーションプログラム４０６に伝える。第３キーコードは外付けのキーボード１８のキー操作に応じて生成される第１キーコードに含まれていないキーコードからなる。このため、第３キーコードと第１キーコードがコンフリクトしない。
【００４９】
ボタンマネージャ４１０というＯＳ４０４上のソフトウェア階層で第３キーコードを第４キーコードに変換するので、ＥＣ／ＫＢＣ３４４やドライバ４０２は変更する必要が無く、ソフトウェアの変更のみで簡単に実現することができる。
第４キーコードの内容は定義テーブルを書き換えることにより、ユーザが自由に変更することができる。定義テーブルの変更は、図６、図７に示すようなテキストファイルの書き換えによっても良いし、定義設定メニュー画面を表示させ、ユーザが画面上で定義を選択することによっても良い。
【００５０】
ボタンマネージャ４１０が起動していない時は、ＥＣ／ＫＢＣ３４４のモードは第１モードであり、ボタンマネージャ４１０が起動している時は、ＥＣ／ＫＢＣ３４４の動作モードは第２モードである。ボタンマネージャ４１０はＯＳ４０４の起動時に起動しても良いし、ユーザの希望するタイミングでユーザ操作により起動しても良い。これにより、ユーザが所望する時に、カーソル移動キー２０２ａ〜２０２ｄの機能を変更することができ、モバイルコンピュータ１２の限られたユーザインターフェースであるカーソル移動キー２０２ａ〜２０２ｄの機能を多様化することができる。
【００５１】
第２モードにおいて、キー操作の態様を変えることにより、複数の第４キーコードに変換してもよい。例えば、キーを短押しした場合と長押しした場合とで異なる第４コードを生成するようにすると、カーソル移動キーの機能をさらに多様化することができる。キー操作の態様はキーの操作回数で区別してもよい。さらに、キー操作の態様を変えることにより、複数の第４キーコードに変換する場合、１つの第４キーコードを第１モードで生成される第２キーコードとしてもよい。この場合、動作モードを切り替えることなく、カーソル移動キーの機能を切り替えることができる。
【００５２】
また、第２モードにおいて生成される第４キーコードは、単一のキー操作に応じたキーコードに限らず、複数のキー操作に応じたキーコードでもよい。例えば、アプリケーションプログラム４０６が複数のキーコードの組み合わせで何かの機能を実現する場合、そのような複数のキーコードの組み合わせを出力するように割り当てても良い。さらに、第２モードにおいて、ボタンマネージャ４１０は第４キーコードの生成に加えて、任意の機能をトリガーする（例えば、特定のアプリケーションプログラムを起動する）信号を生成してもよい。
【００５３】
［第２実施形態］
第１実施形態では、スペシャルキーモードにおいて、ボタンマネージャ４１０が第３キーコードを第４キーコードに変換したが、第２実施形態では、ドライバ４０２とＯＳ４０４の間に設けたフィルタドライバ４１４がキーコードを変換する。図９は、スペシャルキーモードにおける第２実施形態によるキーコード生成手段の一例を示す。ドライバ４０２とフィルタドライバ４１４はソフトウェアにより実現される。
【００５４】
第２実施形態によれば、第１実施形態と同様に、ボタンマネージャ４１０が起動されると、ボタンマネージャ４１０はＥＣ／ＫＢＣ３４４の動作モードをノーマルキーモードからスペシャルキーモードに切り替える。スペシャルキーモードにおいて、ＥＣ／ＫＢＣ３４４は５ボタンキー２０２のキー操作に応じた第３キーコード（ユニークキーコード）をドライバ４０２を介してフィルタドライバ４１４に供給する。
【００５５】
フィルタドライバ４１４はキーボード１８の操作により発生された第１キーコードはそのままＯＳ４０４に送るが、５ボタンキー２０２の操作により発生された第３キーコードは第４キーコードに変換して、第４キーコードをＯＳ４０４に送る。
これにより、第１実施形態と同様に、モバイルコンピュータ１２の限られたユーザインターフェースであるカーソル移動キー２０２ａ〜２０２ｄの機能を多様化することができる。
【００５６】
なお、ドライバ４０２自身が第３キーコードを変換する機能を備え、フィルタドライバ４１４を省略してもよい。
第２実施形態は、フィルタドライバ４１４というソフトウェアで第３キーコードを第４キーコードに変換するので、ボタンマネージャ４１０というＯＳ４０４上のソフトウェア階層でキーコードを変換することに比べてより低レベルの階層でキーコードを変換できる。
【００５７】
本実施形態の処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００５８】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００５９】
１２…エッジコンピュータ、１４…ポート拡張アダプタ、１６…ディスプレイ、１８…キーボード、２０２…５ボタンキー、２０６…ＵＳＢ３．０コネクタ、２０７…ＵＳＢＴｙｐｅ−Ｃコネクタ、４０２…ドライバ、４０４…ＯＳ、４０６…アプリケーションプログラム、４１０…ボタンマネージャ、４１４…フィルタドライバ。
【図１】
2019212212.tif 000003
【図２】
2019212212.tif 000004
【図３】
2019212212.tif 000005
【図４】
2019212212.tif 000006
【図５】
2019212212.tif 000007
【図６】
2019212212.tif 000008
【図７】
2019212212.tif 000009
【図８】
2019212212.tif 000010
【図９】
2019212212.tif 000011