(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-05
(45)【発行日】2022-08-16
(54)【発明の名称】電子機器、キーコード生成方法及びプログラム
(51)【国際特許分類】
G06F 3/02 20060101AFI20220808BHJP
H03M 11/04 20060101ALI20220808BHJP
【FI】
G06F3/02 520
G06F3/02 460
H03M11/04
(21)【出願番号】P 2018110282
(22)【出願日】2018-06-08
【審査請求日】2021-05-17
(73)【特許権者】
【識別番号】398058588
【氏名又は名称】Dynabook株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】特許業務法人スズエ国際特許事務所
(72)【発明者】
【氏名】須田 幸宏
【審査官】酒井 優一
(56)【参考文献】
【文献】特開2001-142612(JP,A)
【文献】特開2011-059827(JP,A)
【文献】特開2011-228952(JP,A)
【文献】特開2004-157712(JP,A)
【文献】特開2004-070888(JP,A)
【文献】特開2003-256112(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/02
H03M 11/04
(57)【特許請求の範囲】
【請求項1】
複数のキーを備え、いずれかのキーが操作されると、第1キーコードを出力するキーボードに接続され得る電子機器であって、
前記キーボードの前記複数のキーの数より少ない数のキーを備えるキー操作部と、
アプリケーションプログラムを実行するシステムコントローラと、
第1モードと第2モードのいずれかで動作可能であり、前記第1モードでは、前記キー操作部のいずれかのキーが操作されると
前記アプリケーションプログラムに処理を行わせる第2キーコードを
前記システムコントローラに出力し、前記第2モードでは、前記キー操作部のいずれかのキーが操作されると
前記アプリケーションプログラムで無視される第3キーコードを
前記システムコントローラに出力するキーボードコントローラと、を具備し、
前記システムコントローラは、前記第3キーコード
を第4キーコード
に変換し、
前記第3キーコードは前記第1キーコードに含まれないキーコードからなる電子機器。
【請求項2】
前記
システムコントローラは、
前記キーボードコントローラが前記第2モードで
動作する場合は、前記キー操作部のいずれかのキーが操作されると、前記第3キーコードを前記キー操作部のいずれかのキーの操作態様に応じて異なる複数の第4キーコードに
変換する請求項1記載の電子機器。
【請求項3】
前記操作態様は、一定時間の1回の操作と、前記一定時間より長い時間の1回の操作又は前記一定時間の複数回の操作とを含む請求項2記載の電子機器。
【請求項4】
前記複数の第4キーコードのいずれかは前記第2キーコードである請求項2又は請求項3記載の電子機器。
【請求項5】
前記
システムコントローラは、
前記キーボードコントローラが前記第2モードで
動作する場合は、前記キー操作部のいずれかの複数のキーが操作されると、特定の機能を実現するための信号を出力する請求項1乃至請求項4のいずれか一項記載の電子機器。
【請求項6】
前記キー操作部は上下左右のカーソル移動キーを備える請求項1乃至請求項5のいずれか一項記載の電子機器。
【請求項7】
前記
システムコントローラは、前記キーボードコントローラの動作モードを前記第1モードと前記第2モードのいずれかに設定する切替手段をさらに具備する請求項1乃至請求項6のいずれか一項記載の電子機器。
【請求項8】
前記
キーボードコントローラは、
前記第2モードで前記キー操作部のいずれかのキーが操作されると前記第3キーコードを出力するキーコードテーブル
を具備し、
前記システムコントローラは、
前記第3キーコードのキーイベントを検出するキーイベント検出手段と、
前記キーイベント検出手段が前記第3キーコードのキーイベントを検出すると、前記切替手段へ検出結果を通知する通知手段と、を具備し、
前記切替手段は、前記通知手段から前記検出結果が通知されると、前記第3キーコードを前記第4キーコードに変換する請求項7記載の電子機器。
【請求項9】
前記
キーボードコントローラは、
前記第2モードで前記キー操作部のいずれかのキーが操作されると前記第3キーコードを出力するキーコードテーブル
を具備し、
前記システムコントローラは、
前記第3キーコードを前記第4キーコードに変換する変換手段
を具備する請求項1乃至請求項7のいずれか一項記載の電子機器。
【請求項10】
複数のキーを備え、いずれかのキーが操作されると、第1キーコードを出力するキーボードに接続され得る電子機器であって、前記キーボードの前記複数のキーの数より少ない数のキーを備えるキー操作部を具備する前記電子機器のキーコード生成方法であって、
第1モードでは、前記キー操作部のいずれかのキーが操作されると
アプリケーションプログラムを実行するシステムコントローラに前記アプリケーションプログラムに処理を行わせる第2キーコードを出力することと、
第2モードでは、前記キー操作部のいずれかのキーが操作されると前記第1キーコードに含まれないキーコードから
なり前記アプリケーションプログラムで無視される第3キーコードを
前記システムコントローラに出力し、
前記システムコントローラに前記第3キーコード
を第4キーコード
に変換させることと、
を具備するキーコード生成方法。
【請求項11】
複数のキーを備え、いずれかのキーが操作されると、第1キーコードを出力するキーボードに接続され得る電子機器であって、前記キーボードの前記複数のキーの数より少ない数のキーを備えるキー操作部を具備する前記電子機器を制御するコンピュータにより実行されるプログラムであって、前記プログラムは前記コンピュータに、
第1モードでは、前記キー操作部のいずれかのキーが操作されると
アプリケーションプログラムを実行するシステムコントローラに前記アプリケーションプログラムに処理を行わせる第2キーコードを出力することと、
第2モードでは、前記キー操作部のいずれかのキーが操作されると前記第1キーコード
からなり前記アプリケーションプログラムで無視される第3キーコードを
前記システムコントローラに出力し、
前記システムコントローラに前記第3キーコード
を第4キーコード
に変換させることと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、キー操作により発生されるキーコードを変更可能な電子機器、キーコード生成方法及びプログラムに関する。
【背景技術】
【0002】
最近、多くのモノがインターネットでつながるIoT時代となり、オフィス、工場、その他様々な場面において、ネットワークコミュニケーションや情報共有のツールとしてモバイルエッジコンピューティングと呼ばれる技術が求められている。このモバイルエッジコンピューティングを実現するためにはデータセンター(或いはクラウド)とは別にユーザが作業現場で使用可能な、高度の汎用性と処理能力を持つ実用的なモバイルエッジコンピューティングデバイスの開発が必要とされている。
【0003】
モバイルエッジコンピューティングデバイスがディスプレイや文字入力用のハードウェアキーボードを備えていると、ユーザは作業に専念しづらい。これを解決するために、ディスプレイやハードウェアキーボードを備えないモバイルエッジコンピューティングデバイスが検討されている。このようなモバイルエッジコンピューティングデバイスは、必要に応じて、外付けのディスプレイやハードウェアキーボードに接続される。例えば、モバイルエッジコンピューティングデバイスはタッチパネル・ディスプレイ付きのウェアラブル機器に接続されることがある。この場合、ウェアラブル機器のディスプレイに情報を表示することや、タッチパネルから情報を入力することができる。しかし、ウェアラブル機器のタッチパネルは小型であり、操作しづらい場合があるので、モバイルエッジコンピューティングデバイスにもカーソル移動キー、エンターキー等の最小限のキーが設けられている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2001-175402号公報
【文献】特開2003-256112号公報
【文献】特開2004-157712号公報
【文献】米国特許出願公開第2007/236464号明細書
【文献】米国特許第7242385号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
モバイルエッジコンピューティングデバイスのような少ない数のキー(ユーザインターフェースとも称する)を備える電子機器では、少ない数のユーザインターフェースに対し、多様な操作性が求められる。
本発明の目的はユーザインターフェースとしての操作部材に対して多様な機能を割り当てることができる電子機器、キーコード生成方法及びプログラムを提供することである。
【課題を解決するための手段】
【0006】
実施形態による電子機器は、複数のキーを備え、いずれかのキーが操作されると、第1キーコードを出力するキーボードに接続され得る電子機器であって、キー操作部と、システムコントローラと、キーボードコントローラと、を具備する。キー操作部は、前記キーボードの前記複数のキーの数より少ない数のキーを備える。システムコントローラは、アプリケーションプログラムを実行する。キーボードコントローラは、第1モードと第2モードのいずれかで動作可能であり、前記第1モードでは、前記キー操作部のいずれかのキーが操作されると前記アプリケーションプログラムに処理を行わせる第2キーコードを前記システムコントローラに出力し、前記第2モードでは、前記キー操作部のいずれかのキーが操作されると前記アプリケーションプログラムで無視される第3キーコードを前記システムコントローラに出力する。前記システムコントローラは、前記第3キーコードを第4キーコードに変換する。前記第3キーコードは前記第1キーコードに含まれないキーコードからなる。
【図面の簡単な説明】
【0007】
【
図1】実施形態による電子機器であるモバイルコンピュータを含むシステムの構成の一例を示す図である。
【
図2】実施形態による電子機器であるモバイルコンピュータの構造の一例を示す図である。
【
図3】実施形態による電子機器であるモバイルコンピュータの電気的な構成の一例を示すブロック図である。
【
図4】第1実施形態におけるノーマルキーモードにおけるキーコード生成手段の一例を示す図である。
【
図5】第1実施形態におけるスペシャルキーモードにおけるキーコード生成手段の一例を示す図である。
【
図6】第1実施形態におけるスペシャルキーモードで第3キーコードを第4キーコードに変換するための定義テーブルの一例を示す図である。
【
図7】第1実施形態におけるスペシャルキーモードで第3キーコードを第4キーコードに変換するための定義テーブルの他の例を示す図である。
【
図8】第1実施形態におけるスペシャルキーモードの場合のキーコード生成方法の一例を示すフローチャートである。
【
図9】第2実施形態におけるスペシャルキーモードの場合のキーコード生成手段の一例を示す図である。
【発明を実施するための形態】
【0008】
以下、実施の形態について図面を参照して説明する。なお、開示はあくまで一例にすぎず、以下の実施形態に記載した内容により発明が限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各部分のサイズ、形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、対応する要素には同じ参照数字を付して、詳細な説明を省略する場合もある。
【0009】
[第1実施形態(システム構成)]
図1は実施形態による電子機器であるモバイルエッジコンピューティングデバイス(以下、モバイルコンピュータと称する)を含むシステムの構成の一例を示す図である。
モバイルコンピュータ12は略直方体の形状で、片手で持てる小型・計量のパーソナルコンピュータであり、そのサイズは、幅が約9cm、高さが約17cm、厚さが2cm程度であり、重量は約300g程度である。このため、モバイルコンピュータ12は作業着のポケット、ベルトに装着されるホルスタあるいはショルダーケースに収納でき、ウェアラブルである。モバイルコンピュータ12はCPUや半導体メモリ等の半導体チップやSSD(Solid State Disk)等のストレージデバイスを収納するが、ディスプレイと文字・数字・記号等の入力用のハードウェアキーボード(以下、単にキーボードと称する)は備えない。しかし、モバイルコンピュータ12は、ユーザインターフェースとして少数のキーを備えるキー操作部を備える。キー操作部は、例えば上下左右のカーソル移動キーとエンターキーからなる5ボタンキー202からなる。
【0010】
モバイル環境で使用する場合、モバイルコンピュータ12は、例えば、タッチパネル・ディスプレイ付きのメガネ型のウェアラブル機器に接続されることがある。メガネ型のウェアラブル機器をユーザが頭部に装着した時、ユーザの両眼の前方にディスプレイが、ユーザの頭部の側方にタッチパネルが設けられ、ディスプレイに画面を表示することや、ディスプレイの画面上のアイコンをタッチパネルを用いて選択することができる。しかし、ウェアラブル機器のタッチパネルは小型であり、操作しづらい場合があるので、モバイルコンピュータ12にも5ボタンキー202が設けられ、タッチパネルを使わなくてもアイコンの選択等ができるようになっている。
【0011】
しかし、モバイルコンピュータ12はいわゆるコンピュータ本体と等価であるので、モバイル環境ではなくデスクトップ環境で使用することもできる。この場合、
図1に示すように、モバイルコンピュータ12にディスプレイ16、キーボード18、マウス20等が接続される。モバイルコンピュータ12の5ボタンキー202に含まれるキーはキーボード18にも含まれる。すなわち、カーソル移動操作、エンター操作はモバイルコンピュータ12とキーボード18の両方により行うことができる。
【0012】
モバイルコンピュータ12は、小型化のため、コネクタはUSB(登録商標)コネクタを備える。USBコネクタはUSB3.0(登録商標)コネクタと、USBType-C(登録商標)コネクタを含む。USBType-Cのケーブルは映像信号も伝送可能であるが、モバイルコンピュータ12は、HDMI(登録商標)等の映像信号専用のコネクタを備えない。そのため、有線LANコネクタ、USB3.0コネクタ、HDMIコネクタ、RGBコネクタ等を備えるポート拡張アダプタ14がモバイルコンピュータ12のUSBTtpe-Cコネクタに接続される。ディスプレイ16がポート拡張アダプタ14のHDMIコネクタ、RGBコネクタ等に接続される。キーボード18がモバイルコンピュータ12のUSB3.0コネクタ(あるいはポート拡張アダプタ14のUSB3.0コネクタ)に接続され、マウス20がポート拡張アダプタ14のUSB3.0コネクタ(あるいはモバイルコンピュータ12のUSB3.0コネクタ)に接続される。
【0013】
図示しないが、モバイルコンピュータ12はネットワークを介してデータセンター、サーバ等に接続される。モバイルコンピュータ12とデータセンター・サーバは相互に接続され、通信可能となっている。ネットワークとの接続は有線LANによっても良いし、無線LAN、ブルートゥース(登録商標)等の無線通信によっても良い。
【0014】
[モバイルコンピュータ12]
図2はモバイルコンピュータ12の構造の一例を示す図である。モバイルコンピュータ12の正面に配置される5ボタンキー202は、アップキー202a、ライトキー202b、ダウンキー202c、レフトキー202dの4つのカーソル移動キーボタンと、エンターキー(決定キー、センターキーとも称する)202eからなる。
【0015】
5ボタンキー202の下に指紋センサ204が配置される。キーボードが備わっておらず暗証番号(PINとも称する)を入力することができないので、指紋センサ204はモバイルコンピュータ12のログイン時のユーザ認証のために用いられる。
なお、後述するように、本実施形態によれば、5ボタンキー202の機能をユーザがソフトウェア的に変更可能であるので、ログイン時に、5ボタンキー202の4つのカーソル移動キー202a~202dに数字を割り当て、暗証番号を入力することにより、ログイン時のユーザ認証を行うこともできる。この場合、指紋センサ204は省略可能である。5ボタンキー202の4つのカーソル移動キー202a~202dに数字を割り当てる際、数字は4つしか割り当てられないので、ランダムに入力した数字が暗証番号に一致する可能性が0ではない。しかし、暗証番号の桁数を大きくすれば、ランダムに入力した数字が暗証番号に一致する確率を実質的に0にすることができる。
【0016】
指紋センサ204を備えるモバイルコンピュータ12でも5ボタンキー202による暗証番号による認証も可能としてもよい。1台のモバイルコンピュータ12を複数のユーザで共有することがあるが、指紋認証だけではこのような場合に対応できないからである。
【0017】
モバイルコンピュータ12の上端面には、USB3.0コネクタ206とUSBtype-Cコネクタ207とオーディオジャック208が設けられる。
モバイルコンピュータ12の一方の側面(正面から見て左側の側面)には、メモリカード用のカードスロット218が設けられる。メモリカードは、例えばSDカード(登録商標)、マイクロSDカード(登録商標)等を含む。
【0018】
モバイルコンピュータ12の他方の側面(正面から見て右側の側面)には、ケンジントンロック(登録商標)のためのスロット210、電源スイッチ212、パワーLED213、DC IN/バッテリLED214、電源コネクタ216、冷却用の通風口222が設けられる。パワーLED213は電源スイッチ212の周囲に配置されるリング状のLEDであり、電源オンの期間点灯する。パワーLED213は起動状態やネットワーク接続状態に応じた色や態様で点灯・点滅する。DC IN/バッテリLED214はバッテリが充電中であるか否か等のモバイルコンピュータ12の状態とバッテリの残量に応じた色や態様で点灯・点滅する。モバイルコンピュータ12はバッテリで駆動可能であるが、電源コネクタ216にACアダプタを接続した状態でも駆動可能である。図示しないが、裏面はワンタッチでバッテリが交換可能に構成されている。
【0019】
図3はモバイルコンピュータ12の電気的構成の一例を示すブロック図である。モバイルコンピュータ12はシステムコントローラ302を備える。図示しないが、システムコントローラ302はプロセッサ(CPU)とコントローラ・ハブからなる。プロセッサには、主メモリ308、パワーLED213、DC IN/バッテリLED214、USBコントローラ322が接続される。コントローラ・ハブには、BIOS-ROM310、フラッシュメモリ326、メモリカードコントローラ328、SSD又はHDD(Hard Disk Drive)からなるストレージデバイス330、USB切替器324、オーディオコーデック334、3G/LTE/GPSデバイス336、指紋センサ204、USB3.0コネクタ206、ブルートゥースデバイス/無線LANデバイス340、EC/KBC(エンベデッドコントローラ/キーボードコントローラ)344が接続される。
【0020】
システムコントローラ302はストレージデバイス330から主メモリ308にロードされる様々なプログラムを実行する。これらプログラムは、OS(オペレーティングシステム)404、アプリケーションプログラム406、ボタンマネージャ410を含む。ボタンマネージャ410は、5ボタンキー202の機能を変更するソウトウェアプログラムである。システムコントローラ302は不揮発性メモリであるBIOS-ROM310に格納された基本入出力システム(BIOS)も実行する。BIOSはハードウェア制御のためのシステムプログラムである。
【0021】
オーディオコーデック334は、再生対象のデジタルのオーディオ信号をアナログのオーディオ信号に変換して、オーディオジャック208に供給する。オーディオコーデック334は、オーディオジャック208から入力されるアナログのオーディオ信号をデジタル信号に変換する。メモリカードコントローラ328はメモリカードスロット218に挿入される図示しないメモリカード、例えばSDカードにアクセスして、SDカードに対するデータの読み書きを制御する。
【0022】
USBコントローラ322はUSBtype-Cコネクタ207又はUSB3.0コネクタ206に電気的に接続され、これらのコネクタ207、206に電気的に接続されるUSB機器(図示せず)に対するデータの送受信を制御する。USBtype-Cコネクタ207にはポート拡張アダプタ14が接続可能である。
【0023】
ブルートゥース/無線LANデバイス340は、ネットワークとの接続のためにブルートゥース規格の無線通信を実行する。無線LANデバイス340は、ネットワーク22との接続のためにIEEE802.11規格の無線LAN通信を実行する。なお、ネットワーク22との接続は無線通信によらず、IEEE802.3規格の有線LAN通信によってもよい。
【0024】
EC/KBC344には、サブプロセッサ346、電源スイッチ212、5ボタンキー202及び電源回路350が接続される。EC/KBC344は、電源スイッチ212の操作に応じてモバイルコンピュータ12をパワーオン又はパワーオフする機能を有する。パワーオン及びパワーオフの制御は、EC/KBC344と電源回路350との協働動作によって実行される。電源回路350はバッテリ352、充電器354及び電圧レギュレータモジュール356を含む。EC/KBC344はモバイルコンピュータ12がパワーオフされている期間中も、バッテリ352又はACアダプタ358からの電力によって動作する。電圧レギュレータモジュール356は、バッテリ352からの電力又は外部電源として接続されるACアダプタ358からの電力を用いて、モバイルコンピュータ12の各コンポーネントへ供給すべき電力を生成する。電圧レギュレータモジュール356はシステムコントローラ302内のプロセッサに接続される。
【0025】
[ボタンマネージャ410]
ボタンマネージャ410による5ボタンキー202の機能を変更する動作を説明する。実施形態では、ボタンマネージャ410は、5ボタンキー202の中のカーソル移動キー(アップキー202a、ライトキー202b、ダウンキー202c、レフトキー202d)の機能を変更し、エンターキー202eの機能は変更しないが、エンターキー202eも含めた5つのキーの機能を変更してもよい。
【0026】
ボタンマネージャ410は任意のタイミングで起動される。ボタンマネージャ410が起動されると、EC/KBC344の動作モードが切り替えられる。EC/KBC344の動作モードは第1モードであるノーマルキーモード(通常キーモード)と第2モードであるスペシャルキーモード(特殊キーモード)とを備え、モバイルコンピュータ12の電源がオンされると、初期状態としてはノーマルキーモードで動作するように設定されている。ボタンマネージャ410は、起動されると、EC/KBC344の動作モードをスペシャルキーモードに切り替える。そのため、ボタンマネージャ410は、EC/KBC344の動作モードをノーマルキーモードからスペシャルキーモードに切り替えたい時に起動される。そして、EC/KBC344の動作モードをスペシャルキーモードからノーマルキーモードに戻したい時に、ボタンマネージャ410の動作は終了される。例えば、ボタンマネージャ410は、OS404が起動されると、自動的に起動されるようにしても良い。また、ボタンマネージャ410は、起動も終了もユーザが希望するタイミングでユーザからの操作により実行されても良い。ボタンマネージャ410の起動、終了のためのユーザ操作は、起動、終了コマンドを入力することや、メニュー画面上で起動、終了アイコンを選択することを含む。
【0027】
図4はノーマルキーモードにおけるキーコード生成手段の一例を示す。キーボード18がUSB3.0コネクタ206を介してUSBコントローラ322に接続される。キーボード18はキーコードテーブルを含む。キーコードテーブルは、キーボード18内の各キーのキー番号とそれに割り当てられたキーコードとの対を記憶する。そのため、キーボード18は、操作されたキーに応じたキー番号に応じたキーコードをキーコードテーブルから読み出し、USBコントローラ322、ドライバ(キーボードドライバ)402を介してOS404に供給する。ドライバ402はキーボード18からのキーコードをOS404が解釈できる情報に変換する。キーボード18から出力されるキーコードを第1キーコードと称する。第1キーコードはキーに印字されている数字・文字・機能を示すものである。なお、USBコントローラ322はスペシャルキーモードでも第1キーコードを出力する。
【0028】
キーボード18と同様に、5ボタンキー202も操作されたキーに応じたキー番号を示す信号を出力する。5ボタンキー202からのキー番号を示す信号がEC/KBC344に供給される。USBコントローラ322と同様に、EC/KBC344も5つのキーのキー番号とそれに割り当てられたキーコードとの対を記憶するキーコードテーブルを含む。EC/KBC344のキーコードテーブルは、ノーマルキーモードで使用されるキーコードテーブル(以下、ノーマルキーコードテーブルと称する)と、スペシャルキーモードで使用されるキーコードテーブル(以下、スペシャルキーコードテーブルと称する)からなる。
【0029】
ノーマルキーコードテーブルは、5ボタンキー202の中の4つのカーソル移動キー202a~202dをそのままカーソル移動キーとして機能させ、5ボタンキー202の中のエンターキー202eもそのままエンターキーとして機能させるためのものである。ノーマルキーコードテーブルは、アップキー202aのキー番号を示す信号を受信すると、カーソルを上へ移動させるためのカーソルアップキーコードを発生し、ライトキー202bのキー番号を示す信号を受信すると、カーソルを右へ移動させるためのカーソルライトキーコードを発生し、ダウンキー202cのキー番号を示す信号を受信すると、カーソルを下へ移動させるためのカーソルダウンキーコードを発生し、レフトキー202dのキー番号を示す信号を受信すると、カーソルを左へ移動させるためのカーソルレフトキーコードを発生し、エンターキー202eのキー番号を示す信号を受信すると、エンターキーコードを発生する。ノーマルキーコードテーブルから出力されるキーコードを第2キーコードと称する。すなわち、第2キーコードは5ボタンキー202の中の4つのカーソル移動キー202a~202dをそのままカーソル移動キーとして機能させ、5ボタンキー202の中のエンターキー202eもそのままエンターキーとして機能させるためのものである。第2キーコードはドライバ402を介してOS404に供給される。
【0030】
ノーマルキーモードの場合、キーボード18の操作により発生される第1キーコードと5ボタンキーの操作により発生される第2キーコードがそのままアプリケーションプログラム406に送られる。アプリケーションプログラム406は、キーボード18の操作により発生される文字、数字、記号等を入力するとともに、5ボタンキー202の中のカーソル移動キーの操作により指示される方向にカーソルを移動させる。なお、アプリケーションプログラム406は、キーボード18の操作によってもカーソルを移動させることができる。
【0031】
図5はスペシャルキーモードにおけるキーコード生成手段の一例を示す。実施形態では、ボタンマネージャ410は、5ボタンキー202の中のカーソル移動キー(アップキー202a、ライトキー202b、ダウンキー202c、レフトキー202d)の機能を変更するので、以下では、エンターキー202eの説明は省略する。ノーマルキーモードの場合と同様に、USBコントローラ322は、キーボード18のキー操作に応じた第1キーコードをドライバ402を介してOS404に供給する。
【0032】
ボタンマネージャ410が起動されると、ボタンマネージャ410はEC/KBC344の動作モードをノーマルキーモードからスペシャルキーモードに切り替える。スペシャルキーモードでは、EC/KBC344はノーマルキーコードテーブルではなく、スペシャルキーコードテーブルを使用する。スペシャルキーコードテーブルは、4つのカーソル移動キー202a~202dをカーソル移動キー以外のキーあるいは複数のキーの組み合わせとして機能させるためのものである。
【0033】
スペシャルキーコードテーブルは、カーソル移動キー202a~202dのキー番号を示す信号を受信すると、ユニークキーコードを発生する。ユニークキーコードは、USBコントローラ322がOS406に供給する第1キーコードには含まれないキーコードである。例えば、スペシャルキーコードテーブルは、アップキー202aのキー番号を示す信号を受信すると、“78”を示すユニークキーコードを発生し、ライトキー202bのキー番号を示す信号を受信すると、“74“を示すユニークキーコードを発生し、ダウンキー202cのキー番号を示す信号を受信すると、”72“を示すユニークキーコードを発生し、レフトキー202dのキー番号を示す信号を受信すると、“55”を示すユニークキーコードを発生する。
【0034】
スペシャルキーコードテーブルから出力されるユニークキーコードを第3キーコードと称する。第3キーコードはドライバ402を介してOS404に供給される。
OS404は、キーボード18の操作により発生される第1キーコードと、カーソル移動キー202a~202dの操作により発生される第3キーコードをアプリケーションプログラム406に送るが、第3キーコードはアプリケーションプログラム406で無視される。OS404は、ドライバ402からの第1キーコードと第3キーコードを受信して、キーイベントを検出し、検出したキーイベントをボタンマネージャ410へ通知する。
【0035】
ボタンマネージャ410は検出したキーイベントが第1キーコードのキーイベントである場合、何の動作も行わない。ボタンマネージャ410は検出したキーイベントが第3キーコードのキーイベントである場合、第3キーコードを第4キーコードに変換する。ボタンマネージャ410は第4キーコードをOS404へ供給する。OS404は、ボタンマネージャ410から供給された第4キーコードをそのままアプリケーションプログラム406へ送る。
【0036】
第3キーコードから第4キーコードへの変換は、定義テーブルに従って行われる。定義テーブルはフラッシュメモリ326内に格納される。定義テーブルの一例を
図6に示す。
この定義テーブルは、カーソル移動キー202a~202dの操作態様の違いにより2通りの変換、すなわち2種類の第4キーコードを定義している。ここでは、操作態様は操作時間により区別され、700ミリ秒未満の短時間の操作(短押しとも称する)と、700ミリ秒以上の時間の操作(長押しとも称する)を含む。なお、操作態様の違いは2種類だけではなく、3種類以上でも良い。さらに、操作態様は操作時間に限らず、シングルクリック、ダブルクリック、トリプルクリック等の操作回数により区別しても良い。OS404は、操作態様もキーイベントとして検出可能であり、ボタンマネージャ410はOS404から通知されたキーイベントに基づき操作態様を認識することができ、操作態様に応じて異なる第4キーコードに変換することができる。
【0037】
上記した定義テーブルは、アップキー202aが短押しされると、“Alt”キーと“Ctrl”キーと“k”キーが押された場合と同じキーコードを第4キーコードとして発生し、ダウンキー202cが短押しされると、ダウンキーが押された場合と同じキーコードを第4キーコードとして発生し、レフトキー202dが短押しされると、“Shift”キーと“2”キーが押された場合と同じキーコードを第4キーコードとして発生し、ライトキー202bが短押しされると、“delete”キーが押された場合と同じキーコードを第4キーコードとして発生することを示す。
【0038】
また、定義テーブルは、アップキー202aが長押しされると、“Back space”キーが押された場合と同じキーコードを第4キーコードとして発生し、ダウンキー202cが長押しされると、“Shift”キーと“D”キーが押された場合と同じキーコードを第4キーコードとして発生し、レフトキー202dが長押しされると、“Space”キーが押された場合と同じキーコードを第4キーコードとして発生し、ライトキー202bが長押しされると、“0x20”キーが押された場合と同じキーコードを第4キーコードとして発生することを示す。
【0039】
なお、カーソル移動キー202a~202dの操作態様の違いにより2通りの変換を定義する場合、1つの変換ではノーマルキーモードの場合のキーコードを第4キーコードとして出力するように変換しても良い。この場合の定義テーブルを
図7に示す。すなわち、スペシャルキーモードにおいて、カーソル移動キー202a~202dは、短押しされた場合、カーソル移動キーとして機能され、長押しされた場合は、
図6の場合と同様にカーソル移動キー以外のキーあるいは複数のキー(組み合わせ)として機能される。
【0040】
スペシャルキーモードの場合、キーボード18の操作により発生される第1キーコードとカーソル移動キー202a~202dの操作により発生される第3キーコードがそのままアプリケーションプログラム406に送られ、第3キーコードはアプリケーションプログラム406で無視される。そのため、アプリケーションプログラム406は、キーボード18の操作のみにより発生される文字、数字、記号等を入力するとともに、キーボード18の操作によりカーソルを移動させる。
【0041】
一方、カーソル移動キー202a~202dの操作により発生される第3キーコードはボタンマネージャ410により第4キーコードに変換され、第4キーコードがOS404を介してアプリケーションプログラム406に送られる。アプリケーションプログラム406は5ボタンキーの操作により第4キーコードで指定される機能を実行する。
【0042】
このように、ボタンマネージャ410はOS404からのキーイベントに応じて特定キーコード(第3キーコード)を他のキーコード(第4キーコード)に変換するが、キーイベントの検出ではキーコードがキーボード18の操作により生成されたのか又はカーソル移動キー202a~202dの操作により生成されたのか検出できない。そのため、キーボード18の操作により特定キーコードが生成されると、キーボード18の操作により生成された特定キーコードも第4キーコードに変換されてしまう。これを防ぐために、スペシャルキーコードテーブルが記憶するユニークキーコードはキーボード18の操作により生成される第1キーコードに含まれないものとされている。すなわち、キーボード18の操作により生成されたキーコードはボタンマネージャ410で他のキーコードに変換されることがない。ユニークキーコードの例は、上記の数字に限らず、USBコントローラ322のキーコードテーブルで未使用のものなら何でも良い。
【0043】
[キーコード生成]
図8はスペシャルキーモードにおけるキーコード生成動作の一例を示すフローチャートである。ステップ702で、ボタンマネージャ410が起動されると、ステップ704で、ボタンマネージャ410は、EC/KBC344の動作モードをノーマルキーモードからスペシャルキーモードに切替える。
【0044】
ステップ706で、EC/KBC344の処理は、カーソル移動キー202a~202dのいずれかが操作されるまで待機する。カーソル移動キー202a~202dのいずれかが操作されると、ステップ708で、EC/KBC344はスペシャルキーコードテーブルに従い、第3キーコード(ユニークキーコード)を出力する。第3キーコードはドライバ402、OS404を介してアプリケーションプログラム406に送られるが、アプリケーションプログラム406で無視される。
【0045】
ステップ712で、OS404は、第3キーコードを受信して、キーイベントを検出し、検出したキーイベントをボタンマネージャ410へ通知する。検出したキーイベントが第3キーコードのキーイベントであれば、ステップ714で、ボタンマネージャ410は、スペシャルキーコードテーブルを参照して第3キーコードを第4キーコードに変換し、第4キーコードをOS404へ供給する。ステップ716で、OS404は、ボタンマネージャ410から供給された第4キーコードをそのままアプリケーションプログラム406へ送る。
【0046】
ステップ718で、ボタンマネージャ410が起動中であるか否かが判定され、起動中である場合、EC/KBC344の動作モードはスペシャルキーモードのままとする。EC/KBC344の処理は、ステップ706で、カーソル移動キー202a~202dのいずれかが操作されるまで待機する。ボタンマネージャ410が動作終了した場合、ステップ722で、EC/KBC344の動作モードがスペシャルキーモードからノーマルキーモードに変更される。
【0047】
第1実施形態によるモバイルコンピュータ12において、カーソル移動キー202a~202dがEC/KBC344に接続される。キーが操作されると、EC/KBC344は操作されたキーに応じたキーコードを生成し、ドライバ402経由でOS404にキーコードを伝え、アプリケーションプログラム406がキーコードを利用する。
【0048】
EC/KBC344の動作モードを切り替えるボタンマネージャ410が設けられる。EC/KBC344は、ノーマルキーモード(第1モード)では、第2キーコードを生成し、スペシャルキーモード(第2モード)では、第3キーコードを生成し、ボタンマネージャ410が定義テーブルに従って第3キーコードを第4キーコードに変換し、OS404経由で第4キーコードをアプリケーションプログラム406に伝える。第3キーコードは外付けのキーボード18のキー操作に応じて生成される第1キーコードに含まれていないキーコードからなる。このため、第3キーコードと第1キーコードがコンフリクトしない。
【0049】
ボタンマネージャ410というOS404上のソフトウェア階層で第3キーコードを第4キーコードに変換するので、EC/KBC344やドライバ402は変更する必要が無く、ソフトウェアの変更のみで簡単に実現することができる。
第4キーコードの内容は定義テーブルを書き換えることにより、ユーザが自由に変更することができる。定義テーブルの変更は、
図6、
図7に示すようなテキストファイルの書き換えによっても良いし、定義設定メニュー画面を表示させ、ユーザが画面上で定義を選択することによっても良い。
【0050】
ボタンマネージャ410が起動していない時は、EC/KBC344のモードは第1モードであり、ボタンマネージャ410が起動している時は、EC/KBC344の動作モードは第2モードである。ボタンマネージャ410はOS404の起動時に起動しても良いし、ユーザの希望するタイミングでユーザ操作により起動しても良い。これにより、ユーザが所望する時に、カーソル移動キー202a~202dの機能を変更することができ、モバイルコンピュータ12の限られたユーザインターフェースであるカーソル移動キー202a~202dの機能を多様化することができる。
【0051】
第2モードにおいて、キー操作の態様を変えることにより、複数の第4キーコードに変換してもよい。例えば、キーを短押しした場合と長押しした場合とで異なる第4コードを生成するようにすると、カーソル移動キーの機能をさらに多様化することができる。キー操作の態様はキーの操作回数で区別してもよい。さらに、キー操作の態様を変えることにより、複数の第4キーコードに変換する場合、1つの第4キーコードを第1モードで生成される第2キーコードとしてもよい。この場合、動作モードを切り替えることなく、カーソル移動キーの機能を切り替えることができる。
【0052】
また、第2モードにおいて生成される第4キーコードは、単一のキー操作に応じたキーコードに限らず、複数のキー操作に応じたキーコードでもよい。例えば、アプリケーションプログラム406が複数のキーコードの組み合わせで何かの機能を実現する場合、そのような複数のキーコードの組み合わせを出力するように割り当てても良い。さらに、第2モードにおいて、ボタンマネージャ410は第4キーコードの生成に加えて、任意の機能をトリガーする(例えば、特定のアプリケーションプログラムを起動する)信号を生成してもよい。
【0053】
[第2実施形態]
第1実施形態では、スペシャルキーモードにおいて、ボタンマネージャ410が第3キーコードを第4キーコードに変換したが、第2実施形態では、ドライバ402とOS404の間に設けたフィルタドライバ414がキーコードを変換する。
図9は、スペシャルキーモードにおける第2実施形態によるキーコード生成手段の一例を示す。ドライバ402とフィルタドライバ414はソフトウェアにより実現される。
【0054】
第2実施形態によれば、第1実施形態と同様に、ボタンマネージャ410が起動されると、ボタンマネージャ410はEC/KBC344の動作モードをノーマルキーモードからスペシャルキーモードに切り替える。スペシャルキーモードにおいて、EC/KBC344は5ボタンキー202のキー操作に応じた第3キーコード(ユニークキーコード)をドライバ402を介してフィルタドライバ414に供給する。
【0055】
フィルタドライバ414はキーボード18の操作により発生された第1キーコードはそのままOS404に送るが、5ボタンキー202の操作により発生された第3キーコードは第4キーコードに変換して、第4キーコードをOS404に送る。
これにより、第1実施形態と同様に、モバイルコンピュータ12の限られたユーザインターフェースであるカーソル移動キー202a~202dの機能を多様化することができる。
【0056】
なお、ドライバ402自身が第3キーコードを変換する機能を備え、フィルタドライバ414を省略してもよい。
第2実施形態は、フィルタドライバ414というソフトウェアで第3キーコードを第4キーコードに変換するので、ボタンマネージャ410というOS404上のソフトウェア階層でキーコードを変換することに比べてより低レベルの階層でキーコードを変換できる。
【0057】
本実施形態の処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【0058】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【0059】
12…エッジコンピュータ、14…ポート拡張アダプタ、16…ディスプレイ、18…キーボード、202…5ボタンキー、206…USB3.0コネクタ、207…USBType-Cコネクタ、402…ドライバ、404…OS、406…アプリケーションプログラム、410…ボタンマネージャ、414…フィルタドライバ。