vehicle_hw_device 構造体リファレンス

vehicle_hw_device 構造体リファレンス

#include < vehicle.h >

データ フィールド

struct hw_device_t   common
 
int(*  init )(struct vehicle_hw_device *device, vehicle_event_callback_fn event_fn, vehicle_error_callback_fn err_fn)
 
int(*  release )(struct vehicle_hw_device *device)
 
vehicle_prop_config_t const *(*  list_properties )(struct vehicle_hw_device *device, int *num_properties)
 
int(*  get )(struct vehicle_hw_device *device, vehicle_prop_value_t *data)
 
void(*  release_memory_from_get )(struct vehicle_hw_device *device, vehicle_prop_value_t *data)
 
int(*  set )(struct vehicle_hw_device *device, const vehicle_prop_value_t *data)
 
int(*  subscribe )(struct vehicle_hw_device *device, int32_t prop, float sample_rate, int32_t zones)
 
int(*  unsubscribe )(struct vehicle_hw_device *device, int32_t prop)
 
int(*  dump )(struct vehicle_hw_device *device, int fd)
 

詳細な説明

ファイル vehicle.h 1639 行の定義。

フィールドのドキュメント

struct hw_device_t common

ファイル vehicle.h 1640 行 の定義。

int(* dump)(struct vehicle_hw_device *device, int fd)

車両 HAL のデバッグ状態を出力します。これは車両ネットワーク サービスによって呼び出され、サービスのダンプに含まれます。

渡されたファイル記述子を使用して、dprintf() または write() でデバッグ テキストを書き込むことができます。テキストは ASCII エンコードのみにする必要があります。

パフォーマンス要件:

これは非ブロッキング呼び出しである必要があります。HAL は、この呼び出しから 10 ミリ秒以内に返す必要があります。この呼び出しは、オペレーションの任意の時点で呼び出されるため、デッドロックを回避する必要があります。使用される同期プリミティブ(ミューテックス ロックやセマフォなど)は、タイムアウトで取得する必要があります。

ファイル vehicle.h 1744 行の定義。

int(* get)(struct vehicle_hw_device *device, vehicle_prop_value_t *data)

車両プロパティ値を直ちに取得します。データは適切に割り振られる必要があります。API の呼び出し元がデータフィールドを所有します。呼び出し元は、data->prop、data->value_type、必要に応じてゾーン化プロパティのゾーン値を設定します。ただし、HAL 実装では、返却時にすべてのエントリを適切に入力する必要があります。ポインタ型の場合、HAL 実装は必要なメモリを割り当てる必要があります。また、HAL が割り当てられたメモリを解放できるように、release_memory_from_get を呼び出すのは呼び出し元の責任です。VEHICLE_PROP_CHANGE_MODE_STATIC タイプのプロパティの場合、get は常に同じ値を返す必要があります。VEHICLE_PROP_CHANGE_MODE_ON_CHANGE タイプのプロパティの場合は、最新の値を返す必要があります。初期段階でデータがまだ利用できない場合は、この呼び出しはすぐにエラーコード -EAGAIN を返す必要があります。

ファイル vehicle.h 1681 行の定義。

デバイスで open を呼び出した後、ユーザーはイベント関数とエラー関数のコールバックを登録する必要があります。

ファイル vehicle.h 1646 行の定義。

vehicle_prop_config_t const*(* list_properties)(struct vehicle_hw_device *device, int *num_properties)

使用可能なすべてのプロパティを列挙します。リストは「list」で返されます。

パラメータ
num_properties 返された配列に含まれるプロパティの数。
戻り値
この車でサポートされているプロパティ構成の配列。返されるデータは const であり、呼び出し元は変更できません。HAL 実装では、このメモリを HAL が解放されるまで保持して、再コピーしないようにする必要があります。

ファイル vehicle.h 1663 行 の定義。

int(* release)(struct vehicle_hw_device *device)

close を呼び出す前に、登録されたコールバック関数を破棄する必要があります。 release() の前に、すべてのプロパティで unsubscribe() 呼び出しが呼び出されなかった場合、 release() によってプロパティ自体が登録解除されます。

ファイル vehicle.h 1654 行 の定義。

void(* release_memory_from_get)(struct vehicle_hw_device *device, vehicle_prop_value_t *data)

前の get 呼び出しでデータに割り当てられたメモリを解放します。バイトまたは文字列の get 呼び出しには、車両 HAL から必要なメモリの割り当てが含まれます。安全を確保するため、車両 HAL によって割り振られたメモリは車両 HAL によって解放する必要があります。車両ネットワーク サービスは、車両 HAL のデータが不要になったときにこれを呼び出します。車両 HAL の実装では、データ自体は車両ネットワーク サービスから割り振られるため、data->str_value.data や data->bytes_value.data などの vehicle_prop_value_t のメンバーのみを解放する必要があります。メモリが解放されたら、対応するポインタは車両 HAL によって NULL に設定する必要があります。

ファイル vehicle.h 1693 行の定義。

int(* set)(struct vehicle_hw_device *device, const vehicle_prop_value_t *data)

車両プロパティ値を設定します。データは適切に割り振られ、NULL ではありません。API の呼び出し元がデータフィールドを所有します。データのタイムスタンプは、セット オペレーションで無視されます。一部のプロパティの設定には、初期状態が使用可能である必要があります。車両の HAL によっては、このような初期データが初期化後しばらく利用できない場合があります。この場合、set 呼び出しは get 呼び出しと同様に -EAGAIN を返すことができます。個別の電源制御があるプロパティの場合、プロパティの電源がオンになっていないと、設定が失敗することがあります。この場合、hal は -ESHUTDOWN エラーを返す必要があります。

ファイル vehicle.h の行 1706 の定義。

int(* subscribe)(struct vehicle_hw_device *device, int32_t prop, float sample_rate, int32_t zones)

イベントに登録します。プロパティが a)on-change の場合: list_properties の出力に応じて、sample_rate を 0 に設定します。b)frequency をサポートしている場合: sample_rate を min_sample_rate から max_sample_rate に設定します。変更時に取得するタイプのプロパティの場合、車両ネットワーク サービスは別の get 呼び出しを行い、初期状態を確認します。そのため、車両 HAL の実装では、変更時タイプのプロパティの初期状態を送信する必要はありません。

パラメータ
デバイス
prop
sample_rate
ゾーン ゾーン プロパティのサブスクライブされたすべてのゾーン。ゾーンなしプロパティの場合は無視できます。0 は、ゾーンなしではなく、すべてのゾーンがサポートされていることを意味します。

ファイル vehicle.h 1723 行の定義。

int(* unsubscribe)(struct vehicle_hw_device *device, int32_t prop)

宿泊施設で定期購入を解約します。

ファイル vehicle.h 1727 行の定義。


この構造体のドキュメントは、次のファイルから生成されました。