通信装置、通信システム及びユーザインタフェースを提供する方法
通信装置(200)は、使用時に、メインアプリケーション(276)及びユーザインタフェース(272、278)をサポートするように構成される処理リソース(202)を含む。装置は、データ記憶装置(214、280)と、使用時に、受信されたメッセージに応じて選択可能なユーザインタフェース・テンプレート(140)にアクセスするように構成されたユーザインタフェース・ホスト・エンティティ(272、278)とを更に含む。ユーザインタフェース・テンプレート(140)は、多数のユーザインタフェース要素の所定の表示(316)を含む。ユーザインタフェース(272、278)は、多数のユーザインタフェース要素の所定の表示のうち選択されたユーザインタフェース・テンプレートをユーザインタフェースの例示(342、344)に転換するように構成される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば多数のアプリケーションが共有使用するユーザインタフェースを有する種類の通信装置に関する。本発明は、更に、例えば多数のアプリケーションが共有するユーザインタフェースを含む第1のデバイスを有する種類の通信システムに関する。本発明は、例えば多数のアプリケーションが共有するユーザインタフェースを提供する種類の方法に関する。
【背景技術】
【0002】
携帯演算装置、例えばGPS(全地球測位システム)信号受信及び処理機能性を含むポータブルナビゲーションデバイス(PND)は周知であり、車載ナビゲーションシステム又は他の車両ナビゲーションシステムとして広く採用される。
【0003】
一般に、近頃のPNDは、プロセッサ、メモリ(揮発性及び不揮発性のうちの少なくとも一方、並びに一般的には双方)及びメモリ内に格納される地図データを含む。プロセッサ及びメモリは、ソフトウェアオペレーティングシステムが確立される実行環境を提供するように協働する。また、PNDの機能性を制御し且つ種々の他の機能を提供するように1つ以上のソフトウェアプログラムが更に提供されることは当然なことである。
【0004】
通常、これらのデバイスは、ユーザがデバイスと対話し且つデバイスを制御できるようにする1つ以上の入力インタフェースと、ユーザに情報を中継する1つ以上の出力インタフェースとを更に含む。出力インタフェースの例示的な例には、視覚表示装置及び可聴出力用スピーカが含まれる。入力インタフェースの例示的な例には、オン/オフ動作又はデバイスの他の特徴を制御する1つ以上の物理ボタン(ボタンは必ずしもデバイス自体上にある必要はなく、デバイスが車両に内蔵されている場合はハンドル上にあってもよい)及びユーザ音声を検出するマイクが含まれる。特定の一構成において、出力インタフェース表示装置は、ユーザがタッチすることでデバイスを操作するために使用される入力インタフェースを更に提供するタッチセンシティブディスプレイとして(又はタッチセンシティブオーバレイ等を使用して)構成されてもよい。
【0005】
多くの場合、この種のデバイスは、電力及びオプションとしてデータ信号をデバイスに送信し且つデバイスから受信するのに使用される1つ以上の物理コネクタインタフェース、並びにオプションとして、セルラ電気通信及び他の信号を介する通信、並びにデータネットワーク、例えばBluetooth、Wi−Fi、Wi−Max、GSM、UMTS等、あるいはコントローラエリアネットワーク(CAN)又はメディアオリエンテッドシステムトランスポート(MOST)ネットワーク等の自動車ネットワークを可能にする1つ以上の無線送受信装置を含む。
【0006】
この種のナビゲーションデバイスは、場所データを含む衛星放送信号を受信し、その後デバイスの現在地を判定するように処理するのに使用されるGPSアンテナを更に含む。
【0007】
ナビゲーションデバイスは、現在の角度及び直線加速度、また、GPS信号から取得する場所情報に関連して速さ及びデバイスの相対的な変位、従って搭載される車両を判定するように処理される信号を生成する電子ジャイロスコープ及び加速度計を更に含んでもよい。通常、そのような機能は車載ナビゲーションシステムに提供されるのが最も一般的であるが、そうすることが得策である場合にはPNDに提供されてもよい。
【0008】
そのようなナビゲーションデバイスの有用性は、主に、第1の場所(一般に、出発地又は現在地)と第2の場所(一般に、目的地)との間の経路を判定する機能にある。デバイスのユーザは、多種多様な種々の方法、例えば郵便番号、街路名及び戸番、以前に格納した「公知の」目的地(例えば有名な場所、公共の場所(運動場又は水泳プール等)、あるいは他の地点情報)、並びにお気に入りの目的地又は最近訪れた目的地のいずれかにより、これらの場所を入力する。
【0009】
一般に、PNDは、地図データから出発地住所の場所と目的地住所の場所との間の「最善」又は「最適な」経路を算出するソフトウェアにより使用可能になる。「最善」又は「最適な」経路は、所定の基準に基づいて判定され、必ずしも最速又は最短経路である必要はない。運転者を案内する経路の選択は非常に複雑であり、選択経路は、既存の交通予測される交通、動的に及び/又は無線で受信される交通、道路情報、道路速度に関する履歴情報、並びに道路の選択を判定する要因に対する運転者自身の好み(例えば運転者は、経路は高速道路又は有料道路を含んではならないと規定する)を考慮する。
【0010】
更にデバイスは、道路状況及び交通状況を継続的に監視し、状況変化により、残りの行程がなされる経路の変更を提案するか又は選択する。種々の技術(例えば、移動電話データ交換、固定カメラ、GPS車両追跡)に基づくリアルタイム交通監視システムは、交通遅延を識別し、その情報を通知システムに供給するために使用されている。
【0011】
この種のPNDは、一般に、車両のダッシュボード又はワイドスクリーン上に搭載されるが、車両ラジオの内蔵コンピュータの一部又は実際は車両自体の制御システムの一部として形成されてもよい。ナビゲーションデバイスは、例えばPDA(ポータブルデジタルアシスタント)、メディアプレーヤ、移動電話等のハンドヘルドシステムの一部であってもよい。これらの場合、ハンドヘルドシステムの標準的な機能性は、経路算出及び算出経路に沿うナビゲーションの双方を実行するデバイス上のソフトウェアを設置することで拡張される。
【0012】
経路が算出されると、ユーザは、ナビゲーションデバイスと対話して、必要に応じて提案経路のリストから所望の算出経路を選択する。オプションとして、ユーザは、例えばある特定の経路、道路、場所又は基準が特定の行程に対して回避される必要があるか又は必須であると規定することにより、経路選択処理に介入するか又は経路選択処理を案内してもよい。PNDの経路算出面は1つの主機能を形成し、そのような経路に沿うナビゲーションは別の主機能である。
【0013】
算出経路に沿うナビゲーションの間、一般に、そのようなPNDは、選択経路に沿ってユーザをその経路の終点、即ち所望の目的地に案内する視覚命令及び/又は可聴命令を提供する。また、PNDは、ナビゲーションの間地図情報を画面上に表示するのが一般的である。そのような情報は、表示される地図情報がデバイスの現在地及びデバイスが車載ナビゲーションに使用される場合にはユーザの現在地又はユーザの車両の現在地を示すように画面上で規則的にアップグレードされる。
【0014】
画面上に表示されるアイコンは、一般に、デバイスの現在地を示し且つデバイスの現在地の近傍において現在の道路及び周囲の道路の地図情報と共に中央に置かれ、他の地図機能も表示される。また、ナビゲーション情報は、オプションとして上下のステータスバーに表示されるか又は表示される地図情報の片側に表示されてもよい。ナビゲーション情報の例には、ユーザが走行する必要がある現在の道路から次の道路変更への距離が含まれ、場合によってはその進路変更の特性は、右折又は左折等、特定の種類の進路変更を示唆する更なるアイコンで示される。更にナビゲーション機能は、経路に沿ってユーザを案内するのに使用される可聴命令の内容、継続時間及びタイミングを判定する。理解されるように、「100m先で左折」等の簡単な命令は、かなりの処理及び分析を要する。上述のように、デバイスとのユーザ対話は、タッチスクリーンによってでもよく、更に又はあるいはリモートコントロールに搭載されるステアリングコラム、音声起動又は任意の他の適切な方法によってでもよい。
【0015】
ナビゲーションの間にユーザが事前算出経路から逸れる場合(偶然に又は意図的に)、別の経路がより得策であるとリアルタイム交通状況が要求し且つそのような状況を自動的に認識するようにデバイスが適切に使用可能にされる場合又はユーザが任意の理由で能動的にデバイスに経路を再算出させる場合、デバイスにより提供される更なる重要な機能は自動経路再算出である。
【0016】
ユーザが規定する基準で経路を算出できることも周知である。例えばユーザは、デバイスにより景色のよい経路が算出されることを好むか、あるいは交通渋滞が広がる可能性が高いか、広がることが予想されるか又は現在広がっている全ての道路を回避することを要求する。次に、デバイスソフトウェアは種々の経路を算出し、例えば景勝であるとしてタグ付けされる地点情報(POIとして周知である)を経路に沿って最も多く含む経路をより有利に評価するか、あるいは特定の道路上で広がっている交通状況を示す格納情報を使用することにより、考慮される可能性の高い渋滞又は遅延のレベルに関して算出ルートを整理する。他のPOIに基づく経路算出及び交通情報に基づく経路算出、並びにナビゲーション基準が更に考えられる。
【0017】
経路算出及びナビゲーション機能はPNDの全体的な有用性に対して重要であるが、デバイスを純粋に情報表示装置用に使用できる。即ち、デバイスの現在地に関連する地図情報のみが表示され、経路が全く算出されておらず、デバイスが現在全くナビゲーションしていない「フリードライビング」用に使用できる。多くの場合、そのような動作モードは、移動することを要求される経路をユーザが既に認識し且つナビゲーション支援を必要としない場合に適用可能である。
【0018】
上述のこの種のデバイス、例えばTomTom International B.V.が製造及び供給する920 GOモデルは、ユーザがある位置から別の位置に走行できるようにする信頼できる手段を提供する。そのようなデバイスは、ナビゲートしている目的地までの経路にユーザが精通していない場合に非常に有用である。
【0019】
上記で提案されたように、PNDは、主に、ナビゲーション関連機能及び/又は地図表示装置に対して使用されるが、PNDに応じてユーザの経験を向上させ且つ/又は隣接デバイスの制御を容易にするためにPNDを他の隣接電子デバイスに結合することが周知である。それにより、特にPND及び隣接デバイスが車両内に配置される場合に、ユーザの作業負荷及び注意散漫を減少させる。
【発明の概要】
【発明が解決しようとする課題】
【0020】
いくつかのアプリケーションの場合、PNDと外部デバイスとの対話は、外部デバイスが提供する機能性の詳細を規定する機能インタフェース定義によりサポートされる。インタフェース定義は、一般に、デバイス内のソフトウェア処理に関連する。しかし、インタフェース定義に従って且つ外部デバイスに関連して構造化されるアプリケーションプログラミングインタフェース(API)をサポートするために、外部デバイスの機能性の特定の知識はPNDのメインアプリケーションに組み込まれる必要がある。
【0021】
従って、APIの新バージョンがリリースされる際、例えば外部デバイスがアップグレードされるか又は新モデルがリリースされる際、PNDのメインアプリケーションを維持する必要がある。
【0022】
その結果、サードパーティデバイスの使用に関連する種々のインタフェースの最新サポートを確保する負担は、PNDの製造業者に課せられる。PNDのメインアプリケーションのアップグレードのために外部デバイスと関連付けられるサードパーティの介入が必要な場合、論理的な問題が浮上する。また、PNDのメインアプリケーションのバージョンのリリースは、PNDと組み合わせて使用される外部デバイスを変更する結果、サードパーティが提供する変更のメインアプリケーションへの組込みの容易さに関連するか又は依存する。
【0023】
従って、ソフトウェア及びデバイスのリリースサイクルがサードパーティ機器のリリースサイクルに依存するのを回避することが望ましい。
【課題を解決するための手段】
【0024】
本発明の第1の態様によると、使用時に、メインアプリケーション及びユーザインタフェースをサポートするように構成された処理リソースと、データ格納部と、使用時に、受信されたメッセージに応じて選択可能な多数のユーザインタフェース要素の所定の表示形式を含むユーザインタフェース・テンプレートにアクセスするように構成されたユーザインタフェース・ホスト・エンティティとを含む通信装置が提供され、ユーザインタフェースは、多数のユーザインタフェース要素の所定の表示形式から選択されたユーザインタフェース・テンプレートをユーザインタフェースの具体例に転換するように構成される。
【0025】
処理リソースは、ユーザインタフェースを使用するために競合した要求を調停するように構成されてもよい。
【0026】
装置は、通信ネットワークを介してメインアプリケーションに対する外部アプリケーションとの通信をサポート可能な通信インタフェースを更に含んでもよく、処理リソースは、使用時に、外部アプリケーションに、通信ネットワークを介したユーザインタフェースへのリモートアクセスを提供するように構成されてもよい。
【0027】
メッセージは、通信インタフェースを介して受信されてもよい。メッセージは、例えば外部アプリケーションから通信インタフェースを介して受信されてもよい。
【0028】
多数のユーザインタフェース要素は、多数のユーザインタフェース・オブジェクトであってもよい。
【0029】
ユーザインタフェースの具体例は、多数のユーザインタフェース要素のレンダリングであってもよい。
【0030】
通信インタフェースは、使用時に、処理リソースの外部の機器に設けられてもよい外部アプリケーションと通信するように構成されてもよい。
【0031】
装置は、機器を含み且つ処理リソースとは分かれて収容されてもよい電子装置を更に備えてもよい。
【0032】
ユーザインタフェース要素はグラフィカルユーザインタフェース(GUI)・ウィジェットであってもよい。
【0033】
ユーザインタフェース・ホストは、表示されるテキスト等のユーザインタフェースの具体例をカスタマイズするためのデータを受信するように構成されてもよい。
【0034】
メインアプリケーションは、第1の動作タスクと関連付けられてもよく、外部アプリケーションは第2の動作タスクと関連付けられてもよい。第1の動作タスクと第2の動作タスクは異なっていてもよい。
【0035】
第1の動作タスクは第1の車両タスク、例えばテレマティック・タスクであってもよく、第2の動作タスクは第2の車両タスク、例えば車載娯楽、空調、室温調節又は温度測定装置等のセンサ測定装置であってもよい。
【0036】
ユーザインタフェースは、ローカルに格納された多数のユーザインタフェース・テンプレートのうちのユーザインタフェーステンプレートにアクセスするように構成されてもよい。通信インタフェースを介して受信されたメッセージは、ユーザインタフェースを識別してもよく、ユーザインタフェース・テンプレートを選択するように構成してもよい。
【0037】
ユーザインタフェースは、使用時に、ユーザインタフェース・テンプレートのユーザインタフェース要素を限定する情報を受信するように構成されてもよい。
【0038】
多数のユーザインタフェース要素は定義可能な制御要素を含んでもよい。
【0039】
多数のユーザインタフェース要素は定義可能なラベル要素を含んでもよい。
【0040】
ユーザインタフェースは、多数のユーザインタフェース要素の素子のユーザインタフェースの具体例とのユーザ対話に応じてイベントデータを生成するように構成されてもよい。
【0041】
処理リソースは、外部アプリケーションによる受信のための通信インタフェースを介してイベントデータを通信するように構成されてもよい。
【0042】
装置は、ユーザインタフェースでのナビゲーション表示を受信するように構成される入力装置を更に備えてもよく、イベントデータはユーザインタフェースでのナビゲーション表示に対応してもよい。
【0043】
ユーザインタフェースはグラフィカルユーザインタフェースであってもよい。ユーザインタフェース・テンプレートはそれに関連付けられる所定のレイアウトを有してもよい。
【0044】
通信インタフェースは無線通信インタフェースであってもよい。
【0045】
入力装置は、例えばソフトキー、リモートコントロール及び/又は音声起動モジュールを提供するタッチスクリーンであってもよく、あるいは別の入力装置であってもよい。入力装置は、車両のステアリング機構、例えばステアリングコラム又はハンドルに結合されてもよい。
【0046】
本発明の第2の態様によると、本発明の第1の態様に対して上述されたような通信装置を具備するナビゲーション装置が提供される。
【0047】
ナビゲーション装置はポータブルナビゲーションデバイスであってもよい。
【0048】
本発明の第3の態様によると、通信装置を備える第1のデバイスと、外部アプリケーションをサポートする第2のデバイスとを備える通信システムが提供され、第1のデバイス及び第2のデバイスは、通信ネットワークを介して通信するように構成される。
【0049】
第1のデバイスはそれに関連付けられる第1の動作タスクを有してもよく、第2のデバイスはそれに関連付けられる第2の動作タスクを有してもよく、第1の動作タスクと第2の動作タスクとは異なっていてもよい。
【0050】
第1のデバイスはナビゲーションデバイスであってもよく、第2のデバイスは娯楽システムであってもよい。
【0051】
第2のデバイスは、空調又は室温調節コントローラ、あるいは周囲温度監視等、別の機能を提供する回路基板であってもよい。
【0052】
本発明の第4の態様によると、ユーザインタフェースを提供する方法が提供され、方法は、メインアプリケーション及びそのためのユーザインタフェースをサポートする工程と、メッセージを受信する工程と、受信されるメッセージに応じて多数のユーザインタフェース要素の所定の表示形式を含むユーザインタフェース・テンプレートを選択する工程と、多数のユーザインタフェース要素の所定の表示形式から選択されるユーザインタフェース・テンプレートをユーザに対するユーザインタフェースの具体例に転換することとを含む。
【0053】
方法は、通信インタフェースをサポートする工程と、通信ネットワークにおいて通信をサポートする工程と、通信ネットワークを介したユーザインタフェースへのリモートアクセスを、メインアプリケーションに対した外部アプリケーションに提供する工程とを更に含んでもよい。
【0054】
本発明の第5の態様によると、本発明の第4の態様に対して上述されたような方法をコンピュータに実行させるコンピュータプログラムコード手段を含むコンピュータプログラム要素が提供される。
【0055】
コンピュータプログラム要素は、コンピュータ可読媒体上で具現化されてもよい。
【発明の効果】
【0056】
これらの実施形態の利点は以下に示され、これらの実施形態の各々の更なる詳細及び特徴は、添付の従属請求項及び以下の詳細な説明の他のところで規定される。
【0057】
従って、メインアプリケーションの開発サイクルを外部アプリケーションの開発サイクルから分離できる装置、システム及び方法を提供することができる。その結果、メインアプリケーションの開発は外部アプリケーションの開発サイクルの完了に依存せず、提供されるユーザインタフェースは種々のアプリケーションに対して再利用できる。また、提供されるテンプレートは、テンプレートがデータファイルから形成されるため、実行時であっても後続の機会に容易にアップグレード及び/又は補足される。更に、メインアプリケーションを含むデバイスが減少した量のコードを保有するように開発されることにより、デバイスを簡略化し、製造コスト及び開発期間を減少させる。メインアプリケーションを含むデバイスが増加する外部デバイスと相互動作することを装置、システム及び方法が更に許可することにより、デバイスの汎用性を高め、ユーザにとって望ましくなる。提供されるユーザインタフェースは均一であり、上記示唆されたように、複数のデバイスに対して個別の開発努力を必要としない。ユーザインタフェース要素、例えばウィジェットは、各ウィジェット、例えばプロパティ、イベント及び/又はレイアウトの特徴のために拡張可能であり、その拡張性は、装置、方法及び/又はシステムを実現するために使用される通信プロトコルを変更する必要なく可能である。実際に、上記装置、方法及びシステムが最小プロトコルオーバヘッドで実現される結果、エンティティ間の通信における遅延時間は最少になる。更に、簡単且つ明確に規定されたテンプレートを提供することにより、メインアプリケーションを含むデバイスの開発中に必要とされるデバッギング及び誤りを減少させることができる。
【図面の簡単な説明】
【0058】
【図1】ナビゲーションデバイスにより使用可能な全地球測位システム(GPS)の例示的な部分を示す概略図である。
【図2】本発明の一実施形態を構成する通信システムを示す概略図である。
【図3】図3のナビゲーションデバイスの構成要素を示す概略図である。
【図4】図2のナビゲーションデバイスと組み合わせて、車両でオプションとして使用するドッキング装置を示す概略図である。
【図5】図3のナビゲーションデバイスが採用するアーキテクチャスタックを示す概略図である。
【図6】図2の通信システムをより詳細に示す概略図である。
【図7】図3のナビゲーションデバイスが使用するデータ構造を示す概略図である。
【図8】ポピュレートされないテンプレートと関連付けられる一画面を示す図である。
【図9】図3のナビゲーションデバイスと外部デバイスとの対話を示すメッセージシーケンス図である。
【図10】図8のメッセージのシーケンスに従ってナビゲーションデバイスが生成する表示の一画面を示す図である。
【図11】本発明の別の実施形態を構成する「画面」への層割り当てを示す概略図である。
【図12】図3のナビゲーションデバイスと多数の外部デバイスとの別の対話を示すメッセージシーケンス図である。
【図13】図8、図12及び図14のメッセージシーケンスに従ってポピュレートされるような図11の「画面」の層を示す概略図である。
【図14】図12のメッセージのシーケンスに従って、図3のナビゲーションデバイスと図12の外部デバイスのうちの1つとの更なる対話を示すメッセージシーケンス図である。
【発明を実施するための形態】
【0059】
次に、添付の図面を参照して、一例として本発明の少なくとも1つの実施形態を説明する。
【0060】
以下の説明中、同一の図中符号は同様の部分を示すために使用される。
【0061】
次に、特にPNDを参照して、本発明の実施形態を説明する。しかし、本発明の教示はPNDに限定されず、任意の種類の処理デバイス、例えば経路計画及びナビゲーション機能性を提供するように携帯型及び/又は移動型でナビゲーションソフトウェアを実行するように構成される任意の種類の処理デバイスに普遍的に適用可能である。従って、本明細書において、デバイスが、経路計画及びナビゲーションソフトウェアを実行するPND、自動車等の車両、あるいは実際にポータブルパーソナルコンピュータ(PC)、移動電話又はパーソナルデジタルアシスタント(PDA)として具体化されるかに関係なく、任意の種類の経路計画及びナビゲーションデバイスを(無制限に)含むことが意図されるナビゲーションデバイスを参照するということになる。
【0062】
また、本明細書における教示は、ユーザがある地点から別の地点への走行方法に関する命令を求めておらず、所定の場所の表示のみ提供されることを要求する状況においてであっても有用性を有することが以下の説明から明らかになるだろう。そのような状況において、ユーザが選択する「目的地」の場所は、ユーザが走行を開始したい対応する出発地の場所を有する必要はない。従って、「目的地」の場所、即ち実際には「目的地」を本明細書において任意に参照することは、経路の生成が必須であり、「目的地」への移動が行なわれる必要があり又は実際に目的地の存在が対応する出発地の場所を指定することを要求するという意味で解釈されるべきではない。
【0063】
上記条件を念頭において、図1の全地球測位システム(GPS)等は、種々の目的で使用される。一般に、GPSは、連続した位置、速度、時間及びいくつかの例において無数のユーザに対する方向情報を判定できる衛星無線を使用するナビゲーションシステムである。以前はNAVSTARとして周知であったGPSは、例示的に厳密な軌道で地球を周回する複数の衛星を組み込む。これらの厳密な軌道に基づいて、GPS衛星は、場所を任意の数の受信ユニットに中継できる。
【0064】
GPSシステムは、特にGPSデータを受信するように装備されるデバイスがGPS衛星信号に対する無線周波数の走査を開始する場合に実現される。GPS衛星から無線信号を受信すると、デバイスは、複数の異なる従来の方法のうちの1つを介してその衛星の厳密な場所を判定する。殆どの例において、デバイスは、少なくとも3つの異なる衛星信号を取得するまで信号に対する走査を継続する(尚、他の三角測量技術を使用して2つの信号のみで位置を判定することは一般的ではない)。幾何学的な三角測量を実現することにより、受信機は、3つの周知の位置を利用して、衛星に対する自身の2次元の位置を判定する。これは周知の方法で行なわれる。また、4つの衛星信号を取得することにより、受信デバイスは、周知の方法で同一の幾何学的な算出により3次元の位置を算出できる。位置データ及び速度データは、無数のユーザにより連続してリアルタイムでアップグレードされる。
【0065】
図1に示すように、GPSシステム100は、地球104を周回する複数の衛星102を含む。GPS受信機106は、複数の衛星102のうちの多くから拡散スペクトルGPS衛星データ信号108を受信する。拡散スペクトルデータ信号108は各衛星102から継続して送信され、送信される拡散スペクトルデータ信号108の各々は、データストリームを発信する特定の衛星102を識別する情報を含むデータストリームを含む。GPS受信機106は、一般に、2次元の位置を算出できるように、少なくとも3つの衛星102からの拡散スペクトルデータ信号108を必要とする。第4の拡散スペクトルデータ信号を受信することにより、GPS受信機106は、周知の技術を使用して3次元の位置を算出できる。
【0066】
図2を参照すると、ナビゲーションデバイス200は、第1の外部デバイス122、第2の外部デバイス124及び第3の外部デバイス126と通信できる。この例において、第1の外部デバイス122はFMラジオ等の車載娯楽システムであり、第2の外部デバイス124は空調システム等の室温調節システムの調節ユニットであり、第3の外部デバイス126は外部周囲温度算出ユニット等の車両のハードウェア要素の回路基板である。第1の外部デバイス122は、第2の通信リンク130及び第3の通信リンク132の各々を介してナビゲーションデバイス200に動作可能に結合される第1の無線通信リンク128、第2の外部デバイス124及び第3の外部デバイス126を介してナビゲーションデバイス200に動作可能に結合される。通信リンク128、130、132は、それぞれBluetoothリンクである。しかし、ナビゲーションデバイス200と第1の外部デバイス122、第2の外部デバイス124及び第3の外部デバイス126との間に各有線接続を含む他の通信技術が採用されてもよい。
【0067】
ナビゲーションデバイス200と外部デバイス122、124、126との間の通信リンクは、任意の適切な通信技術に従って確立される。この点において、任意の数の適切なデータ通信プロトコル、例えばTCP/IP階層プロトコルが採用されてもよい。更に移動デバイスは、他の通信規格、例えばIEEE802.11a/b/c/g/n規格のうちのいずれか1つを利用する。実際には、通信リンク128、130、132は、特定の通信技術に限定されない。要求に応じて、デジタル信号及びアナログ信号の双方は、通信リンク128、130、132を介して送信される。これらの信号は、通信技術対して望ましいような変調信号、暗号化信号及び/又は圧縮信号であってもよい。また、第1の外部デバイス122、第2の外部デバイス124、第3の外部デバイス126に結合されるナビゲーションデバイス200は、通信システム134を構成する。
【0068】
図3を参照すると、図3に対するナビゲーションデバイス200の以下の説明は、ナビゲーションデバイス200の全ての構成要素を含まず、多数の構成要素の例を示すのみであることが留意されるべきである。ナビゲーションデバイス200は、筐体(不図示)内に配置される。ナビゲーションデバイス200は、例えば入力装置204及び表示画面206等の表示装置に結合される上述のプロセッサ202を含む処理リソースを含む。本明細書では単一の入力装置204を参照するが、当業者であれば、入力装置204が、情報入力に利用されるキーボードデバイス、音声入力装置、タッチパネル及び/又は任意の他の周知の入力装置を含む任意の数の入力装置を示すことを理解するだろう。同様に、表示画面206は、例えば液晶ディスプレイ(LCD)等の任意の種類の表示画面を含んでもよい。
【0069】
一構成において、入力装置204、タッチパネル及び表示画面206のうちの1つの面は、ユーザが表示画面206一部分をタッチするだけで複数の表示選択肢のうちの1つを選択するか、あるいは複数の仮想ボタン又は「ソフト」ボタンのうちの1つを起動するように、タッチパネルを介して情報入力(直接入力、メニュー選択等を介して)及び情報表示の双方を可能にするタッチパッド又はタッチスクリーン入力250(図4)を含む内蔵入力装置及び表示装置を提供するように組み込まれる。この点において、プロセッサ202は、タッチスクリーンと関連して動作するグラフィカルユーザインタフェース(GUI)をサポートする。これについては、本明細書において後で説明する。
【0070】
ナビゲーションデバイス200において、プロセッサ202は、接続210を介して入力装置204に動作可能に結合され且つ入力装置204から入力情報を受信でき、出力接続212、213の各々を介して表示画面206のうちの少なくとも1つ及び出力装置208、例えばスピーカ等の可聴出力装置に動作可能に結合されて情報を出力する。出力装置208がナビゲーションデバイス200のユーザに対して可聴情報を生成できるため、更に入力音声コマンドを受信するマイク及びソフトウェアを入力装置204が含むことを同様に理解する必要がある。更にナビゲーションデバイス200は、任意の更なる入力装置及び/又は任意の更なる出力装置、例えばオーディオ入力/出力装置を含んでもよい。
【0071】
プロセッサ202は、接続216を介してメモリ214に動作可能に接続され、接続220を介して入力/出力(I/O)ポート218から情報を受信し且つI/Oポート218に情報を送出するように更に構成される。I/Oポート218は、ナビゲーションデバイス200の外側のI/O装置222に接続可能である。外部I/O装置222は、例えばイヤホン等の外部聞き取りデバイスを含むが、これに限定されない。この例において、I/O装置222は、音声起動動作、イヤホン又はヘッドホンへの接続、及び/あるいは移動電話への接続のために他の外部デバイスに有線又は無線接続されるが、I/O装置222への接続は、外部デバイス122、124、126のいずれかへの無線接続である。移動電話接続は、例えばナビゲーションデバイス200とインターネット又は任意の他のネットワークとのデータ接続を確立するため、及び/あるいは例えばインターネット又は任意の他のネットワークを介してサーバへの接続を確立するために使用される。
【0072】
図3は、接続226を介するプロセッサ202とアンテナ/受信機224との動作可能な接続を更に示す図である。アンテナ/受信機224は、例えばGPSアンテナ/受信機であってもよい。図中符号224で示すアンテナ及び受信機は図示するために概略的に組み合わされるが、アンテナ及び受信機は別個に配置される構成要素であってもよく、アンテナは、例えばGPSパッチアンテナ又はヘリカルアンテナであってもよいことが理解されるべきである。
【0073】
当然、1つ以上の電源(不図示)が図3に示す電子構成要素に従来の方法で電力を供給することは、当業者には理解されるだろう。当業者には理解されるように、図3に示す構成要素の種々の構成が考えられる。例えば図3に示す構成要素は、有線及び/又は無線接続等を介して互いに通信してもよい。従って、本明細書で説明されるナビゲーションデバイス200は、ポータブルナビゲーションデバイス200又はハンドヘルドナビゲーションデバイス200であってもよい。
【0074】
更に、図3のポータブルナビゲーションデバイス200又はハンドヘルドナビゲーションデバイス200は、自転車、モータバイク、自動車又は船舶等の車両に周知の方法で接続されるか、あるいは「ドッキングされる」。そのようなナビゲーションデバイス200は、ポータブルナビゲーション又はハンドヘルドナビゲーションに使用するためにドッキングされた場所から取り外し可能である。
【0075】
図4を参照すると、ナビゲーションデバイス200は、内蔵入力装置及び表示装置206、並びに図2の他の構成要素(内部GPS受信機224、マイクロプロセッサ202、電源(不図示)、メモリシステム214等を含むがそれらに限定されない)を含むユニットである。
【0076】
ナビゲーションデバイス200は、吸着カップ254を使用して、車両のダッシュボード/窓/等に固定されるアーム252上に置かれる。このアーム252は、ナビゲーションデバイス200がドッキングされるドッキングステーションの一例である。ナビゲーションデバイス200は、例えばナビゲーションデバイス200をアーム252にスナップ接続することにより、ドッキングステーションのアーム252にドッキングされるか又は接続される。ナビゲーションデバイス200は、アーム252上で回転可能である。ナビゲーションデバイス200とドッキングステーションとの接続を解除するために、例えばナビゲーションデバイス200上のボタン(不図示)が押下されてもよい。ナビゲーションデバイス200をドッキングステーションに結合し且つナビゲーションデバイス200をドッキングステーションから分離する他の同様の適切な構成は、当業者には周知である。
【0077】
図5を参照すると、プロセッサ202及びメモリ214は、ナビゲーションデバイス200の機能ハードウェア構成要素230とデバイスが実行するソフトウェアとのインタフェースとして機能するBIOS(基本入出力システム)232をサポートするように協働する。その後、プロセッサ202は、メモリ214からオペレーティングシステム234をロードし、アプリケーションソフトウェア236(上述の経路計画及びナビゲーション機能性の一部又は全てを実現する)が実行できる環境を提供する。アプリケーションソフトウェア236は、ナビゲーションデバイスの中核機能、例えば地図表示、経路計画、ナビゲーション機能及びそれに関連付けられる任意の他の機能をサポートする動作環境を提供する。
【0078】
図6を参照すると、組み合わされる表示装置及び入力装置、タッチスクリーン250は、ナビゲーションデバイス200のハードウェア230の部分として提供される。この例において、ハードウェア230はリモートコントロール260を更に含む。他の入力装置262、例えば音声認識入力ユニットが更に提供される。1つ以上の入力装置は、車両のステアリング機構、例えばハンドル又はステアリングコラム上に配設される。上述のように、オペレーティングシステム234は、ハードウェア230にサポートされ、ハードウェア230に対する多数のドライバ、例えばタッチスクリーン250の表示部分を駆動するビデオドライバ264、タッチスクリーン250のタッチセンサ入力部分を駆動するタッチスクリーンドライバ266、リモートコントロールドライバ268及び提供される任意の他の入力装置を駆動する任意の他の必要なドライバ270を提供する。
【0079】
ビデオドライバ264は、上述のGUIをサポートするオペレーティングシステム234のグラフィカルサブシステム272と通信できる。タッチスクリーンドライバ266、リモートコントロールドライバ268及び他のドライバ270は、ユーザからの入力ジェスチャに応答して入力装置250、260、262により生成される入力データの処理をサポートするオペレーティングシステム234の入力サブシステム274と通信できる。
【0080】
上述のように、オペレーティングシステム234は、タッチスクリーン250の表示部分によりレンダリング及び出力される画像又は「画面」を有するように図面コマンドを通信するグラフィカルサブシステム272と通信できるナビゲーションアプリケーション等のメインアプリケーション276を含むアプリケーションソフトウェア236をサポートする実行環境を提供する。また、メインアプリケーション276は、ユーザ入力ジェスチャと関連付けられるイベントデータを受信する入力サブシステム274と通信できる。
【0081】
アプリケーションソフトウェア236は、メモリ214に格納されるテンプレートデータのデータベース280にアクセスできるユーザインタフェースホスト278を更に含む。ユーザインタフェースホスト278は、画面アクセスネゴシエーションモジュール286と通信できるホスト処理論理284と通信できるテンプレート図面及びイベント処理モジュール282を含む。ユーザインタフェースホスト278は、画面アクセスネゴシエーションモジュール286を介してメインアプリケーション276と通信できる。ユーザインタフェースホスト278は、画面テンプレートに従って画面をレンダリングするために図面コマンドを通信するグラフィカルサブシステム272と通信できる。その詳細については、本明細書において後で説明する。更にユーザインタフェースホスト278は、ユーザ入力ジェスチャと関連付けられるイベントデータを受信するために入力サブシステム274と通信できる。
【0082】
ユーザインタフェースホスト278は、ホスト処理論理284を介して、オペレーティングシステム234によりサポートされる第1の通信プロトコルスタック288と更に通信できる。この例において、第1の通信プロトコルスタック288は第1のBluetoothプロトコルスタックであるが、別の通信技術が必要な場合に他のプロトコルスタックが採用されてもよいことは、当業者には理解されるだろう。実際に、必要な他の通信技術をサポートするため、第1のBluetoothプロトコルスタックに加え他のプロトコルスタックが提供されてもよい。また、Bluetoothスタックをサポートするトランシーバ(不図示)は、十分な能力で適切に提供され、データ通信のため所定数の外部クライアント122、124、126をサポートするように構成される。
【0083】
この例において、第1の通信リンク128は、第1の外部デバイス122と通信するために示される。しかし、この例において、Bluetoothプロトコルスタック288及び関連するハードウェアがそれぞれ第2の通信リンク130及び第3の通信リンク132を介して第2の外部デバイス124及び第3の外部デバイス126との通信をサポートできることは、当業者には理解されるだろう。
【0084】
第1の外部デバイス122を参照すると、第1の外部デバイス122はクライアントアプリケーションソフトウェア290をサポートする。この点において、クライアントアプリケーションソフトウェア290は、第1の外部デバイス122の動作目的、例えばFMチューナ(不図示)の制御専用のクライアントアプリケーション論理292を含む。クライアントアプリケーション論理292は、第2の通信プロトコルスタック296、例えば第2のBluetoothプロトコルスタックと通信できるユーザインタフェースクライアント論理294と通信できる。ナビゲーションデバイス200は、無線周波数(RF)媒体を介し、第1のBluetoothスタック288及び第2のBluetoothスタック296を使用して第1の外部デバイス122と通信でき、それにより第1の通信リンク128をサポートする。従って、この例において、パーソナルエリアネットワーク(PAN)は、ナビゲーションデバイス200と第1の外部デバイス122との通信のためにサポートされる。
【0085】
上述のように、メモリ214によりサポートされるデータベース280は、テンプレートデータ、特に多数のユーザインタフェース画面テンプレートを含む。この例において、ユーザインタフェース画面テンプレートは、以下のように構造化される。図7を参照すると、ユーザインタフェーステンプレート、例えば画面テンプレート定義140は、ナビゲーションデバイス200のGUIにより提示される1つ以上の「画面」が外部デバイス122と使用するのに適することを保証するため、ナビゲーションデバイス200の設計段階中に及び必要に応じて第1の外部デバイス122及び/又はクライアントアプリケーション論理292の製造業者に関連して判定される。
【0086】
画面テンプレート定義140は、少なくとも1つの制御テンプレート定義142と少なくとも1つのレイアウトテンプレート定義144とのセットを示す。画面が2つ以上の外部アプリケーションをサポートする可能性がある場合、いわゆるデバイスの「最大モード」状態及びデバイスの「最小モード」状態をサポートする画面テンプレート定義が提供される。しかし、ナビゲーションデバイス200と協働する単一のデバイスの場合、画面テンプレート定義140は、例えば以下のCode Fragment Iに示すようなXMLコードを含む。
<?xml version="1.0" ?>
<!? The screen DTD -->
<!DOCTYPE screen SYSTEM "T_template.dtd" >
<!-- The screen content -->
<screen>
<template source="template1_interface.xml" type="full" />
<layout source"template1_layout.xml" alt="0" />
</screen>
コードフラグメントI
この例において、画面テンプレート定義は、制御テンプレート定義及びレイアウトテンプレート定義を示す。制御テンプレート定義142は、ボタン、ラベル、画像、進捗バー、スライダ、チェックボックス、入力フィールド、無線ボタン、リスト制御及び任意の他の適切な制御タイプ又は多要素制御タイプを含む一組の制御タイプから構成される。当然、列挙される制御は、ユーザインタフェース要素、例えばGUIウィジェット等のユーザインタフェースウィジェットの例である。各制御タイプは、プロパティとそれに関連付けられるイベントとのセットをそれぞれ有する。この例において、2種類のプロパティ、「公開」プロパティ及び「保護」プロパティが存在する。公開プロパティが外部アプリケーション又はクライアントアプリケーションにより実行時に変更される一方、保護プロパティは画面テンプレート定義に関連するレイアウト定義により定義される。従って、保護プロパティは、大部分レイアウトに関連し、外部アプリケーション又はクライアントアプリケーションにより変更されない。この例においては説明しないが、親テンプレート定義及び子テンプレート定義が使用される。子テンプレート定義は、親定義から制御を継承でき、例えば子画面テンプレート定義に対するレイアウトテンプレート定義は、充填幾何学領域の詳細を含まず、レイアウトの詳細については親画面テンプレートから既に周知である。以下のコードフラグメントIIは、制御テンプレート定義142を構成するXMLコードの一例を提供する。
<?xml version="1.0" ?>
<!DOCTYPE template SYSTEM "T_interface.dtd" >
<template id="1" >
<!-- LABELS -->
<element class="label" id="1" />
<element class="label" id="2" />
<element class="label" id="3" />
<!-- BUTTONS -->
<element class="button" id="11" />
<element class="button" id="12" />
<element class="button" id="13" />
</template>
コードフラグメントII
レイアウトテンプレート定義144は、例えば制御テンプレート定義142で定義される各制御の色、位置及び大きさを特定するために使用される。各制御テンプレート定義は、複数のレイアウト、例えば異なる画面の向きに対応するように、横向き及び縦向き等、2つの異なるレイアウトを有する。以下のコードフラグメントIIIは、1つのレイアウト定義を構成するXMLコードの一例である。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE layout SYSTEM "T_layout.dtd" >
<!-- The layout definition -->
<layout>
<!-- Control ID 1 (label 1) -->
<control id="1" client="0" template_id="1">
<property name="top" value="2" />
<property name="left" value="2" />
<property name="width" value="320" />
<property name="height" value="20" />
<property name="level" value="100" />
<property name="text_class" value="ARIAL9FONT" />
<property name="text_halign" value="0" />
<property name="text_color" value="FFFFFF" />
</control>
<!-- Control ID 2 (label 2) -->
<control id="2" client="0" template_id="1">
<property name="top" value="2" />
<property name="left" value="30" />
<property name="width" value="290" />
<property name="height" value="30" />
<property name="level" value="100" />
<property name="text_class" value="ARIAL28FONT" />
<property name="text_halign" value="0" />
<property name="text_color" value="000000" />
</control>
<!-- Control ID 3 (label 3) -->
<control id="3" client="0" template_id="1">
<property name="top" value="70" />
<property name="left" value="30" />
<property name="width" value="290" />
<property name="height" value="30" />
<property name="level" value="100" />
<property name="text_class" value="ARIAL18FONT" />
<property name="text_halign" value="0" />
<property name="text_color" value="FFFFFF" />
</control>
<!-- Control ID 11 (button 1) -->
<control id="11" client="0" template_id="1">
<property name="top" value="210" />
<property name="left" value="10" />
<property name="width" value="65" />
<property name="height" value="20" />
<property name="level" value="100" />
<property name="text_class" value="ARIAL10FONT" />
<property name="text_halign" value="1" />
<property name="text_color" value="336699" />
<property name="corner_radius" value="0" />
</control>
<!-- Control ID 12 (button 2) -->
<control id="12" client="0" template_id="1">
<property name="top" value="47" />
<property name="left" value="85" />
<property name="width" value="65" />
<property name="height" value="20" />
<property name="level" value="100" />
<property name="text_class" value="ARIAL10FONT" />
<property name="text_halign" value="1" />
<property name="text_color" value="336699" />
<property name="corner_radius" value="0" />
</control>
<!-- Control ID 13 (button 3) -->
<control id="14" client="0" template_id="1">
<property name="top" value="131" />
<property name="left" value="235" />
<property name="width" value="65" />
<property name="height" value="20" />
<property name="level" value="100" />
<property name="text_class" value="ARIAL10FONT" />
<property name="text_halign" value="1" />
<property name="text_color" value="336699" />
<property name="corner_radius" value="0" />
</control>
</layout>
コードフラグメントIII
1つ以上の画面テンプレート定義を提供し及び/又はそれを第1の外部デバイス122の製造業者と整合させることにより、第1の外部デバイス122の機能性の知識がナビゲーションデバイス200の開発及び/又はアップグレードに必要とされないように、ナビゲーションデバイス200のユーザインタフェース機能性を第1の外部デバイス122のデバイス制御機能性から効果的に分離できる。同一の原理は、第2の外部デバイス124及び第3の外部デバイス126に対しても当てはまる。
【0087】
上記XMLサンプルコードは、画面出力構造300(図8)又は第1の領域302、第2の領域304及び第3の領域306を含むテンプレートに関連する。第1の領域302は第1のラベル308に対応でき、第2の領域304は、第2のラベル310及びこの例において美的分割線314により区切られる第3のラベル312に対応できる。第3の領域306は、この例において、3つの「ソフトボタン」、即ち第1のソフトボタン318及び第2のソフトボタン320を含む一対のソフトボタン316、並びに第3のソフトボタン322に対応できる。
【0088】
動作中、第1の外部デバイス122は、ナビゲーションデバイス200のGUIを使用することにより、ナビゲーションデバイス200のユーザが第1の外部デバイス122を制御できるように、ナビゲーションデバイス200と対話する。説明を簡潔且つ容易にするため、第2の外部デバイス124又は第3の外部デバイス126のナビゲーションデバイス200との相互動作は、同様の動作原理が当てはまるので最初に説明しない。しかし、ユーザインタフェースホスト278及び/又はユーザインタフェースクライアント論理294により提供される他の有用な機能を例示するため、3つの外部デバイスのうちの2つとナビゲーションデバイス200との相互動作については、本明細書において後で説明する。
【0089】
図9を参照すると、ホスト処理論理284により容易にされるユーザインタフェースホスト278とユーザインタフェースクライアント論理294との間のBluetooth通信プロトコル及び通信セッションに従って第1の外部デバイス122とナビゲーションデバイス200との間の第1の通信リンク128を確立した後、ユーザインタフェースクライアント論理294は、ユーザインタフェースホスト278により格納される多数の画面テンプレートの中から、上述の図8のテンプレートに対応するように第1の外部デバイス122の設計段階中に選択された所定の画面テンプレートを選択するようにSetTemplateメッセージ330を送出する。従って、SetPropertyメッセージは、関連するウィジェットテンプレート定義において示される1つ以上のウィジェットを限定するように機能することが分かる。制御/ウィジェットの公開プロパティが設定されない場合、制御/ウィジェットは非アクティブのままであり且つ表示されず、依然としてユーザに対して検出不可である。その結果、外部デバイスが画面テンプレートの一部分のみを使用することにより、既存のテンプレートの部分が使用されるためにいくつかの状況において専用テンプレートの必要性を除去する。
【0090】
その後、ユーザインタフェースクライアント論理294は、第1のラベル308が「Tuner」340という語を示すように構成するために第1のSetPropertyメッセージ332を送出する。次に、ユーザインタフェースクライアント論理294は、一対のソフトボタン316が、それぞれ、「Scan -」342及び「Scan +」344を示すように構成するために第2のSetPropertyメッセージ334を送出する。後続のSetPropertyメッセージ336も、第2のラベル310、第3のラベル312及び第3のソフトボタン322が、それぞれ、「101.6 FM」346、「Sky Radio」348及び「Volume」350を示すように構成するために送出される。
【0091】
その後、ユーザインタフェースクライアント論理294は、UpdateScreenメッセージ338を送出する。UpdateScreenメッセージ338に応答して、テンプレート図面及びイベント処理モジュール282は、ホスト処理論理284が受信する構成データを使用し、図10に示すのと同様の方法でタッチスクリーン250の表示部分でレンダリングするため、即ち提示するためにナビゲーションデバイス200のグラフィカルサブシステム272に通信される図面コマンドを生成する。
【0092】
ラベル及びソフトボタンをレンダリング又はインスタンス化することにより、上述のようにFMチューナである第1の外部デバイス122を制御する機会をユーザに提示する。その結果、提供されるユーザインタフェースにより、ユーザは、1つ以上のジェスチャを提供してFMチューナを制御できる。ジェスチャは、タッチスクリーン250のタッチセンサ入力部分、例えば又はリモートコントロール(不図示)を使用して提供される。従って、入力サブシステム274は、例えばタッチスクリーンのタッチセンサ入力部分からのイベントデータを待つ。
【0093】
例えばユーザが「Scan +」(第2の)ボタン320、344をタッチする場合、入力サブシステム274は、タッチスクリーンドライバ266からタッチイベントデータを受信する。これは、ホスト処理論理284が受信するタッチイベントとしてその後入力サブシステム274により処理及び通信され、例えばボタンが押下されたというイベントの特性を詳述するRaiseEventメッセージ339として第1の通信リンク128を介してユーザインタフェースクライアント論理294に通信される。RaiseEventメッセージ339を受信すると、ユーザインタフェースクライアント論理294は、例えば関連するようにボタンが事前に特定されている機能を識別するRaiseEventメッセージを解釈し、順方向にFMチューナを走査するように第1の外部デバイス122のハードウェアを操作するクライアントアプリケーション論理292に内部制御メッセージを伝達する。
【0094】
当然、ユーザインタフェースクライアント論理294からの他の応答は、例えばユーザが「volume」350(第3の)ボタン322を選択するのに応答して提供される。そのような一実施例において、ユーザインタフェースクライアント論理294は、別のユーザインタフェース画面テンプレート、例えばユーザが所望する音量変化を通信するイベントデータを提供できるスライダ(不図示)を含むユーザインタフェース画面テンプレートに従って新しい画面を提示するようユーザインタフェースホスト278に要求するために、図9に対して上述のテンプレート選択及び応答処理を繰り返す。
【0095】
明らかなように、この例において、ナビゲーションデバイス200の少なくともユーザインタフェースの一部の使用に対する要求は、一般に、ナビゲーションデバイス200のユーザインタフェースホスト278により処理され、第1の外部デバイス122のユーザインタフェースクライアント論理294がナビゲーションデバイス200のGUIにより提示されるコンテンツの制御率に影響を及ぼせるようにメッセージを伝達する。この点において、外部デバイスにより制御テンプレートの各制御に割り当てられる情報コンテンツの重要性は、選択されるか又はユーザとタッチスクリーン250との対話を介してコマンドが発行される場合、ユーザインタフェースホスト278及び/又はメインアプリケーション276、あるいは実際にナビゲーションデバイス200の任意の部分により認識されないか又は使用されない。GUIの外部のアプリケーションに提供されるフィードバックの重要性は、同様に、GUIと全く関連しないか又はGUIには役に立たない。GUIへのリモートアクセスは、第1の外部デバイス122(及びそのようなリモートアクセスに適当な任意の他のもの)に容易に提供され、外部デバイスを制御するデータを有さないGUI関連情報は、ナビゲーションデバイス200のユーザインタフェースと外部デバイスとの間で容易に伝達され、GUI関連データはGUIイベントデータを含む。従って、ユーザによる応答は、ナビゲーションデバイス200からの任意の制御メッセージ又は命令を発行することなく、ユーザインタフェースホスト278によりユーザインタフェースクライアント論理294に通信され、情報は、GUIと外部アプリケーションとの間でのみ中継される。
【0096】
図11を参照すると、別の実施形態において、第2の外部デバイス124は、第1の外部デバイス122に加えてナビゲーションデバイス200と通信し、ナビゲーションデバイス200のGUIを使用する機会を競っている。従って、上述のように、画面テンプレート定義140は、各々が異なる外部デバイスに割り当てられる画面の個別「スライス」を構成する多数の制御テンプレート定義142を含む。この点において、動作モード状態、即ち前の実施形態に関連して既に上述された最大モード状態及び最小モード状態は、各スライスと関連付けられる。最大モード状態は、メインアプリケーション276、第1の外部デバイス122又は第2の外部デバイス124のうちの1つに優先的に割り当てられる。その詳細については、本明細書において後で説明する。しかし、メインアプリケーション276が、第1の外部デバイス122及び第2の外部デバイス124よりもユーザインタフェースホスト278を優先すると仮定すると、メインアプリケーション276は最大モード状態に割り当てられる。従って、メインアプリケーション276は、ナビゲーションデバイス200のGUIが使用するテンプレート画面を選択することが許可される。第1のスライス360は、メインアプリケーション276が使用するように確保された第1の制御テンプレート定義を有する。これに対して、ユーザインタフェースホスト278は、スライス及び画面テンプレート定義140の関連制御テンプレート定義を第1の外部デバイス122及び第2の外部デバイス124に割り当てる。従って、ユーザインタフェースホスト278は、第2のスライス362及び第2の制御テンプレート定義を第2の外部デバイス124に割り当て、且つ第3のスライス364及び第3の制御テンプレート定義を第1の外部デバイス122に割り当てる。
【0097】
上記方法を実現するため、メインアプリケーション276は、画面アクセスネゴシエーションモジュール286及び内部通信リンクを介してホスト処理論理284と通信し(図12)、SetTemplateメッセージ280を送出して画面テンプレート定義140を選択し、第1の制御テンプレート定義及び第1のスライス360がナビゲーション機能に対してユーザとインタフェースするために使用されることを認識するように事前設定される。画面テンプレート定義140がメインアプリケーション276により選択されると、テンプレート図面及びイベント処理モジュール282は、画面テンプレート定義140及び関連する第1の制御テンプレート、並びにデータベース280からのレイアウト定義を検索する282。その後、ホスト処理論理284は、第3のスライス364及び第3の制御テンプレート定義を第1の外部デバイス122に割り当てるために、第1のSetHostTemplateメッセージ284を第1の外部デバイス122のユーザインタフェースクライアント論理294に送出する。同様に、ホスト処理論理284は、第2のスライス362及び第2の制御テンプレート定義を第2の外部デバイス124に割り当てるために、第2のSetHostTemplateメッセージ286をユーザインタフェースクライアント論理(不図示)に送出する。
【0098】
この例において、第1のスライス360に対する第1の制御テンプレート定義は、第1のスライスラベル366、第1のスライスソフトボタン368及び第2のスライスソフトボタン370を定義する。また、スライス美的分割線372が定義される。第2のスライス362に対する第2の制御テンプレート定義は、第3のスライスソフトボタン374を定義する。第3のスライス364に対する第3の制御テンプレート定義は、第4のスライスソフトボタン376を定義する。ナビゲーションデバイス200のGUIにより統合される場合、統合スライス画面378はユーザに提示される。当然、上述のように、各制御テンプレート定義は関連するレイアウト定義を有する。
【0099】
第1のスライス360、第2のスライス362及び第3のスライス364は、それぞれ、以下の通りメインアプリケーション276、第1の外部デバイス122及び第2の外部デバイス124により規定される。この例において、メインアプリケーション276は、それぞれ、第1のスライスラベル366を「アドレスを保存しますか?」ラベル290(図13)、第1のスライスソフトボタン368を「はい、保存します」ソフトボタン292及び第2のスライスソフトボタン370を「いいえ」ソフトボタン294としてレンダリング又はインスタンス化するために、グラフィカルサブシステム272と直接通信する。
【0100】
第1の外部デバイス122及び第2の外部デバイス124、第3のスライス364及び第2のスライス362の以下の割り当て、並びに関連する制御テンプレート定義のそれぞれに対して、第1のSetHostTemplateメッセージ284及び第2のSetHostTemplateメッセージ286を使用して、ユーザインタフェースクライアント論理294の各々は、それぞれ、第3のスライスソフトボタン374を第2の外部デバイス124の空調機能と関連付けられる「空調ON」ソフトボタン296、第4のスライスソフトボタン376をFMチューナと関連付けられる「106.1 FM」ソフトボタン298として規定するために、1つ以上のSetPropertyメッセージ400(図14)を送出することによりユーザインタフェースホスト278のホスト処理論理284と通信する。第1の外部デバイス122及び第2の外部デバイス124の各々が全ての必要な制御を規定した後、第2の外部デバイス122及び第3の外部デバイス124は、それぞれ、各UpdateScreenメッセージ402をホスト処理論理284に送出する。UpdateScreenメッセージ402の各々に応答して、テンプレート図面及びイベント処理モジュール282は、タッチスクリーン250の部分を統合スライス画面378としてレンダリングする、即ち提示するようにナビゲーションデバイス200のグラフィカルサブシステム272に通信される図面コマンドを生成するために、ホスト処理処理284が受信する構成データを使用する。
【0101】
図9に対して上述されるのと同様に、第1のスライスソフトボタン368、292又は第2のスライスソフトボタン370、294を選択する結果、必要に応じてその機能応答のために、入力サブシステム274によりナビゲーションアプリケーション276に直接通信されるイベントデータを生成する。これに対して、ユーザが第3のスライスソフトボタン374、296を選択する結果、第2の外部デバイス124の空調機能性に関して解釈及び場合によっては応答するために、第2の外部デバイス124のユーザインタフェースクライアント論理(不図示)に送出されるホスト処理論理284によりイベントデータ及び別のRaiseEventメッセージ404を生成する。同様に、ユーザが第4のスライスソフトボタン376、298を選択する結果、第1の外部デバイス122のFMチューナの機能性に関して解釈及び場合によっては応答するために、第1の外部デバイス122のユーザインタフェースクライアント論理294に送出されるホスト処理論理284によりイベントデータ及び更なるRaiseEventメッセージ404を生成する。
【0102】
ナビゲーションデバイス200のGUIにより生成される統合スライス画面378に対するユーザの選択に依存して、メインアプリケーション276は最大モード状態を保持するか、あるいは最大モード状態は第1の外部デバイス122又は第2の外部デバイス124に伝達される。第1の外部デバイス122又は第2の外部デバイス124の状態が最小モード状態から最大モード状態にアップグレードされる場合、メインアプリケーション276は最小モード状態にダウングレードされる。最大モード状態が第1の外部デバイス122又は第2の外部デバイス124のうちのいずれか一方に伝達される場合、アップグレードされた状態の外部デバイスは、必要に応じて別の画面テンプレートを選択でき、上記割り当て及びテンプレートの規定は、主にアップグレードされた状態の外部デバイスに集中して繰り返される。
【0103】
最大モード状態を要求するため、第1の外部デバイス122又は第2の外部デバイス124のうちのいずれか一方、例えば第1の外部デバイス122は、0から127の間の値等、優先度の表示を含むRequstFullModeメッセージを送出する。その後、ホスト処理論理284は、各要求から受信される優先レベル値に依存して最大モード状態に対する要求を調停できる。実際にこの技術は、上述の例において、メインアプリケーション276の最大モード状態を最初に設定するように採用される。
【0104】
現在最大モード状態を享受しているアプリケーションと関連付けられるよりも高い優先度値のホスト処理論理284が最大モード状態に対する要求を受信する場合、ホスト処理論理284は、LostFullModeメッセージを使用して、現在最大モード状態を享受しているアプリケーションに最大モード状態の損失を通信する。また、FullModeGrantメッセージは、最大モード状態を要求するより優先度の高いアプリケーションに送出される。当然、最大モード状態に対する要求が不十分な優先度である場合、ホスト処理論理284が最大モード状態を要求する外部アプリケーションにFullModeRefuseメッセージを送出する結果、要求する外部アプリケーションは少なくとも一時的に最大モード状態を拒絶される。しかし、ホスト処理論理284は、要求を伴う優先度の表示と共に外部アプリケーションによる要求を記録する。しかし、ホスト処理論理284は、その後、現在最大モード状態を享受しているアプリケーションが、例えば優先レベルがより低いRequestFullModeメッセージをホスト処理論理284に送出することでそれに関連付けられる優先レベルを下回る場合又はReleaseFullModeメッセージをホスト処理論理284に送出することで最大モード状態を放棄する場合に要求を行なった外部アプリケーションに最大モード状態を割り当てることにより、アプリケーションと関連付けられる優先レベルをゼロに設定する。
【0105】
別の実施例において、アプリケーションが最大モード状態を要求しない場合、最大モード状態を享受するアプリケーションは、ReleaseFullModeメッセージをホスト処理論理284に送出して、最大モード状態を放棄し、関連する優先レベルを減少する。そのような状況において、ホスト処理論理284は、AssignFullModeメッセージをそれに関連付けられる次の最優先値を有する別のアプリケーションに送出する。最大モード状態を別のアプリケーションに割り当てた結果、上述の割り当てが得られ、テンプレートの特定が繰り返される。
【0106】
別の実施形態において、メッセージ交換の高速度化を容易にするためにバーストモードが提供される。バーストモードにおいて、複数のメッセージ又はコマンドは、往復遅延時間を減少させるために単一メッセージ構造に合成される。各メッセージが承認される必要があり且つメッセージを送出するエンティティが応答を待つ必要がある非バーストモードに対して、単一の応答、例えば承認はバーストモードメッセージに応答して送出される。この例において、バーストモードメッセージは単一方向であり、アプリケーションからホスト処理論理284に送出される。
【0107】
従って、上記実施例は、パーソナルエリアネットワークがナビゲーションデバイス200のGUIに対するリモートアクセス及び/又は操作を提供するために使用されることを示す。
【0108】
上述されなかったが、当業者であれば、特に2つの更なるコマンド、即ちResetProperties及びResetIndexedPropertiesが存在することを理解するだろう。ResetPropertiesコマンドは、制御テンプレート定義により規定される制御の公開プロパティをデフォルト値にリセットさせる。その後設定されない場合、リセット制御は非アクティブであり、この例においてユーザに検出されない。ResetIndexedPropertiesコマンドは、合成制御の要素、例えばリスト制御を除いて同様のリセット機能を提供する。
【0109】
本発明の種々の態様及び実施形態についてこれまで説明したが、本発明の範囲は本明細書において示される特定の構成に限定されず、添付の請求の範囲の範囲内の全ての構成、並びに変更及び変化を含むように拡張することが更に理解されるだろう。
【0110】
例えば、上記実施形態はGUIに関して説明されたが、上記技術が他のユーザインタフェース、例えば音声入力ユーザインタフェース及び/又はオーディオ出力ユーザインタフェースに関連して使用されてもよいことは、当業者には理解されるだろう。
【0111】
更に又はあるいは、車両から取り外し可能であり且つ個人が物理的に携行できるという意味で携帯可能であるPNDに関して上述の例を説明したが、上述のPNDが車両から取り外し可能である必要はなく、車両に内蔵されてもよいこと、即ちPNDが例えば車両内の固定位置に固定されてもよいことが当業者には理解されるだろう。実際に、上記例は単に例示するものとして考慮されるべきであり、上述の技術は他のアプリケーションに対しても実現可能である。
【0112】
例えば上述の技術は、ナビゲーションの分野に対して適用される必要ななく、他の試みの分野に関連して使用されてもよい。一例として、他の(1つ以上の)外部デバイスと共有されるユーザインタフェースを有する主デバイスを具備する1つの別のアプリケーションは、建物内の他の場所に配置されるデバイスから遠く離れて配置される各ユーザインタフェースを有する主デバイスを具備する建物内システム、即ち例えば主デバイスの外部にある建物環境制御システムである。
【0113】
更に、上述の実施形態のいずれかに対して、外部デバイスと1つ以上の主デバイスとの任意の所望の順列関係に従って各々が多数の外部デバイスにより共有されるユーザインタフェースを所有する2つ以上の主デバイスが提供されると考えられる。要求に応じて、外部デバイスは、例えば第1の場所で第1の主デバイスを介して第1の出力の種類及び第2の場所で第2の主デバイスを介して第2の出力の種類を提供する必要がある場合、所定の方式に従って第1の主デバイスのユーザインタフェース及び第2の主デバイスのユーザインタフェースを共有できる。
【0114】
尚、上記詳細な説明において説明された実施形態はGPSを参照したが、ナビゲーションデバイスがGPSの代わりとして(又は実際にはGPSに加えて)任意の種類の位置検出技術を利用してもよい。例えばナビゲーションデバイスは、欧州のガリレオシステム等の他のグローバルナビゲーション衛星システムを使用して利用してもよい。同様に、衛星を使用するものに限定されず、デバイスに地理的場所を判定させる地上に基づくビーコン又は任意の他の種類のシステムを使用して容易に機能できる。
【0115】
本発明の別の実施形態は、例えばディスケット、CD ROM、ROM又は固定ディスク等の有形データ記録媒体上に格納される一連のコンピュータ命令であり、コンピュータシステムと共に使用するコンピュータプログラム製品として実現されるか、あるいは有形媒体又は無線媒体、例えばマイクロ波又は赤外線を介して送信されるコンピュータデータ信号において具体化される。一連のコンピュータ命令は、上述の機能性の全て又は一部を構成し、半導体メモリ素子、磁気メモリ素子、光学メモリ素子又は他のメモリ素子等、揮発性又は不揮発性の任意のメモリ素子に格納される。
【0116】
当業者であれば、好適な実施形態はソフトウェアを使用してある特定の機能性を実現するが、その機能性は、(例えば、1つ以上のASIC(特定用途向け集積回路)を使用することにより)ハードウェアにおいてのみ又は実際にはハードウェアとソフトウェアとの混合により同様に実現されることも十分に理解するだろう。従って、本発明の範囲は、ソフトウェアにおいてのみ実現されるものとして限定して解釈されるべきではない。
【0117】
最後に、添付の請求の範囲は本明細書において説明される特徴の特定の組合せを示すが、本発明の範囲は以下の請求の範囲の特定の組合せに限定されず、特定の組合せが今回添付される請求の範囲に特に列挙されているか否かに関係なく、本明細書において開示される特徴又は実施形態の任意の組合せを含むように拡張されることが更に留意されるべきである。
【技術分野】
【0001】
本発明は、例えば多数のアプリケーションが共有使用するユーザインタフェースを有する種類の通信装置に関する。本発明は、更に、例えば多数のアプリケーションが共有するユーザインタフェースを含む第1のデバイスを有する種類の通信システムに関する。本発明は、例えば多数のアプリケーションが共有するユーザインタフェースを提供する種類の方法に関する。
【背景技術】
【0002】
携帯演算装置、例えばGPS(全地球測位システム)信号受信及び処理機能性を含むポータブルナビゲーションデバイス(PND)は周知であり、車載ナビゲーションシステム又は他の車両ナビゲーションシステムとして広く採用される。
【0003】
一般に、近頃のPNDは、プロセッサ、メモリ(揮発性及び不揮発性のうちの少なくとも一方、並びに一般的には双方)及びメモリ内に格納される地図データを含む。プロセッサ及びメモリは、ソフトウェアオペレーティングシステムが確立される実行環境を提供するように協働する。また、PNDの機能性を制御し且つ種々の他の機能を提供するように1つ以上のソフトウェアプログラムが更に提供されることは当然なことである。
【0004】
通常、これらのデバイスは、ユーザがデバイスと対話し且つデバイスを制御できるようにする1つ以上の入力インタフェースと、ユーザに情報を中継する1つ以上の出力インタフェースとを更に含む。出力インタフェースの例示的な例には、視覚表示装置及び可聴出力用スピーカが含まれる。入力インタフェースの例示的な例には、オン/オフ動作又はデバイスの他の特徴を制御する1つ以上の物理ボタン(ボタンは必ずしもデバイス自体上にある必要はなく、デバイスが車両に内蔵されている場合はハンドル上にあってもよい)及びユーザ音声を検出するマイクが含まれる。特定の一構成において、出力インタフェース表示装置は、ユーザがタッチすることでデバイスを操作するために使用される入力インタフェースを更に提供するタッチセンシティブディスプレイとして(又はタッチセンシティブオーバレイ等を使用して)構成されてもよい。
【0005】
多くの場合、この種のデバイスは、電力及びオプションとしてデータ信号をデバイスに送信し且つデバイスから受信するのに使用される1つ以上の物理コネクタインタフェース、並びにオプションとして、セルラ電気通信及び他の信号を介する通信、並びにデータネットワーク、例えばBluetooth、Wi−Fi、Wi−Max、GSM、UMTS等、あるいはコントローラエリアネットワーク(CAN)又はメディアオリエンテッドシステムトランスポート(MOST)ネットワーク等の自動車ネットワークを可能にする1つ以上の無線送受信装置を含む。
【0006】
この種のナビゲーションデバイスは、場所データを含む衛星放送信号を受信し、その後デバイスの現在地を判定するように処理するのに使用されるGPSアンテナを更に含む。
【0007】
ナビゲーションデバイスは、現在の角度及び直線加速度、また、GPS信号から取得する場所情報に関連して速さ及びデバイスの相対的な変位、従って搭載される車両を判定するように処理される信号を生成する電子ジャイロスコープ及び加速度計を更に含んでもよい。通常、そのような機能は車載ナビゲーションシステムに提供されるのが最も一般的であるが、そうすることが得策である場合にはPNDに提供されてもよい。
【0008】
そのようなナビゲーションデバイスの有用性は、主に、第1の場所(一般に、出発地又は現在地)と第2の場所(一般に、目的地)との間の経路を判定する機能にある。デバイスのユーザは、多種多様な種々の方法、例えば郵便番号、街路名及び戸番、以前に格納した「公知の」目的地(例えば有名な場所、公共の場所(運動場又は水泳プール等)、あるいは他の地点情報)、並びにお気に入りの目的地又は最近訪れた目的地のいずれかにより、これらの場所を入力する。
【0009】
一般に、PNDは、地図データから出発地住所の場所と目的地住所の場所との間の「最善」又は「最適な」経路を算出するソフトウェアにより使用可能になる。「最善」又は「最適な」経路は、所定の基準に基づいて判定され、必ずしも最速又は最短経路である必要はない。運転者を案内する経路の選択は非常に複雑であり、選択経路は、既存の交通予測される交通、動的に及び/又は無線で受信される交通、道路情報、道路速度に関する履歴情報、並びに道路の選択を判定する要因に対する運転者自身の好み(例えば運転者は、経路は高速道路又は有料道路を含んではならないと規定する)を考慮する。
【0010】
更にデバイスは、道路状況及び交通状況を継続的に監視し、状況変化により、残りの行程がなされる経路の変更を提案するか又は選択する。種々の技術(例えば、移動電話データ交換、固定カメラ、GPS車両追跡)に基づくリアルタイム交通監視システムは、交通遅延を識別し、その情報を通知システムに供給するために使用されている。
【0011】
この種のPNDは、一般に、車両のダッシュボード又はワイドスクリーン上に搭載されるが、車両ラジオの内蔵コンピュータの一部又は実際は車両自体の制御システムの一部として形成されてもよい。ナビゲーションデバイスは、例えばPDA(ポータブルデジタルアシスタント)、メディアプレーヤ、移動電話等のハンドヘルドシステムの一部であってもよい。これらの場合、ハンドヘルドシステムの標準的な機能性は、経路算出及び算出経路に沿うナビゲーションの双方を実行するデバイス上のソフトウェアを設置することで拡張される。
【0012】
経路が算出されると、ユーザは、ナビゲーションデバイスと対話して、必要に応じて提案経路のリストから所望の算出経路を選択する。オプションとして、ユーザは、例えばある特定の経路、道路、場所又は基準が特定の行程に対して回避される必要があるか又は必須であると規定することにより、経路選択処理に介入するか又は経路選択処理を案内してもよい。PNDの経路算出面は1つの主機能を形成し、そのような経路に沿うナビゲーションは別の主機能である。
【0013】
算出経路に沿うナビゲーションの間、一般に、そのようなPNDは、選択経路に沿ってユーザをその経路の終点、即ち所望の目的地に案内する視覚命令及び/又は可聴命令を提供する。また、PNDは、ナビゲーションの間地図情報を画面上に表示するのが一般的である。そのような情報は、表示される地図情報がデバイスの現在地及びデバイスが車載ナビゲーションに使用される場合にはユーザの現在地又はユーザの車両の現在地を示すように画面上で規則的にアップグレードされる。
【0014】
画面上に表示されるアイコンは、一般に、デバイスの現在地を示し且つデバイスの現在地の近傍において現在の道路及び周囲の道路の地図情報と共に中央に置かれ、他の地図機能も表示される。また、ナビゲーション情報は、オプションとして上下のステータスバーに表示されるか又は表示される地図情報の片側に表示されてもよい。ナビゲーション情報の例には、ユーザが走行する必要がある現在の道路から次の道路変更への距離が含まれ、場合によってはその進路変更の特性は、右折又は左折等、特定の種類の進路変更を示唆する更なるアイコンで示される。更にナビゲーション機能は、経路に沿ってユーザを案内するのに使用される可聴命令の内容、継続時間及びタイミングを判定する。理解されるように、「100m先で左折」等の簡単な命令は、かなりの処理及び分析を要する。上述のように、デバイスとのユーザ対話は、タッチスクリーンによってでもよく、更に又はあるいはリモートコントロールに搭載されるステアリングコラム、音声起動又は任意の他の適切な方法によってでもよい。
【0015】
ナビゲーションの間にユーザが事前算出経路から逸れる場合(偶然に又は意図的に)、別の経路がより得策であるとリアルタイム交通状況が要求し且つそのような状況を自動的に認識するようにデバイスが適切に使用可能にされる場合又はユーザが任意の理由で能動的にデバイスに経路を再算出させる場合、デバイスにより提供される更なる重要な機能は自動経路再算出である。
【0016】
ユーザが規定する基準で経路を算出できることも周知である。例えばユーザは、デバイスにより景色のよい経路が算出されることを好むか、あるいは交通渋滞が広がる可能性が高いか、広がることが予想されるか又は現在広がっている全ての道路を回避することを要求する。次に、デバイスソフトウェアは種々の経路を算出し、例えば景勝であるとしてタグ付けされる地点情報(POIとして周知である)を経路に沿って最も多く含む経路をより有利に評価するか、あるいは特定の道路上で広がっている交通状況を示す格納情報を使用することにより、考慮される可能性の高い渋滞又は遅延のレベルに関して算出ルートを整理する。他のPOIに基づく経路算出及び交通情報に基づく経路算出、並びにナビゲーション基準が更に考えられる。
【0017】
経路算出及びナビゲーション機能はPNDの全体的な有用性に対して重要であるが、デバイスを純粋に情報表示装置用に使用できる。即ち、デバイスの現在地に関連する地図情報のみが表示され、経路が全く算出されておらず、デバイスが現在全くナビゲーションしていない「フリードライビング」用に使用できる。多くの場合、そのような動作モードは、移動することを要求される経路をユーザが既に認識し且つナビゲーション支援を必要としない場合に適用可能である。
【0018】
上述のこの種のデバイス、例えばTomTom International B.V.が製造及び供給する920 GOモデルは、ユーザがある位置から別の位置に走行できるようにする信頼できる手段を提供する。そのようなデバイスは、ナビゲートしている目的地までの経路にユーザが精通していない場合に非常に有用である。
【0019】
上記で提案されたように、PNDは、主に、ナビゲーション関連機能及び/又は地図表示装置に対して使用されるが、PNDに応じてユーザの経験を向上させ且つ/又は隣接デバイスの制御を容易にするためにPNDを他の隣接電子デバイスに結合することが周知である。それにより、特にPND及び隣接デバイスが車両内に配置される場合に、ユーザの作業負荷及び注意散漫を減少させる。
【発明の概要】
【発明が解決しようとする課題】
【0020】
いくつかのアプリケーションの場合、PNDと外部デバイスとの対話は、外部デバイスが提供する機能性の詳細を規定する機能インタフェース定義によりサポートされる。インタフェース定義は、一般に、デバイス内のソフトウェア処理に関連する。しかし、インタフェース定義に従って且つ外部デバイスに関連して構造化されるアプリケーションプログラミングインタフェース(API)をサポートするために、外部デバイスの機能性の特定の知識はPNDのメインアプリケーションに組み込まれる必要がある。
【0021】
従って、APIの新バージョンがリリースされる際、例えば外部デバイスがアップグレードされるか又は新モデルがリリースされる際、PNDのメインアプリケーションを維持する必要がある。
【0022】
その結果、サードパーティデバイスの使用に関連する種々のインタフェースの最新サポートを確保する負担は、PNDの製造業者に課せられる。PNDのメインアプリケーションのアップグレードのために外部デバイスと関連付けられるサードパーティの介入が必要な場合、論理的な問題が浮上する。また、PNDのメインアプリケーションのバージョンのリリースは、PNDと組み合わせて使用される外部デバイスを変更する結果、サードパーティが提供する変更のメインアプリケーションへの組込みの容易さに関連するか又は依存する。
【0023】
従って、ソフトウェア及びデバイスのリリースサイクルがサードパーティ機器のリリースサイクルに依存するのを回避することが望ましい。
【課題を解決するための手段】
【0024】
本発明の第1の態様によると、使用時に、メインアプリケーション及びユーザインタフェースをサポートするように構成された処理リソースと、データ格納部と、使用時に、受信されたメッセージに応じて選択可能な多数のユーザインタフェース要素の所定の表示形式を含むユーザインタフェース・テンプレートにアクセスするように構成されたユーザインタフェース・ホスト・エンティティとを含む通信装置が提供され、ユーザインタフェースは、多数のユーザインタフェース要素の所定の表示形式から選択されたユーザインタフェース・テンプレートをユーザインタフェースの具体例に転換するように構成される。
【0025】
処理リソースは、ユーザインタフェースを使用するために競合した要求を調停するように構成されてもよい。
【0026】
装置は、通信ネットワークを介してメインアプリケーションに対する外部アプリケーションとの通信をサポート可能な通信インタフェースを更に含んでもよく、処理リソースは、使用時に、外部アプリケーションに、通信ネットワークを介したユーザインタフェースへのリモートアクセスを提供するように構成されてもよい。
【0027】
メッセージは、通信インタフェースを介して受信されてもよい。メッセージは、例えば外部アプリケーションから通信インタフェースを介して受信されてもよい。
【0028】
多数のユーザインタフェース要素は、多数のユーザインタフェース・オブジェクトであってもよい。
【0029】
ユーザインタフェースの具体例は、多数のユーザインタフェース要素のレンダリングであってもよい。
【0030】
通信インタフェースは、使用時に、処理リソースの外部の機器に設けられてもよい外部アプリケーションと通信するように構成されてもよい。
【0031】
装置は、機器を含み且つ処理リソースとは分かれて収容されてもよい電子装置を更に備えてもよい。
【0032】
ユーザインタフェース要素はグラフィカルユーザインタフェース(GUI)・ウィジェットであってもよい。
【0033】
ユーザインタフェース・ホストは、表示されるテキスト等のユーザインタフェースの具体例をカスタマイズするためのデータを受信するように構成されてもよい。
【0034】
メインアプリケーションは、第1の動作タスクと関連付けられてもよく、外部アプリケーションは第2の動作タスクと関連付けられてもよい。第1の動作タスクと第2の動作タスクは異なっていてもよい。
【0035】
第1の動作タスクは第1の車両タスク、例えばテレマティック・タスクであってもよく、第2の動作タスクは第2の車両タスク、例えば車載娯楽、空調、室温調節又は温度測定装置等のセンサ測定装置であってもよい。
【0036】
ユーザインタフェースは、ローカルに格納された多数のユーザインタフェース・テンプレートのうちのユーザインタフェーステンプレートにアクセスするように構成されてもよい。通信インタフェースを介して受信されたメッセージは、ユーザインタフェースを識別してもよく、ユーザインタフェース・テンプレートを選択するように構成してもよい。
【0037】
ユーザインタフェースは、使用時に、ユーザインタフェース・テンプレートのユーザインタフェース要素を限定する情報を受信するように構成されてもよい。
【0038】
多数のユーザインタフェース要素は定義可能な制御要素を含んでもよい。
【0039】
多数のユーザインタフェース要素は定義可能なラベル要素を含んでもよい。
【0040】
ユーザインタフェースは、多数のユーザインタフェース要素の素子のユーザインタフェースの具体例とのユーザ対話に応じてイベントデータを生成するように構成されてもよい。
【0041】
処理リソースは、外部アプリケーションによる受信のための通信インタフェースを介してイベントデータを通信するように構成されてもよい。
【0042】
装置は、ユーザインタフェースでのナビゲーション表示を受信するように構成される入力装置を更に備えてもよく、イベントデータはユーザインタフェースでのナビゲーション表示に対応してもよい。
【0043】
ユーザインタフェースはグラフィカルユーザインタフェースであってもよい。ユーザインタフェース・テンプレートはそれに関連付けられる所定のレイアウトを有してもよい。
【0044】
通信インタフェースは無線通信インタフェースであってもよい。
【0045】
入力装置は、例えばソフトキー、リモートコントロール及び/又は音声起動モジュールを提供するタッチスクリーンであってもよく、あるいは別の入力装置であってもよい。入力装置は、車両のステアリング機構、例えばステアリングコラム又はハンドルに結合されてもよい。
【0046】
本発明の第2の態様によると、本発明の第1の態様に対して上述されたような通信装置を具備するナビゲーション装置が提供される。
【0047】
ナビゲーション装置はポータブルナビゲーションデバイスであってもよい。
【0048】
本発明の第3の態様によると、通信装置を備える第1のデバイスと、外部アプリケーションをサポートする第2のデバイスとを備える通信システムが提供され、第1のデバイス及び第2のデバイスは、通信ネットワークを介して通信するように構成される。
【0049】
第1のデバイスはそれに関連付けられる第1の動作タスクを有してもよく、第2のデバイスはそれに関連付けられる第2の動作タスクを有してもよく、第1の動作タスクと第2の動作タスクとは異なっていてもよい。
【0050】
第1のデバイスはナビゲーションデバイスであってもよく、第2のデバイスは娯楽システムであってもよい。
【0051】
第2のデバイスは、空調又は室温調節コントローラ、あるいは周囲温度監視等、別の機能を提供する回路基板であってもよい。
【0052】
本発明の第4の態様によると、ユーザインタフェースを提供する方法が提供され、方法は、メインアプリケーション及びそのためのユーザインタフェースをサポートする工程と、メッセージを受信する工程と、受信されるメッセージに応じて多数のユーザインタフェース要素の所定の表示形式を含むユーザインタフェース・テンプレートを選択する工程と、多数のユーザインタフェース要素の所定の表示形式から選択されるユーザインタフェース・テンプレートをユーザに対するユーザインタフェースの具体例に転換することとを含む。
【0053】
方法は、通信インタフェースをサポートする工程と、通信ネットワークにおいて通信をサポートする工程と、通信ネットワークを介したユーザインタフェースへのリモートアクセスを、メインアプリケーションに対した外部アプリケーションに提供する工程とを更に含んでもよい。
【0054】
本発明の第5の態様によると、本発明の第4の態様に対して上述されたような方法をコンピュータに実行させるコンピュータプログラムコード手段を含むコンピュータプログラム要素が提供される。
【0055】
コンピュータプログラム要素は、コンピュータ可読媒体上で具現化されてもよい。
【発明の効果】
【0056】
これらの実施形態の利点は以下に示され、これらの実施形態の各々の更なる詳細及び特徴は、添付の従属請求項及び以下の詳細な説明の他のところで規定される。
【0057】
従って、メインアプリケーションの開発サイクルを外部アプリケーションの開発サイクルから分離できる装置、システム及び方法を提供することができる。その結果、メインアプリケーションの開発は外部アプリケーションの開発サイクルの完了に依存せず、提供されるユーザインタフェースは種々のアプリケーションに対して再利用できる。また、提供されるテンプレートは、テンプレートがデータファイルから形成されるため、実行時であっても後続の機会に容易にアップグレード及び/又は補足される。更に、メインアプリケーションを含むデバイスが減少した量のコードを保有するように開発されることにより、デバイスを簡略化し、製造コスト及び開発期間を減少させる。メインアプリケーションを含むデバイスが増加する外部デバイスと相互動作することを装置、システム及び方法が更に許可することにより、デバイスの汎用性を高め、ユーザにとって望ましくなる。提供されるユーザインタフェースは均一であり、上記示唆されたように、複数のデバイスに対して個別の開発努力を必要としない。ユーザインタフェース要素、例えばウィジェットは、各ウィジェット、例えばプロパティ、イベント及び/又はレイアウトの特徴のために拡張可能であり、その拡張性は、装置、方法及び/又はシステムを実現するために使用される通信プロトコルを変更する必要なく可能である。実際に、上記装置、方法及びシステムが最小プロトコルオーバヘッドで実現される結果、エンティティ間の通信における遅延時間は最少になる。更に、簡単且つ明確に規定されたテンプレートを提供することにより、メインアプリケーションを含むデバイスの開発中に必要とされるデバッギング及び誤りを減少させることができる。
【図面の簡単な説明】
【0058】
【図1】ナビゲーションデバイスにより使用可能な全地球測位システム(GPS)の例示的な部分を示す概略図である。
【図2】本発明の一実施形態を構成する通信システムを示す概略図である。
【図3】図3のナビゲーションデバイスの構成要素を示す概略図である。
【図4】図2のナビゲーションデバイスと組み合わせて、車両でオプションとして使用するドッキング装置を示す概略図である。
【図5】図3のナビゲーションデバイスが採用するアーキテクチャスタックを示す概略図である。
【図6】図2の通信システムをより詳細に示す概略図である。
【図7】図3のナビゲーションデバイスが使用するデータ構造を示す概略図である。
【図8】ポピュレートされないテンプレートと関連付けられる一画面を示す図である。
【図9】図3のナビゲーションデバイスと外部デバイスとの対話を示すメッセージシーケンス図である。
【図10】図8のメッセージのシーケンスに従ってナビゲーションデバイスが生成する表示の一画面を示す図である。
【図11】本発明の別の実施形態を構成する「画面」への層割り当てを示す概略図である。
【図12】図3のナビゲーションデバイスと多数の外部デバイスとの別の対話を示すメッセージシーケンス図である。
【図13】図8、図12及び図14のメッセージシーケンスに従ってポピュレートされるような図11の「画面」の層を示す概略図である。
【図14】図12のメッセージのシーケンスに従って、図3のナビゲーションデバイスと図12の外部デバイスのうちの1つとの更なる対話を示すメッセージシーケンス図である。
【発明を実施するための形態】
【0059】
次に、添付の図面を参照して、一例として本発明の少なくとも1つの実施形態を説明する。
【0060】
以下の説明中、同一の図中符号は同様の部分を示すために使用される。
【0061】
次に、特にPNDを参照して、本発明の実施形態を説明する。しかし、本発明の教示はPNDに限定されず、任意の種類の処理デバイス、例えば経路計画及びナビゲーション機能性を提供するように携帯型及び/又は移動型でナビゲーションソフトウェアを実行するように構成される任意の種類の処理デバイスに普遍的に適用可能である。従って、本明細書において、デバイスが、経路計画及びナビゲーションソフトウェアを実行するPND、自動車等の車両、あるいは実際にポータブルパーソナルコンピュータ(PC)、移動電話又はパーソナルデジタルアシスタント(PDA)として具体化されるかに関係なく、任意の種類の経路計画及びナビゲーションデバイスを(無制限に)含むことが意図されるナビゲーションデバイスを参照するということになる。
【0062】
また、本明細書における教示は、ユーザがある地点から別の地点への走行方法に関する命令を求めておらず、所定の場所の表示のみ提供されることを要求する状況においてであっても有用性を有することが以下の説明から明らかになるだろう。そのような状況において、ユーザが選択する「目的地」の場所は、ユーザが走行を開始したい対応する出発地の場所を有する必要はない。従って、「目的地」の場所、即ち実際には「目的地」を本明細書において任意に参照することは、経路の生成が必須であり、「目的地」への移動が行なわれる必要があり又は実際に目的地の存在が対応する出発地の場所を指定することを要求するという意味で解釈されるべきではない。
【0063】
上記条件を念頭において、図1の全地球測位システム(GPS)等は、種々の目的で使用される。一般に、GPSは、連続した位置、速度、時間及びいくつかの例において無数のユーザに対する方向情報を判定できる衛星無線を使用するナビゲーションシステムである。以前はNAVSTARとして周知であったGPSは、例示的に厳密な軌道で地球を周回する複数の衛星を組み込む。これらの厳密な軌道に基づいて、GPS衛星は、場所を任意の数の受信ユニットに中継できる。
【0064】
GPSシステムは、特にGPSデータを受信するように装備されるデバイスがGPS衛星信号に対する無線周波数の走査を開始する場合に実現される。GPS衛星から無線信号を受信すると、デバイスは、複数の異なる従来の方法のうちの1つを介してその衛星の厳密な場所を判定する。殆どの例において、デバイスは、少なくとも3つの異なる衛星信号を取得するまで信号に対する走査を継続する(尚、他の三角測量技術を使用して2つの信号のみで位置を判定することは一般的ではない)。幾何学的な三角測量を実現することにより、受信機は、3つの周知の位置を利用して、衛星に対する自身の2次元の位置を判定する。これは周知の方法で行なわれる。また、4つの衛星信号を取得することにより、受信デバイスは、周知の方法で同一の幾何学的な算出により3次元の位置を算出できる。位置データ及び速度データは、無数のユーザにより連続してリアルタイムでアップグレードされる。
【0065】
図1に示すように、GPSシステム100は、地球104を周回する複数の衛星102を含む。GPS受信機106は、複数の衛星102のうちの多くから拡散スペクトルGPS衛星データ信号108を受信する。拡散スペクトルデータ信号108は各衛星102から継続して送信され、送信される拡散スペクトルデータ信号108の各々は、データストリームを発信する特定の衛星102を識別する情報を含むデータストリームを含む。GPS受信機106は、一般に、2次元の位置を算出できるように、少なくとも3つの衛星102からの拡散スペクトルデータ信号108を必要とする。第4の拡散スペクトルデータ信号を受信することにより、GPS受信機106は、周知の技術を使用して3次元の位置を算出できる。
【0066】
図2を参照すると、ナビゲーションデバイス200は、第1の外部デバイス122、第2の外部デバイス124及び第3の外部デバイス126と通信できる。この例において、第1の外部デバイス122はFMラジオ等の車載娯楽システムであり、第2の外部デバイス124は空調システム等の室温調節システムの調節ユニットであり、第3の外部デバイス126は外部周囲温度算出ユニット等の車両のハードウェア要素の回路基板である。第1の外部デバイス122は、第2の通信リンク130及び第3の通信リンク132の各々を介してナビゲーションデバイス200に動作可能に結合される第1の無線通信リンク128、第2の外部デバイス124及び第3の外部デバイス126を介してナビゲーションデバイス200に動作可能に結合される。通信リンク128、130、132は、それぞれBluetoothリンクである。しかし、ナビゲーションデバイス200と第1の外部デバイス122、第2の外部デバイス124及び第3の外部デバイス126との間に各有線接続を含む他の通信技術が採用されてもよい。
【0067】
ナビゲーションデバイス200と外部デバイス122、124、126との間の通信リンクは、任意の適切な通信技術に従って確立される。この点において、任意の数の適切なデータ通信プロトコル、例えばTCP/IP階層プロトコルが採用されてもよい。更に移動デバイスは、他の通信規格、例えばIEEE802.11a/b/c/g/n規格のうちのいずれか1つを利用する。実際には、通信リンク128、130、132は、特定の通信技術に限定されない。要求に応じて、デジタル信号及びアナログ信号の双方は、通信リンク128、130、132を介して送信される。これらの信号は、通信技術対して望ましいような変調信号、暗号化信号及び/又は圧縮信号であってもよい。また、第1の外部デバイス122、第2の外部デバイス124、第3の外部デバイス126に結合されるナビゲーションデバイス200は、通信システム134を構成する。
【0068】
図3を参照すると、図3に対するナビゲーションデバイス200の以下の説明は、ナビゲーションデバイス200の全ての構成要素を含まず、多数の構成要素の例を示すのみであることが留意されるべきである。ナビゲーションデバイス200は、筐体(不図示)内に配置される。ナビゲーションデバイス200は、例えば入力装置204及び表示画面206等の表示装置に結合される上述のプロセッサ202を含む処理リソースを含む。本明細書では単一の入力装置204を参照するが、当業者であれば、入力装置204が、情報入力に利用されるキーボードデバイス、音声入力装置、タッチパネル及び/又は任意の他の周知の入力装置を含む任意の数の入力装置を示すことを理解するだろう。同様に、表示画面206は、例えば液晶ディスプレイ(LCD)等の任意の種類の表示画面を含んでもよい。
【0069】
一構成において、入力装置204、タッチパネル及び表示画面206のうちの1つの面は、ユーザが表示画面206一部分をタッチするだけで複数の表示選択肢のうちの1つを選択するか、あるいは複数の仮想ボタン又は「ソフト」ボタンのうちの1つを起動するように、タッチパネルを介して情報入力(直接入力、メニュー選択等を介して)及び情報表示の双方を可能にするタッチパッド又はタッチスクリーン入力250(図4)を含む内蔵入力装置及び表示装置を提供するように組み込まれる。この点において、プロセッサ202は、タッチスクリーンと関連して動作するグラフィカルユーザインタフェース(GUI)をサポートする。これについては、本明細書において後で説明する。
【0070】
ナビゲーションデバイス200において、プロセッサ202は、接続210を介して入力装置204に動作可能に結合され且つ入力装置204から入力情報を受信でき、出力接続212、213の各々を介して表示画面206のうちの少なくとも1つ及び出力装置208、例えばスピーカ等の可聴出力装置に動作可能に結合されて情報を出力する。出力装置208がナビゲーションデバイス200のユーザに対して可聴情報を生成できるため、更に入力音声コマンドを受信するマイク及びソフトウェアを入力装置204が含むことを同様に理解する必要がある。更にナビゲーションデバイス200は、任意の更なる入力装置及び/又は任意の更なる出力装置、例えばオーディオ入力/出力装置を含んでもよい。
【0071】
プロセッサ202は、接続216を介してメモリ214に動作可能に接続され、接続220を介して入力/出力(I/O)ポート218から情報を受信し且つI/Oポート218に情報を送出するように更に構成される。I/Oポート218は、ナビゲーションデバイス200の外側のI/O装置222に接続可能である。外部I/O装置222は、例えばイヤホン等の外部聞き取りデバイスを含むが、これに限定されない。この例において、I/O装置222は、音声起動動作、イヤホン又はヘッドホンへの接続、及び/あるいは移動電話への接続のために他の外部デバイスに有線又は無線接続されるが、I/O装置222への接続は、外部デバイス122、124、126のいずれかへの無線接続である。移動電話接続は、例えばナビゲーションデバイス200とインターネット又は任意の他のネットワークとのデータ接続を確立するため、及び/あるいは例えばインターネット又は任意の他のネットワークを介してサーバへの接続を確立するために使用される。
【0072】
図3は、接続226を介するプロセッサ202とアンテナ/受信機224との動作可能な接続を更に示す図である。アンテナ/受信機224は、例えばGPSアンテナ/受信機であってもよい。図中符号224で示すアンテナ及び受信機は図示するために概略的に組み合わされるが、アンテナ及び受信機は別個に配置される構成要素であってもよく、アンテナは、例えばGPSパッチアンテナ又はヘリカルアンテナであってもよいことが理解されるべきである。
【0073】
当然、1つ以上の電源(不図示)が図3に示す電子構成要素に従来の方法で電力を供給することは、当業者には理解されるだろう。当業者には理解されるように、図3に示す構成要素の種々の構成が考えられる。例えば図3に示す構成要素は、有線及び/又は無線接続等を介して互いに通信してもよい。従って、本明細書で説明されるナビゲーションデバイス200は、ポータブルナビゲーションデバイス200又はハンドヘルドナビゲーションデバイス200であってもよい。
【0074】
更に、図3のポータブルナビゲーションデバイス200又はハンドヘルドナビゲーションデバイス200は、自転車、モータバイク、自動車又は船舶等の車両に周知の方法で接続されるか、あるいは「ドッキングされる」。そのようなナビゲーションデバイス200は、ポータブルナビゲーション又はハンドヘルドナビゲーションに使用するためにドッキングされた場所から取り外し可能である。
【0075】
図4を参照すると、ナビゲーションデバイス200は、内蔵入力装置及び表示装置206、並びに図2の他の構成要素(内部GPS受信機224、マイクロプロセッサ202、電源(不図示)、メモリシステム214等を含むがそれらに限定されない)を含むユニットである。
【0076】
ナビゲーションデバイス200は、吸着カップ254を使用して、車両のダッシュボード/窓/等に固定されるアーム252上に置かれる。このアーム252は、ナビゲーションデバイス200がドッキングされるドッキングステーションの一例である。ナビゲーションデバイス200は、例えばナビゲーションデバイス200をアーム252にスナップ接続することにより、ドッキングステーションのアーム252にドッキングされるか又は接続される。ナビゲーションデバイス200は、アーム252上で回転可能である。ナビゲーションデバイス200とドッキングステーションとの接続を解除するために、例えばナビゲーションデバイス200上のボタン(不図示)が押下されてもよい。ナビゲーションデバイス200をドッキングステーションに結合し且つナビゲーションデバイス200をドッキングステーションから分離する他の同様の適切な構成は、当業者には周知である。
【0077】
図5を参照すると、プロセッサ202及びメモリ214は、ナビゲーションデバイス200の機能ハードウェア構成要素230とデバイスが実行するソフトウェアとのインタフェースとして機能するBIOS(基本入出力システム)232をサポートするように協働する。その後、プロセッサ202は、メモリ214からオペレーティングシステム234をロードし、アプリケーションソフトウェア236(上述の経路計画及びナビゲーション機能性の一部又は全てを実現する)が実行できる環境を提供する。アプリケーションソフトウェア236は、ナビゲーションデバイスの中核機能、例えば地図表示、経路計画、ナビゲーション機能及びそれに関連付けられる任意の他の機能をサポートする動作環境を提供する。
【0078】
図6を参照すると、組み合わされる表示装置及び入力装置、タッチスクリーン250は、ナビゲーションデバイス200のハードウェア230の部分として提供される。この例において、ハードウェア230はリモートコントロール260を更に含む。他の入力装置262、例えば音声認識入力ユニットが更に提供される。1つ以上の入力装置は、車両のステアリング機構、例えばハンドル又はステアリングコラム上に配設される。上述のように、オペレーティングシステム234は、ハードウェア230にサポートされ、ハードウェア230に対する多数のドライバ、例えばタッチスクリーン250の表示部分を駆動するビデオドライバ264、タッチスクリーン250のタッチセンサ入力部分を駆動するタッチスクリーンドライバ266、リモートコントロールドライバ268及び提供される任意の他の入力装置を駆動する任意の他の必要なドライバ270を提供する。
【0079】
ビデオドライバ264は、上述のGUIをサポートするオペレーティングシステム234のグラフィカルサブシステム272と通信できる。タッチスクリーンドライバ266、リモートコントロールドライバ268及び他のドライバ270は、ユーザからの入力ジェスチャに応答して入力装置250、260、262により生成される入力データの処理をサポートするオペレーティングシステム234の入力サブシステム274と通信できる。
【0080】
上述のように、オペレーティングシステム234は、タッチスクリーン250の表示部分によりレンダリング及び出力される画像又は「画面」を有するように図面コマンドを通信するグラフィカルサブシステム272と通信できるナビゲーションアプリケーション等のメインアプリケーション276を含むアプリケーションソフトウェア236をサポートする実行環境を提供する。また、メインアプリケーション276は、ユーザ入力ジェスチャと関連付けられるイベントデータを受信する入力サブシステム274と通信できる。
【0081】
アプリケーションソフトウェア236は、メモリ214に格納されるテンプレートデータのデータベース280にアクセスできるユーザインタフェースホスト278を更に含む。ユーザインタフェースホスト278は、画面アクセスネゴシエーションモジュール286と通信できるホスト処理論理284と通信できるテンプレート図面及びイベント処理モジュール282を含む。ユーザインタフェースホスト278は、画面アクセスネゴシエーションモジュール286を介してメインアプリケーション276と通信できる。ユーザインタフェースホスト278は、画面テンプレートに従って画面をレンダリングするために図面コマンドを通信するグラフィカルサブシステム272と通信できる。その詳細については、本明細書において後で説明する。更にユーザインタフェースホスト278は、ユーザ入力ジェスチャと関連付けられるイベントデータを受信するために入力サブシステム274と通信できる。
【0082】
ユーザインタフェースホスト278は、ホスト処理論理284を介して、オペレーティングシステム234によりサポートされる第1の通信プロトコルスタック288と更に通信できる。この例において、第1の通信プロトコルスタック288は第1のBluetoothプロトコルスタックであるが、別の通信技術が必要な場合に他のプロトコルスタックが採用されてもよいことは、当業者には理解されるだろう。実際に、必要な他の通信技術をサポートするため、第1のBluetoothプロトコルスタックに加え他のプロトコルスタックが提供されてもよい。また、Bluetoothスタックをサポートするトランシーバ(不図示)は、十分な能力で適切に提供され、データ通信のため所定数の外部クライアント122、124、126をサポートするように構成される。
【0083】
この例において、第1の通信リンク128は、第1の外部デバイス122と通信するために示される。しかし、この例において、Bluetoothプロトコルスタック288及び関連するハードウェアがそれぞれ第2の通信リンク130及び第3の通信リンク132を介して第2の外部デバイス124及び第3の外部デバイス126との通信をサポートできることは、当業者には理解されるだろう。
【0084】
第1の外部デバイス122を参照すると、第1の外部デバイス122はクライアントアプリケーションソフトウェア290をサポートする。この点において、クライアントアプリケーションソフトウェア290は、第1の外部デバイス122の動作目的、例えばFMチューナ(不図示)の制御専用のクライアントアプリケーション論理292を含む。クライアントアプリケーション論理292は、第2の通信プロトコルスタック296、例えば第2のBluetoothプロトコルスタックと通信できるユーザインタフェースクライアント論理294と通信できる。ナビゲーションデバイス200は、無線周波数(RF)媒体を介し、第1のBluetoothスタック288及び第2のBluetoothスタック296を使用して第1の外部デバイス122と通信でき、それにより第1の通信リンク128をサポートする。従って、この例において、パーソナルエリアネットワーク(PAN)は、ナビゲーションデバイス200と第1の外部デバイス122との通信のためにサポートされる。
【0085】
上述のように、メモリ214によりサポートされるデータベース280は、テンプレートデータ、特に多数のユーザインタフェース画面テンプレートを含む。この例において、ユーザインタフェース画面テンプレートは、以下のように構造化される。図7を参照すると、ユーザインタフェーステンプレート、例えば画面テンプレート定義140は、ナビゲーションデバイス200のGUIにより提示される1つ以上の「画面」が外部デバイス122と使用するのに適することを保証するため、ナビゲーションデバイス200の設計段階中に及び必要に応じて第1の外部デバイス122及び/又はクライアントアプリケーション論理292の製造業者に関連して判定される。
【0086】
画面テンプレート定義140は、少なくとも1つの制御テンプレート定義142と少なくとも1つのレイアウトテンプレート定義144とのセットを示す。画面が2つ以上の外部アプリケーションをサポートする可能性がある場合、いわゆるデバイスの「最大モード」状態及びデバイスの「最小モード」状態をサポートする画面テンプレート定義が提供される。しかし、ナビゲーションデバイス200と協働する単一のデバイスの場合、画面テンプレート定義140は、例えば以下のCode Fragment Iに示すようなXMLコードを含む。
<?xml version="1.0" ?>
<!? The screen DTD -->
<!DOCTYPE screen SYSTEM "T_template.dtd" >
<!-- The screen content -->
<screen>
<template source="template1_interface.xml" type="full" />
<layout source"template1_layout.xml" alt="0" />
</screen>
コードフラグメントI
この例において、画面テンプレート定義は、制御テンプレート定義及びレイアウトテンプレート定義を示す。制御テンプレート定義142は、ボタン、ラベル、画像、進捗バー、スライダ、チェックボックス、入力フィールド、無線ボタン、リスト制御及び任意の他の適切な制御タイプ又は多要素制御タイプを含む一組の制御タイプから構成される。当然、列挙される制御は、ユーザインタフェース要素、例えばGUIウィジェット等のユーザインタフェースウィジェットの例である。各制御タイプは、プロパティとそれに関連付けられるイベントとのセットをそれぞれ有する。この例において、2種類のプロパティ、「公開」プロパティ及び「保護」プロパティが存在する。公開プロパティが外部アプリケーション又はクライアントアプリケーションにより実行時に変更される一方、保護プロパティは画面テンプレート定義に関連するレイアウト定義により定義される。従って、保護プロパティは、大部分レイアウトに関連し、外部アプリケーション又はクライアントアプリケーションにより変更されない。この例においては説明しないが、親テンプレート定義及び子テンプレート定義が使用される。子テンプレート定義は、親定義から制御を継承でき、例えば子画面テンプレート定義に対するレイアウトテンプレート定義は、充填幾何学領域の詳細を含まず、レイアウトの詳細については親画面テンプレートから既に周知である。以下のコードフラグメントIIは、制御テンプレート定義142を構成するXMLコードの一例を提供する。
<?xml version="1.0" ?>
<!DOCTYPE template SYSTEM "T_interface.dtd" >
<template id="1" >
<!-- LABELS -->
<element class="label" id="1" />
<element class="label" id="2" />
<element class="label" id="3" />
<!-- BUTTONS -->
<element class="button" id="11" />
<element class="button" id="12" />
<element class="button" id="13" />
</template>
コードフラグメントII
レイアウトテンプレート定義144は、例えば制御テンプレート定義142で定義される各制御の色、位置及び大きさを特定するために使用される。各制御テンプレート定義は、複数のレイアウト、例えば異なる画面の向きに対応するように、横向き及び縦向き等、2つの異なるレイアウトを有する。以下のコードフラグメントIIIは、1つのレイアウト定義を構成するXMLコードの一例である。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE layout SYSTEM "T_layout.dtd" >
<!-- The layout definition -->
<layout>
<!-- Control ID 1 (label 1) -->
<control id="1" client="0" template_id="1">
<property name="top" value="2" />
<property name="left" value="2" />
<property name="width" value="320" />
<property name="height" value="20" />
<property name="level" value="100" />
<property name="text_class" value="ARIAL9FONT" />
<property name="text_halign" value="0" />
<property name="text_color" value="FFFFFF" />
</control>
<!-- Control ID 2 (label 2) -->
<control id="2" client="0" template_id="1">
<property name="top" value="2" />
<property name="left" value="30" />
<property name="width" value="290" />
<property name="height" value="30" />
<property name="level" value="100" />
<property name="text_class" value="ARIAL28FONT" />
<property name="text_halign" value="0" />
<property name="text_color" value="000000" />
</control>
<!-- Control ID 3 (label 3) -->
<control id="3" client="0" template_id="1">
<property name="top" value="70" />
<property name="left" value="30" />
<property name="width" value="290" />
<property name="height" value="30" />
<property name="level" value="100" />
<property name="text_class" value="ARIAL18FONT" />
<property name="text_halign" value="0" />
<property name="text_color" value="FFFFFF" />
</control>
<!-- Control ID 11 (button 1) -->
<control id="11" client="0" template_id="1">
<property name="top" value="210" />
<property name="left" value="10" />
<property name="width" value="65" />
<property name="height" value="20" />
<property name="level" value="100" />
<property name="text_class" value="ARIAL10FONT" />
<property name="text_halign" value="1" />
<property name="text_color" value="336699" />
<property name="corner_radius" value="0" />
</control>
<!-- Control ID 12 (button 2) -->
<control id="12" client="0" template_id="1">
<property name="top" value="47" />
<property name="left" value="85" />
<property name="width" value="65" />
<property name="height" value="20" />
<property name="level" value="100" />
<property name="text_class" value="ARIAL10FONT" />
<property name="text_halign" value="1" />
<property name="text_color" value="336699" />
<property name="corner_radius" value="0" />
</control>
<!-- Control ID 13 (button 3) -->
<control id="14" client="0" template_id="1">
<property name="top" value="131" />
<property name="left" value="235" />
<property name="width" value="65" />
<property name="height" value="20" />
<property name="level" value="100" />
<property name="text_class" value="ARIAL10FONT" />
<property name="text_halign" value="1" />
<property name="text_color" value="336699" />
<property name="corner_radius" value="0" />
</control>
</layout>
コードフラグメントIII
1つ以上の画面テンプレート定義を提供し及び/又はそれを第1の外部デバイス122の製造業者と整合させることにより、第1の外部デバイス122の機能性の知識がナビゲーションデバイス200の開発及び/又はアップグレードに必要とされないように、ナビゲーションデバイス200のユーザインタフェース機能性を第1の外部デバイス122のデバイス制御機能性から効果的に分離できる。同一の原理は、第2の外部デバイス124及び第3の外部デバイス126に対しても当てはまる。
【0087】
上記XMLサンプルコードは、画面出力構造300(図8)又は第1の領域302、第2の領域304及び第3の領域306を含むテンプレートに関連する。第1の領域302は第1のラベル308に対応でき、第2の領域304は、第2のラベル310及びこの例において美的分割線314により区切られる第3のラベル312に対応できる。第3の領域306は、この例において、3つの「ソフトボタン」、即ち第1のソフトボタン318及び第2のソフトボタン320を含む一対のソフトボタン316、並びに第3のソフトボタン322に対応できる。
【0088】
動作中、第1の外部デバイス122は、ナビゲーションデバイス200のGUIを使用することにより、ナビゲーションデバイス200のユーザが第1の外部デバイス122を制御できるように、ナビゲーションデバイス200と対話する。説明を簡潔且つ容易にするため、第2の外部デバイス124又は第3の外部デバイス126のナビゲーションデバイス200との相互動作は、同様の動作原理が当てはまるので最初に説明しない。しかし、ユーザインタフェースホスト278及び/又はユーザインタフェースクライアント論理294により提供される他の有用な機能を例示するため、3つの外部デバイスのうちの2つとナビゲーションデバイス200との相互動作については、本明細書において後で説明する。
【0089】
図9を参照すると、ホスト処理論理284により容易にされるユーザインタフェースホスト278とユーザインタフェースクライアント論理294との間のBluetooth通信プロトコル及び通信セッションに従って第1の外部デバイス122とナビゲーションデバイス200との間の第1の通信リンク128を確立した後、ユーザインタフェースクライアント論理294は、ユーザインタフェースホスト278により格納される多数の画面テンプレートの中から、上述の図8のテンプレートに対応するように第1の外部デバイス122の設計段階中に選択された所定の画面テンプレートを選択するようにSetTemplateメッセージ330を送出する。従って、SetPropertyメッセージは、関連するウィジェットテンプレート定義において示される1つ以上のウィジェットを限定するように機能することが分かる。制御/ウィジェットの公開プロパティが設定されない場合、制御/ウィジェットは非アクティブのままであり且つ表示されず、依然としてユーザに対して検出不可である。その結果、外部デバイスが画面テンプレートの一部分のみを使用することにより、既存のテンプレートの部分が使用されるためにいくつかの状況において専用テンプレートの必要性を除去する。
【0090】
その後、ユーザインタフェースクライアント論理294は、第1のラベル308が「Tuner」340という語を示すように構成するために第1のSetPropertyメッセージ332を送出する。次に、ユーザインタフェースクライアント論理294は、一対のソフトボタン316が、それぞれ、「Scan -」342及び「Scan +」344を示すように構成するために第2のSetPropertyメッセージ334を送出する。後続のSetPropertyメッセージ336も、第2のラベル310、第3のラベル312及び第3のソフトボタン322が、それぞれ、「101.6 FM」346、「Sky Radio」348及び「Volume」350を示すように構成するために送出される。
【0091】
その後、ユーザインタフェースクライアント論理294は、UpdateScreenメッセージ338を送出する。UpdateScreenメッセージ338に応答して、テンプレート図面及びイベント処理モジュール282は、ホスト処理論理284が受信する構成データを使用し、図10に示すのと同様の方法でタッチスクリーン250の表示部分でレンダリングするため、即ち提示するためにナビゲーションデバイス200のグラフィカルサブシステム272に通信される図面コマンドを生成する。
【0092】
ラベル及びソフトボタンをレンダリング又はインスタンス化することにより、上述のようにFMチューナである第1の外部デバイス122を制御する機会をユーザに提示する。その結果、提供されるユーザインタフェースにより、ユーザは、1つ以上のジェスチャを提供してFMチューナを制御できる。ジェスチャは、タッチスクリーン250のタッチセンサ入力部分、例えば又はリモートコントロール(不図示)を使用して提供される。従って、入力サブシステム274は、例えばタッチスクリーンのタッチセンサ入力部分からのイベントデータを待つ。
【0093】
例えばユーザが「Scan +」(第2の)ボタン320、344をタッチする場合、入力サブシステム274は、タッチスクリーンドライバ266からタッチイベントデータを受信する。これは、ホスト処理論理284が受信するタッチイベントとしてその後入力サブシステム274により処理及び通信され、例えばボタンが押下されたというイベントの特性を詳述するRaiseEventメッセージ339として第1の通信リンク128を介してユーザインタフェースクライアント論理294に通信される。RaiseEventメッセージ339を受信すると、ユーザインタフェースクライアント論理294は、例えば関連するようにボタンが事前に特定されている機能を識別するRaiseEventメッセージを解釈し、順方向にFMチューナを走査するように第1の外部デバイス122のハードウェアを操作するクライアントアプリケーション論理292に内部制御メッセージを伝達する。
【0094】
当然、ユーザインタフェースクライアント論理294からの他の応答は、例えばユーザが「volume」350(第3の)ボタン322を選択するのに応答して提供される。そのような一実施例において、ユーザインタフェースクライアント論理294は、別のユーザインタフェース画面テンプレート、例えばユーザが所望する音量変化を通信するイベントデータを提供できるスライダ(不図示)を含むユーザインタフェース画面テンプレートに従って新しい画面を提示するようユーザインタフェースホスト278に要求するために、図9に対して上述のテンプレート選択及び応答処理を繰り返す。
【0095】
明らかなように、この例において、ナビゲーションデバイス200の少なくともユーザインタフェースの一部の使用に対する要求は、一般に、ナビゲーションデバイス200のユーザインタフェースホスト278により処理され、第1の外部デバイス122のユーザインタフェースクライアント論理294がナビゲーションデバイス200のGUIにより提示されるコンテンツの制御率に影響を及ぼせるようにメッセージを伝達する。この点において、外部デバイスにより制御テンプレートの各制御に割り当てられる情報コンテンツの重要性は、選択されるか又はユーザとタッチスクリーン250との対話を介してコマンドが発行される場合、ユーザインタフェースホスト278及び/又はメインアプリケーション276、あるいは実際にナビゲーションデバイス200の任意の部分により認識されないか又は使用されない。GUIの外部のアプリケーションに提供されるフィードバックの重要性は、同様に、GUIと全く関連しないか又はGUIには役に立たない。GUIへのリモートアクセスは、第1の外部デバイス122(及びそのようなリモートアクセスに適当な任意の他のもの)に容易に提供され、外部デバイスを制御するデータを有さないGUI関連情報は、ナビゲーションデバイス200のユーザインタフェースと外部デバイスとの間で容易に伝達され、GUI関連データはGUIイベントデータを含む。従って、ユーザによる応答は、ナビゲーションデバイス200からの任意の制御メッセージ又は命令を発行することなく、ユーザインタフェースホスト278によりユーザインタフェースクライアント論理294に通信され、情報は、GUIと外部アプリケーションとの間でのみ中継される。
【0096】
図11を参照すると、別の実施形態において、第2の外部デバイス124は、第1の外部デバイス122に加えてナビゲーションデバイス200と通信し、ナビゲーションデバイス200のGUIを使用する機会を競っている。従って、上述のように、画面テンプレート定義140は、各々が異なる外部デバイスに割り当てられる画面の個別「スライス」を構成する多数の制御テンプレート定義142を含む。この点において、動作モード状態、即ち前の実施形態に関連して既に上述された最大モード状態及び最小モード状態は、各スライスと関連付けられる。最大モード状態は、メインアプリケーション276、第1の外部デバイス122又は第2の外部デバイス124のうちの1つに優先的に割り当てられる。その詳細については、本明細書において後で説明する。しかし、メインアプリケーション276が、第1の外部デバイス122及び第2の外部デバイス124よりもユーザインタフェースホスト278を優先すると仮定すると、メインアプリケーション276は最大モード状態に割り当てられる。従って、メインアプリケーション276は、ナビゲーションデバイス200のGUIが使用するテンプレート画面を選択することが許可される。第1のスライス360は、メインアプリケーション276が使用するように確保された第1の制御テンプレート定義を有する。これに対して、ユーザインタフェースホスト278は、スライス及び画面テンプレート定義140の関連制御テンプレート定義を第1の外部デバイス122及び第2の外部デバイス124に割り当てる。従って、ユーザインタフェースホスト278は、第2のスライス362及び第2の制御テンプレート定義を第2の外部デバイス124に割り当て、且つ第3のスライス364及び第3の制御テンプレート定義を第1の外部デバイス122に割り当てる。
【0097】
上記方法を実現するため、メインアプリケーション276は、画面アクセスネゴシエーションモジュール286及び内部通信リンクを介してホスト処理論理284と通信し(図12)、SetTemplateメッセージ280を送出して画面テンプレート定義140を選択し、第1の制御テンプレート定義及び第1のスライス360がナビゲーション機能に対してユーザとインタフェースするために使用されることを認識するように事前設定される。画面テンプレート定義140がメインアプリケーション276により選択されると、テンプレート図面及びイベント処理モジュール282は、画面テンプレート定義140及び関連する第1の制御テンプレート、並びにデータベース280からのレイアウト定義を検索する282。その後、ホスト処理論理284は、第3のスライス364及び第3の制御テンプレート定義を第1の外部デバイス122に割り当てるために、第1のSetHostTemplateメッセージ284を第1の外部デバイス122のユーザインタフェースクライアント論理294に送出する。同様に、ホスト処理論理284は、第2のスライス362及び第2の制御テンプレート定義を第2の外部デバイス124に割り当てるために、第2のSetHostTemplateメッセージ286をユーザインタフェースクライアント論理(不図示)に送出する。
【0098】
この例において、第1のスライス360に対する第1の制御テンプレート定義は、第1のスライスラベル366、第1のスライスソフトボタン368及び第2のスライスソフトボタン370を定義する。また、スライス美的分割線372が定義される。第2のスライス362に対する第2の制御テンプレート定義は、第3のスライスソフトボタン374を定義する。第3のスライス364に対する第3の制御テンプレート定義は、第4のスライスソフトボタン376を定義する。ナビゲーションデバイス200のGUIにより統合される場合、統合スライス画面378はユーザに提示される。当然、上述のように、各制御テンプレート定義は関連するレイアウト定義を有する。
【0099】
第1のスライス360、第2のスライス362及び第3のスライス364は、それぞれ、以下の通りメインアプリケーション276、第1の外部デバイス122及び第2の外部デバイス124により規定される。この例において、メインアプリケーション276は、それぞれ、第1のスライスラベル366を「アドレスを保存しますか?」ラベル290(図13)、第1のスライスソフトボタン368を「はい、保存します」ソフトボタン292及び第2のスライスソフトボタン370を「いいえ」ソフトボタン294としてレンダリング又はインスタンス化するために、グラフィカルサブシステム272と直接通信する。
【0100】
第1の外部デバイス122及び第2の外部デバイス124、第3のスライス364及び第2のスライス362の以下の割り当て、並びに関連する制御テンプレート定義のそれぞれに対して、第1のSetHostTemplateメッセージ284及び第2のSetHostTemplateメッセージ286を使用して、ユーザインタフェースクライアント論理294の各々は、それぞれ、第3のスライスソフトボタン374を第2の外部デバイス124の空調機能と関連付けられる「空調ON」ソフトボタン296、第4のスライスソフトボタン376をFMチューナと関連付けられる「106.1 FM」ソフトボタン298として規定するために、1つ以上のSetPropertyメッセージ400(図14)を送出することによりユーザインタフェースホスト278のホスト処理論理284と通信する。第1の外部デバイス122及び第2の外部デバイス124の各々が全ての必要な制御を規定した後、第2の外部デバイス122及び第3の外部デバイス124は、それぞれ、各UpdateScreenメッセージ402をホスト処理論理284に送出する。UpdateScreenメッセージ402の各々に応答して、テンプレート図面及びイベント処理モジュール282は、タッチスクリーン250の部分を統合スライス画面378としてレンダリングする、即ち提示するようにナビゲーションデバイス200のグラフィカルサブシステム272に通信される図面コマンドを生成するために、ホスト処理処理284が受信する構成データを使用する。
【0101】
図9に対して上述されるのと同様に、第1のスライスソフトボタン368、292又は第2のスライスソフトボタン370、294を選択する結果、必要に応じてその機能応答のために、入力サブシステム274によりナビゲーションアプリケーション276に直接通信されるイベントデータを生成する。これに対して、ユーザが第3のスライスソフトボタン374、296を選択する結果、第2の外部デバイス124の空調機能性に関して解釈及び場合によっては応答するために、第2の外部デバイス124のユーザインタフェースクライアント論理(不図示)に送出されるホスト処理論理284によりイベントデータ及び別のRaiseEventメッセージ404を生成する。同様に、ユーザが第4のスライスソフトボタン376、298を選択する結果、第1の外部デバイス122のFMチューナの機能性に関して解釈及び場合によっては応答するために、第1の外部デバイス122のユーザインタフェースクライアント論理294に送出されるホスト処理論理284によりイベントデータ及び更なるRaiseEventメッセージ404を生成する。
【0102】
ナビゲーションデバイス200のGUIにより生成される統合スライス画面378に対するユーザの選択に依存して、メインアプリケーション276は最大モード状態を保持するか、あるいは最大モード状態は第1の外部デバイス122又は第2の外部デバイス124に伝達される。第1の外部デバイス122又は第2の外部デバイス124の状態が最小モード状態から最大モード状態にアップグレードされる場合、メインアプリケーション276は最小モード状態にダウングレードされる。最大モード状態が第1の外部デバイス122又は第2の外部デバイス124のうちのいずれか一方に伝達される場合、アップグレードされた状態の外部デバイスは、必要に応じて別の画面テンプレートを選択でき、上記割り当て及びテンプレートの規定は、主にアップグレードされた状態の外部デバイスに集中して繰り返される。
【0103】
最大モード状態を要求するため、第1の外部デバイス122又は第2の外部デバイス124のうちのいずれか一方、例えば第1の外部デバイス122は、0から127の間の値等、優先度の表示を含むRequstFullModeメッセージを送出する。その後、ホスト処理論理284は、各要求から受信される優先レベル値に依存して最大モード状態に対する要求を調停できる。実際にこの技術は、上述の例において、メインアプリケーション276の最大モード状態を最初に設定するように採用される。
【0104】
現在最大モード状態を享受しているアプリケーションと関連付けられるよりも高い優先度値のホスト処理論理284が最大モード状態に対する要求を受信する場合、ホスト処理論理284は、LostFullModeメッセージを使用して、現在最大モード状態を享受しているアプリケーションに最大モード状態の損失を通信する。また、FullModeGrantメッセージは、最大モード状態を要求するより優先度の高いアプリケーションに送出される。当然、最大モード状態に対する要求が不十分な優先度である場合、ホスト処理論理284が最大モード状態を要求する外部アプリケーションにFullModeRefuseメッセージを送出する結果、要求する外部アプリケーションは少なくとも一時的に最大モード状態を拒絶される。しかし、ホスト処理論理284は、要求を伴う優先度の表示と共に外部アプリケーションによる要求を記録する。しかし、ホスト処理論理284は、その後、現在最大モード状態を享受しているアプリケーションが、例えば優先レベルがより低いRequestFullModeメッセージをホスト処理論理284に送出することでそれに関連付けられる優先レベルを下回る場合又はReleaseFullModeメッセージをホスト処理論理284に送出することで最大モード状態を放棄する場合に要求を行なった外部アプリケーションに最大モード状態を割り当てることにより、アプリケーションと関連付けられる優先レベルをゼロに設定する。
【0105】
別の実施例において、アプリケーションが最大モード状態を要求しない場合、最大モード状態を享受するアプリケーションは、ReleaseFullModeメッセージをホスト処理論理284に送出して、最大モード状態を放棄し、関連する優先レベルを減少する。そのような状況において、ホスト処理論理284は、AssignFullModeメッセージをそれに関連付けられる次の最優先値を有する別のアプリケーションに送出する。最大モード状態を別のアプリケーションに割り当てた結果、上述の割り当てが得られ、テンプレートの特定が繰り返される。
【0106】
別の実施形態において、メッセージ交換の高速度化を容易にするためにバーストモードが提供される。バーストモードにおいて、複数のメッセージ又はコマンドは、往復遅延時間を減少させるために単一メッセージ構造に合成される。各メッセージが承認される必要があり且つメッセージを送出するエンティティが応答を待つ必要がある非バーストモードに対して、単一の応答、例えば承認はバーストモードメッセージに応答して送出される。この例において、バーストモードメッセージは単一方向であり、アプリケーションからホスト処理論理284に送出される。
【0107】
従って、上記実施例は、パーソナルエリアネットワークがナビゲーションデバイス200のGUIに対するリモートアクセス及び/又は操作を提供するために使用されることを示す。
【0108】
上述されなかったが、当業者であれば、特に2つの更なるコマンド、即ちResetProperties及びResetIndexedPropertiesが存在することを理解するだろう。ResetPropertiesコマンドは、制御テンプレート定義により規定される制御の公開プロパティをデフォルト値にリセットさせる。その後設定されない場合、リセット制御は非アクティブであり、この例においてユーザに検出されない。ResetIndexedPropertiesコマンドは、合成制御の要素、例えばリスト制御を除いて同様のリセット機能を提供する。
【0109】
本発明の種々の態様及び実施形態についてこれまで説明したが、本発明の範囲は本明細書において示される特定の構成に限定されず、添付の請求の範囲の範囲内の全ての構成、並びに変更及び変化を含むように拡張することが更に理解されるだろう。
【0110】
例えば、上記実施形態はGUIに関して説明されたが、上記技術が他のユーザインタフェース、例えば音声入力ユーザインタフェース及び/又はオーディオ出力ユーザインタフェースに関連して使用されてもよいことは、当業者には理解されるだろう。
【0111】
更に又はあるいは、車両から取り外し可能であり且つ個人が物理的に携行できるという意味で携帯可能であるPNDに関して上述の例を説明したが、上述のPNDが車両から取り外し可能である必要はなく、車両に内蔵されてもよいこと、即ちPNDが例えば車両内の固定位置に固定されてもよいことが当業者には理解されるだろう。実際に、上記例は単に例示するものとして考慮されるべきであり、上述の技術は他のアプリケーションに対しても実現可能である。
【0112】
例えば上述の技術は、ナビゲーションの分野に対して適用される必要ななく、他の試みの分野に関連して使用されてもよい。一例として、他の(1つ以上の)外部デバイスと共有されるユーザインタフェースを有する主デバイスを具備する1つの別のアプリケーションは、建物内の他の場所に配置されるデバイスから遠く離れて配置される各ユーザインタフェースを有する主デバイスを具備する建物内システム、即ち例えば主デバイスの外部にある建物環境制御システムである。
【0113】
更に、上述の実施形態のいずれかに対して、外部デバイスと1つ以上の主デバイスとの任意の所望の順列関係に従って各々が多数の外部デバイスにより共有されるユーザインタフェースを所有する2つ以上の主デバイスが提供されると考えられる。要求に応じて、外部デバイスは、例えば第1の場所で第1の主デバイスを介して第1の出力の種類及び第2の場所で第2の主デバイスを介して第2の出力の種類を提供する必要がある場合、所定の方式に従って第1の主デバイスのユーザインタフェース及び第2の主デバイスのユーザインタフェースを共有できる。
【0114】
尚、上記詳細な説明において説明された実施形態はGPSを参照したが、ナビゲーションデバイスがGPSの代わりとして(又は実際にはGPSに加えて)任意の種類の位置検出技術を利用してもよい。例えばナビゲーションデバイスは、欧州のガリレオシステム等の他のグローバルナビゲーション衛星システムを使用して利用してもよい。同様に、衛星を使用するものに限定されず、デバイスに地理的場所を判定させる地上に基づくビーコン又は任意の他の種類のシステムを使用して容易に機能できる。
【0115】
本発明の別の実施形態は、例えばディスケット、CD ROM、ROM又は固定ディスク等の有形データ記録媒体上に格納される一連のコンピュータ命令であり、コンピュータシステムと共に使用するコンピュータプログラム製品として実現されるか、あるいは有形媒体又は無線媒体、例えばマイクロ波又は赤外線を介して送信されるコンピュータデータ信号において具体化される。一連のコンピュータ命令は、上述の機能性の全て又は一部を構成し、半導体メモリ素子、磁気メモリ素子、光学メモリ素子又は他のメモリ素子等、揮発性又は不揮発性の任意のメモリ素子に格納される。
【0116】
当業者であれば、好適な実施形態はソフトウェアを使用してある特定の機能性を実現するが、その機能性は、(例えば、1つ以上のASIC(特定用途向け集積回路)を使用することにより)ハードウェアにおいてのみ又は実際にはハードウェアとソフトウェアとの混合により同様に実現されることも十分に理解するだろう。従って、本発明の範囲は、ソフトウェアにおいてのみ実現されるものとして限定して解釈されるべきではない。
【0117】
最後に、添付の請求の範囲は本明細書において説明される特徴の特定の組合せを示すが、本発明の範囲は以下の請求の範囲の特定の組合せに限定されず、特定の組合せが今回添付される請求の範囲に特に列挙されているか否かに関係なく、本明細書において開示される特徴又は実施形態の任意の組合せを含むように拡張されることが更に留意されるべきである。
【特許請求の範囲】
【請求項1】
使用時に、メインアプリケーション及びユーザインタフェースをサポートするように構成された処理リソースと、
データ格納部と、
使用時に、受信されたメッセージに応じて選択可能なユーザインタフェース・テンプレートにアクセスするように構成されたユーザインタフェース・ホスト・エンティティとを備え、
前記ユーザインタフェース・テンプレートは、多数のユーザインタフェース要素の所定の表示を含み、
前記ユーザインタフェースは、前記多数のユーザインタフェース要素の前記所定の表示から選択された前記ユーザインタフェース・テンプレートをユーザインタフェースの例示に転換するように構成されていることを特徴とする通信装置。
【請求項2】
前記処理リソースは、前記ユーザインタフェースを使用するために競合した要求間を調停するように構成されていることを特徴とする請求項1に記載の装置。
【請求項3】
通信ネットワークを介して前記メインアプリケーションに対する外部アプリケーションとの通信をサポート可能な通信インタフェースを更に備え、
前記処理リソースは、使用時に、前記外部アプリケーションに、前記通信ネットワークを介した前記ユーザインタフェースへのリモートアクセスを提供するように構成されていることを特徴とする請求項1又は2に記載の装置。
【請求項4】
前記通信インタフェースは、使用時に、前記外部アプリケーションと通信するように構成され、前記外部アプリケーションは、前記処理リソースの外部の機器に設けられていることを特徴とする請求項3に記載の装置。
【請求項5】
前記機器を含む電子装置を更に含み、
前記電子装置は、前記処理リソースとは分かれて収容されていることを特徴とする請求項4に記載の装置。
【請求項6】
前記ユーザインタフェース要素は、グラフィカルユーザインタフェース(GUI)・ウィジェットであることを特徴とする請求項1乃至5のいずれか1項に記載の装置。
【請求項7】
前記ユーザインタフェースは、ローカルに格納された多数のユーザインタフェース・テンプレートのうちの前記ユーザインタフェース・テンプレートにアクセスするように構成されていることを特徴とする請求項1乃至6のいずれか1項に記載の装置。
【請求項8】
前記通信インタフェースを介して受信された前記メッセージは、前記ユーザインタフェース・テンプレートを識別し、前記ユーザインタフェース・テンプレートの選択を構成することを特徴とする請求項7に記載の装置。
【請求項9】
前記ユーザインタフェースは、使用時に、前記ユーザインタフェース・テンプレートのユーザインタフェース要素を限定する情報を受信するように構成されていることを特徴とする請求項1乃至8のいずれか1項に記載の装置。
【請求項10】
前記多数のユーザインタフェース要素は、定義可能な制御要素を含むことを特徴とする請求項1乃至9のいずれか1項に記載の装置。
【請求項11】
前記多数のユーザインタフェース要素は、定義可能なラベル要素を含むことを特徴とする請求項1乃至10のいずれか1項に記載の装置。
【請求項12】
前記ユーザインタフェースは、前記多数のユーザインタフェース要素の要素の前記ユーザインタフェースの例示とのユーザ対話に応じて、イベントデータを生成するように構成されていることを特徴とする請求項1乃至11のいずれか1項に記載の装置。
【請求項13】
請求項3に従属する場合、前記処理リソースは、前記外部アプリケーションによる受信のための前記通信インタフェースを介した前記イベントデータを通信するように構成されていることを特徴とする請求項12に記載の装置。
【請求項14】
ユーザインタフェースのナビゲーション・ジェスチャーを受信するように構成された入力装置を更に備え、
前記イベントデータは、前記ユーザインタフェースのナビゲーション・ジェスチャーに対応することを特徴とする請求項1乃至13のいずれか1項に記載の装置。
【請求項15】
前記ユーザインタフェースは、グラフィカルユーザインタフェースであることを特徴とする請求項1乃至14のいずれか1項に記載の装置。
【請求項16】
前記ユーザインタフェース・テンプレートは、前記ユーザインタフェース・テンプレートに関連付けられる所定のレイアウトを有することを特徴とする請求項15に記載の装置。
【請求項17】
前記通信インタフェースは、無線通信インタフェースであることを特徴とする請求項1乃至16のいずれか1項に記載の装置。
【請求項18】
請求項1乃至17のいずれか1項に記載の前記通信装置を含むことを特徴とするナビゲーション装置。
【請求項19】
請求項3に記載の前記通信装置を含む第1のデバイスと、
前記外部アプリケーションをサポートする第2のデバイスとを含む通信システムであって、
前記第1及び第2のデバイスは、前記通信ネットワークを介して通信するように構成されていることを特徴とする通信システム。
【請求項20】
前記第1のデバイスは前記第1のデバイスに関連付けられた第1の動作タスクを有し、前記第2のデバイスは前記第2のデバイスに関連付けられた第2の動作タスクを有し、前記第1及び前記第2の動作タスクは異なっていることを特徴とする請求項19に記載のシステム。
【請求項21】
前記第1のデバイスはナビゲーションデバイスであり、前記第2のデバイスは娯楽システムであることを特徴とする請求項19又は20に記載のシステム。
【請求項22】
ユーザインタフェースを提供する方法であって、
メインアプリケーション及びユーザインタフェースをサポートする工程と、
メッセージを受信する工程と、
受信された前記メッセージに応じて多数のユーザインタフェース要素の所定の表示を含むユーザインタフェース・テンプレートを選択する工程と、
前記多数のユーザインタフェース要素の前記所定の表示から選択された前記ユーザインタフェース・テンプレートをユーザ用のユーザインタフェースの例示に転換する工程と
を含むことを特徴とする方法。
【請求項23】
通信インタフェースをサポートする工程と、
通信ネットワークにおいて通信をサポートする工程と、
前記メインアプリケーションに対する外部アプリケーションに、前記通信ネットワークを介した前記ユーザインタフェースへのリモートアクセスを提供する工程と
を更に含むことを特徴とする請求項22に記載の方法。
【請求項24】
請求項22又は請求項23に記載の方法をコンピュータに実行させるコンピュータプログラムコード手段を含むことを特徴とするコンピュータプログラム要素。
【請求項25】
コンピュータ読み取り可能な媒体上で具現化される請求項24に記載のコンピュータプログラム要素。
【請求項1】
使用時に、メインアプリケーション及びユーザインタフェースをサポートするように構成された処理リソースと、
データ格納部と、
使用時に、受信されたメッセージに応じて選択可能なユーザインタフェース・テンプレートにアクセスするように構成されたユーザインタフェース・ホスト・エンティティとを備え、
前記ユーザインタフェース・テンプレートは、多数のユーザインタフェース要素の所定の表示を含み、
前記ユーザインタフェースは、前記多数のユーザインタフェース要素の前記所定の表示から選択された前記ユーザインタフェース・テンプレートをユーザインタフェースの例示に転換するように構成されていることを特徴とする通信装置。
【請求項2】
前記処理リソースは、前記ユーザインタフェースを使用するために競合した要求間を調停するように構成されていることを特徴とする請求項1に記載の装置。
【請求項3】
通信ネットワークを介して前記メインアプリケーションに対する外部アプリケーションとの通信をサポート可能な通信インタフェースを更に備え、
前記処理リソースは、使用時に、前記外部アプリケーションに、前記通信ネットワークを介した前記ユーザインタフェースへのリモートアクセスを提供するように構成されていることを特徴とする請求項1又は2に記載の装置。
【請求項4】
前記通信インタフェースは、使用時に、前記外部アプリケーションと通信するように構成され、前記外部アプリケーションは、前記処理リソースの外部の機器に設けられていることを特徴とする請求項3に記載の装置。
【請求項5】
前記機器を含む電子装置を更に含み、
前記電子装置は、前記処理リソースとは分かれて収容されていることを特徴とする請求項4に記載の装置。
【請求項6】
前記ユーザインタフェース要素は、グラフィカルユーザインタフェース(GUI)・ウィジェットであることを特徴とする請求項1乃至5のいずれか1項に記載の装置。
【請求項7】
前記ユーザインタフェースは、ローカルに格納された多数のユーザインタフェース・テンプレートのうちの前記ユーザインタフェース・テンプレートにアクセスするように構成されていることを特徴とする請求項1乃至6のいずれか1項に記載の装置。
【請求項8】
前記通信インタフェースを介して受信された前記メッセージは、前記ユーザインタフェース・テンプレートを識別し、前記ユーザインタフェース・テンプレートの選択を構成することを特徴とする請求項7に記載の装置。
【請求項9】
前記ユーザインタフェースは、使用時に、前記ユーザインタフェース・テンプレートのユーザインタフェース要素を限定する情報を受信するように構成されていることを特徴とする請求項1乃至8のいずれか1項に記載の装置。
【請求項10】
前記多数のユーザインタフェース要素は、定義可能な制御要素を含むことを特徴とする請求項1乃至9のいずれか1項に記載の装置。
【請求項11】
前記多数のユーザインタフェース要素は、定義可能なラベル要素を含むことを特徴とする請求項1乃至10のいずれか1項に記載の装置。
【請求項12】
前記ユーザインタフェースは、前記多数のユーザインタフェース要素の要素の前記ユーザインタフェースの例示とのユーザ対話に応じて、イベントデータを生成するように構成されていることを特徴とする請求項1乃至11のいずれか1項に記載の装置。
【請求項13】
請求項3に従属する場合、前記処理リソースは、前記外部アプリケーションによる受信のための前記通信インタフェースを介した前記イベントデータを通信するように構成されていることを特徴とする請求項12に記載の装置。
【請求項14】
ユーザインタフェースのナビゲーション・ジェスチャーを受信するように構成された入力装置を更に備え、
前記イベントデータは、前記ユーザインタフェースのナビゲーション・ジェスチャーに対応することを特徴とする請求項1乃至13のいずれか1項に記載の装置。
【請求項15】
前記ユーザインタフェースは、グラフィカルユーザインタフェースであることを特徴とする請求項1乃至14のいずれか1項に記載の装置。
【請求項16】
前記ユーザインタフェース・テンプレートは、前記ユーザインタフェース・テンプレートに関連付けられる所定のレイアウトを有することを特徴とする請求項15に記載の装置。
【請求項17】
前記通信インタフェースは、無線通信インタフェースであることを特徴とする請求項1乃至16のいずれか1項に記載の装置。
【請求項18】
請求項1乃至17のいずれか1項に記載の前記通信装置を含むことを特徴とするナビゲーション装置。
【請求項19】
請求項3に記載の前記通信装置を含む第1のデバイスと、
前記外部アプリケーションをサポートする第2のデバイスとを含む通信システムであって、
前記第1及び第2のデバイスは、前記通信ネットワークを介して通信するように構成されていることを特徴とする通信システム。
【請求項20】
前記第1のデバイスは前記第1のデバイスに関連付けられた第1の動作タスクを有し、前記第2のデバイスは前記第2のデバイスに関連付けられた第2の動作タスクを有し、前記第1及び前記第2の動作タスクは異なっていることを特徴とする請求項19に記載のシステム。
【請求項21】
前記第1のデバイスはナビゲーションデバイスであり、前記第2のデバイスは娯楽システムであることを特徴とする請求項19又は20に記載のシステム。
【請求項22】
ユーザインタフェースを提供する方法であって、
メインアプリケーション及びユーザインタフェースをサポートする工程と、
メッセージを受信する工程と、
受信された前記メッセージに応じて多数のユーザインタフェース要素の所定の表示を含むユーザインタフェース・テンプレートを選択する工程と、
前記多数のユーザインタフェース要素の前記所定の表示から選択された前記ユーザインタフェース・テンプレートをユーザ用のユーザインタフェースの例示に転換する工程と
を含むことを特徴とする方法。
【請求項23】
通信インタフェースをサポートする工程と、
通信ネットワークにおいて通信をサポートする工程と、
前記メインアプリケーションに対する外部アプリケーションに、前記通信ネットワークを介した前記ユーザインタフェースへのリモートアクセスを提供する工程と
を更に含むことを特徴とする請求項22に記載の方法。
【請求項24】
請求項22又は請求項23に記載の方法をコンピュータに実行させるコンピュータプログラムコード手段を含むことを特徴とするコンピュータプログラム要素。
【請求項25】
コンピュータ読み取り可能な媒体上で具現化される請求項24に記載のコンピュータプログラム要素。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公表番号】特表2011−501833(P2011−501833A)
【公表日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2010−524365(P2010−524365)
【出願日】平成20年7月31日(2008.7.31)
【国際出願番号】PCT/EP2008/006506
【国際公開番号】WO2009/033533
【国際公開日】平成21年3月19日(2009.3.19)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
2.GSM
【出願人】(307043223)トムトム インターナショナル ベスローテン フエンノートシャップ (144)
【Fターム(参考)】
【公表日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願日】平成20年7月31日(2008.7.31)
【国際出願番号】PCT/EP2008/006506
【国際公開番号】WO2009/033533
【国際公開日】平成21年3月19日(2009.3.19)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
2.GSM
【出願人】(307043223)トムトム インターナショナル ベスローテン フエンノートシャップ (144)
【Fターム(参考)】
[ Back to top ]