IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7051939車両製造者ユーザ管理システムと自動車オペレーティングシステムとの統合
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-01
(45)【発行日】2022-04-11
(54)【発明の名称】車両製造者ユーザ管理システムと自動車オペレーティングシステムとの統合
(51)【国際特許分類】
   B60W 50/08 20200101AFI20220404BHJP
【FI】
B60W50/08
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2020107662
(22)【出願日】2020-06-23
(65)【公開番号】P2021147027
(43)【公開日】2021-09-27
【審査請求日】2020-08-26
(31)【優先権主張番号】62/990,910
(32)【優先日】2020-03-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】フェリペ・レメ
(72)【発明者】
【氏名】クン・ヨン・パク
【審査官】竹村 秀康
(56)【参考文献】
【文献】特開2019-202704(JP,A)
【文献】特開2010-084544(JP,A)
【文献】特開2008-019843(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B60W 10/00-10/30
B60W 30/00-60/00
G08G 1/00-99/00
(57)【特許請求の範囲】
【請求項1】
方法であって、
車両の1つまたは複数のプロセッサが、第1のオペレーティングシステムを実行して、前記車両にユーザ管理サービスを提供することと、
前記1つまたは複数のプロセッサによって実行される前記第1のオペレーティングシステムが、第2のオペレーティングシステムに対して、前記ユーザ管理サービスの機能を提供する、前記第1のオペレーティングシステムのアプリケーションプログラミングインターフェースを提示することとを備え、前記第2のオペレーティングシステムは前記アプリケーションプログラミングインターフェースによってユーザ管理オペレーションを呼び出し、前記方法はさらに、
前記1つまたは複数のプロセッサによって実行される前記第1のオペレーティングシステムが、ユーザ管理に関連する第1のメッセージを生成することと、
前記アプリケーションプログラミングインターフェースが、前記第1のメッセージを前記第2のオペレーティングシステムに与えることと、
前記アプリケーションプログラミングインターフェースが、前記第2のオペレーティングシステムから第2のメッセージを受信することとを備え、前記第2のメッセージは、前記第1のオペレーティングシステムと前記第2のオペレーティングシステムとの間においてユーザ管理を同期させることに関連する、方法。
【請求項2】
前記第1のメッセージは、ユーザを変更する要求、ユーザ作成メッセージ、ユーザ削除メッセージ、初期ユーザ割り当てメッセージ、またはゲストユーザメッセージのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記第1のメッセージは、ユーザ作成メッセージまたは初期ユーザ割り当てメッセージのうちの少なくとも1つを含み、前記第1のメッセージは、新たなユーザプロファイルまたは初期ユーザプロファイルのうちの少なくとも1つをさらに含む、請求項2に記載の方法。
【請求項4】
前記第2のメッセージは、
ユーザの変更がある時点で許可されるか否か、
内部ユーザプロファイルが前記第2のオペレーティングシステムによって車両ユーザ管理システムにおいて記憶され、前記内部ユーザプロファイルは前記第1のメッセージ内の新たなユーザプロファイルに基づくこと、
ユーザが車両ユーザ管理システムから削除されるか否か、または
現在のユーザがゲストユーザであるか否か、のうちの少なくとも1つを示す、請求項1~3のいずれか1項に記載の方法。
【請求項5】
さらに、
前記1つまたは複数のプロセッサによって実行される前記第1のオペレーティングシステムが、ユーザの変更がある時点で許可されるかどうかを前記第2のメッセージに基づいて判断することと、
前記ユーザの変更が前記ある時点で許可されるという判断に基づいて、前記アプリケーションプログラミングインターフェースが、前記車両の1つまたは複数のシステムを制御する第3のメッセージを前記第2のオペレーティングシステムに与えることとを備える、請求項4に記載の方法。
【請求項6】
前記車両の前記1つまたは複数のシステムは、人間工学的システム、エンターテインメントシステム、インフォテインメントシステム、環境システム、安全システム、またはドライブモードシステムのうちの少なくとも1つを含む、請求項5に記載の方法。
【請求項7】
さらに、
前記1つまたは複数のプロセッサ上で実行される前記第1のオペレーティングシステムが、現在のユーザがゲストユーザであるかどうかを前記第2のメッセージに基づいて判断することと、
前記現在のユーザがゲストユーザであるという判断に基づいて、前記アプリケーションプログラミングインターフェースが、第3のメッセージを前記第2のオペレーティングシステムに与えることとを備え、前記第3のメッセージは、前記第2のオペレーティングシステムによるゲストユーザプロファイルの作成を制御する、請求項4~6のいずれか1項に記載の方法。
【請求項8】
前記アプリケーションプログラミングインターフェースが、前記第2のオペレーティングシステムから第3のメッセージを受信することをさらに備え、前記第3のメッセージは、車両ユーザ管理システムにユーザが記憶されていないことを示す、請求項1~3のいずれか1項に記載の方法。
【請求項9】
さらに、
前記1つまたは複数のプロセッサによって実行される前記第1のオペレーティングシステムが、ユーザを認証の形態に関連付けることと、
前記1つまたは複数のプロセッサによって実行される前記第1のオペレーティングシステムが、前記認証の形態に基づいて、現在のユーザが最後のアクティブユーザと異なる、と判断することとを備え、前記認証の形態は、キーフォブ、指紋、顔または音声の1つまたは複数を含む、請求項1~8のいずれか1項に記載の方法。
【請求項10】
前記車両は、少なくとも1つの車両システムを含み、
前記アプリケーションプログラミングインターフェースは、前記第2のオペレーティングシステムの車両ハードウェア抽象化層にメッセージを与え、前記車両ハードウェア抽象化層からメッセージを受信し、
前記車両ハードウェア抽象化層は、前記アプリケーションプログラミングインターフェースと前記少なくとも1つの車両システムとの間にソフトウェアシム層を与える、請求項1~9のいずれか1項に記載の方法。
【請求項11】
車両と対話するように構成されたデバイスであって、
ユーザ管理データを記憶するよう構成されたメモリと、
前記メモリに通信可能に結合される1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
第1のオペレーティングシステムを実行するよう構成され、前記第1のオペレーティングシステムは、ユーザ管理オペレーションを呼び出すために第2のオペレーティングシステムに、前記第1のオペレーティングシステムのアプリケーションプログラミングインターフェースを提示し、
前記第1のオペレーティングシステムは、ユーザ管理に関連する第1のメッセージを生成するように構成され、前記アプリケーションプログラミングインターフェースは、前記第1のメッセージを前記第2のオペレーティングシステムに与えるように構成され、前記アプリケーションプログラミングインターフェースは、前記第2のオペレーティングシステムから第2のメッセージを受信するようにさらに構成され、前記第2のメッセージは、前記第1のオペレーティングシステムと前記第2のオペレーティングシステムとの間においてユーザ管理を同期させることと関連し、
前記第1のオペレーティングシステムは、前記第1のメッセージに基づいて前記車両にユーザ管理サービスを提供し、
前記アプリケーションプログラミングインターフェースは、前記ユーザ管理サービスの機能を提供する、車両と対話するように構成されたデバイス。
【請求項12】
前記第1のメッセージは、ユーザを変更する要求、ユーザ作成メッセージ、ユーザ削除メッセージ、初期ユーザ割り当てメッセージ、またはゲストユーザメッセージのうちの少なくとも1つを含む、請求項11に記載のデバイス。
【請求項13】
前記第1のメッセージは、ユーザ作成メッセージまたは初期ユーザ割り当てメッセージのうちの少なくとも1つを含み、前記第1のメッセージは、新たなユーザプロファイルまたは初期ユーザプロファイルのうちの少なくとも1つをさらに含む、請求項12に記載のデバイス。
【請求項14】
前記第2のメッセージは、
ユーザの変更がある時点で許可されるか否か、
内部ユーザプロファイルが前記第2のオペレーティングシステムによって車両ユーザ管理システムにおいて記憶され、前記内部ユーザプロファイルは前記第1のメッセージ内の新たなユーザプロファイルに基づくこと、
ユーザが車両ユーザ管理システムから削除されるか否か、または
現在のユーザがゲストユーザであるか否か、のうちの少なくとも1つを示す、請求項11~13のいずれか1項に記載のデバイス。
【請求項15】
前記第1のオペレーティングシステムは、さらに、ユーザの変更がある時点で許可されるかどうかを前記第2のメッセージに基づいて判断するよう構成され、前記アプリケーションプログラミングインターフェースは、さらに、第3のメッセージを前記第2のオペレーティングシステムに与えるよう構成され、前記第3のメッセージは、前記ユーザの変更が前記ある時点で許可されるという判断に基づいて、前記車両の1つまたは複数のシステムを制御する、請求項14に記載のデバイス。
【請求項16】
前記車両の前記1つまたは複数のシステムは、人間工学的システム、エンターテインメントシステム、インフォテインメントシステム、環境システム、安全システム、またはドライブモードシステムのうちの少なくとも1つを含む、請求項15に記載のデバイス。
【請求項17】
前記第1のオペレーティングシステムは、さらに、現在のユーザがゲストユーザであるかどうかを前記第2のメッセージに基づいて判断するように構成され、前記アプリケーションプログラミングインターフェースは、さらに、前記第2のオペレーティングシステムに第3のメッセージを与えるように構成され、前記第3のメッセージは、前記現在のユーザがゲストユーザであるという判断に基づいて、前記第2のオペレーティングシステムによるゲストユーザプロファイルの作成を制御する、請求項14~16のいずれか1項に記載のデバイス。
【請求項18】
前記アプリケーションプログラミングインターフェースは、さらに、前記第2のオペレーティングシステムから第3のメッセージを受信するよう構成され、前記第3のメッセージは、車両ユーザ管理システムにユーザが記憶されていないことを示す、請求項11~13のいずれか1項に記載のデバイス。
【請求項19】
前記第1のオペレーティングシステムは、さらに、
ユーザを認証の形態に関連付け、
前記認証の形態に基づいて、現在のユーザが最後のアクティブユーザと異なる、と判断するよう構成され、
前記認証の形態は、キーフォブ、指紋、顔または音声の1つまたは複数を含む、請求項11~18のいずれか1項に記載のデバイス。
【請求項20】
命令を含むコンピュータプログラムであって、前記命令は、実行されると、車両ヘッドユニットの1つまたは複数のプロセッサに、
第1のオペレーティングシステムを実行させて、車両にユーザ管理サービスを提供し、
第2のオペレーティングシステムに対して、前記ユーザ管理サービスの機能を提供する、前記第1のオペレーティングシステムのアプリケーションプログラミングインターフェースを提示させ、前記第2のオペレーティングシステムは前記アプリケーションプログラミングインターフェースによってユーザ管理オペレーションを呼び出し、前記命令は、実行されると、さらに、前記車両ヘッドユニットの前記1つまたは複数のプロセッサに、
ユーザ管理に関連する第1のメッセージを生成させ、
前記アプリケーションプログラミングインターフェースによって、前記第1のメッセージを前記第2のオペレーティングシステムに与えさせ、
前記アプリケーションプログラミングインターフェースによって、前記第2のオペレーティングシステムから第2のメッセージを受信させ、前記第2のメッセージは、前記第1のオペレーティングシステムと前記第2のオペレーティングシステムとの間においてユーザ管理を同期させることに関連する、コンピュータプログラム。
【発明の詳細な説明】
【背景技術】
【0001】
本出願は、2020年3月17日に提出された米国仮出願62/990,910に関連する優先権を主張し、その全内容は参照により本明細書に組み込まれる。
【0002】
背景
車両は、暖房、換気、および空調(HVAC)システム、(内部および/または外部照明を制御するための)照明システム、インフォテインメントシステム、(運転手席および/または同乗者席の位置を制御するための)着座システムなどの車両システムを制御するインターフェース(グラフィカルユーザインターフェース-GUIなど)を提示する、いわゆる「ヘッドユニット」または他の統合コンピューティングデバイスを含み得る。ヘッドユニットは、車両システムのうちの1つまたは複数の車両システムの動作状態を変更するために、車両システムに1つまたは複数のコマンド(本明細書では「コマンドセット」とも称される)を発行することができる。
【0003】
自動車、自動二輪車、バス、リクリエーションビークル(RV)、セミトレーラトラック、トラクタまたは他の種類の農耕機具、列車、飛行機、ドローン、ヘリコプター、個人輸送車両などの車両を使用する様々なユーザは、これらの車両システムに対する設定に対して異なる選好を有し得る。例えば、より背の高い運転者は、同じ車両を利用する、より背の低い運転者と比較して、操舵輪からより後方の座席位置および異なるミラー設定を好み得る。異なる運転者はまた、異なる無線局設定、環境制御設定、安全設定、運転設定等を好み得る。したがって、車両製造者(元の設備製造者またはOEMとも称される)は、ユーザ管理機能を車両に組み込んでいる。例えば、多くの車両は、ユーザがそのユーザに関連付けられるカスタマイズされた設定を保存することを可能にする。ボタンなどのインターフェースと対話することによって、ユーザは、様々なシステムの設定を、そのときの既存の設定からユーザ自身の好みのカスタマイズされた設定に迅速に変更することができる。
【0004】
同じ製造者からの異なるモデル間だけでなく、異なる製造者のモデル間でも多種多様な車両システム(機能性および動作の両方に関して)を考えると、コマンドセットの手動設定は時間および費用がかかるため、ヘッドユニットは車両システムの最高パーセンテージを概して制御するコマンドセットを出力するように構成されてもよい。
【0005】
さらに、製造者は、各動作状態変更を実行するためにコマンドセットを静的にコード化(すなわち、「ハードコード化」)し得る。すなわち、製造者は、車両ヘッドユニットが1つまたは複数のシステムと通信することができる特定の制御バスプロトコル(そのうちのいくつかはプロプライエタリであってもよい)に準拠するようにコマンドセットを静的にコード化し得る。製造者は、制御バスプロトコルに従うコマンドセットを生成するために、車両ヘッドユニットによって実行されるオペレーティングシステムをハードコード化し得る。コマンドセットの各々は、1つまたは複数のシステムの制御バスおよび/またはベンダなどによって変動し得、その結果、車両モデルトリムレベル間でも変動し得る、車両の特定の構成に対するコマンドセットの、時間のかかる静的なコード化となり得る。
【発明の概要】
【課題を解決するための手段】
【0006】
概要
一般に、本開示の技法は、車両コンピューティングデバイス(車両ヘッドユニットなど)が車両にユーザ管理サービスを提供することを可能にすることを対象とする。車両ヘッドユニットの第1のオペレーティングシステムは、人間工学的システム(例えば、座席、操舵輪、および/またはペダルシステム)、インフォテインメントシステム、環境システム、安全システム、およびドライブモードシステムなどの車両上の様々なシステムの設定を制御し得る、車両上の第2のオペレーティングシステム(これも車両ヘッドユニットのものであってもよい)と対話することができる。車両ヘッドユニットは、一様なメッセージセットをサポートする第1のオペレーティングシステムを実行することができ、第2のオペレーティングシステムは、車両の様々なシステムを制御するために、複数の制御バスプロトコルのうちの特定の制御バスプロトコルに従って指定されるローカル制御メッセージを通信することができる。車両ヘッドユニットの第1のオペレーティングシステムによって提供されるユーザ管理サービスをサポートするために特定のローカル制御メッセージをサポートするように第1のオペレーティングシステムをハードコード化するのではなく、本開示の技法の様々な態様は、第1のオペレーティングシステムが、ユーザ管理サービスを提供するために第2のオペレーティングシステムにインターフェース、例えばアプリケーションプログラミングインターフェース(「API」)を与えることを可能にし得る。第2のオペレーティングシステムは、APIとインターフェースするためのハードウェア抽象化層(「HAL」)を含むことができる。
【0007】
したがって、本技法の様々な態様は、製造者が、APIからのメッセージを、車両の1つまたは複数のシステムを制御するために第2のオペレーティングシステムによって操作可能なメッセージに変換することを提供することができるHALを定義することを可能にし得る。このようにして、ヘッドユニットの第1のオペレーティングシステムは、車両にユーザ管理サービスを提供することができる。ローカルコマンドセットのみをサポートするために第1のオペレーティングシステムまたは第2のオペレーティングシステム内で変換マッピングを静的にハードコード化するのではなく、APIおよびHALのみが定義され得るので、本技法の様々な態様は、車両ヘッドユニットオペレーティングシステムが開発され得る速度を改善し、新たなまたは変化する制御バスプロトコルとの相互運用性を改善し、他の態様では、ユーザ管理サービスを提供するそのようなオペレーティングシステムの迅速な展開に適合しながら、車両ヘッドユニットオペレーティングシステムの開発を改善し得る。
【0008】
一例では、本技法の様々な態様は、ある方法を対象とし、その方法は:車両の1つまたは複数のプロセッサが、第1のオペレーティングシステムを実行して、車両にユーザ管理サービスを提供することと、1つまたは複数のプロセッサによって実行される第1のオペレーティングシステムが、第2のオペレーティングシステムにインターフェースを提示することとを備え、第2のオペレーティングシステムはインターフェースによってユーザ管理オペレーションを呼び出し、前記方法はさらに、1つまたは複数のプロセッサによって実行される第1のオペレーティングシステムが、ユーザ管理に関連する第1のメッセージを生成することと、インターフェースが、第1のメッセージを第2のオペレーティングシステムに与えることと、インターフェースが、第2のオペレーティングシステムから第2のメッセージを受信することとを備え、第2のメッセージは、第1のオペレーティングシステムと第2のオペレーティングシステムとの間でユーザ管理を同期させることと関連する。
【0009】
別の例では、本技法の様々な態様は、車両と対話するように構成されたデバイスを対象とし、このデバイスは、ユーザ管理データを記憶するメモリと、メモリに通信可能に結合され、第1のオペレーティングシステムを実行するよう構成される1つまたは複数のプロセッサとを備え、第1のオペレーティングシステムは、ユーザ管理オペレーションを呼び出すために第2のオペレーティングシステムにインターフェースを提示し、第1のオペレーティングシステムは、ユーザ管理に関連する第1のメッセージを生成するように構成され、インターフェースは、そのメッセージを第2のオペレーティングシステムに与えるように構成され、インターフェースは、さらに、第2のオペレーティングシステムから第2のメッセージを受信するように構成され、第2のメッセージは、第1のオペレーティングシステムと第2のオペレーティングシステムとの間でユーザ管理を同期させることに関連し、第1のオペレーティングシステムは、第1のメッセージに基づいて車両にユーザ管理サービスを提供する。
【0010】
別の例では、本技法の様々な態様は、命令を記憶した非一時的なコンピュータ可読記憶媒体を対象とし、上記命令は、実行されると、車両ヘッドユニットの1つまたは複数のプロセッサに、第1のオペレーティングシステムを実行させて、車両にユーザ管理サービスを提供し、第2のオペレーティングシステムに対して第1のオペレーティングシステムのインターフェースを提示させ、第2のオペレーティングシステムはインターフェースによってユーザ管理オペレーションを呼び出し、上記命令は、実行されると、さらに、車両ヘッドユニットの1つまたは複数のプロセッサに、ユーザ管理に関連する第1のメッセージを生成させ、インターフェースによって、第1のメッセージを第2のオペレーティングシステムに提供させ、インターフェースによって、第2のオペレーティングシステムから第2のメッセージを受信させ、第2のメッセージは、第1のオペレーティングシステムと第2のオペレーティングシステムとの間でユーザ管理を同期させることに関連する。
【0011】
1つまたは複数の例の詳細が、添付の図面および以下の説明に記載される。本開示の他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【0012】
図1】本開示で説明する技法の様々な態様を実行するように構成された例示的な車両を示すブロック図である。
図2図1のヘッドユニットの一例をより詳細に示すブロック図である。
図3】本開示の技法による、成功したユーザ切り替えの一例を示すフロー図である。
図4】本開示の技法による、失敗したユーザ切り替えの一例を示すフロー図である。
図5】本開示の技法による、失敗したユーザ切り替えの別の例を示すフロー図である。
図6】本開示の技法による、成功したユーザ作成の一例を示すフロー図である。
図7】本開示の技法による、失敗したユーザ作成の一例を示すフロー図である。
図8】本開示の技法による、失敗したユーザ作成の別の例を示すフロー図である。
図9】本開示の技法による、成功したユーザ除去の例を示すフロー図である。
図10】本開示の技法による、失敗したユーザ除去の一例を示すフロー図である。
図11】本開示の技法による、失敗したユーザ除去の別の例を示すフロー図である。
図12】本開示の技法による、ユーザの認証因子との関連付けの一例を示すフロー図である。
図13】本開示の技法による、ユーザ管理サービスを提供する例のフローチャートである。
図14A】本開示の技法による、ユーザ管理サービスを提供するさらなる例のフローチャートである。
図14B】本開示の技法による、ユーザ管理サービスを提供するさらなる例のフローチャートである。
図14C】本開示の技法による、ユーザ管理サービスを提供するさらなる例のフローチャートである。
図15】第1のオペレーティングシステムおよび第2のオペレーティングシステムのコンポーネントの一例を示すブロック図である。
【発明を実施するための形態】
【0013】
詳細な説明
図1は、本開示で説明する技法の様々な態様を実行するように構成された例示的な車両8を示すブロック図である。図1の例では、車両8を以下の説明において自動車として説明する。しかしながら、本開示で説明する技法は、自動二輪車、バス、リクリエーションビークル(RV)、セミトレーラートラック、トラクタまたは他のタイプの農耕機具、列車、飛行機、ドローン、ヘリコプター、個人輸送車両など、場所間で1人または複数の乗員を搬送することができる任意のタイプの車両に適用されることができる。いくつかの例では、車両8は、自律車両であり得る。
【0014】
図1の例では、車両8は、プロセッサ15と、グラフィック処理ユニット(GPU)14と、システムメモリ16とを含む。いくつかの例では、プロセッサ15、GPU14、およびトランシーバモジュール(図1には図示せず)は、集積回路(IC)として形成され得る。例えば、ICは、チップパッケージ内の処理チップと見なされてもよく、システムオンチップ(SoC)であってもよい。
【0015】
プロセッサ15およびGPU14の例は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価な集積回路もしくは離散論理回路を含むが、これらに限定されない。プロセッサ15は、車両8の中央処理装置(CPU)を表すことができる。いくつかの例では、GPU14は、グラフィック処理に好適な大量並列処理能力をGPU14に与える集積および/または離散論理回路を含む特殊ハードウェアであり得る。いくつかの事例では、GPU14はまた、汎用処理機能も含み得、汎用処理タスク(例えば、非グラフィック関連タスク)を実現する場合、汎用GPU(GPGPU)と呼ぶことができる。専用のGPU14として示されているが、GPU14は、基底の回路基板(いわゆる「マザーボード」)に統合されるか、またはプロセッサ15に組み込まれる統合GPUを表してもよい。
【0016】
プロセッサ15は、様々な種類のアプリケーションを実行することができる。アプリケーションの例は、ウェブブラウザ、電子メールアプリケーション、スプレッドシート、ビデオゲーム、または表示のための視聴可能オブジェクトを生成する他のアプリケーションを含む。システムメモリ16は、1つまたは複数のアプリケーションの実行のための命令を記憶することができる。プロセッサ15によるアプリケーションの実行は、プロセッサ15に、表示されるべき画像コンテンツのグラフィックスデータを生成させる。プロセッサ15は、プロセッサ15がGPU14に送信する命令またはコマンドに基づくさらなる処理のために、画像コンテンツのグラフィクスデータをGPU14に送信することができる。
【0017】
システムメモリ16はまた、ユーザ管理データ35を記憶することもできる。ユーザ管理データ35は、許可されたユーザのユーザ識別、ユーザ名、車両システム26のうちの1つまたは複数の車両システムの動作状態に対するユーザ優先設定、またはユーザに関連付けられる認証の形態などのユーザに関係する他の情報を含むことができる。いくつかの例では、そのような情報のすべてまたは一部は、ユーザプロファイルとしてユーザ管理データに記憶されることができる。ユーザ管理データ35は、HAL28または第2のOS31によってシステムメモリ16に書き込まれるか、またはシステムメモリ16から読み出されることができ、いくつかの例では、一緒に車両ユーザ管理システムを形成することができる。
【0018】
プロセッサ15は、アプリケーションプログラミングインターフェース(API)に従ってGPU14と通信することができる。さらに、本開示で説明する技法は、APIに従って機能する必要はなく、プロセッサ15およびGPU14は、GPU14と通信するための任意の技法を利用することができる。
【0019】
システムメモリ16は、車両8用のメモリを表し得る。システムメモリ16は、1つまたは複数のコンピュータ可読記憶媒体を備えることができる。システムメモリ16の例は、ランダムアクセスメモリ(RAM)、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)、フラッシュメモリ、または命令および/もしくはデータ構造の形態で所望のプログラムコードを担持もしくは記憶するために使用でき、コンピュータもしくはプロセッサによってアクセスできる他の媒体を含むが、これらに限定されない。
【0020】
いくつかの態様では、システムメモリ16は、プロセッサ15に本開示に記載される機能を実行させる命令を含むことができる。したがって、システムメモリ16は、実行されると、1つまたは複数のプロセッサ(例えば、プロセッサ15)に様々な機能を実行させる命令が記憶されている非一時的コンピュータ可読記憶媒体であることができる。
【0021】
システムメモリ16は、非一時的記憶媒体である。「非一時的」という用語は、記憶媒体が搬送波または伝搬される信号で具現化されていないことを示す。しかしながら、「非一時的」という用語は、システムメモリ16が可動でない、またはその内容が静止していることを意味すると解釈されるべきではない。一例として、システムメモリ16は車両8から取り外され、別の装置に移動されてもよい。別の例として、実質的にシステムメモリ16と同様のメモリを車両8に挿入することができる。いくつかの例では、非一時的記憶媒体は、経時的に(例えば、RAM内に)変化し得るデータを記憶することができる。
【0022】
図1の例にさらに示すように、車両8は、ディスプレイ20およびユーザインターフェース22を含み得る。ディスプレイ20は、画像が投影され得る任意のタイプのパッシブ反射型スクリーン、または画像を表示することができるアクティブ反射型もしくは放射型もしくは透過型ディスプレイ(発光ダイオード(LED)ディスプレイ、有機LED(OLED)ディスプレイ、液晶ディスプレイ(LCD)、または他のタイプのアクティブディスプレイなど)を表し得る。単一のディスプレイ20を含むように示されているが、車両8は、車両8の室内全体にわたって配置され得るいくつかのディスプレイを含んでもよい。いくつかの例では、ディスプレイ20のパッシブバージョン、またはディスプレイ20の特定のタイプのアクティブバージョン(例えばOLEDディスプレイ)は、座席、テーブル、ルーフライナ、床、窓(または、窓がないかまたは窓がほとんどない車両において、壁)、または車両の室内の他の態様に統合されることができる。ディスプレイ20がパッシブディスプレイを表すとき、ディスプレイ20は、パッシブディスプレイ20上に画像を投影する、またはそうでなければ再生成することができるプロジェクタまたは他の画像投影デバイスも含むことができる。さらに、ディスプレイ20は、物理的機器クラスタ(速度、毎分回転数、エンジン温度などを示す)を仮想的に表す運転者側ダッシュボードに統合されたディスプレイを含んでもよい。
【0023】
ディスプレイ20はまた、車両8が自律的である場合、車両8と有線または無線通信するディスプレイを表してもよい。ディスプレイ20は、例えば、ラップトップコンピュータ、ヘッドアップディスプレイ、ヘッドマウントディスプレイ、拡張現実コンピューティングデバイスもしくはディスプレイ(「スマートメガネ」など)、仮想現実コンピューティングデバイスもしくはディスプレイ、携帯電話(いわゆる「スマートフォン」を含む)、タブレットコンピュータ、ゲームシステム、または車両8に組み込まれるディスプレイの拡張として、もしくはその代わりに機能することができる別のタイプのコンピューティングデバイスなどの、コンピューティングデバイスを表し得る。
【0024】
ユーザインターフェース22は、ユーザが車両8の様々な機能を制御するためにインターフェースすることができる任意のタイプの物理的または仮想インターフェースを表してもよい。ユーザインターフェース22は、物理的ボタン、ノブ、スライダ、または他の物理的制御具を含むことができる。ユーザインターフェース22はまた、仮想インターフェースも含むことができ、それによって車両8の乗員は、一例として、タッチセンシティブ画面を介して、またはタッチレスインターフェースを介して、仮想ボタン、ノブ、スライダ、または他の仮想インターフェース要素と対話する。乗員は、ユーザインターフェース22とインターフェースして、車両8内の環境、車両8による音声再生、車両8による映像再生、車両8を介した送信(携帯電話通話など)、または車両8によって実行され得る任意の他の操作のうちの1つまたは複数を制御することができる。
【0025】
ユーザインターフェース22はまた、車両8に統合されたディスプレイの拡張として、またはその代わりに動作するときに、ディスプレイ20に拡張されたインターフェースを表してもよい。すなわち、ユーザインターフェース22は、ヘッドアップディスプレイ(HUD)、拡張現実コンピューティングデバイス、仮想現実コンピューティングデバイスもしくはディスプレイ、タブレットコンピュータ、または上で列挙された異なるタイプの拡張ディスプレイのうちの任意の他のものを介して提示される仮想インターフェースを含むことができる。
【0026】
車両8の文脈では、ユーザインターフェース22は、車両8を手動または半手動で制御するために使用される物理的要素をさらに表すことができる。例えば、ユーザインターフェース22は、車両8の移動方向を制御するための1つまたは複数の操舵輪、車両8の移動速度を制御するための1つまたは複数のペダル、1つまたは複数のハンドブレーキなどを含むことができる。
【0027】
図1の例では、プロセッサ15、GPU14、システムメモリ16、ディスプレイ20、およびUI22は、自動車の状況においてヘッドユニット24(または、言い換えれば、「車両用ヘッドユニット24」)と呼ばれるものを少なくとも部分的に集合的に表すことができる。ヘッドユニット24は、車両8の様々な態様とインターフェースすることができ、ならびに/または乗員のためのエンターテイメントおよび/もしくは車両8に関する情報(ここで、このようなヘッドユニットは、「インフォテインメントユニット」または「インフォテインメントシステム」と呼ばれ得る)を提供することができる任意の統合されたまたは別個のコンピューティングデバイスを表すことができる。
【0028】
さらに図1の例に示すように、車両8は、ある数の異なる車両システム26A~26N(「車両システム26」)を含むことができる。車両システム26は、暖房、換気、空調(HVAC)システムまたは温度調節システム(例えば、HVACシステムに加えて、暖められたおよび/または冷やされた座席を含んでもよい)(これらのいずれかまたは両方は、本明細書では環境システムとも呼ばれ得る)、(室内および/または室外照明を提供するための)照明システム、(乗員着座位置を調整するための)座席制御システム、(バックミラー、サイドミラー、バイザーミラー等を含む室内および/または室外ミラーを制御する)ミラー制御システム、フロントガラスワイパー制御システム、(ラジオ再生、ビデオ再生、画像表示などを制御するための)エンタテインメントシステム、(駐車支援やバックアップ支援などを制御するための)安全支援システム、(サスペンション、変速機などを制御するための)ドライブモードシステム、(サンルーフ/ムーンルーフを制御するための)サンルーフ/ムーンルーフ制御システム、ならびにヘッドユニット24などのヘッドユニットを介して制御することができる任意の他のタイプの車両システムを含んでもよい。車両システム26の例は、車両システム26の前述の例のいずれかを制御し得る電子制御ユニット(ECU)を含んでもよい。
【0029】
ヘッドユニット24は、図1においてコマンド(「CS」)25A~25Nとして示される1つまたは複数のメッセージを車両システム26に発行して、車両システム26のうちの1つまたは複数の車両システムの動作状態を変更してもよい。同じ製造者からの車両の異なるモデル間だけでなく、異なる製造者からの車両の異なるモデル間においても、多種多様な車両システム26(機能性および動作の両方に関して)を考えると、コマンドセットの手動設定は、時間および費用がかかり、エラーを起こしやすいため、ヘッドユニット24は、車両システム26の最高パーセンテージを概して制御するコマンド25A~25Nを出力するように構成されてもよい。
【0030】
さらに、ヘッドユニット24は、車両8にユーザ管理サービスを提供するように構成された第1のオペレーティングシステム(「OS」)30を実行することができる。第1のOS30は、第2のOS31などの別のオペレーティングシステムとインターフェースするためのAPI29などのインターフェースを含むことができる。ヘッドユニット24はさらに、コントロールエリアネットワーク(CAN)プロトコルのような制御バスプロトコルに従ってメッセージを出力するように構成された第2のOS31を実行することができる。第2のOS31などの、ヘッドユニットのオペレーティングシステムは、CANプロトコルまたは他の規格(例えば、オープンまたはプロプライエタリ)制御バスプロトコルを介して車両システム26と通信するように静的な構成(すなわち、「ハードコード化」)されてもよい。すなわち、製造者は、第2のOS31が制御バス(図1の例には、説明を容易にするために示されていない)を介して車両システム26の各々とインターフェースすることを可能にするように、第2のOS31を手動でプログラムしてもよい。
【0031】
車両システム26の各々と正しくインターフェースするようにオペレーティングシステムをプログラミングすることは、時間がかかり、車両システム26との正しい相互運用性を保証するためにかなりのテストを必要とし得る。例証すると、製造者は、車両システム26を多種多様なベンダから調達し得、それらのベンダは、車両特性の状態を通信し、いくつかの異なる制御バスプロトコルに従って制御される車両システム26を提供し得る。製造者は、単一のモデル内でさえ、(同じモデルの異なるトリムレベル間でなど)異なる制御バスプロトコルに従って通信する車両システム26を調達しなければならないかもしれない。製造者は、結果として、オペレーティングシステムの2つ以上の異なるバージョンを作成する場合があり、それらの各々は、異なる制御バスプロトコルを介して車両システム26と通信するように個別にハードコード化される。さらに、制御バスプロトコルに対するいかなる変更も、製造者がオペレーティングシステムを更新して、制御バスプロトコルのより新しいバージョンをサポートするようにオペレーティングシステムをハードコード化する結果となり得、これは、製造者が新しい制御バスプロトコルまたは変化する制御バスプロトコルをサポートする能力を低減し得る潜在性があり、それによって車両8が車両8の安全性、利便性および他の態様を改善するアップグレードを受けることを阻止し得る潜在性がある。
【0032】
本開示で説明する技法の様々な態様によれば、オペレーティングシステム(第1のOS30など)は、ユーザ管理サービスを提供するために車両内の別のオペレーティングシステム(第2のOS31など)とメッセージを通信するためのAPIなどのインターフェースを与えることができる。上述したように、車両システムバスは、コマンド25A~25Nがヘッドユニット24(「車両ヘッドユニット24」とも称される)と車両の1つまたは複数のシステム(例えば、車両システム26)との間で通信される異なるプロプライエタリおよびオープン規格に準拠することができる。車両ヘッドユニット24は、車両8にユーザ管理サービスを提供するための一様なメッセージをサポートする第1のOS30と、複数のローカル制御バスプロトコルのうちの特定のローカル制御バスプロトコルに従って指定される車両システムバス26上で通信するためにローカル制御メッセージをサポートすることができる第2のOS31とを実行することができる。特定のローカル制御メッセージをサポートするよう第1のOS30をハードコード化するのではなく、本技法の様々な態様は、車両ヘッドユニット24の第1のOS30がAPIなどのインターフェースを提供して、第1のOS30と第2のOS31との間のメッセージの通信を可能にし、第1のOS30による車両8へのユーザ管理サービスの提供を容易にすることを可能にし得る。ローカル制御メッセージは、DBCフォーマット、Kayak CAN定義(KCD)フォーマットまたは他のフォーマットのうちの1つに従ってフォーマットされてもよい。
【0033】
動作中、プロセッサ15は、車両8のためにユーザ管理サービスを提供するよう第1のOS30を実行することができる。いくつかの例では、プロセッサ15は、第1のOS30を実行して、第2のOS31を介して、車両システム26のうちの1つまたは複数を制御し、例えば、1つまたは複数の車両システム26の設定を変更し、特定のユーザの選好を反映してもよい。例えば、第1のOS30は、API29などのインターフェースを介してメッセージを第2のOS31に与えることができる。
【0034】
いくつかの例では、プロセッサ15は、第1のOS30の1つまたは複数のスレッドおよび第2のOS31の1つまたは複数のスレッドを実行することができる。いくつかの例では、別のプロセッサが第1のOS30の1つまたは複数のスレッドを実行することができ、別のプロセッサが第2のOS31の1つまたは複数のスレッドを実行することができる。いくつかの例では、第2のOS31は、HAL28を与えるように構成されることができる。HAL28は、API29と車両システム26(図1の例には示されていないが、制御バスを含む)との間にソフトウェアシム層と呼ばれるものを与えることができる。プロセッサ15は、HAL28に関連付けられた1つまたは複数のスレッドを含む、第2のOS31を表す1つまたは複数のスレッドを実行することができる。プロセッサ15は、第1のOS30(API29を含む)または第2のOS31(HAL28を含む)を、それぞれ第1のOS30または第2のOS31の1つまたは複数のスレッドに関連付けられた1つまたは複数のコマンドの形態でシステムメモリ16から取り出し、実行前にコマンドをローカルメモリ(例えば、層1(L1)、層2(L2)、および/または層3(L3)キャッシュ(説明を容易にするために図1の例には示されていない))にロードすることができる。したがって、API29、第1のOS30、HAL28、および第2のOS31は、プロセッサ15による実行を示すために破線を用いてプロセッサ15内に含まれるものとして示されているが、API29、第1のOS30、HAL28、および第2のOS31の長期記憶を示すために実線を用いてシステムメモリ16内に含まれるものとしても示されている。プロセッサ15によって実行されるとして示されているが、HAL28はまた、専用回路またはハードウェアロジックを用いて実現されてもよい。
【0035】
いずれにせよ、HAL28は、API29とインターフェースして、第1のOS30が第2のOS31を介して車両システム26とインターフェースすることを可能にする。したがって、第1のOS30は、ユーザ管理に関連するメッセージを第2のOS31に与えることができ、第2のOS31は、1つまたは複数の車両システム26を制御するために第2のOS31によってサポートされる制御バスプロトコルに準拠するコマンド25を生成することができる。HAL28は、メッセージを受信(または、いくつかの例では傍受)し、それらのメッセージを変換して(いくつかの例では、第2のOS31がそのような変換を要求することなく)(そして、この点において、第2のOS31の視点から透明に)、ローカル制御バスに準拠するローカルメッセージを得ることができる。
【0036】
いくつかの例では、HAL28は、車両システム26のうちの1つまたは複数の車両システムの動作状態を所与のユーザの選好に適合させるために、車両システム26のうちの1つまたは複数の車両システムの動作状態を変更するかまたは車両システム26のうちの1つまたは複数の車両システムの動作状態変更を開始する要求など、ユーザ管理に関連する情報を含むことができるメッセージの第1の表現をAPI29から受信することができる。
【0037】
HAL28は、メッセージ内のバイトの値を再配置または変換し、それによって、メッセージを変換して、制御バスプロトコルに準拠するローカル制御メッセージを得ることができる。ローカル制御メッセージは、したがって、メッセージの第2の表示を含むことができる。HAL28は、プロセッサ15および車両システム26に結合された制御バスを介して、車両システム26のうちの1つまたは複数の車両システムの動作状態変更を開始するよう、ローカル制御メッセージを送信することができる。
【0038】
HAL28は、同様に、車両システム26から動作状態27A~27N(図1には「ST27A~27N」として示される「動作状態27」)を含むローカルメッセージを受信(または、いくつかの例では、第2のOS31および車両システム26の視点から透過的に傍受)することができる。ローカル制御メッセージは、ローカル制御バスプロトコルに準拠してもよい。HAL28は、ローカル制御メッセージを変換して、第1のOS30のAPI29によってサポートされるメッセージを得ることができる。上述したように、HAL28は、基底のハードウェアの抽象化の一部として(言い換えれば、シムソフトウェア層を与えることの一部として)この変換を提供することができ、様々な異なるハードウェアプラットフォームにわたる第1のOS30の潜在的により単純な開発およびインストールを可能にする。HAL28はメッセージをAPI29に与えることができ、API29は以前に送られたメッセージによって要求された動作状態変更の確認を得ることができる。
【0039】
上述したように、HAL28は、一例では、車両システム26のうちの1つまたは複数の車両システムの動作状態を変更するためにユーザからディスプレイ20によって提示されるGUIを介して受信された入力に応答して、第1のOS30のAPI29からのメッセージを処理するように構成されるユニットを表し得る。HAL28はまた、動作状態27などの他の入力に応答して自動的に生成される第1のOS30のAPI29からの出力を処理することもできる。出力とは、動作状態の変更を行うかまたは動作状態の変更を要求するよう第1のOS30によって発行されるメッセージをいう。
【0040】
いくつかの例では、第1のOS30または第2のOS31は、認証の形態に基づいて、車両システム26のうちの1つまたは複数の車両システムの動作状態の変更を開始することを判断することができる。例えば、第1のOS30または第2のOS31は、ユーザを、キーフォブ、指紋、顔または音声に関連付けてもよい。いくつかの例では、車両システム26のうちの1つは、認証システムを表してもよい。他の例では、ヘッドユニット24は認証システムを含むことができる。認証システムは、どのキーフォブが使用されているか、ユーザの指紋、ユーザの顔の画像、またはユーザの音声のサンプルなどの認証因子(本明細書では認証の形態とも称される)を判断することができる。認証システムは、認証因子を示すメッセージを第2のOS31に与えることができる。
【0041】
いくつかの例では、HAL28は、認証因子を示すメッセージをAPI29に与えることができる。第1のOS30は、認証因子に基づいて現在のユーザが「最後のアクティブユーザ」ではないと判断し、現在のユーザが最後のアクティブユーザではないことに基づいて車両システム26のうちの1つまたは複数の車両システムの変更を要求するメッセージをAPI29を介してHAL28に与えてもよい。最後のアクティブユーザは、(自動車のエンジンがオフにされるかまたは自動車がシャットダウンされる前に)自動車を用いていた最後のユーザであってもよい。メッセージは、現在のユーザについての車両システム26のうちの1つまたは複数の車両システムの1つまたは複数の好ましい設定を含むことができる。
【0042】
HAL28は、所与の時間にどのユーザ管理サービスが利用可能であるかを判断することができる。例えば、HAL28は、車両が動いている間にユーザ設定の変更が利用可能であってはならない、または安全上の理由からユーザ設定の変更が利用可能となるようにするためには車両が駐車していなければならない、と判断してもよい。いくつかの例では、HAL28は、あるユーザ設定は変更されてもよいが、他のユーザ設定は車両の状態に基づき変更されてはならない、と判断し得る。例えば、Hal28は、車両が移動しているとき、座席相対位置は変更してはならないが、環境制御は変更してもよい、と判断してもよい。
【0043】
図2は、図1のヘッドユニットの一例をより詳細に示すブロック図である。図2の例に示すヘッドユニット24Aは、図1に示すヘッドユニット24の一例である。ヘッドユニット24Aは、自動車サービス50、例えばユーザ管理サービスの実行環境を提供する第1のOS30(およびAPI29)を実行することができる。
【0044】
ヘッドユニット24Aはまた、2つの異なるHAL28Aおよび28Bを実行することもできる。車両HAL28Aは、本開示で説明する技法の様々な態様に従って、API29からのメッセージとローカル制御メッセージとの間の変換を実行することができる変換サービス52を実行することができる。コントローラエリアネットワーク(CAN)バスHAL28Bは、ローカル制御メッセージをユニバーサルシステムバス(USB)信号に変換し、USB信号をローカル制御メッセージに変換し、ハードウェアと第1のOS30との間の抽象化のさらに別の層を与えるように構成されたユニットを表し得る。
【0045】
ヘッドユニット24Aはまた、USB CANインターフェース58およびゲートウェイ60を公開する、1つまたは複数のプロセッサ、固定論理回路、専用信号プロセッサ、専用制御プロセッサ(専用制御バスプロセッサなど)などと共に物理USBインターフェースであるUSB56を含み得る。USB CANインターフェース58は、USBポートを介してCAN61へのアクセスを与えるように構成されたユニットを表し得る。ゲートウェイ60は、CAN61へのアクセスを制御する制御バスゲートウェイを公開するように構成されたユニットを表し、ある条件(例えば、正常に形成されなかったCAN信号を落とすなど)が存在する場合にCAN61へのアクセスを制限することができるファイアウォールまたは他の種類のデバイスを表し得る。車両電気システムまたはサブシステムを制御し得るいくつかの電子制御ユニット(ECU)62A~62Nが、CAN61に通信可能に結合されてもよい。
【0046】
図3は、本開示の技法による成功したユーザ切り替えの一例を示すフロー図である。この例では、現在のユーザはユーザ10に設定され、既存のユーザはユーザ0、10、および11を含み得る。ユーザインターフェース(「UI」)100(APP UI)は、ユーザをユーザ10からユーザ11に切り替えることを要求するメッセージ(例えば、SwitchToUser (11, listener))を、CarUserManagerアプリケーション102(APP CARUM)に送信することができる(202)。いくつかの例では、メッセージは、ユーザ入力に基づくことができる。他の例では、メッセージは認証因子に基づくことができる。いくつかの例では、メッセージは、車両システム26のうちの1つまたは複数の車両システムの動作状態の設定についてのユーザ11の選好を含み得る。UI100は、図1に示される例示的なディスプレイ20を表し得る。CarUserManagerアプリケーション102は、メッセージが受信された旨をUI100に応答することができる(204)。CarUserManagerアプリケーション102は、ユーザ10からユーザ11への切り替えを要求するメッセージ(例えば、SwitchToUser (11, listener))をCarUserService104(CAR CARUS)に送信することができる(206)。CarUserService104は、第1のOS30の一例を表してもよい。CarUserService104は、ユーザを切り替える許可が有効にされたかどうかを判断することができる(208)。許可が有効にされた場合、CarUserService104は、ユーザ10からユーザ11への切り替えを要求するメッセージ(例えば、SwitchUser (10, 11, (0, 10, 11), listener))を、UserHalService106(CAR UHS)に送信することができる(210)。UserHalService106は、図1および図2に示されるAPI29の一例を表し得る。
【0047】
UserHalService106は、ユーザ10からユーザ11への切り替えを要求するメッセージ(例えば、SWITCH_USER_REQUEST: 10, 11 (0, 10, 11))をVehicleHAL108(OEM VHAL)に送信する(212)。HAL108は、図1および図2に示されるHAL28の一例を表し得る。VehicleHAL108は、ユーザ10をユーザ11に切り替えること(213)を、例えば内部的にVehicleHAL108において、または第2のOS31において行うことができる。例えば、VehicleHAL108は、車両システム26のうちの1つまたは複数の車両システムにローカルコマンドを発行して、1つまたは複数の動作状態をユーザ11の選好に合致するように変更することができる。VehicleHALは、車両上におけるユーザの切り替えを示すメッセージ(例えば、SWITCH_USER_REQUEST: OK, -1)をUserHalService106に返すことができる(214)。UserHalService106は、第1のOS30におけるユーザの変更がオーケーであることを示すメッセージ(例えば、Result(ok))をCarUserService104に送信することができる(216)。CarUserService104は、ユーザを切り替えるメッセージ(例えば、SwitchUser (11))をIActivityManager110(第1のOS30の一例であってもよい)に与えることができる(218)。IActivityManager110は、第1のOS30におけるユーザをユーザ11に切り替え(219)、ユーザがユーザ11に変更されたことを示すメッセージ(例えば、真)をCarUserService104に返すことができる(220)。
【0048】
いくつかの例では、CarUserService104は、ユーザ10からユーザ11への切り替えがなされたことを確認するポストリクエスト(例えば、postSwitchUser (ok, 10, 11, (0, 10, 11)))をUserHalService106に送信してもよく(222)、UserHalService106は、ユーザ10からユーザ11への切り替えがなされたことを確認するメッセージ(例えば、SWITCH_USER_POST_REQUEST: OK, 10, 11, (0, 10, 11))をVehicleHAL108に送信してもよい(224)。いくつかの例では、ポストリクエストは、onUserSwitch()コールバックのように作用し、ACTION_LOCKED_BOOT_COMPLETEDで送られる。CarUserService104はまた、ユーザの変更が行われることを示すメッセージ(例えば、listener.onResult(result=ok) )をUI100に送信することができる(226)。いくつかの例では、UI100は、ユーザに、ユーザの変更が行われたことの表示を与えることができる(簡略化のため図示せず)。例えば、UI100は、「ようこそ、ジョン」または「車両システムがあなたのお好みに合うように変更されました、メアリー」などのメッセージを表示してもよい。いくつかの例では、UI100は、変更が行われたという聴覚表示をユーザに与えてもよい。
【0049】
図4は、本開示の技法による、第2のOS31に基づく失敗したユーザ切り替えの一例を示すフロー図である。この例では、現在のユーザはユーザ10であり、既存のユーザはユーザ0、10、および11を含み得る。UI100は、ユーザ10からユーザ11にユーザを切り替えることを要求するメッセージ(例えば、SwitchToUser (11, listener))をCarUserManagerアプリケーション102に送信する(228)。CarUserManagerアプリケーション102は、メッセージが受信された旨をUI100に応答することができる(230)。CarUserManagerアプリケーション102は、ユーザ10からユーザ11への切り替えを要求するメッセージ(例えば、SwitchToUser(11, listener))をCarUserService104に送信することができる(232)。CarUserService104は、第1のOS30の一例を表してもよい。CarUserService104は、ユーザを切り替える許可が有効にされたかどうかを判断することができる(234)。許可が有効にされた場合、CarUserService104は、ユーザ10からユーザ11への切り替えを要求するメッセージ(例えば、SwitchUser (10, 11, (0, 10, 11), listener))をUserHalService106に送信することができる(236)。UserHalService106は、図1および図2に示されるAPI29の一例を表し得る。
【0050】
UserHalService106は、ユーザ10からユーザ11への切り替えを要求するメッセージ(例えば、SWITCH_USER_REQUEST: 10, 11 (0, 10, 11))をVehicleHAL108に送信することができる(238)。HAL108は、図1および図2に示されるHAL28の一例を表し得る。VehicleHAL108は、ユーザ10をユーザ11に切り替える要求を拒否し、ユーザを切り替える要求の拒否(例えば、SWITCH_USER_REQUEST: FAIL, 42)を示すメッセージをUserHalService106に返すことができる(240)。例えば、VehicleHAL108は、車両が移動していると判断し、ユーザの切り替えを防止する。UserHalService106は、ユーザを変更する要求が拒否されたことを示すメッセージ(例えば、Result (FAIL, 42))をCarUserService104に送信することができる(242)。CarUserService104は、ユーザへの切り替えが発生していないことを示すメッセージ(例えば、listener.onResult (result=OEM_FAIL, error=42))をUI100に与えることができる(244)。いくつかの例では、UI100は、切り替えが発生していないという表示をユーザ11に与えることができる(245)。例えば、UI100は、エラーメッセージ、または車両が移動しているなど、何らかの理由でユーザの変更が許可されないというメッセージを表示してもよい。いくつかの例では、UI100は、ユーザの変更が発生しなかったという聴覚表示を与えてもよい。
【0051】
図5は、本開示の技法による、第1のOS30に基づく失敗したユーザ切り替えの一例を示すフロー図である。この例では、現在のユーザはユーザ10に設定され、既存のユーザはユーザ0、10、および11を含み得る。UI100は、ユーザ10からユーザ11にユーザを切り替えることを要求するメッセージ(例えば、SwitchToUser (11, listener))をCarUserManagerアプリケーション102に送信することができる(246)。CarUserManagerアプリケーション102は、メッセージが受信された旨をUI100に応答することができる(248)。CarUserManagerアプリケーション102は、ユーザ10からユーザ11への切り替えを要求するメッセージ(例えば、SwitchToUser (11, listener))をCarUserService104に送信することができる(250)。CarUserService104は、第1のOS30の一例を表し得る。CarUserService104は、ユーザを切り替える許可が有効にされたかどうかを判断することができる(252)。許可が有効にされた場合、CarUserService104は、ユーザ10からユーザ11への切り替えを要求するメッセージ(例えば、SwitchUser (10, 11, (0, 10, 11), listener)))をUserHalService106に送信することができる(254)。UserHalService106は、図1および図2に示されるAPI29の一例を表し得る。
【0052】
UserHalService106は、ユーザ10からユーザ11への切り替えを要求するメッセージ(例えば、SWITCH_USER_REQUEST: 10, 11 (0, 10, 11))をVehicleHAL108に送信することができる(256)。HAL108は、図1および図2に示されるHAL28の一例を表し得る。VehicleHAL108は、ユーザ10をユーザ11に切り替えること(257)を、例えば内部的にVehicleHAL108において、または第2のOS31において行い、車両上のユーザの切り替えがオーケーであることを示すメッセージ(例えば、SWITCH_USER_REQUEST: OK, -1)をUserHalService106に返すことができる(258)。UserHalService 106は、第1のOS30におけるユーザの変更がオーケーであることを示すメッセージ(例えば、Result (ok))をCarUserService 104に送信することができる(260)。CarUserService104は、ユーザ11に切り替えるメッセージ(例えば、SwitchUser (11))をIActivityManager110(第1のOS30の一例であることができる)に与えることができる(262)。IActivityManager110は、第1のOS30においてユーザを変更することができないことがあり(簡略化のため図示せず)、ユーザが変更されていないことを示すメッセージ(例えば偽)をCarUserService104に返すことがある(264)。CarususerService104は、ユーザ10からユーザ11への切替が行われなかったことを確認するポストリクエスト(例えば、postSwitchUser (fail, 10, 10, (0, 10, 10)))をUserHalService106に送信し(266)、UserHalService106はユーザがユーザ10のままであることを示すメッセージ(例えば、SWITCH_USER_POST_REQUEST: 10, 11, (0, 10, 10))をVehicleHAL108に送信することができる(268)。VehicleHAL108は、ユーザをユーザ10に戻す変更(269)を内部的にVehicleHAL108において、または第2のOS31において行うことができる。CarUserService104は、ユーザにおける切替が発生していないことを示すメッセージ(例えば、listener.onResult (result=ANDROID FAIL)(ANDROID:登録商標)をUI100に与えることができる(270)。いくつかの例では、UI100は、切り替えが発生しなかった旨の表示をユーザ11に与えることができる(簡略化のため図示せず)。例えば、UI100は、エラーメッセージ、または車両が移動しているなど、何らかの理由でユーザの変更が許可されないというメッセージを表示してもよい。いくつかの例では、UI100は、ユーザの変化が発生しなかったという聴覚表示を与えてもよい。
【0053】
図6は、本開示の技法による成功したユーザ作成の一例を示すフロー図である。ユーザインターフェース(「UI」)100(APP UI)は、新たなユーザを作成することを要求するメッセージ(例えば、CreateUser ("TheDude", userType, flags, listener))をCarUserManagerアプリケーション102に送信することができる(272)。メッセージは、ユーザタイプ(通常のユーザまたはゲストユーザなど)およびユーザ名を含んでもよい。いくつかの例では、ゲストユーザは、通常のユーザとは異なる、車両システム26を制御する能力を有し得る。例えば、ゲストユーザは、通常のユーザが通常のユーザのプロファイルに基づいて構成でき得るほど多くの車両システム26を、ゲストユーザのプロファイルに基づいて構成することはできない。いくつかの例では、メッセージは、初期ユーザ作成要求であってもよい。例えば、車両が最初に(初めて、または車両の販売時に)オンにされると、UI100は初期ユーザの作成を試みてもよい。ユーザプロファイルは、様々な車両システム26A~26Nの設定に対するユーザ選好を含むことができる。
【0054】
さらに、メッセージは、車両システム26のうちの1つまたは複数の車両システムの動作状態に対する好ましい設定を含むことができる。UI100は、図1に示される例示的なディスプレイ20を表し得る。CarUserManagerアプリケーション102は、メッセージが受信された旨をUI100に応答することができる(274)。CarUserManagerアプリケーション102は、新たなユーザを作成することを要求するメッセージ(例えば、CreateUser ("TheDude", userType, flags, listener))をCarUserService104に送信することができる(276)。CarUserService104は、第1のOS30の一例を表し得る。CarUserService104は、新たなユーザを作成することを要求するメッセージ(例えば、CreateUser ("TheDude", userType, flags, listener))をIUserManager112に送信することができる(278)。IUserManager112は、ユーザを作成する許可が有効にされたかどうかを判断することができる(280)。許可が有効にされた場合、IUserManager112は、新たなユーザが作成されてもよいこと、および新たなユーザ識別がユーザ12であることを示すメッセージ(例えば、UserInfo (info.id-12))をCarUserService104に送信することができる(282)。CarUserService104は、新たなユーザ12を作成することを要求するメッセージ(例えば、CreateUser ( 12, "TheDude", userType, flags, listener))をUserHalService106に送信することができる(284)。UserHalService106は、図1および図2に示されるAPI29の一例を表し得る。
【0055】
UserHalService106は、新たなユーザ12を作成するようメッセージ(例えば、CREATE_USER_REQUEST: 12, flags, "userType, TheDude")をVehicleHAL108に送信することができる(286)。HAL108は、図1および図2に示されるHAL28の一例を表し得る。VehicleHAL108は、VehicleHAL108または第2のOS31において新たなユーザ12を作成し、新たなユーザ情報(例えば、ユーザid、ユーザ名、ユーザタイプ、および/または車両システム26の1つまたは複数の好ましい設定)をユーザ管理データ35に記憶する(287)。VehicleHAL108は、新たなユーザ12がユーザ管理データ35において作成されたことを示すメッセージ(例えば、CREATE_USER_REQUEST: OK)をUserHalService106に与えることができる(288)。UserHalService106は、新たなユーザ12の作成が成功したことを示すメッセージ(例えば、Result (ok))をCarUserService104に送信することができる(290)。CarUserService104は、新たなユーザ12の作成が成功したことを示すメッセージ(例えば、listener.onResult (result=ok, userId=12))をUI100に与えることができる(292)。いくつかの例では、UI100は、新たなユーザの作成が成功したという表示をユーザ12に与えることができる(簡略化のため図示せず)。例えば、UI100は、新たなユーザの作成が成功したことを示すメッセージを表示することができ、またはUI100は、新たなユーザの作成が成功したという聴覚表示を与えることができる。
【0056】
図7は、本開示の技法による、第1のOS30に基づく失敗したユーザ作成の一例を示すフロー図である。ユーザインターフェース(「UI」)100(APP UI)は、新たなユーザを作成することを要求するメッセージ(例えば、CreateUser ("TheDude", userType, flags, listener))をCarUserManagerアプリケーション102に送信することができる(294)。UI100は、図1に示される例示的なディスプレイ20を表し得る。CarUserManagerアプリケーション102は、メッセージが受信された旨をUI100に応答することができる(296)。CarUserManagerアプリケーション102は、新たなユーザを作成することを要求するメッセージ(例えば、CreateUser ("TheDude", userType, flags, listener))をCarUserService104に送信することができる(298)。CarUserService104は、第1のOS30の一例を表し得る。CarUserService104は、新たなユーザを作成することを要求するメッセージ(例えば、CreateUser ("TheDude", userType, flags, listener))をIUserManager112に送信することができる(300)。IUserManager112は、ユーザを作成する許可が有効にされたかどうかを判断することができる(302)。許可が有効化されていない場合、IUserManager112は、新たなユーザが作成されてはならないことを示すメッセージ(例えば、null)をCarUserService104に送信することができる(304)。この場合、CarUserService104は、VehicleHAL108を呼び出さなくてもよい。CarUserService104は、新たなユーザの作成が成功しなかったことを示すメッセージ(例えば、listener.onResult (result=ANDROID_FAIL))をUI100に与えることができる(306)。UI100は、新たなユーザの作成が成功しなかったという表示を与えることができる(307)。例えば、UI100は、新たなユーザの作成が成功しなかったことを、メッセージで表示するか、または聴覚表示を与えることができる。
【0057】
図8は、本開示の技法による、第2のOS31に基づく失敗したユーザ作成の一例を示すフロー図である。ユーザインターフェース(「UI」)100(APP UI)は、新たなユーザを作成することを要求するメッセージ(例えば、CreateUser ("TheDude", userType, flags, listener))をCarUserManagerアプリケーション102に送信することができる(308)。UI100は、図1に示される例示的なディスプレイ20を表し得る。CarUserManagerアプリケーション102は、メッセージが受信された旨をUI100に応答することができる(310)。CarUserManagerアプリケーション102は、新たなユーザを作成することを要求するメッセージ(例えば、CreateUser ("TheDude", userType, flags, listener))をCarUserService104に送信することができる(312)。CarUserService104は、第1のOS30の一例を表し得る。CarUserService104は、新たなユーザを作成することを要求するメッセージ(例えば、CreateUser ("TheDude", userType, flags, listener))をIUserManager112に送信することができる(314)。IUserManager112は、第1のOS30の一例を表し得る。IUserManager112は、ユーザを作成する許可が有効にされたかどうかを判断することができる(316)。許可が有効にされた場合、IUserManager112は、新たなユーザ、例えば、ユーザ12をIUserManager112において作成することができる(簡略化のため図示せず)。IUserManager112は、新たなユーザが作成されてもよいこと、および新たなユーザ識別がユーザ12であることを示すメッセージ(例えば、UserInfo (info.id=12))をCarUserService104に送信することができる(318)。CarUserService104は、新たなユーザ12を作成することを要求するメッセージ(例えば、CreateUser (12, "TheDude", userType, flags, listener))をUserHalService106に送信することができる(320)。UserHalService106は、図1および図2に示されるAPI29の一例を表し得る。
【0058】
UserHalService106は、新たなユーザ12を作成するためにメッセージ(例えば、CREATE_USER_REQUEST: 12, flags, "userType, TheDude")をVehicleHAL108に送信することができる(322)。HAL108は、図1および図2に示されるHAL28の一例を表し得る。VehicleHAL108は、ユーザ管理データ35において新たなユーザ12を作成することができないことがある(323)。VehicleHAL108は、新たなユーザ12がユーザ管理データ35において作成されていないことを示すメッセージ(例えば、CREATE_USER_REQUEST: FAIL, 42)をUserHalService106に与えることができる(324)。UserHalService106は、新たなユーザ12の作成が失敗したことを示すメッセージ(例えば、Result (FAIL, 42) )をCarUserService104に送信することができる(326)。CarUserService104は、ユーザ12を除去するメッセージ(例えば、removeUser (12))をIUserManager112に与えることができる(328)。IUserManager112は、ユーザ12を除去できる(簡略化のため図示せず)。CarUserService104は、新たなユーザ12の作成が失敗したことを示すメッセージ(例えば、 listener.onResult (result=OEM_FAIL, error=42))をUI100に与えることができる(330)。UI100は、新たなユーザの作成が失敗したという表示を与えることができる(簡略化のため図示せず)。
【0059】
図9は、本開示の技法による、成功したユーザ除去の例を示すフロー図である。ユーザインターフェース(「UI」)100(APP UI)は、ユーザ12を除去することを要求するメッセージ(例えば、removeUser (12, listener))をCarUserManagerアプリケーション102に送信することができる(322)。UI100は、図1に示される例示的なディスプレイ20を表し得る。CarUserManagerアプリケーション102は、メッセージが受信された旨をUI100に応答することができる(334)。CarUserManagerアプリケーション102は、ユーザ12の除去を要求するメッセージ(例えば、removeUser (12))をCarUserService104に送信することができる(336)。CarUserService104は、第1のOS30の一例を表し得る。CarUserService104は、ユーザ12を除去するメッセージ(例えば、removeUser (12))をIUserManager112に送信することができる(338)。IUserManager112は、第1のOS30の一例を表し得る。IUserManager112は、ユーザを除去する許可が有効にされたかどうかを判断することができる(340)。許可が有効にされた場合、IUserManager112は、CarUserService104がユーザを除去できることを示すメッセージ(例えば、真)をCarUserService104に送信することができる(342)。CarUserService104は、ユーザ12を除去することを要求するメッセージ(例えば、removeUser (12))をUserHalService106に送信することができる(344)。UserHalService106は、図1および図2に示されるAPI29の一例を表し得る。
【0060】
UserHalService106は、ユーザ12を除去するようメッセージ(例えば、REMOVE_USER_REQUEST: 12)をVehicleHAL108に送信することができる(346)。HAL108は、図1および図2に示されるHAL28の一例を表し得る。VehicleHAL108は、例えば、ユーザ管理データ35からユーザ12を除去することができる(347)。VehicleHAL108は、ユーザ12が除去されたことを示すメッセージ(例えば、REMOVE_USER_REQUEST: OK)をUserHalService106に与えることができる(348)。UserHalService106は、ユーザ12が除去されたことを示すメッセージ(例えば、Result (ok))をCarUserService104に送信することができる(350)。CarUserService104は、メッセージ(例えば、removeUser (12))をIUserManager112に送信してユーザ12を除去することもできる(352)。IUserManager112は、例えばクラウド(簡略化のため図示せず)に基づくメモリからユーザ12を除去することができる。CarUserService104は、ユーザ12が除去されたことを示すメッセージをUI100に与えることもできる。UIは、表示されたメッセージまたは聴覚表示(簡略化のため図示せず)など、ユーザ12が除去されたことをユーザに示すことができる。
【0061】
図10は、本開示の技法による、第1のOS30に基づく失敗したユーザ除去の一例を示すフロー図である。UI100は、ユーザ、例えば、ユーザ12を除去することを要求するメッセージ(例えば、removeUser (12, listener))をCarUserManagerアプリケーション102に送信することができる(356)。UI100は、図1に示される例示的なディスプレイ20を表し得る。CarUserManagerアプリケーション102は、メッセージが受信された旨をUI100に応答することができる(358)。CarUserManagerアプリケーション102は、ユーザ12を除去することを要求するメッセージ(例えば、removeUser (12))をCarUserService104に送信することができる(360)。CarUserService104は、第1のOS30の一例を表し得る。CarUserService104は、ユーザ12を除去することを要求するメッセージ(例えば、removeUser (12))をIUserManager112に送信することができる(362)。IUserManager112は、第1のOS30の一例を表し得る。IUserManager112は、ユーザを除去する許可が有効にされたかどうかを判断することができる(364)。許可が有効化されていない場合、IUserManager112は、CarUserService104がユーザを除去できないことを示すメッセージ(例えば偽)をCarUserService104に送信することができる(366)。この場合、CarUserService104は、VehicleHAL108を呼び出さなくてもよい。CarUserService104は、ユーザ12が除去されていないことを示すメッセージ(例えば、listener.onResult (result=ANDROID_FAIL))をUI100に送信することができる(368)。UI100は、ユーザ12が除去されていないという表示を与えることができる。
【0062】
図11は、本開示の技法による、第2のOS31に基づく失敗したユーザ除去の一例を示すフロー図である。ユーザインターフェース(「UI」)100(APP UI)は、ユーザ12を除去することを要求するメッセージ(例えば、removeUser (12, listener))をCarUserManagerアプリケーション102に送信することができる(370)。UI100は、図1に示される例示的なディスプレイ20を表し得る。CarUserManagerアプリケーション102は、メッセージが受信された旨をUI100に応答することができる(372)。CarUserManagerアプリケーション102は、ユーザ12の除去を要求するメッセージ(例えば、removeUser (12))をCarUserService104に送信することができる(374)。CarUserService104は、第1のOS30の一例を表し得る。CarUserService104は、ユーザ12を除去することを要求するメッセージ(例えば、removeUser (12))をIUserManager112に送信することができる(376)。IUserManager112は、第1のOS30の一例を表し得る。IUserManager112は、ユーザを除去する許可が有効にされたかどうかを判断することができる(378)。許可が有効にされた場合、IUserManager112は、CarUserService104がユーザを除去できることを示すメッセージ(例えば、真)をCarUserService104に送信することができる(380)。CarUserService104は、ユーザ12を除去することを要求するメッセージ(例えば、removeUser (12))UserHalService106にを送信することができる(382)。UserHalService106は、図1および図2に示されるAPI29の一例を表し得る。
【0063】
UserHalService106は、ユーザ12を除去するメッセージ(例えば、REMOVE_USER_REQ:12)をVehicleHAL108に送信することができる(384)。HAL108は、図1および図2に示されるHAL28の一例を表し得る。VehicleHAL108は、例えば、ユーザ管理データ35からユーザ12を除去することができない場合がある(385)。例えば、VehicleHAL108は、ユーザ12が現在のユーザであると判断し、現在のユーザを除去しない場合がある。VehicleHAL108は、ユーザ12が除去されていないことを示すメッセージ(例えば、REMOVE_USER_REQ:FAIL, 42)をUserHalService106に与えることができる(386)。UserHalService106は、ユーザ12が除去されなかったことを示すメッセージ(例えば、Result (FAIL, 42))をCarUserService104に送信することができる(388)。CarUserService104は、ユーザ12が除去されなかったことを示すメッセージ(例えば、listener.onResult (result=OEM_FAIL, error=42))をUI100に与えることができる(390)。UI100は、ユーザ12が除去されなかったという表示を与えることができる(簡略化のため図示せず)。例えば、UI100は、ユーザ12が除去されなかったことをメッセージで表示するか、または聴覚表示を与えることができる。
【0064】
現代の車両は、車両がキーフォブ、顔画像、指紋、または音声サンプルを介してなど、人間の運転者をコンピュータにおいてユーザと関連付けることができる複数の方法を有する。API29は、認証方法のチェックおよび設定を提供するように構成されてもよい。いくつかの例では、それは、認証のための事前定義済み値(キーフォブ、顔認証、ブルートゥース(登録商標)接続など)を与えることができる。車両製造者は、認証をカスタマイズすることができる。図12は、本開示の技法による、ユーザの認証因子との関連付けの一例を示すフロー図である。図12の例は、認証因子としてキーフォブを説明するが、指紋、顔画像、音声サンプルなど、任意の認証因子が使用され得る。ユーザインターフェース(「UI」)100(APP UI)は、ユーザが用いているキーフォブに関連付けられたユーザ識別を要求するメッセージ(例えば、getUserIdentification ((KEY_FOB))をCarUserManagerアプリケーション102に送信することができる(392)。UI100は、図1に示される例示的なディスプレイ20を表し得る。CarUserManagerアプリケーション102は、キーフォブに関連付けられたユーザ識別を要求するメッセージ(例えば、getUserIdentification ((KEY_FOB))をCarUserService104に送信することができる(394)。CarUserService104は、第1のOS30の一例を表し得る。CarUserService104は、ユーザ識別を与える許可が有効にされたかどうかを判断することができる(395)。許可が有効化された場合、CarUserService104は、キーフォブに関連付けられたユーザ識別を要求するメッセージ(例えば、getUserIdentification ((KEY_FOB))をUserHalService106に送信することができる(396)。UserHalService106は、図1および図2に示されるAPI29の一例を表し得る。
【0065】
UserHalService106は、キーフォブに関連付けられたユーザ識別を要求するメッセージ(例えばget USER_IDENTIFICATION_ASSOCIATION (10, (KEY_FOB))をVehicleHAL108に送信することができる(398)。VehicleHAL 108は、図1および図2に示されるHAL28の一例を表し得る。VehicleHAL108は、キーフォブがユーザ識別に関連付けられているかどうかを判断することができる(簡略化のため図示せず)。
【0066】
キーフォブがユーザ識別に関連付けられている場合、VehicleHAL108はユーザ識別をUserHalService106に与えることができ(簡略化のため図示せず)、UserHalService106はユーザ識別をCarUserService104に与えることができ(簡略化のため図示せず)、CarUserService104はユーザ識別をUI100に与えることができる(簡略化のため図示せず)。ユーザ識別が最後のアクティブユーザと異なる場合、UI100は、図3図5のように、ユーザを切り替えることを試みることができる(簡略化のため図示せず)。
【0067】
一方、キーフォブがユーザ識別に関連付けられていない場合、VehicleHAL108は、キーフォブがユーザ識別に関連付けられていないことを示すメッセージ(例えば、USER_IDENTIFICATION_ASSOCIATION (NOT_ASSOCIATED_ANY_USER))を、UserHalService106に与えることができる(400)。UserHalService106は、キーフォブがユーザ識別に関連付けられていないことを示すメッセージ(例えば、(NOT_ASSOCIATED_ANY_USER))をCarUserService104に送信することができる(402)。CarUserService104は、キーフォブがユーザ識別に関連付けられていないことを示すメッセージ(例えば、 (NOT_ASSOCIATED_ANY_USER))をUI100に与えることができる(404)。UI100は、現在のユーザに関連付けられるキーフォブを要求するメッセージをCarUserManager102に送信することができる(406)。CarUserManager102は、現在のユーザと関連付けられるキーフォブを要求するメッセージ(例えば、setUserIdentification ((KEY_FOB)))をCarUserService104に送信することができる(408)。CarUserService104は、キーフォブを現在のユーザと関連付ける許可が有効にされたかどうかを判断することができる(410)。許可が有効化された場合、CarUserService104は、現在のユーザに関連付けられるキーフォブを要求するメッセージ(例えば、setUserIdentification ((KEY_FOB)))をUserHalService106に送信することができる(412)。
【0068】
UserHalService106は、ユーザ10(現在のユーザの識別)をキーフォブに関連付けるようにVehicleHAL108に命令するメッセージ(例えば、set_USER_IDENTIFICATION_ASSOCIATION (10, KEY_FOB))をVehicleHAL108に送信することができる(414)。VehicleHAL108は、現在のユーザをキーフォブと関連付け(簡略化のため図示せず)、現在のユーザがキーフォブに現在関連付けられていることを示すメッセージ(例えば、USER_IDENTIFICATION_ASSOCIATION (ASSOCIATE_CURRENT_USER)をUserHalService106に送信することができる(416)。UserHalService106は、現在のユーザが現在キーフォブに関連付けられていることを示すメッセージ(例えば、ASSOCIATE_CURRENT_USER)をCarUserService104に送信することができる(418)。CarUserService104は、現在のユーザが現在キーフォブに関連付けられていることを示すメッセージ(例えば、ASSOCIATE_CURRENT_USER)をUI100に送り返すことができる(420)。UI100は、現在キーフォブに関連付けられているという表示、例えば、表示されたメッセージまたは聴覚表示を、現在のユーザに与えることができる(簡略化のため図示せず)。
【0069】
図13は、本開示の技法による、ユーザ管理サービスを提供する例のフローチャートである。車両の1つまたは複数のプロセッサ(例えば、プロセッサ15)は、車両にユーザ管理サービスを提供するために第1のオペレーティングシステム(例えば、第1のOS30)を実行することができる(500)。例えば、プロセッサ15は、システムメモリ16から第1のOS30をロードし、第1のOS30を実行することができる。第1のOS30は、本開示で説明するように、車両にユーザ管理サービスを提供することができる。
【0070】
第1のオペレーティングシステムは、第2のオペレーティングシステムにインターフェースを提示することができ、第2のオペレーティングシステムはインターフェースによってユーザ管理オペレーションを呼び出すことができる(502)。例えば、第1のOS30は、API29を第2のOS31に提示することができる。第2のOS31は、API29を用いて、本開示で説明するように、ユーザ管理動作を呼び出すことができる。
【0071】
第1のオペレーティングシステムは、ユーザ管理に関連する第1のメッセージを生成することができる(504)。例えば、第1のOS30は、ユーザを変更する要求、ユーザ作成メッセージ、ユーザ削除メッセージ、初期ユーザ割り当てメッセージ、またはゲストユーザメッセージのうちの少なくとも1つを含み得る、ユーザ管理に関連する第1のメッセージを生成することができる。いくつかの例では、第1のメッセージは、新たなユーザプロファイル(場合によってはゲストユーザプロファイルであり得る)または初期ユーザプロファイルをさらに含むことができる。
【0072】
インターフェースは、第1のメッセージを第2のオペレーティングシステムに与えることができる(506)。例えば、API29は、第1のメッセージを第2のOS31に与えることができる。いくつかの例では、API29は、第1のメッセージを第2のOS31のHAL28に与えることができる。
【0073】
インターフェースは、第2のオペレーティングシステムから第2のメッセージを受信することができ、第2のメッセージは、第1のオペレーティングシステムと第2のオペレーティングシステムとの間でユーザ管理を同期させることに関連する(508)。例えば、API29は、第2のOS31から第2のメッセージを受信することができる。いくつかの例では、API29は、第2のOS31のHAL28から第2のメッセージを受信することができる。いくつかの例では、第2のメッセージは、ユーザの変更がある時点で許可されるかどうか;内部ユーザプロファイルが第2のオペレーティングシステムによって車両ユーザ管理システムにおいて記憶され、内部ユーザプロファイルは第1のメッセージ内の新たなユーザプロファイルに基づくこと;ユーザが車両ユーザ管理システムから削除されるか否か;または、現在のユーザがゲストユーザであるか否か、のうちの少なくとも1つを示す。
【0074】
いくつかの例では、インターフェースは、第2のオペレーティングシステムから第3のメッセージを受信することができる。例えば、API29は、OS31から(例えば、HAL28から)、車両管理システム内に(例えば、ユーザ管理35において)ユーザが記憶されていないことを示す第3のメッセージを受信することができる。
【0075】
図14A図14Cは、本開示の技法によるユーザ管理サービスを提供するさらなる例のフローチャートである。図14A図14Cの例のいずれかまたはすべては、図13の例と一緒に用いられる。
【0076】
図14Aでは、第1のオペレーティングシステムは、第2のメッセージに基づいて、ユーザの変更がある時点で許可されるかどうかを判断することができる(510)。例えば、第1のOS30は、第2のメッセージを読み取り、ユーザ変更が許可されている(例えば、ユーザの変更は、第2のOS31によって禁止されない)と判断することができる。ユーザの変更がその時点で許可されるという判断に基づいて、インターフェースは、車両の1つまたは複数のシステムを制御する第3のメッセージを第2のオペレーティングシステムに与えることができる。例えば、API29は、第3のメッセージを第2のOS31(例えば、HAL28)に与えることができる。第3のメッセージは、人間工学的システム、エンターテインメントシステム、インフォテインメントシステム、環境システム、安全システム、またはドライブモードシステムなど、車両の1つまたは複数のシステムを制御することができる。
【0077】
図14Bにおいて、第1のオペレーティングシステムは、第2のメッセージに基づいて現在のユーザがゲストユーザであるか否かを判断することができる。例えば、第1のOS30は、第2のメッセージを読み取り、現在のユーザがゲストユーザであると判断することができる。現在のユーザがゲストユーザであるという判断に基づいて、インターフェースは、第2のオペレーティングシステムに第3のメッセージを与えることができ、第3のメッセージは、第2のオペレーティングシステムによるゲストユーザプロファイルの作成を制御する。例えば、API29は、第3のメッセージを第2のOS31(例えば、HAL28)に与えることができる。第3のメッセージは、現在のユーザに関連付けられたゲストユーザプロファイルの作成を制御することができる。このゲストユーザプロファイルは、例えば、ユーザ管理35に記憶されてもよい。
【0078】
図14Cでは、第1のオペレーティングシステムは、ユーザを認証の形態と関連付けることができる(518)。例えば、第1のOS30は、キーフォブ、指紋、顔(顔のスキャンまたは画像による)または音声(声紋による)のうちの1つまたは複数をユーザと関連付けることができる。第1のオペレーティングシステムは、認証の形態に基づいて、現在のユーザが最後のアクティブなユーザと異なる、と判断することができる(520)。例えば、第1のOS30は、現在のユーザの認証因子(これは、ユーザ管理35、または車両システム26A~26Nのうちの1つであることができる車両認証システムに記憶され得る)を検索し、現在のユーザが最後のアクティブユーザではない、と判断することができる。この場合、第1のOS30は、ユーザを現在のユーザに変更したり、新たなユーザを作成したり、ゲストユーザを作成したりすることを試みることができる。
【0079】
図15は、第1のOS30および第2のOS31の例示的なコンポーネントを示すブロック図である。第1のOS30は、(車両製造者に関連付けられることができる)ユーザに関連付けられることができる設定などの設定アクティビティ114、および(車両製造者に関連付けられるソフトウェア開発キットであることができる)CarUserManagerアプリケーション102(CARUSERMGR)を含むことができる。また、第1のOS30は、CarUserService104と、UserHalService106と、IActivityManager110と、IUserManager112とを含むこともできる。第2のOS31は、VehicleHAL108およびOEM固有コンポーネント122を含むことができ、これらは、ユーザ管理のために第2のOS31によって利用されることができる。VehicleHAL108は、以下でさらに説明されるHALプロパティ120を含むことができる。
【0080】
いくつかの例では、第1のOS30が、HAL28に対して、どのタイプのユーザが使用されるべきか(例えば、初期ユーザ、ゲストユーザ、通常のユーザなど)を通信するように要求し始める場合、第1のOS30は、API29を介してHAL28にメッセージを送信することができる。このメッセージは、第1のブート(例えば、車が初めて始動される)、コールドブート(例えば、第1のブート後の通常のブート)、またはRAMへのサスペンド(例えば、スリープからのウェイク)など、異なるタイプのスタートで送信されることができる。HAL28は、第1のOS30によって用いられるべきユーザのタイプでAPI29に応答することができる。いくつかの例では、第1のブート、コールドブート、またはRAMからのサスペンド中に、第1のOS30は、HAL28を呼び出すことができる。HAL28は、既存のユーザへの切り替え、ユーザの作成、またはそれら2つの混合で、応答することができる。
【0081】
いくつかの例では、コールバックイベントが有効化されることができる。例えば、第1のOS30は、ユーザがロック解除されるかまたは切り替えられるときに第1のOS30上で動作することができるアプリケーション(車両製造者によって提供され得る)に通知を送信することができる。
【0082】
第1のOS30が起動すると、第1のOS30は、CarServiceHelperServiceを用いて、どのユーザに切り替えるかを判断することができる。例えば、第1のブートにおいて、OS30は、初期ユーザ(例えば、ユーザ10)を作成することができる。他のブートまたはRAMへのサスペンドで、OS30は、ユーザを最後のアクティブユーザに切り替えることができる。他の例では、OS30は、ユーザを、車をロック解除したFOBに関連付けられるユーザまたは別の認証因子に関連付けられるユーザに切り替えることができる。
【0083】
本明細書で説明する例は、UI100が様々なワークフローを開始することに焦点を当てるが、いくつかの例では、HAL28がワークフローを開始することができる。例えば、車両顔認識システム(例えば、車両システム26のうちの1つ)が最後のユーザとは異なるユーザを検出すると、HAL28は、ユーザ切り替えを開始するためにAPI29にメッセージを送信することができる。
【0084】
いくつかの例では、OS30は、他の態様でHAL28と対話することができる。一例では、ユーザ切り替え、作成、および除去は、以下のようにインターフェースに抽象化されるようことができる:
【0085】
【数1】
【0086】
UserManagerServiceおよびActivityManagerServiceは、これらのインターフェースを任意選択で用いてもよい:
【0087】
【数2】
【0088】
基底の内部サービスに様々な技法を追加することにより、本開示の技法を第1のOS30からの既存のユーザ管理APIと統合することができる。例えば、CarServiceHelperServerは、以下のように変更されてもよい:
【0089】
【数3】
【0090】
いくつかの例では、UserManagerは、ユーザを切り替えることができるかどうかをチェックするために呼び出されることができるAPIを与えることができる。
【0091】
いくつかの例では、HAL28メッセージは、現在のユーザステータス(例えば、現在のユーザ識別、すべてのユーザのリストなど)についての情報を含む。いくつかの例では、HAL28は、現在のユーザステータスに関する情報を利用して、HAL28のユーザ状態を第1のOS30のユーザ状態と同期して維持することができる。いくつかの例では、第1のOS30のコールバックは、現在のユーザステータスについての情報も含むことができる。
【0092】
いくつかの例では、CarUserService104は、任意の時点で実行している動作がたった1つのみであることを保証することができる。例えば、前の要求が完了する前にユーザ切り替え要求が試みられる場合、CarUserService104は新たなユーザ切り替え要求に失敗してもよい。
【0093】
いくつかの例では、API29メッセージに対するHAL28応答は同期的であることができる。そのような場合、本開示の技法は、実現することがより簡単であることができる。例えば、アプリケーションからの呼び出し元は一方向バインダトランザクションを発行することができ、したがって、UserHalService106は、HAL28が応答するまでブロックすることができる。しかしながら、HAL28が応答しない場合、これは多くのブロックされたスレッドをもたらし得る。
【0094】
他の例では、API29に対するHAL28応答は非同期的であることができる。そのような例では、ステートマシンを用いて要求を応答にマッピングすることができ、UserHalServiceはより軽量であることができる。
【0095】
VehicleHAL108の例示的な実現例は、以下のとおりである:
【0096】
【数4】
【0097】
【0098】
【0099】
【0100】
【0101】
【0102】
【0103】
【0104】
【0105】
【0106】
【0107】
【0108】
【0109】
【0110】
【0111】
【0112】
【0113】
【0114】
【0115】
【0116】
【0117】
【0118】
【0119】
【0120】
【0121】
【0122】
【0123】
【0124】
VehicleHAL108の別の例示的な実現例は、以下のとおりである:
【0125】
【数5】
【0126】
【0127】
【0128】
【0129】
CarUserManager102の例示的な実現例は、以下のとおりである:
【0130】
【数6】
【0131】
【0132】
いくつかの例では、フレームワーク構成プロパティによって定義されるいくつかのユーザ関連設定は、HAL28内にあることができる。そのような場合、(オーバーレイされたリソースの解析の前に)HAL28に直ちにプロパティ値を利用可能にする、および、HAL28がその値を動的に変更する(例えば、システムメモリ16内の現在の記憶容量に基づいてユーザの最大数を定義する)ことができる、という利点を有する。
【0133】
これらの場合、初期設定は、UserControllerに渡されてもよい。幾つかの例では、初期設定は、UserControllerにActivityManagerService.retrieveSettings() で渡されるが、それはCarServiceHelperServiceがインスタンス化される前にActivityManagerService.systemReady()から呼び出される。初期設定をUserControllerに渡すための例示的な技術は、ActivityManagerService.systemReady()によって使用されるgoingCallbackを設定を戻すことであろう。例示的な実現例は以下のとおりである:
【0134】
【数7】
【0135】
次いで、CarServiceHelperServiceは、VehicleHAL108から値を読み取ることによってそのインターフェースを実現することができる。
【0136】
別の例示的な技術は、ActivityManagerServiceが初期値を設定し、CarServiceHelperが、ActivityManagerInternal上で新しいメソッドを呼び出すことによって開始したときに、CarServiceHelperが初期値をオーバーライドすることを可能にすることである:
【0137】
【数8】
【0138】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、フラッシュメモリ、または命令もしくはデータ構造の形態で所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の記憶媒体を含み得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を用いて、ウェブサイト、サーバ、または他の遠隔ソースから送信される場合、当該同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体および媒体ならびにデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスクおよびブルーレイディスクを含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【0139】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価な集積回路もしくは離散論理回路などの、1つまたは複数のプロセッサによって実行されることができる。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造のいずれか、または本明細書で説明する技法の実現に好適な他の構造のいずれかを指すことができる。さらに、いくつかの態様では、本明細書で説明する機能は、専用のハードウェアおよび/またはソフトウェアモジュール内に設けることができる。また、本技法は、1つもしくは複数の回路または論理要素において完全に実現され得る。
【0140】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(例えば、チップセット)を含む、多種多様なデバイスまたは装置において実現されることができる。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために様々なコンポーネント、モジュール、またはユニットが説明されるが、必ずしも異なるハードウェアユニットによって実現される必要はない。むしろ、上述のように、様々なユニットを、適切なソフトウェアおよび/またはファームウェアと併せて、ハードウェアユニットにおいて組み合わせるか、または上述の1つもしくは複数のプロセッサを含む相互動作ハードウェアユニットの集合によって提供することができる。
【0141】
本開示は多くの例を含む。これらの例は、以下のものを含む。
例1.方法であって、車両の1つまたは複数のプロセッサによって、第1のオペレーティングシステムを実行して、車両にユーザ管理サービスを提供することと、1つまたは複数のプロセッサによって実行される第1のオペレーティングシステムによって、第2のオペレーティングシステムにインターフェースを提示することとを備え、第2のオペレーティングシステムはインターフェースによってユーザ管理オペレーションを呼び出し、前記方法はさらに、1つまたは複数のプロセッサによって実行される第1のオペレーティングシステムによって、ユーザ管理に関連する第1のメッセージを生成することと、インターフェースによって、第1のメッセージを第2のオペレーティングシステムに与えることと、インターフェースによって、第2のオペレーティングシステムから第2のメッセージを受信することとを備え、第2のメッセージは、第1のオペレーティングシステムと第2のオペレーティングシステムとの間においてユーザ管理を同期させることに関連する、方法。
【0142】
例2.第1のメッセージは、ユーザを変更する要求を含む、例1の方法。
例3.さらに、1つまたは複数のプロセッサによって実行される第1のオペレーティングシステムによって、第2のメッセージに基づいて、ユーザの変更がある時点で許可されるかどうかを判断することと、ユーザの変更がある時点で許可されるという判断に基づいて、インターフェースによって、車両の1つまたは複数のシステムを制御する第3のメッセージを第2のオペレーティングシステムに与えることとを備える、例2の方法。
【0143】
例4.第3のメッセージは、現在のユーザの、車両の1つまたは複数のシステムの動作状態の選好をさらに含む、例3の方法。
【0144】
例5.第1のメッセージは、ユーザ作成メッセージを含む、例1の方法。
例6.第1のメッセージは、新たなユーザプロファイルメッセージをさらに含む、例5の方法。
【0145】
例7.第2のメッセージは、内部ユーザプロファイルが第2のオペレーティングシステムによって車両ユーザ管理システムにおいて記憶されることを示し、内部ユーザプロファイルは新たなユーザプロファイルに基づく、例6の方法。
【0146】
例8.第1のメッセージは、ユーザ削除メッセージを含む、例1の方法。
例9.第2のメッセージは、ユーザが車両ユーザ管理システムから削除されることを示す、例8の方法。
【0147】
例10.第2のメッセージは、さらに、1つまたは複数のプロセッサによって実行される第2のオペレーティングシステムによる、ユーザが現在のユーザではないという判断を示す、例9の方法。
【0148】
例11.第1のメッセージは、初期ユーザ割り当てメッセージを含む、例1の方法。
例12.第1のメッセージは、初期ユーザプロファイルをさらに含む、例11の方法。
【0149】
例13.インターフェースによって、1つまたは複数のプロセッサによって実行される第2のオペレーティングシステムから第3のメッセージを受信することをさらに備え、第3のメッセージは、車両ユーザ管理システム内にユーザが記憶されていないことを示すものであり、第2のメッセージは、1つまたは複数のプロセッサ上で実行される第2のオペレーティングシステムによって、初期ユーザプロファイルに基づいて、内部ユーザプロファイルが記憶されていることを示す、例12の方法。
【0150】
例14.第1のメッセージはゲストユーザメッセージを含む、例1の方法。
例15.1つまたは複数のプロセッサ上で実行される第1のオペレーティングシステムによって、現在のユーザがゲストユーザであるかどうかを第2のメッセージに基づいて判断することと、現在のユーザがゲストユーザであるという判断に基づいて、1つまたは複数のプロセッサによって実行される第2のオペレーティングシステムに第3のメッセージをインターフェースによって与えることとを備え、第3のメッセージは、車両ユーザ管理システムにおける1つまたは複数のプロセッサによって実行される第2のオペレーティングシステムによるゲストユーザプロファイルの作成を制御する、例14の方法。
【0151】
例16.1つまたは複数のプロセッサによって実行される第1のオペレーティングシステムによって、ユーザを認証の形態に関連付けることをさらに備える、例1~例15の任意の組み合わせの方法。
【0152】
例17.認証の形態は、キーフォブ、指紋、顔または音声のうちの1つまたは複数を含む、例16の方法。
【0153】
例18.1つまたは複数のプロセッサによって実行される第1のオペレーティングシステムによって、現在のユーザが最後のアクティブユーザとは異なる、とを判断することをさらに備える、例1~例17の任意の組み合せの方法。
【0154】
例19.現在のユーザが最後のアクティブユーザとは異なると判断することは、現在のキーフォブ、指紋、顔、または音声が最後のアクティブユーザに関連付けられていないと判断することを含む、例18の方法。
【0155】
例20.車両の1つまたは複数のシステムは、人間工学的システム、インフォテインメントシステム、環境システム、安全システム、またはドライブモードシステムを含む、例1~例19の任意の組み合わせの方法。
【0156】
例21.インターフェースは、1つまたは複数のプロセッサによって実行される第2のオペレーティングシステムの車両ハードウェア抽象化層にメッセージを与え、車両ハードウェア抽象化層からメッセージを受信する、例1~例20の任意の組み合わせの方法。
【0157】
例22.1つまたは複数のプロセッサは第2のオペレーティングシステムを実行する、例1~例21の任意の組み合わせの方法。
【0158】
例23.車両と対話するように構成されたデバイスであって、ユーザ管理データを記憶するよう構成されたメモリと、メモリに通信可能に結合される1つまたは複数のプロセッサとを備え、1つまたは複数のプロセッサは、第1のオペレーティングシステムを実行するよう構成され、第1のオペレーティングシステムは、ユーザ管理オペレーションを呼び出すために第2のオペレーティングシステムにインターフェースを提示し、第1のオペレーティングシステムは、ユーザ管理に関連する第1のメッセージを生成するように構成され、インターフェースは、メッセージを第2のオペレーティングシステムに与えるように構成され、インターフェースは、第2のオペレーティングシステムから第2のメッセージを受信するようにさらに構成され、第2のメッセージは、第1のオペレーティングシステムと第2のオペレーティングシステムとの間においてユーザ管理を同期させることと関連し、第1のオペレーティングシステムは、第1のメッセージに基づいて車両にユーザ管理サービスを提供する、車両と対話するように構成されたデバイス。
【0159】
例24.第1のメッセージは、ユーザを変更する要求を含む、例23のデバイス。
例25.第1のオペレーティングシステムは、さらに、第2のメッセージに基づいて、ユーザの変更がある時点で許可されるかどうかを判断するよう構成され、インターフェースは、さらに、第3のメッセージを第2のオペレーティングシステムに与えるよう構成され、第3のメッセージは、ユーザの変更がある時点で許可されるという判断に基づいて、車両の1つまたは複数のシステムを制御する、例24のデバイス。
【0160】
例26.第3のメッセージは、現在のユーザの、車両の1つまたは複数のシステムの動作状態の選好をさらに含む、例25のデバイス。
【0161】
例27.第1のメッセージは、ユーザ作成メッセージを含む、例23のデバイス。
例28.第1のメッセージは、新たなユーザプロファイルメッセージをさらに含む、例27のデバイス。
【0162】
例29.第2のメッセージは、内部ユーザプロファイルが第2のオペレーティングシステムによって車両ユーザ管理システムにおいて記憶されることを示し、内部ユーザプロファイルは新たなユーザプロファイルに基づく、例28のデバイス。
【0163】
例30.第1のメッセージは、ユーザ削除メッセージを含む、例23のデバイス。
例31.第2のメッセージは、ユーザが車両ユーザ管理システムから削除されることを示す、例30のデバイス。
【0164】
例32.第2のメッセージは、1つまたは複数のプロセッサによって実行される第2のオペレーティングシステムによる、ユーザが現在のユーザではないという判断をさらに示す、例31のデバイス。
【0165】
例33.第1のメッセージは、初期ユーザ割り当てメッセージを含む、例23のデバイス。
【0166】
例34.第1のメッセージは、初期ユーザプロファイルをさらに含む、例33のデバイス。
【0167】
例35.インターフェースは、さらに、第2のオペレーティングシステムから第3のメッセージを受信するように構成され、第3のメッセージは、車両ユーザ管理システムにユーザが記憶されていないことを示し、第2のメッセージは、内部ユーザプロファイルが車両ユーザ管理システムに記憶されていることを示す、例34のデバイス。
【0168】
例36.第1のメッセージはゲストユーザメッセージを含む、例23のデバイス。
例37.第1のオペレーティングシステムは、さらに、第2のメッセージに基づいて現在のユーザがゲストユーザであるかどうかを判断するように構成され、インターフェースは、さらに、第2のオペレーティングシステムに第3のメッセージを与えるように構成され、第3のメッセージは、現在のユーザがゲストユーザであるという判断に基づいて、第2のオペレーティングシステムによるゲストユーザプロファイルの作成を制御する、例36のデバイス。
【0169】
例38.第1のオペレーティングシステムは、さらに、ユーザを認証の形態と関連付けるように構成される、例23~例37の任意の組み合わせのデバイス。
【0170】
例39.認証の形態は、キーフォブ、指紋、顔または音声のうちの1つまたは複数を含む、例38のデバイス。
【0171】
例40.第1のオペレーティングシステムは、さらに、現在のユーザが最後のアクティブユーザとは異なる、と判断するように構成される、例23~例39の任意の組み合わせのデバイス。
【0172】
例41.第1のオペレーティングシステムは、現在のキーフォブ、指紋、顔、または音声が最後のアクティブユーザと関連付けられていないと判断することによって、現在のユーザが最後のアクティブユーザとは異なると判断する、例40のデバイス。
【0173】
例42.車両の1つまたは複数のシステムは、人間工学的システム、インフォテインメントシステム、環境システム、安全システム、またはドライブモードシステムを含む、例23~例41の任意の組み合わせのデバイス。
【0174】
例43.インターフェースは、第2のオペレーティングシステムの車両ハードウェア抽象化層にメッセージを与え、車両ハードウェア抽象化層からメッセージを受信するように構成される、例23~例42の任意の組み合わせのデバイス。
【0175】
例44.1つまたは複数のプロセッサは、さらに、第2のオペレーティングシステムを実行するように構成される、例23~例43の任意の組み合わせのデバイス。
【0176】
例45.命令を記憶する非一時的なコンピュータ可読記憶媒体であって、命令は、実行されると、車両ヘッドユニットの1つまたは複数のプロセッサに、第1のオペレーティングシステムを実行させて、車両にユーザ管理サービスを提供し、第2のオペレーティングシステムに対して第1のオペレーティングシステムのインターフェースを提示させ、第2のオペレーティングシステムはインターフェースによってユーザ管理オペレーションを呼び出し、命令は、実行されると、さらに、車両ヘッドユニットの1つまたは複数のプロセッサに、ユーザ管理に関連する第1のメッセージを生成させ、インターフェースによって、第1のメッセージを第2のオペレーティングシステムに提供させ、インターフェースによって、第2のオペレーティングシステムから第2のメッセージを受信させ、第2のメッセージは、第1のオペレーティングシステムと第2のオペレーティングシステムとの間でユーザ管理を同期させることに関連する、非一時的なコンピュータ可読記憶媒体。
【0177】
例46.第1のメッセージは、ユーザを変更する要求を含む、例45の非一時的コンピュータ可読記憶媒体。
【0178】
例47.命令が実行されると、1つまたは複数のプロセッサに、第2のメッセージに基づいて、ユーザの変更がある時点で許可されるか否かを判断させ、その時点でユーザの変更が許可されるという判断に基づいて、インターフェースによって、第3のメッセージを第2のオペレーティングシステムに与えさせ、第3のメッセージは車両の1つまたは複数のシステムを制御する、例46の非一時的コンピュータ可読記憶媒体。
【0179】
例48.第3のメッセージは、現在のユーザの、車両の1つまたは複数のシステムの動作状態の選好をさらに含む、例47の非一時的コンピュータ可読記憶媒体。
【0180】
例49.第1のメッセージは、ユーザ作成メッセージを含む、例45の非一時的コンピュータ可読記憶媒体。
【0181】
例50.第1のメッセージは、新たなユーザプロファイルメッセージをさらに含む、例49の非一時的コンピュータ可読記憶媒体。
【0182】
例51.第2のメッセージは、内部ユーザプロファイルが第2のオペレーティングシステムによって車両ユーザ管理システムにおいて記憶されることを示し、内部ユーザプロファイルは新たなユーザプロファイルに基づく、例50の非一時的コンピュータ可読記憶媒体。
【0183】
例52.第1のメッセージは、ユーザ削除メッセージを含む、例45の非一時的コンピュータ可読記憶媒体。
【0184】
例53.第2のメッセージは、ユーザが車両ユーザ管理システムから削除されることを示す、例52の非一時的コンピュータ可読記憶媒体。
【0185】
例54.第2のメッセージは、1つまたは複数のプロセッサによって実行される第2のオペレーティングシステムによる、ユーザが現在のユーザではないという判断をさらに示す、例53の非一時的コンピュータ可読記憶媒体。
【0186】
例55.第1のメッセージは、初期ユーザ割り当てメッセージを含む、例45の非一時的コンピュータ可読記憶媒体。
【0187】
例56.第1のメッセージは、初期ユーザプロファイルをさらに含む、例55の非一時的コンピュータ可読記憶媒体。
【0188】
例57.命令は、実行されると、さらに、1つまたは複数のプロセッサに、インターフェースによって、第2のオペレーティングシステムから第3のメッセージを受信させ、第3のメッセージは、車両ユーザ管理システム内にユーザが記憶されていないことを示すものであり、第2のメッセージは、第2のオペレーティングシステムによって、初期ユーザプロファイルに基づいて、内部ユーザプロファイルが記憶されていることを示す、例56の非一時的コンピュータ可読記憶媒体。
【0189】
例58.第1のメッセージはゲストユーザメッセージを含む、例45の非一時的コンピュータ可読記憶媒体。
【0190】
例59.命令は、実行されると、さらに、1つまたは複数のプロセッサに、第1のオペレーティングシステムによって、第2のメッセージに基づいて、現在のユーザがゲストユーザであるか否かを判断させ、インターフェースによって、第3のメッセージを第2のオペレーティングシステムに与えさせ、第3のメッセージは、車両ユーザ管理システムにおける第2のオペレーティングシステムによるゲストユーザプロファイルの作成を制御する、例58の非一時的コンピュータ可読記憶媒体。
【0191】
例60.命令は、実行されると、1つまたは複数のプロセッサに、第1のオペレーティングシステムによって、ユーザを認証の形態と関連付けさせる、例45~例59の任意の組み合わせの非一時的コンピュータ可読記憶媒体。
【0192】
例61.認証の形態は、キーフォブ、指紋、顔または音声のうちの1つまたは複数を含む、例60の非一時的コンピュータ可読記憶媒体。
【0193】
例62.命令が実行されると、1つまたは複数のプロセッサに、1つまたは複数のプロセッサによって実行される第1のオペレーティングシステムによって、現在のユーザが最後のアクティブユーザとは異なる、と判断させる、例45~例61の任意の組み合わせの非一時的コンピュータ可読記憶媒体。
【0194】
例63.第1のオペレーティングシステムは、現在のキーフォブ、指紋、顔、または音声が最後のアクティブユーザと関連付けられていないと判断することによって、現在のユーザが最後のユーザとは異なると判断する、例62の非一時的なコンピュータ可読記憶媒体。
【0195】
例64.車両の1つまたは複数のシステムは、人間工学的システム、インフォテインメントシステム、環境システム、安全システム、またはドライブモードシステムを含む、例45~例63の任意の組み合わせの非一時的なコンピュータ可読記憶媒体。
【0196】
例65.インターフェースは、第2のオペレーティングシステムの車両ハードウェア抽象化層にメッセージを与え、車両ハードウェア抽象化層からメッセージを受信するように構成される、例45~例64の任意の組み合わせの非一時的なコンピュータ可読記憶媒体。
【0197】
例66.命令は、実行されると、さらに、1つまたは複数のプロセッサに第2のオペレーティングシステムを実行させる、例45~例65の任意の組み合わせの非一時的コンピュータ可読記憶媒体。
【0198】
以上、様々な実施形態について説明した。これらおよび他の実施形態は、以下の特許請求の範囲内である。
【符号の説明】
【0199】
8 車両、15 プロセッサ、30 第1のオペレーティングシステム、31 第2のオペレーティングシステム、29 インターフェース。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14A
図14B
図14C
図15