説明

情報処理装置および表示画面制御方法

【課題】ネイティブAPおよび仮想マシンAPの画面切替えの操作性を向上させる。
【解決手段】ネイティブコードで記述されたネイティブAP103、105と、Java(登録商標)バイトコードで記述されたJavaAP109〜111とを実行可能な情報処理装置である。キーイベント処理部112は、現在のモードを管理する。また、管理している現在のモードに応じて、ネイティブAP103、105が生成する画像およびJavaAP109〜111が生成する画像各々の表示・非表示を決定する。さらに、キードライバ1021から受信したキーイベントの種別に従い、管理している現在のモードを変更する。グラフィックスドライバ1023は、表示の決定がされた画像を所定の順番で重畳して出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、OS(Operating System)上でVM(Virtual Machine)が稼動する情報処理装置において、OSが実行するAP(Application Program)の表示画面と、VMが実行するAPの表示画面とを制御する技術に関する。
【背景技術】
【0002】
ナビゲーション装置では、車載センサデータやGPS(Global Positioning System)データ等の車両情報取得等のための割り込み処理に対して、リアルタイム性を保証することが大切である。このため、μITRON、VxWorks(登録商標)といったRTOS(Real Time OS)上でナビゲーション用APを稼動させることが多い。
【0003】
ナビゲーション用APは、ネイティブコード(OSが直接実行できるプログラムコード)で記述する必要がある。しかし、RTOSのネイティブコードで記述されるAPは、開発ツールの充実度等の点において、Java(登録商標)等のOSに依存しないコードで記述されたAP(VM用APと呼ぶ)に比べて、開発が困難であることが多い。このため、RTOS上でVMを稼動させ、該VM上でRTOSに依存しないコードで記述されたAPを稼動させるナビゲーション装置が提案されている(特許文献1参照)。
【0004】
【特許文献1】特開2001-117750号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ナビゲーション装置において、RTOSは、通常、VMの表示画面がナビゲーション用APの表示画面上に重畳表示されるように、ナビゲーション用APおよびVMの表示画面をレイヤ管理している。このため、ナビゲーション装置上で、ネイティブコードで記述されたナビゲーション用APと、VM用APとを同時に稼動させた場合に、次のような問題が生じることがある。
【0006】
すなわち、ナビゲーション用APがRTOSにナビ画面を表示させている状態で、ユーザがVM用APに割り当てられた操作キーを用いて、VM用APのメニュー呼出し操作を行ったとする。これを受けて、VM用APは、VMを介してRTOSに、メニュー画面を表示させる。このメニュー画面は、RTOSのレイヤ管理により、ナビ画面上に重畳表示される。その後、ユーザがナビゲーション用APに割り当てられた操作キーを用いて、ナビゲーション用APの設定操作を行ったとする。通常、ユーザの操作キーに対する操作は、当該操作キーが割り当てられたAPにのみ通知される。このため、VM用APはナビゲーション用APの設定操作が行われたことを認識できない。その結果、VM用APは、VMを介してRTOSに、メニュー画面を表示させることを停止しない。したがって、ナビゲーション用APの設定操作が行われたにも関わらず、ナビ画面上にVM用APの画面が表示され続けてしまう。
【0007】
本発明は上記事情に鑑みてなされたものであり、本発明の目的は、ネイティブAPおよび仮想マシンAPの画面切替えの操作性を向上させることにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明では、情報処理装置のモードを管理し、現状のモードに応じてディスプレイに表示する画面の組合せを決定する。また、当該情報処理装置に接続される入力装置の各キーに割り当てられているAPを識別するためのフォーカスと呼ばれるフラグを導入する。そして、現状のモードに応じて各キーのフォーカスを決定し、いずれかのキー操作により発生したキーイベントを、当該キーのフォーカスが示すAPのタスクIDに送信する。なお、モードの遷移は、入力装置のキー操作により発生するキーイベント、あるいは、起動された所定のAPから通知によって行われる。
【0009】
例えば、本発明の情報処理装置は、ネイティブコードで記述されたアプリケーションプログラムであるネイティブAPと、仮想マシンコードで記述されたアプリケーションプログラムである仮想マシンAPとを実行可能な情報処理装置であって、
前記情報処理装置のモードを管理する状態管理手段と、
前記状態管理手段で管理されているモードに応じて、前記ネイティブAPが生成する画像および前記仮想マシンAPが生成する画像各々の表示・非表示を決定する変更処理手段と、
前記変更処理手段により表示の決定がされた画像を所定の順番で重畳して出力する出力手段と、を有し、
前記変更処理手段は、
前記情報処理装置に接続されている入力装置のキー操作により発生したキーイベントの種別に従い、前記状態管理手段で管理されているモードを変更する。
【発明の効果】
【0010】
本発明によれば、ネイティブAPおよび仮想マシンAPの画面切替えの操作性を向上させることができる。
【発明を実施するための最良の形態】
【0011】
以下、本発明の一実施形態を説明する。
【0012】
図1は本発明の一実施形態が適用された車載用ナビゲーションシステムの概略図である。図示するように、車載用ナビゲーションシステムは、ナビゲーション装置本体10と、操作パネル20と、LCD等のディスプレイ31と、携帯電話機等の無線端末32と、GPS受信機33と、車速センサ、方位センサ、ジャイロ等の車載センサ34と、チューナ35と、スピーカ36と、を有する。
【0013】
操作パネル20は、ユーザから各種操作を受け付け、受け付けた操作内容に応じた信号をナビゲーション装置本体10に送信する。
【0014】
図2は操作パネル20の概略図である。図示するように、操作パネル20は、ファンクションキースイッチ群201と、操作キースイッチ群202と、ファンクションキースイッチ群202と、現在地付近の地図を表示させるための現在地キースイッチ203と、テレビ放送をディスプレイ31に表示させるためのTVキースイッチ204と、JavaAPの操作メニューをディスプレイ31に表示させるためのJavaキースイッチ205と、を有する。
【0015】
ファンクションキースイッチ群201は、特定の機能の実行を指示するためのキースイッチのスイッチ群である。ここで、ファンクションキースイッチ群201の実行対象は、後述するモードによって異なる。
【0016】
操作キースイッチ群202は、カーソルの移動方向およびカーソルが指し示す項目の決定を指示するためのキースイッチのスイッチ群である。ここで、操作キースイッチ群202の操作対象も、ファンクションキースイッチ群201と同様に、後述するモードによって異なる。
【0017】
ナビゲーション装置本体10は、GPS受信機33から出力されるGPSデータや、車載センサ34から出力されるセンサデータを用いて現在位置を検出し、検出した現在位置の情報を基に地図表示に必要な地図メッシュデータを図示していない地図データベースから読み出す。そして、読み出した地図メッシュデータをグラフィックス展開して、そこに現在地を示すマークを重ねてディスプレイ31に表示する(現在位置表示処理)。また、ナビゲーション装置本体10は、現在地と所望の目的地とを結ぶ最適なルートを探索して、当該ルートを地図に重ねてディスプレイ31に表示したり、スピーカ37から音声ガイダンスを出力したりして、ユーザを目的地に誘導する(経路誘導処理)。また、ナビゲーション装置本体10は、無線端末32を介して、基地局40およびネットワーク(インターネット等)41経由で情報サーバ42にアクセスし、所望の情報(POI(Point Of Interrest)情報や、現在位置付近の交通情報、店舗情報や、音楽コンテンツ等)を入手する。そして、POI情報や現在位置付近の交通情報、店舗情報等をディスプレイ31に表示したり、音楽コンテンツを再生してスピーカ36か出力する(情報収集処理)。また、ナビゲーション装置本体10は、チューナ35に選局させたTV信号を処理して、映像および音声をディスプレイ31およびスピーカ36から出力する(TV受信処理)。また、ナビゲーション装置本体10は、上述の処理の他、様々な処理を行う中心的なユニットである。
【0018】
図3はナビゲーション装置本体10のソフトウエア構成図である。
【0019】
図示するように、ナビゲーション装置本体10は、μITRON、VxWorks(登録商標)等のRTOS101と、デバイスドライバ102と、ナビ機能ネイティブAP103と、ナビHMI(Human Machine Interface)104と、テレビ機能ネイティブAP105と、テレビHMI106と、JavaVM107と、Javaアプリケーションプラットフォーム108と、TV連携JavaAP109と、ナビ連携JavaAP110と、JavaAP111とを有する。
【0020】
ナビ機能ネイティブAP103およびテレビ機能ネイティブAP105は、いずれもRTOS101が直接実行できるネイティブコードで記述されたネイティブAPである。
【0021】
ナビ機能ネイティブAP103は、ナビゲーション装置としての機能(現在位置表示処理、経路誘導処理)を実現するためのプログラムである。テレビ機能ネイティブAP105は、テレビ受信機としての機能(TV受信処理)を実現するためプログラムである。
【0022】
ナビHMI104は、ナビ機能ネイティブAP103が提供する機能を利用するためのHMIである。操作パネル20に入力されたナビ機能ネイティブAP103に対する指示は、RTOS101およびデバイスドライバ102を介して、ナビHMI104に送られる。ナビHMI104は、受け取った指示をナビ機能ネイティブAP103に通知する。
【0023】
テレビHMI106は、テレビ機能ネイティブAP105が提供する機能を利用するためのHMIである。操作パネル20に入力されたテレビ機能ネイティブAP105に対する指示は、RTOS101およびデバイスドライバ102を介して、テレビHMI106に送られる。テレビHMI106は、受け取った指示をテレビ機能ネイティブAP105に通知する。
【0024】
JavaVM107は、RTOS101が直接実行できないJavaバイトコードで記述されたJavaAPを実行できるようにするためのプログラムであり、RTOS101が直接実行できるネイティブコードで記述されたネイティブAPである。JavaVM107には、AWT、ネイティブメソッドインタフェース、Javaバイトコードインタプリタ等のライブラリを有する。なお、AWTは、JavaにおいてGUIを実現するウィンドウツールキットである。フレーム、ボタン、プルダウンメニュー、テキストボックスなどのGUI部品を保持し、これらを組み合わせてアプリケーションを構成することができる。ネイティブメソッドインタフェースは、JavaAPからネイティブAPを呼び出したり、あるいは、ネイティブAPからJavaAPを呼び出すためのインタフェースである。Javaバイトコードインタプリタは、Javaバイトコードを解釈実行する。
【0025】
Javaアプリケーションプラットフォーム108は、JavaVM107が様々なJavaAPを実行できるようにするためのプラットフォームである。Javaアプリケーションプラットフォーム108としては、AMI-C、IIC等のコンソーシアムにおいてOSGi(Open Services Gateway Initiative)が策定した仕様をベースとするのもが提案されている。
【0026】
テレビ連携JavaAP109、ナビ連携JavaAP110およびJavaAP111は、いずれもJavaバイトコードで記述されたJavaAPである。
【0027】
テレビ連携JavaAP109は、テレビ機能ネイティブAP105と連携して処理を行う。具体的には、情報サーバ42にアクセスして番組表データを入手してユーザに提示し、所望の番組を選択させる。そして、選択された番組をテレビ機能ネイティブAP105に通知する。これを受けて、テレビ機能ネイティブAP105は、通知された番組を選局するようにチューナ35を制御し、チューナ35で受信されたテレビ放送信号を復調しディスプレイ31およびスピーカ36から出力する。
【0028】
ナビ連携JavaAP110は、ナビ機能ネイティブAP103と連携して処理を行う。具体的には、情報サーバ42にアクセスしてPOI情報を入手してユーザに提示し、所望のPOI情報を選択させる。そして、選択されたPOI情報をナビ機能ネイティブAP103に通知する。これを受けて、ナビ機能ネイティブAP103は、通知されたPOI情報により特定される地点を地点登録する。
【0029】
JavaAP111は、音楽コンテンツを再生するアプリケーションである。具体的には、情報サーバ42にアクセスして楽曲リストを入手してユーザに提示し、所望の音楽コンテンツを選択させる。そして、選択された音楽コンテンツを情報サーバ42からダウンロードし再生して、スピーカ36から出力する。
【0030】
デバイスドライバ102は、RTOS101がナビゲーション装置本体10の各部を制御したり、ナビゲーション装置本体10に接続された各装置と情報のやり取りを行ったりするためのドライバである。図示するように、キードライバ1021と、グラフィックスドライバ1023とを有する。
【0031】
キードライバ1021は、図4に示すように、操作パネル20のいずれかのキーが操作された場合に、当該キーに割り当てられているキーコード1026と、当該キーの状態(押圧状態および解放状態のいずれか)1027と、を有するイベントデータ1025を生成し、イベントキュー1022に格納する。また、キードライバ1021は、最も古くベントキュー1022に格納されたイベントデータ1022から順番に取り出して、キーイベント処理部112に送信する。
【0032】
グラフィックスドライバ1023は、図5に示すように、複数のレイヤ用バッファ10231〜10235と、レイヤスイッチ10236と、レイヤ合成処理部10237と、を有する。レイヤ用バッファ10231〜10235は、予め割り当てられたAP(もしくは機能)が生成するイメージをバッファリングするフレームバッファである。図5に示す例では、ナビ機能ネイティブAP103の地図表示機能が生成する地図イメージをバッファリングするための地図表示レイヤ用バッファ10231と、テレビ機能ネイティブAP105が生成するテレビ画面イメージをバッファリングするためのテレビ画面表示レイヤ用バッファ10232と、ナビ機能ネイティブAP103が生成するナビ画面イメージをバッファリングするためのナビ画面表示レイヤ用バッファ10233と、JavaVM107が生成するイメージ(Java画面イメージ)をバッファリングするためのJava画面表示レイヤ用バッファ10234と、後述するキーイベント処理部112が生成するファンクションキー割当て表示メニューの画面イメージをバッファリングするためのファンクションキー表示レイヤ用バッファ10235と、を有する。
【0033】
レイヤスイッチ10236は、レイヤ用バッファ10231〜10235各々にバッファリングされているイメージの出力をオン・オフする。なお、どのイメージの出力をオン・オフするかは、後述するキーイベント処理部112よりの指示に従う。
【0034】
レイヤ合成処理部10237は、レイヤスイッチ10236から出力された各イメージを、当該イメージをバッファリングしていたレイヤ用バッファ10231〜10235に付与されている順番に従って重ね合わせて合成する。そして、合成イメージをディスプレイ31に出力する。
【0035】
キーイベント処理部112は、キードライバ1021からイベントデータを受信し、該イベントデータをそのときのモードに応じて定まるイベント送信先に送信する。また、キーイベント処理部112は、受信したイベントデータに基づいて、モード変更の必要性を判断する。そして、変更が必要と判断したならば、モードを変更すると共に、変更後のモードに応じて定まるレイヤのみディスプレイ31に表示されるように、グラフィックスドライバ1023に指示を出力する。
【0036】
図6はキーイベント処理部112の概略図である。
【0037】
図示するように、キーイベント処理部112は、状態管理テーブル1121と、キーマップ管理テーブル1122と、モード定義管理テーブル1123と、イベント送信先管理テーブル1124と、ファンクションキー割当て表示管理テーブル1125と、テーブル設定部1126と、イベントデータ受信部1127と、フォーカス変更処理部1128と、タスク優先制御処理部1129と、ファンクションキー割当て表示処理部1130と、キーイベント送信部1131と、を有する。
【0038】
状態管理テーブル1121は、ナビゲーション装置本体10の現在の状態を管理するためのテーブルである。図7は状態管理テーブル1121を模式的に表した図である。図示するように、状態管理テーブル1121には、状態を管理する項目毎にレコード11210が設けられている。レコード11210は、管理する項目を登録するフィールド11211と、該項目の状態値を登録するフィールド11212と、を有する。
【0039】
本実施形態では、フィールド11211に登録する項目として、「モード」、「操作キーフォーカス」、「ファンクションキーフォーカス」、「地図表示レイヤ」、「テレビ画面レイヤ」、「ナビ画面レイヤ」、「Java画面レイヤ」、「ファンクションキー表示レイヤ」を用意している。
【0040】
ここで、項目「モード」は、アクティブ(稼動中)となっているアプリケーションによって定まるナビゲーション装置本体10の動作モードである。本実施形態では、モードとして、ナビ機能ネイティブAP103のみアクティブとなっている「ナビモード」、JavaAP111のみがアクティブとなっている「Javaモード」、テレビ機能ネィティブAP105のみがアクティブとなっている「TVモード」、ナビ機能ネイティブAP103およびナビ連携JavaAP110がアクティブとなっている「ナビ連携Javaモード」、そして、テレビ機能ネイティブAP105およびテレビ連携JavaAP109がアクティブとなっている「テレビ連携Javaモード」を設けている。したがって、項目「モード」のレコード11210のフィールド11212には、「ナビモード」、「Javaモード」、「TVモード」、「ナビ連携Javaモード」および「テレビ連携Javaモード」のいずれかが登録される。
【0041】
項目「操作キーフォーカス」は、操作キー群202に割当てられているAPを示すフラグである。上述したように、操作キー群202は、モードによって操作対象となるAPが異なる。本実施形態では、操作キーフォーカスとして、ナビ機能ネィティブAP103が割当てられている状態を示す「ナビ」、テレビ機能ネィティブAP105が割当てられている状態を示す「テレビ」、そして、JavaAP109〜111のいずれかが割当てられている状態を示す「Java」を設けている。したがって、項目「操作キーフォーカス」のレコード11210のフィールド11212には、「ナビ」、「テレビ」および「Java」のいずれかが登録される。
【0042】
項目「ファンクションキーフォーカス」は、ファンクションキー群201に割当てられているAPを示すフラグである。上述したように、ファンクションキー群201も、操作キー群202と同様、モードによって実行対象となるAPが異なる。本実施形態では、ファンクションキーフォーカスとして、ナビ機能ネィティブAP103が割当てられている状態を示す「ナビ」、テレビ機能ネィティブAP105が割当てられている状態を示す「テレビ」、そして、JavaAP109〜111のいずれかが割当てられている状態を示す「Java」を設けている。したがって、項目「ファンクションキーフォーカス」のレコード11210のフィールド11212には、「ナビ」、「テレビ」および「Java」のいずれかが登録される。
【0043】
項目「地図表示レイヤ」は、グラフィックスドライバ1023の地図表示レイヤ用バッファ10231に格納されているイメージデータ(ナビ機能ネイティブAP103が生成した地図データ)である。グラフィックスドライバ1023のレイヤスイッチ10236に該イメージデータを表示させる場合、項目「地図表示レイヤ」のレコード11210のフィールド11212に「表示」が登録され、表示させない場合、当該フィールド11212に「非表示」が登録される。
【0044】
項目「テレビ画面レイヤ」は、グラフィックスドライバ1023のテレビ画面レイヤ用バッファ10232に格納されているイメージデータ(テレビ機能ネイティブAP105が生成したテレビ画面データ)である。グラフィックスドライバ1023のレイヤスイッチ10236に該イメージデータを表示させる場合、項目「テレビ画面レイヤ」のレコード11210のフィールド11212に「表示」が登録され、表示させない場合、当該フィールド11212に「非表示」が登録される。
【0045】
項目「ナビ画面レイヤ」は、グラフィックスドライバ1023のナビ画面レイヤ用バッファ10233に格納されているイメージデータ(ナビ機能ネイティブAP103が生成した地図データ以外のナビ画面データ)である。グラフィックスドライバ1023のレイヤスイッチ10236に該イメージデータを表示させる場合、項目「ナビ画面レイヤ」のレコード11210のフィールド11212に「表示」が登録され、表示させない場合、当該フィールド11212に「非表示」が登録される。
【0046】
項目「Java画面レイヤ」は、グラフィックスドライバ1023のJava画面レイヤ用バッファ10234に格納されているイメージデータ(いずれかのJavaAP109〜111が生成したJava画面データ)である。グラフィックスドライバ1023のレイヤスイッチ10236に該イメージデータを表示させる場合、項目「Java画面レイヤ」のレコード11210のフィールド11212に「表示」が登録され、表示させない場合、当該フィールド11212に「非表示」が登録される。
【0047】
項目「ファンクションキー表示レイヤ」は、グラフィックスドライバ1023のファンクションキー表示レイヤ用バッファ10235に格納されているイメージデータ(キーイベント処理部112が生成したファンクションキーのメニュー画面データ)である。グラフィックスドライバ1023のレイヤスイッチ10236に該イメージデータを表示させる場合、項目「ファンクションキー表示レイヤ」のレコード11210のフィールド11212に「表示」が登録され、表示させない場合、当該フィールド11212に「非表示」が登録される。
【0048】
キーマップ管理テーブル1122は、操作されたキーの種別、および、該操作されたキーにJavaAP109〜111が割当てられている場合にはJavaイベントを、イベントデータ1025のキーコード1026から決定するためのキーマップを管理するテーブルである。図8はキーマップ管理テーブル1122を模式的に表した図である。図示するように、キーマップ管理テーブル1122には、操作パネル20の各キースイッチに割当てられているキーコード毎にレコード11220が設けられている。レコード11220は、キーコードを登録するフィールド11221と、該キーコードが割当てられたキースイッチの名称を登録するフィールド11222と、該キーコードが割当てられたキースイッチのキー種別を登録するフィールド11223と、該キーコードが割当てたれたキースイッチにJavaAP109〜111が割当てられている場合に、当該キースイッチに割当てるJavaイベントを登録するフィールド11224と、を有する。
【0049】
本実施形態では、キー種別として、ファンクションキースイッチ群201のいずれかに属することを示す「ファンクションキー」、操作キースイッチ群202のいずれかに属することを示す「操作キー」、現在地付近の地図を表示させるための現在地キースイッチ203であることを示す「ナビキー」、テレビ放送をディスプレイ31に表示させるためのTVキースイッチ204であることを示す「テレビキー」、そして、JavaAP109〜111の操作メニューをディスプレイ31に表示させるためのJavaキースイッチ205であることを示す「Javaキー」を用意している(図2参照)。また、本実施形態では、Javaイベントとして、"java.awt.event.KeyEvent"クラスで定義されているイベントと同じものを用いている。
【0050】
モード定義管理テーブル1123は、各モードでのナビゲーション装置本体10の動作状態を定義するためのテーブルである。図9はモード定義管理テーブル1123を模式的に表した図である。図示するように、モード定義管理テーブル1123には、モード毎にレコード11230が設けられている。レコード11230は、モードを登録するフィールド11231と、該モードのときの操作キーフォーカスを登録するフィールド11232と、該モードのときのファンクションキーフォーカスを登録するフィールド11233と、該モードのときの地図表示レイヤの表示/非表示を登録するフィールド11234と、該モードのときのテレビ画面レイヤの表示/非表示を登録するフィールド11235と、該モードのときのナビ画面レイヤの表示/非表示を登録するフィールド11236と、該モードのときのJava画面レイヤの表示/非表示を登録するフィールド11237と該モードのときのファンクションキー表示レイヤの表示/非表示を登録するフィールド11238と、を有する。
【0051】
イベント送信先管理テーブル1124は、イベントデータ1025の送信先タスクIDおよびそのタスク優先度を管理するテーブルである。なお、送信先タスクはイベントを受信するためのイベントキューを持つ。イベント送信先管理テーブル1124において、タスクIDとは、RTOS101におけるタスクを管理するためにタスクに付与されるIDである。このタスクIDによって、イベントデータ1025の送信先が決定される。また、タスク優先度は、イベントデータ1025を優先的に送信すべきタスクの順位を示す情報である。数字が小さいものほど優先度が高くなる。図10はイベント送信先管理テーブル1124を模式的に表した図である。図示するように、イベント送信先管理テーブル1124には、タスク種別毎にレコード11240が設けられている。レコード11240は、タスク種別を登録するフィールド11241と、送信先のタスクIDを登録するフィールド11242と、高タスク優先度を登録するフィールド11243と、低タスク優先度を登録するフィールド11244と、を有する。
【0052】
タスク種別としては、ナビ機能ネイティブAP103が処理すべきことを示す「ナビ」、テレビ機能ネイティブAP105が処理すべきことを示す「テレビ」、そして、JavaAP109〜111が処理すべきことを示す「Java」がある。高タスク優先度とは、フィールド11241に登録されているタスクIDのタスク優先度を「高」に変更する場合に当該タスクに設定するタスク優先度であり、低タスク優先度とは、フィールド11241に登録されているタスクIDのタスク優先度を「低」に変更する場合に当該タスクに設定するタスク優先度である。
【0053】
ファンクションキー割当て表示管理テーブル1125は、モード毎に、ファンクションキーのメニュー画面データに表示する、ファンクションキースイッチ群202の各キースイッチの文字列データを管理するテーブルである。図11はファンクションキー割当て表示管理テーブル1125を模式的に表した図である。図示するように、ファンクションキー割当管理テーブル1125には、モード毎にレコード11250が設けられている。レコード11250は、モードを登録するフィールド11251と、ファンクションキーのメニュー画面データの表示時間を登録するフィールド11252と、ファンクションキースイッチ群201のキースイッチF1〜F6に対応付けて表示する文字列を登録するフィールド11253〜11258と、を有する。
【0054】
図6に戻って説明を続ける。テーブル設定部1126は、RTOS101を介してAPより受け付けた指示に従い各管理テーブル1121〜1125の内容を変更する。
【0055】
イベントデータ受信部1127は、キードライバ1021のイベントキュー1022からイベントデータ1025を取得する。フォーカス変更処理部1128は、イベントデータ受信部1127で受信したイベントデータ1025に従って状態管理テーブル1121の登録内容を変更する。タスク優先制御部処理部1129は、RTOS101で管理するタスクのタスク優先度を変更する。ファンクションキー割当て表示処理部1130は、イベントデータ受信部1127で受信したイベントデータ1025に従い、グラフィックドライバ1023のファンクションキー表示レイヤ用バッファに格納するファンクションキーのメニュー画面データ(イメージデータ)を更新する。
【0056】
図12はキーイベント処理部112の動作フローを説明するための図である。
【0057】
先ず、イベントデータ受信部1127は、キードライバ1021のイベントキュー1022に格納されたイベントデータ1025を順番に一つ読込む(S1001)。次に、イベントデータ受信部1127は、キーマップ管理テーブル1122を参照し、イベントキュー1022から読込んだイベントデータ1025のキーコード1026がフィールド11221に登録されているレコード11220を検索する。そして、検索したレコード11220のフィールド11223に登録されているキー種別を特定する(S1002)。
【0058】
それから、イベントデータ受信部1127は、特定したキー種別が「操作キー」であるか否かを調べる。「操作キー」ならば(S1003でYES)、S1021に進む。一方、「操作キー」でないならば(S1003でNO)、S1004に進む。
【0059】
S1004において、イベントデータ受信部1127は、特定したキー種別が「ファンクションキー」であるか否かを調べる。「ファンクションキー」ならば(S1004でYES)、S1031に進み、「ファンクションキー」でないならば(S1004でNO)S1005に進む。
【0060】
S1005において、イベントデータ受信部1127は、イベントキュー1022から読込んだイベントデータ1025の状態1027が「解放」であるか否かを調べる。状態1027が「解放」ならば(S1005でYES)、S1006に進み、「解放」でないならば(S1004でNO)、S1031に進む。
【0061】
S1006において、フォーカス変更処理部1128は、後述するフォーカス変更処理を行ってモードを変更する。次に、S1007において、タスク優先制御処理部1129は、後述するタスク優先制御を行ってタスク優先度を変更する。それから、S1008において、ファンクションキー割当て表示処理部1130は、後述するファンクションキー表示処理を行ってファンクションキーの割当て表示を行う。その後、S1031に進む。
【0062】
さて、S1021において、イベントデータ送信部1131は、状態管理テーブル1121にアクセスして、フィールド11211に項目「操作キーフォーカス」が登録されているレコード11210を検索し、検索したレコード11210のフィールド11212に登録されている操作キーフォーカスの状態値を取得する。次に、イベントデータ送信部1131は、イベント送信先管理テーブル1124にアクセスして、フィールド11241に、S1021で取得した操作キーフォーカスの状態値に対応するタスク種別が登録されているレコード11240を検索し、検索したレコード11240のフィールド11242に登録されている送信先タスクIDを取得する(S1022)。その後、S1023に進む。
【0063】
また、S1031において、イベントデータ送信部1131は、状態管理テーブル1121にアクセスして、フィールド11211に項目「ファンクションキーフォーカス」が登録されているレコード11210を検索し、検索したレコード11210のフィールド11212に登録されているファンクションキーフォーカスの状態値を取得する。次に、イベントデータ送信部1131は、イベント送信先管理テーブル1124にアクセスして、フィールド11241に、S10321で取得したファンクションキーフォーカスの状態値に対応するタスク種別が登録されているレコード11240を検索し、検索したレコード11240のフィールド11242に登録されている送信先タスクIDを取得する(S1032)。その後、S1023に進む。
【0064】
S1023において、イベントデータ送信部1131は、S1021、S1031で取得したキーフォーカスの状態値が「Java」であるか否かを調べる。キーフォーカスの状態値が「Java」の場合(S1023でYES)、イベントデータ送信部1131は、キーマップ管理テーブル1122にアクセスして、イベントキュー1022から読込んだイベントデータ1025のキーコード1026がフィールド11221に登録されているレコード11220を検索する。そして、該イベントデータ1025の状態1027に登録されている内容を、検索したレコード11220のフィールド11224に登録されているJavaイベントに変換する(S1024)。それから、S1025に進む。一方、キーフォーカスの状態値が「Java」でない場合(S1023でNO)は、直ちに、S1025に進む。
【0065】
S1025において、イベントデータ送信部1131は、イベントデータ1025を、RTOS101のS1022、S1032で取得した送信先タスクIDに送信する。その後、S1001に戻る。
【0066】
図13はフォーカス変更処理(図12のS1006)を説明するための図である。
【0067】
フォーカス変更処理部1128は、図12のS1002で特定したキー種別を調べる(S10061)。キー種別が「ナビキー」の場合はS10062に進み、「TVキー」の場合はS10063に進み、そして、「Javaキー」の場合はS10064に進む。
【0068】
S10062において、フォーカス変更処理部1128は、モード定義管理テーブル1123にアクセスし、フィールド11231に「ナビモード」が登録されているレコード11230を読み出す。その後、S10065に進む。
【0069】
また、S10063において、フォーカス変更処理部1128は、モード定義管理テーブル1123にアクセスし、フィールド11231に「TVモード」が登録されているレコード11230を読み出す。その後、S10065に進む。
【0070】
また、S10064において、フォーカス変更処理部1128は、モード定義管理テーブル1123にアクセスし、フィールド11231に「Javaモード」が登録されているレコード11230を読み出す。その後、S10065に進む。
【0071】
さて、S10065において、フォーカス変更処理部1128は、S10062〜S10064で読み出したレコード11230のフィールド11234〜11238に従い、表示するレイヤをグラフィックスドライバ1023に通知する。具体的には、「フィールド1124〜11238のうち「表示」が格納されているフィールドに対応するレイヤをグラフィックスドライバ1023に通知する。これを受けて、グラフィックスドライバ1023のレイヤスイッチ10236は、「表示」が通知されたレイヤに対応するバッファ10231〜10235をレイヤ合成処理部10237に接続する。
【0072】
最後に、フォーカス変更処理部1128は、状態管理テーブル1121に登録内容をS10062〜S10064で読み出したレコード11230の登録内容に変更する(S10066)。
【0073】
図14はタスク優先制御処理(図12のS1007)を説明するための図である。
【0074】
先ず、タスク優先制御部1129は、状態管理テーブル1121からファンクションキーフォーカスを取得する。そして、取得したファンクションキーフォーカスが「ナビ」であるか否かを調べる(S10071)。「ナビ」である場合(S10071でYES)、RTOS101で管理されているタスクのうち、タスク種別「ナビ」のタスクのタスク優先度を、イベント先管理テーブル1124のフィールド11241にタスク種別「ナビ」が登録されているレコード11240のフィールド1243に登録されているタスク優先度高に変更する(S10072)。一方、「ナビ」でない場合(S10072でNO)、RTOS101で管理されているタスクのうち、タスク種別「ナビ」のタスクのタスク優先度を、イベント先管理テーブル1124のフィールド11241にタスク種別「ナビ」が登録されているレコード11240のフィールド1244に登録されているタスク優先度低に変更する(S10073)。
【0075】
また、タスク優先制御部1129は、該取得したファンクションキーフォーカスが「TV」であるか否かを調べる(S10074)。「TV」である場合(S10074でYES)、RTOS101で管理されているタスクのうち、タスク種別「TV」のタスクのタスク優先度を、イベント先管理テーブル1124のフィールド11241にタスク種別「TV」が登録されているレコード11240のフィールド1243に登録されているタスク優先度高に変更する(S10075)。一方、「TV」でない場合(S10074でNO)、RTOS101で管理されているタスクのうち、タスク種別「TV」のタスクのタスク優先度を、イベント先管理テーブル1124のフィールド11241にタスク種別「TV」が登録されているレコード11240のフィールド1244に登録されているタスク優先度低に変更する(S10076)。
【0076】
また、タスク優先制御部1129は、該取得したファンクションキーフォーカスが「Java」であるか否かを調べる(S10077)。「Java」である場合(S10077でYES)、RTOS101で管理されているタスクのうち、タスク種別「Java」のタスクのタスク優先度を、イベント先管理テーブル1124のフィールド11241にタスク種別「Java」が登録されているレコード11240のフィールド1243に登録されているタスク優先度高に変更する(S10078)。一方、「Java」でない場合(S10077でNO)、RTOS101で管理されているタスクのうち、タスク種別「Java」のタスクのタスク優先度を、イベント先管理テーブル1124のフィールド11241にタスク種別「Java」が登録されているレコード11240のフィールド1244に登録されているタスク優先度低に変更する(S10079)。
【0077】
図15はファンクションキー表示処理(図12のS1008)を説明するための図である。
【0078】
先ず、ファンクションキー割当て表示処理部1130は、状態管理テーブル1121からモードを取得する。次に、ファンクションキー割当て表示管理テーブル1125にアクセスし、該取得したモードがフィールド11251に登録されているレコード11250を検索する(S10081)。
【0079】
次に、ファンクションキー割当て表示処理部1130は、検索したレコード11250のフィールド11253〜11258に登録されているファンクションキーF1〜F6の文字列データを用いて、ファンクションキー割当て表示メニューを生成する。そして、生成したメニュー(イメージデータ)をグラフィックスドライバ1023のファンクションキー表示レイヤ用バッファ10235に格納する(S10082)。
【0080】
それから、ファンクションキー割当て表示処理部1130は、グラフィックスドライバ1023のレイヤスイッチ10236を制御し、ファンクションキー表示レイヤ用バッファ10235をレイヤ合成処理部10237に接続する(S10083)。これにより、レイヤ合成処理部10237は、ファンクションキー表示レイヤ用バッファ10235に格納されているファンクションキー割当て表示メニューを、レイヤスイッチ10236により接続されている他のバッファ10231〜10234のイメージデータに重畳して、ディスプレイ31に画像を表示する。
【0081】
図16はモード「ナビモード」の場合におけるファンクションキー割当て表示の表示メニューの例を示す図である。図示するように、ディスプレイ31には、地図データ(地図表示レイヤ)310が表示され、その上に、「ナビモード」に対応する各ファンクションキーの文字列データが記載されたファンクションキー割当て表示メニュー311が表示される。
【0082】
図17はモード「Javaモード」の場合におけるファンクションキー割当て表示の表示メニューの例を示す図である。図示するように、ディスプレイ31には、地図データ(地図表示レイヤ)310が表示され、その上に、JavaAP(音楽再生アプリ)のメニュー画面(Java画面レイヤ)312と、「Javaモード」に対応する各ファンクションキーの文字列データが記載されたファンクションキー割当て表示の表示メニュー311とが表示される。
【0083】
図18はモード「TVモード」の場合におけるファンクションキー割当て表示の表示メニューの例を示す図である。図示するように、ディスプレイ31には、TV画面データ(テレビ画面レイヤ)313が表示され、その上に、「TVモード」に対応する各ファンクションキーの文字列データが記載されたファンクションキー割当て表示の表示メニュー311が表示される。
【0084】
図19はモード「ナビ連携Javaモード」の場合におけるファンクションキー割当て表示の表示メニューの例を示す図である。図示するように、ディスプレイ31には、地図データ(地図表示レイヤ)310が表示され、その上に、ナビ連携JavaAP(地点登録アプリ)のメニュー画面(Java画面レイヤ)314と、「ナビ連携Javaモード」に対応する各ファンクションキーの文字列データが記載されたファンクションキー割当て表示の表示メニュー311とが表示される。
【0085】
図20はモード「テレビ連携Javaモード」の場合におけるファンクションキー割当て表示の表示メニューの例を示す図である。図示するように、ディスプレイ31には、TV画面データ(テレビ画面レイヤ)313が表示され、その上に、テレビ連携JavaAP(番組表アプリ)のメニュー画面(Java画面レイヤ)315と、「テレビ連携Javaモード」に対応する各ファンクションキーの文字列データが記載されたファンクションキー割当て表示の表示メニュー311とが表示される。
【0086】
図15に戻って説明を続ける。さて、ファンクションキー割当て表示処理部1130は、ファンクションキー表示レイヤ用バッファ10235をレイヤ合成処理部10237に接続してから、S10081で検索したレコード11250のフィールド11252に登録されている表示時間を経過したならば、グラフィックスドライバ1023のレイヤスイッチ10236を制御し、ファンクションキー表示レイヤ用バッファ10235をレイヤ合成処理部10237から切断する(S10084)。これにより、レイヤ合成処理部10237は、ファンクションキー表示レイヤ用バッファ10235に格納されているファンクションキー割当て表示メニューのディスプレイ31への重畳表示を停止する。
【0087】
図21はキーイベント処理部112のテーブル設定部1126の動作フローを説明するための図である。なお、本実施形態において、テレビ連携JavaAP109およびナビ連携JavaAP110は、自身がアクティブ(稼動中)となった場合に、その旨をキーイベント処理部112に通知するものとする。
【0088】
さて、テーブル設定部1126は、テレビ連携JavaAP109から当該テレビ連携JavaAP109がアクティブになったことを通知されると(S1101でYES)、モード定義管理テーブル1123にアクセスし、フィールド11231に「テレビ連携Javaモード」が登録されているレコード11230を読み出す(S1103)。その後、S1105に進む。
【0089】
また、テーブル設定部1126は、ナビ連携JavaAP110から当該ナビ連携JavaAP110がアクティブになったことを通知されると(S1102でYES)、モード定義管理テーブル1123にアクセスし、フィールド11231に「ナビ連携Javaモード」が登録されているレコード11230を読み出す(S1104)。その後、S1105に進む。
【0090】
さて、S1105において、テーブル設定部1126は、S1103〜S1104で読み出したレコード11230のフィールド11234〜11238に従い、表示するレイヤをグラフィックスドライバ1023に通知する。具体的には、フィールド1124〜11238のうち「表示」が格納されているフィールドに対応するレイヤをグラフィックスドライバ1023に通知する。これを受けて、グラフィックスドライバ1023のレイヤスイッチ10236は、「表示」が通知されたレイヤに対応するバッファ10231〜10235をレイヤ合成処理部10237に接続する。
【0091】
最後に、テーブル設定部1126は、状態管理テーブル1121の登録内容をS1103〜S1104で読み出したレコード11230の登録内容に変更する(S1106)。
【0092】
上記構成のナビゲーション装置本体10は、例えば図22に示すような、CPU901と、メモリ902と、HDD等の外部記憶装置903と、CD-ROMやDVD-ROMやICカードなどの記憶媒体904からデータを読み取る読取装置905と、操作パネル20、ディスプレイ31、スピーカ36、GPS受信機33、車載センサ34、チューナ35および無線端末32に接続するためのインターフェース906と、これらの各装置を接続するバス907と、を備えた一般的なコンピュータシステムにおいて、CPU901がメモリ902上にロードされたプログラムを実行することで実現できる。このプログラムは、読取装置905を介して記憶媒体904から、あるいは、インターフェース906を介してネットワーク41から、外部記憶装置903にダウンロードされ、それから、メモリ902上にロードされてCPU901により実行されるようにしてもよい。あるいは、外部記憶装置903を経由せずに、メモリ902上に直接ロードされ、CPU901により実行されるようにしてもよい。
【0093】
以上、本発明の一実施形態について説明した。
【0094】
本実施形態では、キーイベント処理部112がナビゲーション装置本体10のモードを管理し、現状のモードに応じてディスプレイ31に表示するレイヤの組合せを決定するようにしている(図9参照)。ここで、モードの遷移は、所定のキーイベント(キー種別:ナビキー、テレビキー、Javaキー)の発生、あるいは、起動された所定のAP(テレビ連携JavaAP109、ナビ連携JavaAP110)から通知によって行われる。したがって、本実施形態によれば、ユーザのキー操作に応じて自動的にモードの設定を変更できるので、ナビ画面、テレビ画面およびJava画面間の画面切替えにおける操作性を向上させることができる。
【0095】
なお、本実施形態の上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、上記の実施形態では、VMを構築する技術としてJava技術を利用する場合について説明したが、本発明はこれに限定されるものではなく、その他のVM上で実行されるアプリケーションとネイティブアプリケーションの組み合わせであってもよい。また、OSとして、組み込み機器向けのRTOSを用いた場合を例にとり説明したが、いわゆる市販OSであってもかまわない。
【0096】
また、上記の実施形態ではナビゲーションシステムを例にとり説明したが、本発明は、OS上でVMが稼動する情報処理装置に広く適用できる。
【図面の簡単な説明】
【0097】
【図1】図1は本発明の一実施形態が適用された車載用ナビゲーションシステムの概略図である。
【図2】図2は操作パネル20の概略図である。
【図3】図3はナビゲーション装置本体10のソフトウエア構成図である。
【図4】図4はキードライバ1021を説明するための図である。
【図5】図5はグラフィックスドライバ1023を説明するための図である。
【図6】図6はキーイベント処理部112の概略図である。
【図7】図7は状態管理テーブル1121を模式的に表した図である。
【図8】図8はキーマップ管理テーブル1122を模式的に表した図である。
【図9】図9はモード定義管理テーブル1123を模式的に表した図である。
【図10】図10はイベント送信先管理テーブル1124を模式的に表した図である。
【図11】図11はファンクションキー割当て表示管理テーブル1125を模式的に表した図である。
【図12】図12はキーイベント処理部112の動作フローを説明するための図である。
【図13】図13はフォーカス変更処理(図12のS1006)を説明するための図である。
【図14】図14はタスク優先制御処理(図12のS1007)を説明するための図である。
【図15】図15はファンクションキー表示処理(図12のS1008)を説明するための図である。
【図16】図16はモード「ナビモード」の場合におけるファンクションキー割当て表示の表示メニューの例を示す図である。
【図17】図17はモード「Javaモード」の場合におけるファンクションキー割当て表示の表示メニューの例を示す図である。
【図18】図18はモード「TVモード」の場合におけるファンクションキー割当て表示の表示メニューの例を示す図である。
【図19】図19はモード「ナビ連携Javaモード」の場合におけるファンクションキー割当て表示の表示メニューの例を示す図である。
【図20】図20はモード「テレビ連携Javaモード」の場合におけるファンクションキー割当て表示の表示メニューの例を示す図である。
【図21】図21はキーイベント処理部112のテーブル設定部1126の動作フローを説明するための図である。
【図22】ナビゲーション装置本体10のハードウエア構成例を示す図である。
【符号の説明】
【0098】
10…ナビゲーション装置本体、20…操作パネル、31…ディスプレイ、32…無線端末、33…GPS受信機、34…車載センサ、35…チューナ、40…基地局、41…ネットワーク、42…情報サーバ、101…RTOS、102…デバイスドライバ、103…ナビ機能ネイティブAP、104…テレビ機能ネイティブAP、105…ナビHMI、106…テレビHMI、107…JavaVM、108…Javaアプリケーションプラットフォーム、109…TV連携JavaAP、110…ナビ連携JavaAP、111…JavaAP

