(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-22
(45)【発行日】2022-12-01
(54)【発明の名称】構成可能な仮想ウィジェットを含むタッチ感応性ユーザインターフェース
(51)【国際特許分類】
G06F 3/048 20220101AFI20221124BHJP
G06F 3/01 20060101ALI20221124BHJP
【FI】
G06F3/048
G06F3/01 560
(21)【出願番号】P 2020523241
(86)(22)【出願日】2018-10-23
(86)【国際出願番号】 US2018057103
(87)【国際公開番号】W WO2019084002
(87)【国際公開日】2019-05-02
【審査請求日】2021-10-19
(32)【優先日】2017-10-24
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2017-10-24
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-10-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】397050741
【氏名又は名称】マイクロチップ テクノロジー インコーポレイテッド
【氏名又は名称原語表記】MICROCHIP TECHNOLOGY INCORPORATED
(74)【代理人】
【識別番号】110000626
【氏名又は名称】弁理士法人英知国際特許商標事務所
(72)【発明者】
【氏名】リドル、ウイリアム ジェー.
【審査官】木内 康裕
(56)【参考文献】
【文献】特表2013-528855(JP,A)
【文献】特開2014-102830(JP,A)
【文献】米国特許出願公開第2011/0099498(US,A1)
【文献】特開2017-058887(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/048 - 3/04895
(57)【特許請求の範囲】
【請求項1】
ユーザインターフェースシステムであって、
1つ以上の仮想ウィジェットの配置を含むグラフィカルユーザインターフェース(GUI)を表示するように構成されているタッチスクリーンであって、各仮想ウィジェット
は、形状を有し、かつ前記GUIを介して表示されている1つ以上のユーザインターフェース要素を含み、
前記1つ以上の仮想ウィジェットの前記配置
は、構成可能である、タッチスクリーンと、
タッチコントローラであって、該タッチコントローラはGUI要素探索エンジンを含み、前記タッチコントローラは、前記タッチスクリーンにおいてタッチを感知することと、前記タッチに対応する仮想ウィジェットを識別することと、(a)前記識別された仮想ウィジェットが表示される前記タッチスクリーンの領域において触覚フィードバックを提供するようにアクチュエータを制御すること、又は(b)前記ユーザインターフェースシステムと関連付けられた電子デバイスを制御すること、のうちの少なくとも1つを含むアクションを開始することと、を行うように構成されている、
タッチコントローラと、
インターフェースを介して前記タッチコントローラに結合されたヘッドユニットと、を備え、
前記タッチコントローラは、前記ヘッドユニットとは別個であり、
前記タッチコントローラは、前記タッチスクリーンにおける前記タッチに対応する前記識別された仮想ウィジェットの位置又は状態を示す、ウィジェットメッセージを生成し、前記ヘッドユニットに転送するように構成され、
前記タッチコントローラは、処理されるタッチ情報を前記インターフェースに直接転送するようにロジックを制御するように構成され、
前記タッチ情報を転送することは、前記GUI要素探索エンジンによって仮想ウィジェットのタッチが識別されるときに中断される、ユーザインターフェースシステム。
【請求項2】
前記
タッチコントローラは、マイクロコントローラ内で具現化されている、請求項1に記載のユーザインターフェースシステム。
【請求項3】
GUI定義を構文解析して、前記GUI内の複数のGUI要素を識別することと、
識別されたGUI要素の入力を含むレコードを作成することと、
前記識別されたGUI要素の前記相対場所に基づいて、前記識別された要素を仮想ウィジェットにグループ化することと、
前記識別されたGUI要素のレコードを要素ライブラリに配置することと、によって、前記GUI内に含まれるGUI要素のライブラリを生成するように構成されているアプリケーションツールを更に備える、請求項1又は2に記載のユーザインターフェースシステム。
【請求項4】
前記アプリケーションツールは、
前記識別されたGUI要素のレコードをGUI要素の木状構造に配置することと、
仮想ウィジェットに共にグループ化された識別されたGUI要素を、前記GUI要素の木状構造体内の単一の葉に折り畳むことと、
前記GUI要素の、要素の木状構造に応答して探索命令を生成することと、を含むプロセスによって、前記識別されたGUI要素のレコードを、GUI要素ライブラリに配置するように構成されており、
前記
タッチコントローラは、前記探索命令を使用して、前記タッチスクリーンにおける前記タッチに対応する前記仮想ウィジェットを識別するように構成されている、請求項3に記載のユーザインターフェースシステム。
【請求項5】
前記GUIの少なくとも1つの仮想ウィジェットは、少なくとも1つの仮想ボタン、仮想スライダ、仮想ノブ、仮想ダイヤル、又は他の仮想ユーザインターフェースを含む、複数のアクティブGUI要素の集合体を備える、請求項1~4のいずれか一項に記載のユーザインターフェースシステム。
【請求項6】
前記GUIの少なくとも1つの仮想ウィジェットは、仮想ボタン、仮想スライダ、仮想ノブ、仮想ダイヤル、又は他の仮想ユーザインターフェースを集合的に定義する複数の別個のアクティブGUI要素の集合体を備える、請求項1~5のいずれか一項に記載のユーザインターフェースシステム。
【請求項7】
前記
タッチコントローラは、ウィジェット定義を記憶するタッチコントローラ構成モジュールに結合される、請求項1~6のいずれか一項に記載のユーザインターフェースシステム。
【請求項8】
タッチコントローラプロセッサによって前記ヘッドユニットに送信された前記ウィジェットメッセージは、タッチ関連位置、回転、タッチされた/非タッチ状態、又は前記仮想ウィジェット上の検出されたタッチの数のうちの少なくとも1つを示す、請求項7に記載のユーザインターフェースシステム。
【請求項9】
前記タッチコントローラプロセッサは、検出されたタッチ場所、タッチ力、又は前記タッチスクリーン上の前記検出されたタッチの他の測定可能な態様の関数として、前記仮想ウィジェットのタッチ関連状態を識別するように構成されており、前記タッチコントローラプロセッサによって生成された前記ウィジェットメッセージが、前記仮想ウィジェットの前記識別されたタッチ関連状態を示す、請求項7又は8に記載のユーザインターフェースシステム。
【請求項10】
前記タッチスクリーンは、複数の異なるGUIページを選択的に表示するように構成されており、各GUIページが、異なる一組の仮想ウィジェットを含む、請求項1~9のいずれか一項に記載のユーザインターフェースシステム。
【請求項11】
方法であって、
1つ以上の仮想ウィジェットの配置を含むグラフィカルユーザインターフェース(GUI)を、タッチスクリーンにおいて、表示することであって、各仮想ウィジェットは、形状を有し、かつ前記GUIを介して表示されている1つ以上のユーザインターフェース要素を含み、
前記1つ以上の仮想ウィジェットの前記配置が、構成可能であり、
タッチコントローラによって、前記タッチスクリーンにおけるタッチを感知するステップと、
前記
タッチコントローラによって、前記タッチに対応する仮想ウィジェットを識別するステップと、
前記
タッチコントローラによって、(a)前記識別された仮想ウィジェットが表示されている前記タッチスクリーンの領域において触覚フィードバックを提供するようにアクチュエータを制御するステップ、又は(b)前記ユーザインターフェースシステムと関連付けられた電子デバイスを制御するステップ、のうちの少なくとも1つを含む、アクションを開始するステップ
であって、
前記タッチコントローラは、前記タッチコントローラがヘッドユニットとは別個であるように、インターフェースをとおして前記ヘッドユニットに結合される、開始するステップと、
前記タッチコントローラにより、前記タッチスクリーンにおけるタッチに対応する前記識別された仮想ウィジェットの位置又は状態を示す、ウィジェットメッセージを生成し、前記ヘッドユニットに転送するステップと、
前記タッチコントローラにより、処理される情報を前記インターフェースに直接転送するようにロジックを制御するステップと、
前記GUI要素探索エンジンによって、仮想ウィジェットのタッチが識別されるときに、前記タッチ情報を転送することを中断するステップと、を含む、方法。
【請求項12】
前記
タッチコントローラは、マイクロコントローラ内で具現化されている、請求項11に記載の方法。
【請求項13】
GUI定義を構文解析して、前記GUI内の複数のGUI要素を識別するステップと、
識別されたGUI要素の入力を含むレコードを作成するステップと、
前記識別されたGUI要素の前記相対場所に基づいて、前記識別された要素を仮想ウィジェットにグループ化するステップと、
前記識別されたGUI要素のレコードを要素ライブラリに配置するステップと、によって、前記GUI内に含まれるGUI要素のライブラリを生成するステップを更に含む、請求項11又は12に記載の方法。
【請求項14】
前記識別されたGUI要素のレコードをGUI要素ライブラリに配置するステップは、
前記識別されたGUI要素のレコードをGUI要素の木状構造に配置するステップと、
仮想ウィジェットに共にグループ化された識別されたGUI要素を、前記GUI要素の木状構造体内の単一の葉に折り畳むステップと、
前記GUI要素の、要素の木状構造に応答して探索命令を生成するステップと、を含み、
前記プロセッサが、前記探索命令を使用して、前記タッチスクリーンにおける前記タッチに対応する前記仮想ウィジェットを識別するように構成されている、請求項13に記載の方法。
【請求項15】
前記GUIの少なくとも1つの仮想ウィジェットは、少なくとも1つの仮想ボタン、仮想スライダ、仮想ノブ、仮想ダイヤル、又は他の仮想ユーザインターフェースを含む、複数のアクティブGUI要素の集合体を備える、請求項11~14のいずれか一項に記載の方法。
【請求項16】
前記GUIの少なくとも1つの仮想ウィジェットは、仮想ボタン、仮想スライダ、仮想ノブ、仮想ダイヤル、又は他の仮想ユーザインターフェースを集合的に定義する、複数の別個のアクティブGUI要素の集合体を備える、請求項11~15のいずれか一項に記載の方法。
【請求項17】
前記
タッチコントローラは、ウィジェット定義を記憶するタッチコントローラ構成モジュールに結合される、請求項11~16のいずれか一項に記載の方法。
【請求項18】
タッチコントローラプロセッサによって前記ヘッドユニットに送信される前記ウィジェットメッセージは、タッチ関連位置、回転、タッチされた/非タッチ状態、又は前記仮想ウィジェット上の検出されたタッチの数、のうちの少なくとも1つを示す、請求項
11~17
のいずれか一項に記載の方法。
【請求項19】
前記タッチコントローラプロセッサによって、検出されたタッチ場所、タッチ力、又は前記タッチスクリーン上の前記検出されたタッチの他の測定可能な態様の関数として、前記仮想ウィジェットのタッチ関連状態を識別するステップ、を含み、
前記タッチコントローラプロセッサによって生成された前記ウィジェットメッセージは、前記仮想ウィジェットの前記識別されたタッチ関連状態を示す、請求項17又は18に記載の方法。
【請求項20】
前記タッチスクリーンにおいて、複数の異なるGUIページを選択的に表示するステップを含み、各GUIページは、異なる一組の仮想ウィジェットを含む、請求項11~19のいずれか一項に記載の方法。
【請求項21】
製造物品であって、非一時的機械可読媒体を備え、前記媒体は、命令を含み、前記命令は、実行されるとき、請求項11~20に記載の方法のいずれかを実行するように構成されている、製造物品。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願)
本出願は、(a)2017年10月24に出願された米国仮特許出願第62/576,383号、及び(b)2017年10月24に出願された米国仮特許出願第62/576,563号に対する優先権を主張するものであり、これらの特許出願の全内容は、全ての目的のために参照により本明細書に組み込まれる。
【0002】
(発明の分野)
本開示は、タッチ感応性ユーザインターフェース、例えば、タッチスクリーンに関し、より具体的には、構成可能な仮想ウィジェットの配置を使用するタッチ感応性ユーザインターフェースに関する。
【背景技術】
【0003】
タッチ感知を組み込んだタッチインターフェースは、例えば、タブレットコンピュータ、パーソナルコンピュータ、スマートフォン、及び他の消費者製品を含む、様々な用途に使用される。それらはまた、自動車、電化製品(例えば、冷蔵庫、オーブン、洗浄器/乾燥機など)、暖房及び空調制御システム、セキュリティシステム、及び現金自動預払機(automatic teller machine、ATM)のための制御パネルとしても使用される。これらの用途におけるタッチインターフェースは、例えば、タッチパッドとすることができ、又はスクリーン及びグラフィカルユーザインターフェース(graphical user interface、GUI)を組み込むことができる。
【発明の概要】
【0004】
本開示のいくつかの実施形態は、概して、例えば、従来のグリッドタイプのタッチ位置報告を使用するタッチスクリーンなどの、接触感応性スクリーン上に表示されるグラフィカルユーザインターフェース(GUI)の要素を探索するための命令を作成する方法に関する。本方法は、GUI定義を構文解析し、構文解析に応答するGUIの要素を識別することと、識別した要素の入力を含むレコードを作成することと、識別した要素を同様に位置付けられた要素のグループと関連付けることと、識別した要素のレコードを木状構造に配置することと、同じグループ内の識別した要素を木状構造内で単一の葉に折り畳むことと、木状構造を最適化することと、木状構造に応答する探索命令リストを作成することと、を含む。
【0005】
本開示のいくつかの実施形態は、一般に、コンピュータがグラフィカルユーザインターフェース(GUI)の要素を探索することを可能にするための実行可能命令を作成することを可能にするためのコンピュータプログラム製品に関する。プログラム製品は、コンピュータ可読媒体と、コンピュータ可読媒体上のソフトウェア命令と、を含むことができる。コンピュータ可読媒体上のソフトウェア命令は、コンピュータが、以下の動作、すなわち、GUI定義を構文解析し、構文解析したGUI定義に応答するGUIの要素を識別することと、識別した要素の入力を含むレコードを作成することと、識別した要素を同様に位置付けられた要素のグループと関連付けることと、識別した要素のレコードを木状構造に配置することと、同じグループ内の識別した要素を木状構造内で単一の葉に折り畳むことと、木状構造を最適化することと、木状構造に応答する探索命令リストを作成することと、を行うことを可能にするように適合される。
【0006】
本開示のいくつかの実施形態は、一般に、グラフィカルユーザインターフェース(GUI)を表示するように構成されたタッチスクリーンに動作可能に結合されたマイクロコントローラに関する。マイクロコントローラは、少なくとも1つのプロセッサと、非一時的記憶媒体に記憶された1つ以上の実行可能命令と、を含む。この命令は、プロセッサによって実行されたときに、プロセッサが、タッチスクリーンにおいて感知したタッチの場所を決定することと、感知したタッチに対応するタッチの場所と関連付けられたGUI要素を識別することと、を行うことを可能にするように適合される。
【0007】
本開示のいくつかの実施形態は、一般に、タッチスクリーンに表示されるグラフィカルユーザインターフェース(GUI)の要素を識別する方法に関する。本方法は、タッチスクリーンにおいて感知したタッチの場所を決定することと、場所に応答する1つ以上の探索命令を実行することであって、1つ以上の探索命令のうちの各探索命令が、GUI要素に対応し、実行されたときに探索結果を返すように適合される、実行することと、探索結果に応答するGUI要素を識別することと、を含む。
【0008】
本開示のいくつかの実施形態は、一般に、システムに関する。本システムは、ディスプレイサブシステムと、タッチサブシステムと、を含む。ディスプレイサブシステムは、ディスプレイを制御するように構成される。タッチサブシステムは、タッチセンサと、タッチコントローラと、を含む。タッチコントローラは、タッチセンサで感知したタッチの場所を決定することと、場所及び探索木に応答する1つ以上の探索命令を実行することであって、1つ以上の探索命令のうちの各探索命令が、GUI要素に対応し、実行されたときに探索結果を返すように適合される、実行することと、探索結果に応答するGUI要素を識別することと、識別したGUI要素に応答する触覚制御メッセージを生成することと、を行うように構成される。
【0009】
本開示のいくつかの実施形態は、仮想ウィジェットを利用する接触感応性GUIを含み、各々が、表示可能なGUIスクリーン内に含まれる形状の集合(例えば、1つ以上のアクティブUI要素を含む)を含む。例えば、仮想ウィジェットは、複数のインスタンス及び/又はタイプの仮想ボタン、スライダ、ノブ、ダイヤルなどの定義された集合体を含んでもよい。別の実施例として、仮想ウィジェットは、定義された機能を制御するためのインターフェースを集合的に画定する、定義されたアクティブ要素の集合体を含み得る。
【0010】
いくつかの実施形態では、仮想ウィジェットが、タッチスクリーン上に表示されてもよいが、いくつかの実施形態では、タッチスクリーン構成モジュール/プロセスのコンテキスト内、及びタッチスクリーンディスプレイ上でのみ存在する。仮想ウィジェットは、ヘッドユニットに報告することができる。仮想ウィジェットの使用は、タッチ感応性GUIの物理的インターフェースの複雑性を低減することができる。例えば、仮想ウィジェットの使用は、ヘッドユニット上のオーバーヘッドを低減して、タッチ位置を処理することができ、例えば、加熱制御、無線制御、又は任意の他のタイプの制御のために、物理的ロータ、スライダなどのための別個のハードウェア又は電子機器を必要としない場合がある。
【0011】
いくつかの実施形態は、仮想ウィジェット(例えば、ボタン、スライダ、ダイヤルなど)として操作されるタッチスクリーンの領域(例えば、構成されたスクリーンページ内の領域)を、構成可能な方法で、定義するためのシステム及び方法を提供する。タッチが、タッチスクリーン上で検出されるとき、タッチコントローラは、ユーザタッチに対応するウィジェットの位置又は状態(例えば、検出されたタッチ位置に対応する仮想スライダの線形位置又は仮想ダイヤルの回転位置)を判定することができ、タッチスクリーン上のタッチの位置を示す「タッチメッセージ」を報告する代わりに、又はそれに加えて、「ウィジェットメッセージ」内のこのような位置/状態情報をヘッドユニットに報告する。ウィジェットメッセージは、例えば、検出されたタッチ場所、力、及び/又はタッチスクリーン上の検出されたタッチの他の測定可能な態様に対応する、それぞれのウィジェット上のユーザ選定位置、回転、「タッチされた」状態、及び/又は検出されたタッチの数を示すことができる。一実施形態では、ウィジェットメッセージはまた、一組のウィジェット、例えば、ボタン又はキーのタッチされた/非タッチ状態を報告してもよい。
【0012】
いくつかの実施形態又は状況では、仮想ボタン/ウィジェットにタッチするアクションは、(例えば、ヘッドユニットインターフェースの自己修正を介して)今後のボタン押下に持続する方法で、スクリーン上の「ページ」又は有効化/無効化ボタンを更新する効果を有してもよく、これは(実施形態又は構成に応じて)その時間にウィジェットをヘッドユニットに送信し得、又は送信しなくてもよいが、タッチスクリーン上の同じ場所は、例えば、ラジオからヒータ制御への切り替えなど、異なる結果をその後生成することができる。その結果、ヘッドユニットは、選択されたページ画像に一致するようにディスプレイを更新することのみが必要となる。
【0013】
加えて、いくつかの実施形態では、タッチスクリーンコントローラが、スクリーンメモリ内の制御ページにセットされる場合、コントローラは、関連するウィジェットページIDに一致するように、SPI又は別の利用可能なGPIOインターフェースをとおしてスクリーンメモリ内のページを選択するためのプロセスを実行してもよい。このような構成では、タッチスクリーンコントローラは、スクリーン上に形状を描くのではなく、スクリーンページ全体を選択及び表示することができる。異なるスクリーンページは、例えば、定義された一組のボタン又はキー上のラベルを変更するのみであり得る。このような構成は、非常に可撓性であり得、ヘッドユニットメッセージの伝送遅延を除去し、非常に応答性がある場合がある。
【0014】
仮想ウィジェットを利用することは、必要とされるヘッドユニットの処理を単純化することができる。例えば、仮想ウィジェットの使用は、単一のスクリーン設計が複数のアプリケーションを有することを可能にし得る。例えば、1つのインターフェースが、好適な構成を介して、全ての製品バリアントを扱うことができる。
【図面の簡単な説明】
【0015】
本開示の例示的な態様及び実施形態は、以下の添付の図面と併せて以下に記載される。
【
図1】探索タスクリストを生成及び使用して、GUI内の接触したUI要素を識別するプロセスを例示するスイム図である。
【
図2】本開示の一実施形態による、探索タスクリストを生成するためのプロセスのフローチャートである。
【
図3】本開示の一実施形態による、UI構成定義からUI要素を抽出するためのプロセスのフローチャートである。
【
図4】本開示の一実施形態による、中間探索木を生成するためのプロセスのフローチャートである。
【
図5】本開示の一実施形態による、探索タスク木を生成するためのプロセスのフローチャートである。
【
図6】本開示の一実施形態による、探索タスクリストを生成するためのプロセスのフローチャートである。
【
図7】本開示の一実施形態による、UI要素内でタッチが生じたかどうかを判定するためのUI要素/形状探索プロセスのフローチャートである。
【
図8】UI要素から成る無線GUIの一実施形態を示す(カラーで利用可能)。
【
図9】本開示の実施形態による、グループ化された
図8の無線GUIのUI要素を示す(カラーで利用可能)。
【
図10A】本開示の実施形態による、形成された木構造内のUI要素を示す(カラーで利用可能)。
【
図10B】本開示の実施形態による、形成された木構造内のUI要素を示す(カラーで利用可能)。
【
図10C】本開示の実施形態による、形成された木構造内のUI要素を示す(カラーで利用可能)。
【
図10D】本開示の実施形態による、形成された木構造内のUI要素を示す(カラーで利用可能)。
【
図10E】本開示の実施形態による、形成された木構造内のUI要素を示す(カラーで利用可能)。
【
図11】探索タスクリストを組み込んだシステムの一実施形態を示す。
【
図12】無線GUIのUI要素のうちの少なくともいくつかと関連付けられた特徴及びパラメータを含む無線GUIの一実施形態を示す(カラーで利用可能)。
【
図13】サブシステムとして自動車のヘッドユニットに組み込まれた、
図11のシステムの一実施形態を例示する。
【
図14】例示的な実施形態による、本明細書に開示される仮想ウィジェットを用いる、例示的なタッチスクリーンシステムを例示する。
【
図15】一例示的な実施形態による、様々なグループのUI要素を含む仮想ウィジェットの配設を含む、例示的なラジオタッチスクリーンGUIを例示する。
【発明を実施するための形態】
【0016】
以下の詳細な説明では、本明細書の一部をなし、本開示を実施し得る実施形態の具体例を例示として示す添付の図面を参照する。これらの実施形態は、当業者が本開示を実施することができるように十分に詳細に説明される。しかしながら、他の実施形態が用いられ得、本開示の範囲から逸脱することなく、構造、材料、及びプロセスの変更が行われ得る。本明細書に提示する図は、任意の特定の方法、システム、デバイス、又は構造の実際の図であることを意図するものではなく、本開示の実施形態を説明するために用いられる理想化した表現にすぎない。本明細書に提示する図面は、必ずしも縮尺どおりに描画されていない。様々な図面における類似の構造又は構成要素は、読者の便宜のために同一又は類似の付番を保持し得る。しかしながら、付番における類似性は、構造又は構成要素が必ずしもサイズ、組成、構成、又は任意の他の特性において同一であることを意味するものではない。
【0017】
本明細書で概して説明され、図面に例示される実施形態の構成要素は、多種多様な異なる構成で配置及び設計され得ることが容易に理解されるであろう。したがって、様々な実施形態の以下の説明は、本開示の範囲を限定することを目的とするものではなく、単に様々な実施形態を表すものである。実施形態の様々な態様が図面に提示され得るが、図面は、具体的に指示されていない限り、必ずしも尺度どおりに描画されていない。
【0018】
以下の説明は、当業者が開示される実施形態を実施することを可能にするのを補助するための実施例を含み得る。「例示的な」、「例として」、「例えば」という用語の使用は、関連する説明が、説明的なものであることを意味し、本開示の範囲は、実施例及び法的等価物を包含することを意図するものであり、かかる用語の使用は、実施形態又は本開示の範囲を特定の構成要素、ステップ、特徴、機能などに限定することを意図するものではない。
【0019】
更に、図示及び説明する具体的な実装形態は、単なる例であり、本明細書において別段の指定がない限り、本開示を実施する唯一の方法と解釈されるべきでない。要素、回路、及び機能は、不要に詳述して本開示を不明瞭にしないように、ブロック図の形態に示され得る。逆に、図示し、説明する具体的な実装形態は、単に例示的なものであり、本明細書において別段の指定がない限り、本開示を実施する唯一の方法と解釈されるべきではない。更に、様々なブロック間での論理のブロック定義及びパーティショニングは、例示的な具体的な実装形態である。当業者には、本開示が多数の他のパーティショニングソリューションによって実施され得ることが容易に明らかになるであろう。大部分については、タイミングの考察などに関する詳細は省略されており、かかる詳細は、本開示の完全な理解を得るために必要ではなく、当業者の能力の範囲内である。
【0020】
当業者であれば、情報及び信号は、様々な異なる技術及び技法のいずれかを使用して表され得ることを理解するであろう。例えば、本明細書をとおして参照され得るデータ、命令、コマンド、情報、信号、ビット、記号、及びチップは、電圧、電流、電磁波、磁場若しくは粒子、光場若しくは粒子、又はこれらの任意の組み合わせによって表されてもよい。いくつかの図面は、表示及び説明を明確にするために、単一の信号として信号を例示してもよい。当業者は、信号が信号のバスを表し得、このバスは様々なビット幅を有してもよく、本開示は、単一のデータ信号を含む任意の数のデータ信号で実施され得ることを理解するであろう。
【0021】
本明細書に開示する実施形態に関連して記載する様々な例示的な論理ブロック、モジュール、及び回路は、汎用プロセッサ、専用プロセッサ、デジタル信号プロセッサ(Digital Signal Processor、DSP)、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGA)又は他のプログラマブル論理デバイス、別個のゲート若しくはトランジスタ論理、別個のハードウェア構成要素、又は本明細書に記載の機能を実行するように設計されている、これらの任意の組み合わせを用いて実施され得る、又は実行され得る。汎用プロセッサ(本明細書では、ホストプロセッサ又は単にホストとも称され得る)は、マイクロプロセッサであってもよいが、代替的に、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンでもあってもよい。プロセッサはまた、DSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと組み合わせた1つ以上のマイクロプロセッサ、又は任意の他のかかる構成の組み合わせとして実装されてもよい。プロセッサを含む汎用コンピュータは専用コンピュータとみなされ、汎用コンピュータは、本開示の実施形態に関連するコンピューティング命令(例えば、ソフトウェアコード)を実行するように構成されている。
【0022】
実施形態は、フローチャート、フロー図、構造図、又はブロック図として示すプロセスに関して説明され得る。フローチャートは、順次プロセスとして動作行為を説明し得るが、これらの行為の多くは、別の順序で、並行して、又は実質的に同時に実行できる。加えて、行為の順序は再調整され得る。
【0023】
プロセスは、方法、スレッド、機能、手順、サブルーチン、サブプログラムなどに対応し得る。更に、本明細書に開示する方法は、ハードウェア、ソフトウェア、又はその両方において実施され得る。ソフトウェアで実施される場合、機能は、コンピュータ可読媒体上の1つ以上の命令又はコードとして記憶されてもよく、又は送信されてもよい。コンピュータ可読媒体は、コンピュータ記憶媒体及びコンピュータプログラムのある場所から別の場所への転送を容易にする任意の媒体など通信媒体の両方を含む。
【0024】
「第1」、「第2」などの表記を使用した、本明細書の要素に対する任意の言及は、かかる制限が明示的に記載されていない限り、それらの要素の数量又は順序を限定しない。むしろ、これらの表記は、本明細書において、2つ以上の要素又は要素の例を区別する便利な方法として使用され得る。したがって、第1の要素及び第2の要素への言及は、2つの要素のみが用いられ得ること、又は何らかの方法で第1の要素が第2の要素に先行しなければならないことを意味するものではない。加えて、特に明記しない限り、一組の要素は、1つ以上の要素を含んでよい。
【0025】
本明細書で使用されるとき、所与のパラメータ、特性、又は条件に言及する際の「実質的に(substantially)」という用語は、所与のパラメータ、特性、又は条件が、例えば許容可能な製造許容差の範囲内などの、小さいばらつきを満たすことを当業者が理解するであろう程度を意味し、かつ含む。一例として、実質的に満たされる特定のパラメータ、特性、又は条件に応じて、パラメータ、特性、又は条件は、少なくとも90%満たされ得るか、少なくとも95%満たされ得るか、更には少なくとも99%満たされ得る。
【0026】
本開示で説明される様々な実施形態は、概して、接触感応性ユーザインターフェース上で選択されたUI要素を決定するための技法、及びそうした技法を使用して、1つ以上の触覚応答を提供することに関する。本明細書で説明される実施形態を理解する目的で、接触センサは、タッチインターフェースの接触感応性領域と接触する物体(指若しくはスタイラスなど)に、又はこの接触感応性領域に対する物体の近接性に応答することができる。本開示では、「接触」は、概して、物体の接触感応性領域との物理的接触を指すが、接触センサによって計測可能な応答を生成する、物体の近接性もまた包含し得る。更に、接触感応性領域は、接触センサが物体の接触に応答することができる、タッチインターフェース上の物理的領域を指す。
【0027】
接触感応性GUI、又はタッチスクリーンは、本明細書で使用するとき、GUIと統合されたタッチインターフェースを指す。例えば、GUIは、1つ以上のディスプレイ領域と、アクティブ/アクティブ領域と、を典型的に含む。本開示において、ディスプレイ領域は、情報をユーザに表示するユーザインターフェースの領域である。アクティブ領域は、ユーザがユーザインターフェースに対していくつかのアクションを取ることを可能にする、ボタン、スライダ、又はメニューなどのGUIの領域である。いくつかのディスプレイ領域はまた、情報を表示し、いくつかのアクションが取られ得るアクティブ領域でもある。接触感応性GUIでは、アクティブ領域が表示されるタッチ感応性領域に接触する(例えば、タッチスクリーン上のGUIボタンをタップする)ことで、その領域を起動させることができる。アクティブ領域は、全ての様々な形状及びサイズの、例えば、ボタン、スライダ、選択可能ペイン、メニューなどのGUI要素/オブジェクトとして表示することができる。
【0028】
概して、接触感応性領域において接触が感知された場合、プロセスが、該当する場合に接触に対応するGUIのアクティブ領域(複数可)を判定するために使用される。例えば、「ENTER」ボタンがタップされる場合、接触が測定され、アルゴリズムが実行されて、ENTERボタンの場所において接触がなされたことを判定する。ENTERボタンは、アクティブ領域であるので、タッチ感応性GUI及び/又はGUIを起動する基礎をなすアプリケーションプログラムにおいて、イベントが作成される。
【0029】
更に、特定のGUI要素がアクティブ領域と関連付けられている場合は、タッチインターフェースと統合されたアクチュエータが、一般に触覚応答と称される1つ以上の物理的応答を提供することができる。これらは、力、振動、又は移動の形態とすることができ、また、表面テクスチャ、リッジ、エッジ、ボタンを押す/クリックするような相互作用、並びに他のシミュレーションした感覚及び応答を模倣することができる。GUIの場合、触覚応答は、ユーザが相互作用するGUI要素にローカライズすることができる。例えば、ユーザがGUIボタンにタッチした場合、触覚応答は、あたかもボタンが押されたかのように、又は粗いテクスチャを有するように、エッジが隆起したボタンの感触をもたらすことができる。
【0030】
以下で考察されるように、例えば、
図14及び
図15を参照すると、いくつかの実施形態では、接触感応性GUIは、表示可能なGUIスクリーン内に含まれる形状の任意の集合体(例えば、1つ以上のアクティブGUI要素/オブジェクトを含む)を含む、「仮想ウィジェット」を利用することができる。例えば、仮想ウィジェットは、複数のインスタンス及び/又はタイプの仮想ボタン、スライダ、ノブ、ダイヤルなどの定義された集合体を含んでもよい。別の実施例として、仮想ウィジェットは、定義された機能を制御するためのインターフェースを集合的に画定する、定義されたアクティブ要素の集合体を含み得る。例えば、スライダタイプの仮想ウィジェット又は回転可能なダイヤルタイプの仮想ウィジェットは、例えば、以下で考察される例示的な
図15に示される例示的な回転可能なダイヤルによって例示されるように、スライダ又は回転可能ダイヤルのための位置選択の範囲に関する定義されたUI要素の集合からなってもよい。GUI要素(UI要素とも称される)又は形状に関する本明細書の任意の開示は、仮想ウィジェットに同様に適用することを理解されたい。
【0031】
本明細書で説明される様々な実施形態は、電子レコードを作成及び更新することを指す場合がある。電子レコードは、データファイルの形態とすることができ、電子レコードを更新することは、データ入力をレコードの1つ以上のフィールドに挿入又は削除することを含むことができる。代替的に、実行時には、記載されたレコードと一致する状態情報及び変数を有するクラスオブジェクト及びインスタンス化されたオブジェクトを指すことができる。どちらの状況も、本明細書で説明される様々な実施形態において想到される。
【0032】
本開示の様々な実施形態は、接触感応性インターフェース上で接触したGUI要素を識別するための技法に関する。これらの技法及び関連する構造は、メモリ使用及び応答性に関して特に効率的である。
【0033】
更に、他の技法と比較すると、インターフェースデータ記憶装置要件が少なく、UI要素を識別するための実行時間に行われるタスクの数がわずかである。
【0034】
本開示のいくつかの実施形態は、接触感応性インターフェース上で接触したGUI要素を識別するために行うことができる、最適化された探索タスクのリストを作成するための方法に関する。このような探索は、本明細書では、UI要素探索又は「形状探索」と称され得る。探索タスクは、プロセッサ実行可能命令とすることができ、この命令は、実行されたときに、該当する場合、接触したGUIの要素を探索しているサブシステムに成功又は失敗メッセージを返す。一実施形態では、探索タスクは、GUI内の様々な要素及びその要素の場所をマップする定義ファイルに基づいて作成される。探索タスクは、様々な効率パラメータのために最適化され得る。
【0035】
一実施形態では、探索タスクリストは、ディスプレイサブシステム(例えば、自動車用ヘッドユニット)内のUI要素/形状探索を行うことができる、本開示の発明者らに知られている従来の接触感応性GUIと比較して、埋め込みデバイス、例えば、タッチコントローラによって実行され得る。タッチコントローラ内のGUI要素の探索を行うことは、ディスプレイサブシステムと通信する時間、並びにサブシステムが、例えば触覚フィードバックサブシステムと反応及び通信する時間を節約する。節約される時間は、従来の接触感応性GUIと比較して、接触感応性GUIの応答性を向上させ、また、ユーザの観点から、ユーザがスクリーンにタッチしたときから、ユーザがタッチに応答するフィードバックを受信したときまでの時間を短縮する。
【0036】
更に、タスク探索リストの作成は、構成可能であり、GUIに応じて、共通の特徴のセットを、特定の用途のために最適化された実施のために選択することができる。例えば、いくつかの実施形態では、作成プロセスは、他のGUI要素、特定の形状の要素、又はGUI要素に接触したときに移動若しくは変形する要素を隠すページング、ドロップダウンメニュー、及びポップアップウインドウを含むGUIのために最適化することができる。
【0037】
図1は、本開示の様々な実施形態による、システムの全体的な動作を例示する。動作112では、ソフトウェアアプリケーションツール102は、UI定義ファイルを処理して、該当する場合、接触感応性スクリーン上で接触したUI要素を識別するために、UI要素/形状探索を行うための条件付き実行可能命令の探索タスクリストを作成する(動作108)ように構成される。
【0038】
探索タスクリストは、タッチシステムの一部である1つ以上のプロセッサによってアクセス可能である、非一時的格納メモリに記憶することができる(動作110)。タッチインターフェースで接触イベントが発生したとき、タッチセンサ106は、タッチを感知し(動作118)、1つ以上のタッチプロセッサ104に対するタッチを示す1つ以上の信号を提供することができる。タッチプロセッサ104は、接触が発生したタッチインターフェース上の場所を判定し(動作112)、該当する場合に、その判定に応答して、接触したUI要素を探索し(動作114)、識別する。一実施形態では、タッチプロセッサ104は、探索結果をグラフィカルユーザインターフェースサブシステムに提供することができる(動作116)。
【0039】
探索タスクリストを作成するためのプロセスの一実施形態は、
図2~
図7を参照して説明されることになる。本開示の実施形態は、木及びグリッド技法に従ってUI要素を編成する、探索木構造を利用する。様々なUI要素が、グリッドのように扱われる関連グループに分割され、探索木に編成され、次いで、様々な探索タスクが生成される。探索タスクは、命令を使用してUI要素/形状探索の実行を最適化するように条件付けられる。当業者は、他のアルゴリズム、例えば分割統治法を使用して、スクリーン(複数可)が探索可能領域に分割され得ることを理解するであろう。
【0040】
図2は、UI要素/形状探索を実行するための探索タスクリストを生成するプロセスの実施形態を例示する。動作202で、UIのための構造定義を、ロードし、かつ構文解析して、スクリーン及びサブスクリーン上の、スクリーン、サブスクリーン、及びUI要素を識別する。UI構成定義は、電子ファイル、データベース、生データなどであり得る。動作204で、UI要素をグループ化し、探索可能な領域を、UI要素グループを有する1つ以上の探索可能な領域に分割する。動作206で、UI要素グループを、探索可能な領域に基づいて木構造にリンクする。動作208で、探索タスクを探索木の枝及びノードと関連付けて、探索木を形成し、探索木を最適化する。動作210で、探索木の条件付きタスクを、プロセッサによって実行することができるタスクリストであるリストに記憶する。
【0041】
一実施形態では、探索タスクリストを生成するソフトウェアアプリケーションツール102は、動作202、204、206、208、及び210のうちの1つ以上の結果を出力ファイルに書き込むように構成することができる。この出力ファイルは、デバッギングツールによって使用されて、プロセスの結果をレビューすることができる。同じデバッギングツールを、探索タスクリストのテキストバージョンを使用し、それを(例えば、.dos実行可能な)仮想試験環境内で実行して、探索タスクリストが動作準備完了していることを検証するように構成することができる。
【0042】
図3は、UI要素をUI構成定義から抽出するためのプロセス300の一実施形態を例示する。一実施形態では、UI構成定義は、アプリケーションツールの構成生成特徴によって変換されるディスプレイの一部のxml定義である。アプリケーションツールは、構造定義を構文解析し、定義構造内で定義されたUI要素をグラブする。動作302で、各UI要素をロードし、動作304で、このUI要素が既知のUI要素であるかどうかを判定する。既知のUI要素でない(すなわち、この要素が構造定義で識別されたのが初めてである)場合、動作306で、プロセスは、そのタイプのUI要素(例えば、ボタン、ノブ、スライダなど)の新しい要素定義を作成する。
【0043】
新しい定義を作成した後に、又は要素が既知のUI要素である場合は、動作308で、要素を既存のグループに割り当てるかどうかを判定する。一実施形態では、既存のグループに割り当てるかどうかの判定は、様々な所定のパラメータ、例えば、要素のタイプ、UI要素が表示されるスクリーンの場所、層の位置、要素と関連付けられた応答のタイプ(例えば、視覚、触覚、音声など)などの、要素の共通の特徴に基づく。要素を新しいグループに割り当てると判定する場合は、動作310で、要素に関連するパラメータを有する新しいグループレコードを作成する。
【0044】
新しいグループレコードを作成した後に、又は要素を既存のグループに割り当てると判定する場合は、動作312で、新しい要素の入力をその新しい要素のグループレコードに挿入する。一実施形態では、入力は、要素IDのフィールドと、要素の場所(すなわち、スクリーン上の要素の座標)と、を含む。動作314で、更なるUI要素があるかどうかを判定し、更なるUI要素がある場合は、UI構成定義で識別された残りの各UI要素についてプロセスを実行する。動作316で、プロセスは、要素(複数可)、要素定義(複数可)、及びグループ(複数可)を返す。
【0045】
一実施形態では、UI構成定義が2つ以上のスクリーン定義を含む場合、そのような各スクリーンにUI要素のパラメータであるスクリーンIDを割り当てる。また、各グループのパラメータとしても組み込むことができる。各スクリーンはまた、表示されたGUIの定義された領域であるサブスクリーンも含むことができ、その中では、いくつかのUI要素が動的に変化するが、そうした領域外にあるUI要素は、変化しないままである。非限定的な例として、動的UI要素を有する領域としては、スワップ可能ペイン、スクロール可能メニュー、活性可能情報ペイン、ナビゲーションボタンなどが挙げられる。
【0046】
図4は、本開示の一実施形態による、探索木を作成するためのプロセス400を例示する。このプロセスでは、UI定義内で識別された各スクリーンを探索可能領域にどのように分割するかに関する判定を行い、各探索可能領域は、1つ以上のUI要素のグループを含む。
図4に示されるプロセスの例示的な実施形態では、UI要素のグループを分割する分割線(x座標、y座標)が選択され、よって、少なくとも1つのUI要素グループが分割線の一方の側にあり、少なくとも1つの他UI要素グループが分割線の他方の側にある。
【0047】
分割線は、分割線に沿った共有境界線を用いて、スクリーンを2つの探索可能領域に効果的に分割する。UI要素グループを更に分割することができなくなるまで、UI要素グループは、再帰的な様態で分割される。
【0048】
別の実施形態では、スクリーン又は探索可能領域は、x座標及びy座標方向の両方に同時に分割され、これは、最高4つのUI要素グループのサブ分割をもたらし得る。この技法はまた、4つ未満のサブ分割、例えば、3つのUI要素グループの分割及び1つの空の探索可能領域をもたらすこともができる。
【0049】
更に他の実施形態では、スクリーンの一部分が探索可能領域にサブ分割されないように、円形、正方形、及び/又は多角形を使用して、その一部分を探索可能領域から除外するように定義することができる。
【0050】
操作402では、第1の探索可能領域は、2つ以上のグループを有してロードされる。第1の繰り返しの場合、これは、全てのグループを含むスクリーン全体であってもよい。この実施形態では、初期探索可能領域レコードは、全てのUI要素及びUI要素グループを含む、スクリーン全体を包含するように定義された領域と共に存在する。動作404で、初期探索可能領域を、それぞれがグループのうちのいくつかを有する2つの探索可能領域に分割する、グリッド線を選択する。動作406で、新しいレコードを作成し、UI要素グループを初期レコードと新しいレコードとの間でソートし、これらのレコードをそれぞれの探索可能地域と共に更新する。分割線は、2つの探索可能領域のスプリット/ディビジョンとして記録される。第1の探索可能領域並びにその中のUI要素グループ及びUI要素は、ディビジョンにリンクされ、次にこれが新しい探索可能領域並びにその中のUI要素グループ及びUI要素にリンクされる。
【0051】
実行時には、UI要素のクラスオブジェクト、UI要素グループのクラスオブジェクト、及びスプリット/ディビジョンのクラスオブジェクトが存在する。
【0052】
2つ以上のUI要素グループを含む各探索可能領域の場合は、プロセスを再帰的に実行して(動作408)、探索可能領域を分割する。
【0053】
特に、一実施形態では、UI要素は、UI要素の定義(例えば、要素ID)及び本実施形態ではUI要素の原点への移動に対する参照によって定義されるが、各UI要素を個々に定義する必要がないので、インターフェースメモリ要件を低減させる。
【0054】
スクリーンが完全に分割されると、この時点で、ディビジョン/スプリット、UI要素及びUI要素グループ、並びにそれらの間のリンクを含む中間探索木が存在する。
【0055】
動作410で、各UI要素グループについてグループレベル探索タスクを作成する。グループレベルタスクは、プロセス工程又は一連のプロセス工程である。このタスクは、(i)タッチ又は接触イベントがUI要素内で(又はUI要素外で)発生したかどうかを判定するためのタスク、(ii)何らかの方法で探索領域を修正するためのタスク、及び(iii)次のタスクを準備するためのタスク、を含むことができる。
【0056】
各グループレベルタスクは、成功又は失敗が生じた場合に行われるべき次のタスクの指示を含むことができる。例えば、各タスクは、次のタスクアドレスへの「オフセット」を有するビットを含むことができる。更に、各グループレベルタスクは、それが実行されるときに引数を受け取ることができる。いくつかの実施形態では、以前のタスクは、引数を提供することができ、又はどの引数を次のタスクに利用できるかを示すための環境ビット/フラグを設定することができる。
【0057】
一実施形態では、UI要素グループ座標(位置角)のオフセットを使用して、インデックスを生成することができる。探索可能領域内のあらゆるUI要素は、構成された場合に、探索可能領域のベースIDからインデックスだけオフセットされた異なるIDを割り当てることができる。結果は、要素ID及びオフセット値である。応答(例えば、触覚)又は要素IDのいずれかを修正するための別々のプロビジョンが存在する-よって、あるグループ要素は、単一の要素IDであるが、多数の応答IDを返し得、別のものは、いくつかの要素の違いについて1つの応答IDを返し得る。
【0058】
グループレベル探索タスクは、グループレコードに挿入すること、探索タスクリストに挿入すること、又は中間レコードに挿入することができる。グループレベル探索タスクが完了すると、動作412で、中間探索木が返される。
【0059】
一実施形態では、各タスクについて環境変数を設定することができ、この環境変数は、該当する場合、タスクが実行される場合に、タスクが成功する場合に、及び最終タスクである場合に何を返すのかを示す。非限定的な例として、環境変数は、触覚ID、グループ形状内の要素について要素ID及び触覚IDをどのように修正するのかを制御する値、などであり得る。また、次のタスクの説明を付随させるために送信されるべきデータを示す、環境フラグも設定することができる。特定の制約及び正しい環境変数を使用することで、例えば円の定義を7バイトから2バイトに低減させることができる。
【0060】
図5は、中間探索木に対して行われる最適化プロセス500の一実施形態を例示する。動作502で、共通の特徴によって全てのUI要素をグループ化する。共通の特徴の例としては、UI要素タイプ、層内の位置、別の層内の別の要素に対する位置(例えば、全てが同じUI要素の背面にある)、ディスプレイグループ、形状などが挙げられる。一実施形態では、共通の特徴を選択して、UI要素/形状探索プロセスを最適化することができる。例えば、探索木の最上部の最上層にUI要素を有する層位置によってUI要素がグループ化される場合は、それらが最初に探索される。別の例として、「ページング」が存在する(すなわち、ユーザインターフェースの層をスワイプして、下部の層を露出させること、又はある層を別の層の上に被せることができる)アプリケーションにおいて、ディスプレイグループによるグループ化は、単一の制御を使用して全てのディスプレイUI要素を制御すること、例えば、ディスプレイグループ内の全てのUI要素を探索すること、制御設定に応答するUI要素に変更を適用すること、ディスプレイグループ内の全てのUI要素をオン又はオフにすること、などを可能にする。様々な実施形態では、例えば層ID、位置ID、形状IDなどの識別子を使用して、共通の特徴によって編成されたグループを識別することができる。
【0061】
動作504で、探索タスクを、各要素の探索木に挿入し、分割して、中間探索タスク木を形成する。動作506で、各タスクについて、中間探索タスク木を再順序付けして、単一の通過を確実にする。動作508で、冗長又は非効率的な探索タスクを排除する。動作510で、最適化された探索タスク木を返す。
【0062】
図6は、探索タスクリストを作成するためのプロセス600の一実施形態を例示する。動作602で、探索タスク木のクラスオブジェクトをロードし、動作604で、命令語(すなわち、探索タスク)をクラスオブジェクトから作成し、命令語(すなわち、探索タスク)を探索タスクリストに挿入する。
図6に示される実施形態では、命令語は、タスクコードフィールドと、ジャンプフィールドと、を含む。一実施形態では、命令は、データフィールドを含む。あらゆる失敗(すなわち、要素が異なる)及びあらゆる分割は、次のタスクがメモリ内の現在のタスクの直後でない限り、別の命令へのジャンプを必要とする。
【0063】
動作606で、タスクコードをタスクコードフィールドに挿入し、動作608で、ジャンプ値をジャンプフィールドに挿入する。
【0064】
いくつかの実施形態では、全てのタスクが探索タスクリストに挿入されるまで、ジャンプ値の一部又は全部を挿入しない。他の実施形態では、探索タスク木からジャンプ値を推定することができる。
【0065】
動作610で、探索タスクリストの様々なタスクをメモリ内で連結して、全てのオブジェクトがリスト内にある場合に(動作612)、動作614のプロセスによって返される条件付き探索タスクリストを形成する。探索タスクリスト及び探索木は、メモリに記憶することができる。
【0066】
タスク命令は、探索タスクリストが実装される特定の環境において利用可能なコンテナサイズ制限(すなわち、バイト制限)によって変動し得る。一実施形態では、各タスク命令と関連付けられたデータは、命令インターフェース要件(8ビット、12ビットの、16ビットなど)、利用可能なメモリなどを含むシステム条件に応じて変動し得る。非限定的な例として、八角形のUI要素内で探索するという命令は、単にx座標及びy座標データ、並びに辺の数によって行うことができる。しかしながら、命令インターフェース及び他のメモリ要件が許可する場合は、追加データを含むことができる。
【0067】
図7は、本開示の一実施形態による、UI要素内でタッチが発生したかどうかを判定するためのUI要素/形状探索プロセスを例示する。探索木の探索は、提供されたデータ及び探索タスクリストを使用して行われる。動作702で、各タスクの実行可能命令を、各タスクのペイロードデータと共にプロセッサのインターフェースに連続的に提供し、動作704で実行する。探索木を探索するときに、動作706で、UI要素内でタッチが発生したかどうかを判定し、各タスクの結果は、UI要素内でタッチが発生したかどうかを示す、真/偽、成功/失敗である。動作708で、プロセッサによって、現在のタスクが成功であるという結果に応答する次のタスク命令及び関連データをロード及び受信する。すなわち、動作706の結果が成功である場合、タスクリスト内の次のタスクが実行される。
【0068】
結果が失敗である場合、プロセッサによって、結果に応答する代替のタスク命令及び関連データをロード及び受信する。代替のタスクが存在する場合(動作714)、動作716で代替のタスク場所を供給し、プロセスは動作702にループバックし、プロセッサの代替の場所からタスクをロードする。探索が終わるとき、UI要素は、発見又は未発見のいずれかである。UI要素が発見される場合、動作710で、発見の結果を返し、動作712で、その要素のID、並びに任意の環境設定/応答性パラメータを返す。動作が発見されない場合、動作720で、未発見の結果を返す。
【0069】
一実施形態では、
図7に示されるUI要素/形状探索プロセスは、タッチプロセッサ(マイクロコントローラ)で実行するファームウェアアプリケーションとすることができる。タッチプロセッサは、フラッシュメモリに記憶した探索プロセスによって実行される1つ以上の探索タスクを有することができる。一実施形態では、探索タスクは、ディスプレイコントローラと関連付けられたRAMに記憶することができ、探索タスクは、設定又はプロビジョニングプロセス中にタッチプロセッサに提供され、探索プロセスにアクセスできる状態に保つことができる。
【0070】
記載された実施形態は、代替的なアプローチに勝るいくつかの利点を提供する。メモリ要件が大幅に-線形探索、ピュアグリッド法、又はピュア探索木方法から最高50%-低減され、それでも、組み合わせグリッド/木法を超えて改善される。これは、一部には、行われる探索動作の数が低減されるからである。探索動作の数が低減されるので、応答サイクルは、代替的な手法(従来の方法を含む)よりも大幅に短くなる。例えば、1200×1200の接触感応性GUIに関して、72μs(ピュアグリッド)~1200μs(線形)の範囲であった代替的な手法と比較して、36μs未満のサイクル時間を達成した。この違いは、ユーザにとって極めて高い応答性のタッチインターフェースである。
【0071】
このタッチインターフェースは、設計者にとって、異なる応答特性を有する数多くの要素を有して、より高度化することができる。
【0072】
図8、
図9、及び
図10A~
図10Eは、本開示の実施形態と共に使用することができるGUIの1つの非限定的な例として、無線用途のGUIに関連して
図2~
図7を参照して例示及び説明したプロセスを例示する。
図8に例示される無線GUI810は、表820に要約される、8つのタイプのUI要素と、合計144のUI要素と、を含む。いくつかの実施形態では、GUI810は、従来のグリッドタイプタッチ位置報告を使用するタッチスクリーンであってもよい。
【0073】
図9は、
図3を参照して説明した方法に従ってグループ化したUI要素を示す。この実施形態では、グループ化した要素832、834、836、838、840、842、844、846、及び848は、類似するタッチ特性(例えば、タッチに応答する触覚フィードバック)、スクリーン上の物理的な場所、及び形状を有する。
【0074】
図10A~
図10Eは、
図4を参照して説明した木及びグリッド法を使用して形成された木構造850の一実施例を示す。
【0075】
図11は、本開示の一実施形態による、本明細書で説明されるUI要素/形状探索方法を実施することができるシステム1000及び関連するツール1040を例示する。システム1000は、GUI要素のためのGUI要素探索機能1012及び応答判定1014をその上に有する、マイクロコントローラファームウェア1010を含む。マイクロコントローラファームウェア1010を実行するプロセッサは、マイクロコントローラファームウェア1010から制御信号を受け取ることができ、続いて、接触感応性インターフェース1020の応答を駆動することができる応答ドライバ1018に結合される。一実施形態では、接触感応性インターフェース1020は、1つ以上のアクチュエータを含むタッチスクリーンであり、応答ドライバ1018は、アクチュエータを励起する制御信号を生成するように構成された触覚ドライバである。感知回路1022は、接触感応性インターフェース1020での接触に応答して、1つ以上の測定信号を生成することができる。接触測定及び処理1016は、検知回路1022からの測定信号に応答して、接触情報(例えば、場所、タイプなど)を決定し、この接触情報を、応答決定1014及びGUI要素探索機能1012に提供することができる。応答ドライバ1018で受信した制御信号は、例えば、接触情報に少なくとも部分的に基づくことができ、よって、触覚フィードバックが、接触感応性インターフェース1020上の右側の場所に提供される。
【0076】
また、
図11には、ツール1040も示され、このツールは、本開示の一実施形態によって、探索リスト生成プロセスを実施し、要素探索タスクリスト及び要素応答情報を作成することができる。探索リスト作成アプリケーションプログラム1044は、
図2~
図6を参照して説明したプロセスを実施して、GUI定義XAMLファイル1042を処理して、要素探索タスクリストを生成するように構成される。アプリケーション1044は、要素探索タスクリスト1046及び要素応答情報1048をファイルとしてマイクロコントローラファームウェア1010に提供することができる。一実施形態では、このアプリケーションはまた、探索タスク内に組み込まれ得るが、探索木も提供することができる。
【0077】
ファームウェアのいくつかの実施形態では、ファームウェアは、タッチイベントに関する力レベル情報を組み込むための、力測定及び処理機能を含むことができる。そうした実施形態では、要素探索機能によって返される力レベル情報及びGUI要素ID及び触覚応答の詳細は、触覚シーケンサを使用して、この力レベル、GUI要素ID、及び触覚応答の詳細に応答する触覚制御信号を生成することができる。
【0078】
図11のシステムは、自動車を含む、タッチインターフェース及びタッチ制御パネルを利用する様々な消費者製品、電化製品、及び機械内に組み込むことができる。
【0079】
図12は、自動車用タッチ制御パネルのための無線GUI1210の簡略化バージョンを例示する。3つの領域は、具体的には、領域1、領域2、及び領域3と称する。領域1は、温度調節のための回転ダイヤル1214の中央のボタン1212である。触覚プロファイルID#4(振動)による触覚フィードバックは、強い力レベルを有するタッチイベントに応答して、提供される。領域2は、同じく温度調節のための回転ダイヤル1214である。弱い力レベルを有するタッチイベントに応答する、触覚プロファイルID#3(摩擦)による触覚フィードバックが提供される。最後に、領域3は、自動車設定のためのメニューを提示するためのボタン1216である。強い力レベルを有するタッチイベントに応答する、触覚プロファイルID#2(クリック)による触覚フィードバックが提供され、弱い力レベルを有するタッチイベントに応答する、触覚プロファイルID#3(摩擦)による触覚フィードバックが提供される。
【0080】
図13は、ヘッドユニット1310によって命令される自動車用制御に組み込まれた
図11のシステム及び
図12のGUIを例示し、ヘッドユニット1310の触覚効果は、マイクロコントローラによって制御される。この実施形態では、タッチコントローラ1320及びUI要素/形状探索機能1324は、自動車サブシステムの一部であり、自動車用ヘッドユニット1310は、ヘッドユニットの処理回路の直接的な介入を伴わずに、触覚フィードバックによってタッチに応答する。タッチコントローラ1320は、タッチ位置及び力レベル情報から、タッチされたスクリーンボタンを識別し、触覚効果をトリガするためのボタン位置を含む、タッチ状態機械を動作させるように構成される。
【0081】
この実施形態では、力処理1326及びタッチ処理1322は、1つのコントローラ構成要素1320に統合され、タッチスクリーン1332は、タッチコントローラ1320によって直接起動され、触覚デバイス1350によって行われる触覚効果の範囲を導き出すためにそれぞれ必要とされる、いくつかの幾何学的オブジェクト記述の定義(スクリーンディスプレイ設計1336、及び探索木定義1338)を含む。タッチコントローラ1320はまた、タッチコントローラ構成ユニット1340を介してこれらの定義を受信してもよい。
【0082】
例えば、ディスプレイ1330のタッチの後に、タッチコントローラ1320は、力処理1326及びタッチ処理1322からの力情報及びタッチ情報を受信する。この情報は、力センサ1334からの力測定値及びディスプレイ上のタッチ位置を含むことができる。UI要素/形状探索1324は、該当する場合、タッチが発生したディスプレイ1330に表示されるUI要素に対応するUI要素情報を提供する。ディスプレイ上の場所に対応するいかなるUI要素も存在しない場合、UI要素/形状探索1324は、空の探索結果を提供する。UI要素の形状情報を探索する間、UI要素/形状探索1324は、ヘッドユニット1310に記憶した定義を使用することができる。一実施形態では、UI要素/形状探索1324は、プロビジョニングプロセス中に、例えば、タッチコントローラ1320がヘッドユニット1310と統合されるときに、又はヘッドユニット1310の電源がオンになるときに、定義を受信することができる。
【0083】
UI要素/形状探索1324が、UI要素を識別する場合、触覚制御1328によって触覚情報を使用して、触覚効果及び触覚効果の位置を含む触覚デバイス1350に、触覚起動メッセージを送信する。触覚起動メッセージは、触覚効果(例えば、弱、中、強)のレベルを表すパラメータを含むことができる。触覚デバイス1350は、触覚デバイスに記憶した触覚ライブラリ1352内の触覚効果定義を探索する。触覚デバイス1350は、次いで、ディスプレイの特定の領域が要求された触覚効果を呈するように、ディスプレイ1330のアクチュエータを制御する。特に、異なる触覚デバイスは、異なる触覚ライブラリを有し得るので、効果は、デバイス間で異なり得る。
【0084】
この実施形態では、GUI定義は、グラフィカルユーザインターフェースのためのXML実装であるXAMLファイルである。XAMLファイルは、GUIのUIのスクリーン要素のための描画命令の階層構造リストを含む。XAMLファイルには、GUI要素と関連付けられたタグが存在する。例えば、「Width」、「Height」、及び「Horizontal Alignment」は全て、特定要素の有効なタグである。
【0085】
仮想ウィジェット
上記で考察されたように、いくつかの実施形態では、接触感応性GUI(GUIと統合されたタッチインターフェース)は、仮想ウィジェットを、例えば、上記で考察された特徴のいずれかと組み合わせて利用することができる。本明細書で使用されるとき、「仮想ウィジェット」は、表示可能なGUIスクリーン内に含まれる形状の任意の集合体(例えば、1つ以上のアクティブUI要素を含む)である。例えば、仮想ウィジェットは、複数のインスタンス及び/又はタイプの仮想ボタン、スライダ、ノブ、ダイヤルなどの定義された集合体を含んでもよい。別の実施例として、仮想ウィジェットは、定義された機能を制御するためのインターフェースを集合的に画定する、定義されたアクティブ要素の集合体を含み得る。例えば、スライダタイプの仮想ウィジェット又は回転可能なダイヤルタイプの仮想ウィジェットは、例えば、以下で考察される例示的な
図15に示される例示的な回転可能なダイヤルによって例示されるように、スライダ又は回転可能ダイヤルのための位置選択の範囲に関する定義されたUI要素の集合からなってもよい。
【0086】
仮想ウィジェットは、タッチスクリーン上に表示されてもよいが、いくつかの実施形態では、タッチスクリーン構成モジュール/プロセスのコンテキスト及びタッチスクリーンディスプレイ上にのみ存在する。仮想ウィジェットは、ヘッドユニットに報告することができる。仮想ウィジェットの使用は、タッチ感応性GUIの物理的インターフェースの複雑性を低減することができる。例えば、仮想ウィジェットの使用は、ヘッドユニット上のオーバーヘッドを低減して、タッチ位置を処理することができ、例えば、加熱制御、無線制御、又は任意の他のタイプの制御のために、物理的ロータ、スライダなどのための別個のハードウェア又は電子機器を必要としない場合がある。
【0087】
いくつかの実施形態は、仮想ウィジェット(例えば、ボタン、スライダ、ダイヤルなど)として操作されるタッチスクリーンの領域(例えば、構成されたスクリーンページ内の領域)を定義するためのシステム及び方法を提供する。タッチが、タッチスクリーン上で検出されるとき、タッチコントローラは、ユーザタッチに対応するウィジェットの位置又は状態(例えば、検出されたタッチ位置に対応する仮想スライダの線形位置又は仮想ダイヤルの回転位置)を判定することができ、タッチスクリーン上のタッチの位置を示す「タッチメッセージ」を報告する代わりに、又はそれに加えて、「ウィジェットメッセージ」内のこのような位置/状態情報をヘッドユニットに報告する。ウィジェットメッセージは、例えば、検出されたタッチ場所、力、及び/又はタッチスクリーン上の検出されたタッチの他の測定可能な態様に対応する、それぞれのウィジェット上のユーザ選定位置、回転、「タッチされた」状態、及び/又は検出されたタッチの数を示すことができる。
【0088】
いくつかの実施形態では、ウィジェットメッセージは、例えば、以下で考察される
図14に示される例示的な実施形態において、タッチメッセージから別個のストリームでヘッドユニットに伝達される。いくつかの実施形態では、タッチコントローラは、仮想ウィジェット上のタッチが検出されたとき、タッチメッセージをヘッドユニットに送信することを抑制し、別の言い方をすれば、タッチメッセージは、仮想ウィジェットとのタッチインタラクション中に、ウィジェットメッセージのお気に入りに吊るされてもよい。
【0089】
このような仮想ウィジェットの使用は、仮想GUI制御が、構成可能かつ動的な様式で、タッチスクリーン上の任意の場所に位置決めされることを可能にする。いくつかの実施形態では、スクリーン上に表示された仮想コントロールは、例えば、UI形状探索に関して上記で開示された技術に基づいて、スクリーン表示IDを変更することによって変更及び/又は再位置決めされてもよい。
【0090】
図14は、1つの例示的な実施形態により、本明細書に開示されるような仮想ウィジェットを用いる例示的なGUIタッチスクリーンシステム1400を例示する。GUIタッチスクリーンシステム1400は、接触感応性タッチスクリーン1402と、タッチコントローラ1404と、ヘッドユニット1406と、を含んでもよく、これらの各々は、上記で考察されたように、構成要素(例えば、タッチセンサ、マイクロコントローラ、マイクロコントローラファームウェア、プロセッサ、メモリ、触覚アクチュエータなど)のいずれかを提供し得、タッチスクリーン、タッチコントローラ、及びヘッドユニットによって提供される機能のいずれかを提供することができる。いくつかの実施形態では、タッチコントローラ1404は、マイクロコントローラ内のファームウェアによって具現化され得る。
【0091】
システム1400はまた、スクリーン設計モジュール1410及びタッチコントローラ構成モジュール1414を含んでもよい。スクリーン設計モジュール1410は、タッチスクリーン1402に選択的に表示され得る1つ以上の異なるスクリーン(ページとも称される)の各々についてスクリーン設計を定義又は構成してもよい。各スクリーンに関して、スクリーン設計モジュール1410は、スクリーン内に含めるための仮想ウィジェット、及び選択されたウィジェットの配置/レイアウトを選択してもよい。スクリーン設計モジュール1410は、スクリーン設計(複数可)を記憶のためにヘッドユニット1406に通信することができ、ヘッドユニット1406は、例えば、(例えば、ヘッドユニット1406によって提供されたスクリーン選択ステートマシンを使用して)ディスプレイのために現在選択されているスクリーンに適切に基づいて、スクリーンデザインをGUI要素探索エンジン1424に選択的に提供することができる。次いで、ヘッドユニット1406又は代替的に、タッチコントローラ構成モジュール1414は、例えば、仮想ウィジェットの様々な選択及び/又は配置を使用して、複数の異なるスクリーンのどれが現在表示されているかを制御することによって、タッチスクリーン上のディスプレイを制御することができる。
【0092】
スクリーン設計モジュール1410はまた、スクリーン設計のいずれかに含まれる各仮想ウィジェットのパラメータ1412を定義し、記憶のために、対応のウィジェット定義1416をタッチコントローラ構成モジュール1414に通信してもよい。タッチコントローラ構成モジュール1414は、このため1つ又は複数のタイプの関連するUI要素の定義された集合を含み得る、各仮想ウィジェットに対するウィジェット定義を記憶することができる。示されるように、タッチコントローラ構成モジュール1414は、現在表示されているスクリーン内に含まれるウィジェット定義を有するGUI要素探索エンジン1424を提供して、GUI要素探索エンジン1424が、タッチスクリーン上の検出されたタッチに基づいて、仮想ウィジェットとのユーザ対話を検出することを可能にする。
【0093】
上記で言及されたように、各仮想ウィジェットは、タッチスクリーン上に表示された形状の任意の集合体を含んでもよい。各仮想ウィジェットは、ウィジェットID及びスクリーン上の相対位置を有することができる。仮想ウィジェットは、例えば、ボタン番号(ボタンタイプウィジェット用)、ロータ位置/変化(ロータタイプウィジェット用)、又はスライダ位置/変化(スライダタイプウィジェット用)などのパラメータによって更に定義されてもよい。仮想ウィジェットはまた、例えば、ヘッドユニットによってページングされ得る形状構成によって画定されてもよい。
【0094】
動作中、ユーザがタッチスクリーン1402にタッチ/接触するとき、タッチコントローラ1404の感知回路は、1420においてセンサ信号を測定し、タッチスクリーン1402において測定された接触に応答して1つ以上の測定信号を生成することができる。接触測定及び処理1420、1422は、タッチ情報(例えば、場所、タイプ、力など)を判定し、それにGUI要素探索エンジン(又は「形状探索」モジュール)1424を提供することができる。次いで、GUI要素探索エンジン1424は、例えば、ウィジェット定義1416内に含まれるウィジェット場所及び形状パラメータに基づいて、タッチ場所が現在表示されている仮想ウィジェットに対応するかどうかを判定することができる。この判定は、UI要素タッチ検出について上記で考察された様々な技術のいずれかを用いることができる。
【0095】
GUI要素探索エンジン1424が、タッチ場所が現在表示されている仮想ウィジェットに対応すると判定する場合、探索エンジン1424は、ウィジェット内のUI要素(複数可)がタッチされているか、及び/又は、タッチされる仮想ウィジェットに関する他の関連情報である、対応のウィジェットID、ウィジェット形状インデックスを含むウィジェット情報1426をウィジェット処理モジュール1428に通信してもよい。1428では、ウィジェット処理モジュール1428は、GUI要素探索エンジン1424から受信したウィジェット情報1426、及び/又はウィジェット定義情報1416のいずれかを含むウィジェットメッセージ1430を、メッセージインターフェース1434に生成することができ、これはウィジェット処理モジュール1428からヘッドユニット1406への情報を含むイベント報告1440を転送することができる。
【0096】
いくつかの実施形態では、ウィジェット処理モジュール1428は、各々の関連するウィジェットタッチイベントについてのイベント報告1440を生成することができ、これは、例えば、ウィジェット定義1416又はヘッドユニット1406及び/若しくはタッチコントローラ1404に生成されるか、ないしは別様にアクセス可能な他のロジックによって定義されるような、触覚応答又は他のユーザフィードバック若しくは制御機能をトリガする各ウィジェットタッチイベントを含み得る。例えば、関連するウィジェットタッチイベントは、例えば、それぞれの機能をオン/オフにするか、又は調節可能な制御パラメータ(例えば、音量、ファン速度、ディスプレイ輝度など)を増減させることによって、ウィジェットと関連付けられた設定を変更するウィジェット上のタッチイベントを含んでもよい。ウィジェット処理モジュール1428は、GUI要素探索エンジン1424及び/又はウィジェット定義情報1416から受信したウィジェット情報1426から関連するウィジェットタッチイベントを識別することができる。
【0097】
このため、ヘッドユニット1406は、メッセージインターフェース1434を介してウィジェット処理モジュール1428からウィジェット関連イベントレポート1440を受信し、タッチスクリーン1402で表示されたスクリーンの態様を制御することによって、及び/又は、タッチされる仮想ウィジェットと関連付けられた少なくとも1つの外部システム若しくはデバイス、例えば、ラジオ、インフォテインメントシステム、地図/ガイダンスシステム、光、ファン、モータ、エンジンなどを制御することによって、各イベントレポート1440に応答することができる。いくつかの実施形態では、ヘッドユニット1406は、それぞれのアクチュエータ(複数可)を制御して、例えば、ウィジェット定義情報1416によって定義されるように、タッチの場所において定義された触覚フィードバックをユーザに提供することができる。他の実施形態では、タッチスクリーン1402を介した触覚フィードバックは、ヘッドユニット1406ではなく、タッチコントローラ1404によって制御及び提供されてもよく、これはユーザにフィードバックを提供するための応答時間を増加させ得る。
【0098】
更に、
図14内の1432に示されるように、タッチコントローラ1404は、処理された全てのタッチ情報をメッセージインターフェース1434に転送するように構成されてもよく、イベント報告1440を介して、そのような情報をヘッドユニット1406に生成及び転送してもよい。いくつかの実施形態では、ウィジェット処理モジュール1428は、例えば、ウィジェット処理モジュール1428からヘッドユニット1406にウィジェットメッセージ1430/ウィジェット関連イベントレポート1440の生成及び転送中に、仮想ウィジェットタッチがGUI要素探索エンジン1424によって識別されるとき、このタッチ情報1432の転送を無効化又は中断するためのイネーブル/ディスエーブルスイッチ/ロジック1442を制御してもよい。
【0099】
仮想ウィジェットを利用することは、ヘッドユニット1406の必要とされる処理を単純化することができる。例えば、仮想ウィジェットの使用は、単一のスクリーン設計が複数のアプリケーションを有することを可能にし得る。例えば、1つのインターフェースが、好適な構成を介して、全ての製品バリアントを扱うことができる。
【0100】
図15は、1つの例示的な実施形態による、タッチスクリーンGUI1500上に表示された例示的なラジオスクリーン(又はページ)1502を示し、ラジオスクリーン/ページ1502は、UI要素の様々なグループを含む仮想ウィジェット1504の配置を含む。タッチスクリーンGUI1500は、ラジオ及び/又は1つ以上の他のシステム若しくはデバイス(例えば、インフォテインメントシステム、地図/ガイダンスシステム、光、ファン、モータ、エンジンなど)を制御するために、任意の数及びタイプの異なるスクリーン/ページを選択的に表示するように構成されてもよい。
【0101】
この実施例では、ラジオスクリーン/ページ1502は、ラジオウィジェット1504A、1対のラジオモードウィジェット1504B及び1504C、チャネルプリセットウィジェット1504D、ステートウィジェット1504E、音量制御アクティブ化ウィジェット1504F及び音量調整ウィジェット1504G、チューナ制御アクティブ化ウィジェット1504H及びチューナ調節ウィジェット1504I、低音制御ウィジェット1504J、並びに高音制御ウィジェット1504Kを含む、様々な例示的な仮想ウィジェット1504を含む。
【0102】
上記で考察された接触感応性GUI(例えば、タッチスクリーン)は、任意の好適な製品又はシステム、例えば、家庭用電化製品、又は自動車制御装置に使用することができる。いくつかの実施形態では、タッチスクリーン制御は、個別のマイクロプロセッサ/チップを必要とせずに、例えば、マイクロコントローラ内で具現化されたファームウェアによって提供されてもよい。
【0103】
GUI(例えば、タッチスクリーン)は、構成を介して定義及び変更され得るため、同じGUIハードウェアが、複数の異なる目的のために、及び/又は複数の異なるユーザ若しくは顧客によって使用され、かつ選択的に構成されてもよい。更に、同じGUIハードウェアは、製品範囲にわたって複数の異なるインターフェースオプションを提供することができる。従来の手法は、典型的には、別個の制御を提供し、及び/又はヘッドユニットを使用して、タッチスクリーン上のボタン押下若しくは他の接触を判定し、これは開示されたシステムの柔軟性を提供することができず、付加的な処理リソース又は時間を必要とし得る。
【0104】
タッチスクリーンの異なる部分に関する異なる特性及び応答を定義する能力は、上記で開示されたUI要素/形状探索アルゴリズムによって主に提供され、センサ領域の柔軟な定義を可能にする。これは、従来のタッチスクリーン設計の典型的な態様ではない。更に、UI要素/ウィジェットのための別個のメッセージングストリームの追加は、機能が、任意の物理デバイスを必要とせずに、そのようなロータ及びスライダを仮想的に作成することを可能にする。同じ機能により、任意の形状がそれ自体のIDで、仮想ウィジェットとして報告されることを可能にし、従来のタッチスクリーン処理をバイパスする。
【0105】
本明細書に記載の機能ユニットの多くは、それらの実施独立性をより具体的に強調するために、モジュール、スレッド、又はプログラミングコードの他のセグリゲーションとして図示、説明、又は標識化されてもよい。モジュールは、ある形態又は別の形態で、少なくとも部分的にハードウェアに実装されてもよい。例えば、モジュールは、カスタムVLSI回路又はゲートアレイ、ロジックチップ、トランジスタ、又は他の別個の構成要素などの既製の半導体を備えるハードウェア回路として実装されてもよい。モジュールはまた、フィールドプログラマブルゲートアレイ、プログラマブルアレイ論理、プログラマブル論理デバイスなどプログラマブルハードウェアデバイスに実装されてもよい。モジュールはまた、様々な種類のプロセッサによる実行のために、物理記憶デバイス(例えば、コンピュータ可読記憶媒体)、メモリ、又はそれらの組み合わせに記憶されたソフトウェア又はファームウェアを使用して実装されてもよい。
【0106】
実行可能コードの識別されたモジュールは、例えば、例えば、スレッド、オブジェクト、プロシージャ、又は関数として編成され得るコンピュータ命令の1つ以上の物理ブロック又は論理ブロックを含んでよい。それにもかかわらず、実行可能な識別されたモジュールは、物理的に一緒に位置付けられる必要はないが、論理的に一緒に結合されたときにモジュールを含み、モジュールの規定の目的を達成する、異なる場所に記憶された異なる命令を含んでよい。
【0107】
実際に、実行可能コードのモジュールは、単一の命令、又は多くの命令であってよく、異なるプログラムの間のいくつかの異なるコードセグメントにわたって、またいくつかの記憶装置又はメモリデバイスにわたって分散されてもよい。同様に、動作データは、モジュール内で識別され、本明細書に例示されてよく、任意の好適な形態で具現化され、任意の好適な種類のデータ構造内で編成されてもよい。動作データは、単一のデータセットとして収集されてもよく、又は異なる記憶デバイスにわたって異なる場所に分散されてもよく、少なくとも部分的には、単にシステム又はネットワーク上の電子信号として存在してもよい。
【0108】
モジュール又はモジュールの一部がソフトウェアに実装される場合、このソフトウェア部分は、本明細書でコンピュータ可読媒体と称される1つ以上の物理デバイスに記憶される。
【0109】
いくつかの実施形態では、このソフトウェア部分は、このソフトウェア部分又はその表現がある期間にわたって同一の物理的位置に存続するように、非一時的状態で記憶される。更に、いくつかの実施形態では、このソフトウェア部分は、非一時的状態及び/又はこのソフトウェア部分を表す信号を記憶できるハードウェア要素を含む1つ以上の非一時的記憶デバイスに記憶される。ただし、非一時的記憶デバイスの他の部分は、信号の変更及び/又は送信を実行し得る。非一時的記憶デバイスの実施例は、フラッシュメモリ及びランダムアクセスメモリ(random-access memory、RAM)を含む。非一時的記憶デバイスの別の例としては、ある期間にわたって、このソフトウェア部分を表す信号及び/又は状態を記憶できるリードオンリーメモリ(read-only memory、ROM)が挙げられる。しかしながら、信号及び/又は状態を記憶する能力は、記憶された信号及び/又は状態と同一である、又はこれらを表す信号を送信する更なる機能によって低下しない。例えば、プロセッサは、対応するソフトウェア命令を実行するために、ROMにアクセスして記憶された信号及び/又は状態を表す信号を取得し得る。
【0110】
実用レベルで、コンピュータシステムが、本明細書に記載の動作を行うことを可能にするソフトウェアは、様々な媒体のうちのいずれか1つに供給することができる。更に、本発明の手法及び動作の実際の実施は、実際には、コンピュータ言語で書かれたステートメントである。かかるコンピュータ言語ステートメントは、コンピュータによって実行されたときに、コンピュータをステートメントの特定のコンテンツに従って作用させる。更に、コンピュータシステムが本発明に従って作用することを可能にするソフトウェアは、元のソースコード、アセンブリコード、オブジェクトコード、マシン語、これらの圧縮又は暗号化バージョン、並びに任意の、及び全ての等価物が挙げられるが、これらに限定されない、任意の数の形態で提供することができる。
【0111】
当業者は、本明細書で使用されるときに、「媒体」又は「コンピュータ可読媒体」は、ディスケット、テープ、コンパクトディスク、集積回路、ROM、CD、DVD、BLU-RAY、カートリッジ、フラッシュメモリ、メモリスティック若しくはカード、又は既知の若しくは今後開発されるものを含む、コンピュータによって使用可能な任意の他の非破壊記憶媒体を含むことができることを認識するであろう。
【0112】
実際的なソフトウェアは、ディスクに「書き込まれ」得る、集積回路に「具現化され」得る、通信回路を通じて「搬送され」得る、メモリチップに「記憶され」得る、又はキャッシュメモリに「ロードされ」得るが、本出願の目的のために、ソフトウェアは、単にコンピュータ可読媒体「内に」又は「上に」あると称されることが認識されるであろう。したがって、「内に」又は「上に」という用語は、ソフトウェアをコンピュータ可読媒体と関連付けることができる、上で述べた、及び全ての等価かつ可能な方法を包含することを意図する。
【0113】
簡潔にするために、故に、「コンピュータプログラム製品」という用語は、したがって、上で定義したようなコンピュータ可読媒体を指すために使用され、この媒体は、コンピュータシステムが本発明の任意の実施形態に従って作動することを可能にする任意の形態のソフトウェアを有する。
【0114】
本開示は、特定の例示される実施形態に関して本明細書に記載されているが、当業者は、本発明がそのように限定されないことを認識し、理解するであろう。むしろ、以下にそれらの法的等価物と共に特許請求されるような本発明の範囲から逸脱することなく、例示され、説明される実施形態に対して数多くの追加、削除、及び修正を行うことができる。加えて、ある実施形態の特徴は、本発明者らによって想到されるように、別の開示した実施形態の特徴と組み合わせることができるが、それでも、本開示の範囲内に包含される。