【特許請求の範囲】
【請求項1】
ネイティブコードで記述されたアプリケーションプログラムであるネイティブAPと、仮想マシンコードで記述されたアプリケーションプログラムである仮想マシンAPとを実行可能な情報処理装置であって、
前記情報処理装置のモードを管理する状態管理手段と、
前記状態管理手段で管理されているモードに応じて、前記ネイティブAPが生成する画像および前記仮想マシンAPが生成する画像各々の表示・非表示を決定する変更処理手段と、
前記変更処理手段により表示の決定がされた画像を所定の順番で重畳して出力する出力手段と、を有し、
前記変更処理手段は、
前記情報処理装置に接続されている入力装置のキー操作により発生したキーイベントの種別に従い、前記状態管理手段で管理されているモードを変更すること
を特徴とする情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記仮想マシンAPからの通知に従い、前記状態管理手段で管理されているモードを変更する設定手段をさらに有すること
を特徴とする情報処理装置。
【請求項3】
請求項1又は2に記載の情報処理装置であって、
前記変更処理手段は、
前記状態管理手段で管理されているモードに応じて、前記情報処理装置に接続されている入力装置のキー操作により発生したキーイベントの送信先タスクを示すキーフォーカスを決定し、
前記情報処理装置は、
前記情報処理装置に接続されている入力装置のキー操作により発生したキーイベントを、前記変更処理手段により決定されたキーフォーカスにより特定される送信先タスクに送信する送信手段をさらに有すること
を特徴とする情報処理装置。
【請求項4】
請求項1乃至3のいずれか一項に記載の情報処理装置であって、
前記情報処理装置に接続されている入力装置のキー操作により発生したキーイベントの種別に従い、当該種別のイベントを処理するタスクのタスク優先度を高くする優先制御手段をさらに有すること
を特徴とする情報処理装置。
【請求項5】
請求項1乃至4のいずれか一項に記載の情報処理装置であって、
前記状態管理手段で管理されているモードに応じて、前記情報処理装置に接続されている入力装置の各キーの機能を表す文字列データを含むキー割当て表示メニューを生成する生成手段をさらに有し、
前記出力手段は、
前記生成手段が生成した前記キー割当て表示メニューの画像、および、前記変更処理手段により表示の決定がされた画像を、所定の順番で重畳して出力すること
を特徴とする情報処理装置。
【請求項6】
コンピュータで読取り可能なプログラムであって、
前記コンピュータは、
ネイティブコードで記述されたアプリケーションプログラムであるネイティブAPと、仮想マシンコードで記述されたアプリケーションプログラムである仮想マシンAPとを実行可能であり、
前記プログラムは、前記コンピュータを、
前記コンピュータのモードを管理する状態管理手段、
前記状態管理手段で管理されているモードに応じて、前記ネイティブAPが生成する画像および前記仮想マシンAPが生成する画像各々の表示・非表示を決定する変更処理手段、および、
前記変更処理手段により表示の決定がされた画像を所定の順番で重畳して出力する出力手段、として機能させ、
前記変更処理手段は、
前記情報処理装置に接続されている入力装置のキー操作により発生したキーイベントの種別に従い、前記状態管理手段で管理されているモードを変更すること
を特徴とするコンピュータで読取り可能なプログラム。
【請求項7】
ネイティブコードで記述されたアプリケーションプログラムであるネイティブAPと、仮想マシンコードで記述されたアプリケーションプログラムである仮想マシンAPとを実行可能な情報処理装置が、前記ネイティブAPが生成した画像および前記仮想マシンAPが生成した画像の表示を制御する表示画面制御方法であって、
前記情報処理装置の現在のモードを管理するステップと、
前記現在のモードに応じて、前記ネイティブAPが生成する画像および前記仮想マシンAPが生成する画像各々の表示・非表示を決定するステップと、
表示の決定がされた画像を所定の順番で重畳して出力するステップと、
前記情報処理装置に接続されている入力装置のキー操作により発生したキーイベントの種別に従い、前記現在のモードを変更するステップと、を行うこと
を特徴とする表示画面制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2007−86859(P2007−86859A)
【公開日】平成19年4月5日(2007.4.5)
【国際特許分類】
【出願番号】特願2005−271741(P2005−271741)
【出願日】平成17年9月20日(2005.9.20)
【出願人】(591132335)株式会社ザナヴィ・インフォマティクス (745)
【Fターム(参考)】