Referensi Struktur vehicle_hw_device

Referensi Struktur vehicle_hw_device

#include < vehicle.h >

Bidang Data

struct hw_device_t umum
ke dalam(* init )(struct vehicle_hw_device *perangkat, vehicle_event_callback_fn event_fn, vehicle_error_callback_fn err_fn)
ke dalam(* rilis )(struct vehicle_hw_device *perangkat)
kendaraan_prop_config_t konstan *(* list_properties )(struct vehicle_hw_device *perangkat, int *num_properties)
ke dalam(* dapatkan )(struct vehicle_hw_device *perangkat, vehicle_prop_value_t *data)
ruang kosong(* rilis_memori_dari_get )(struct vehicle_hw_device *perangkat, vehicle_prop_value_t *data)
ke dalam(* set )(struct vehicle_hw_device *perangkat, const vehicle_prop_value_t *data)
ke dalam(* berlangganan )(struct vehicle_hw_device *perangkat, prop int32_t, float sample_rate, zona int32_t)
ke dalam(* berhenti berlangganan )(struct vehicle_hw_device *perangkat, int32_t prop)
ke dalam(* dump )(struct vehicle_hw_device *perangkat, int fd)

Detil Deskripsi

Definisi pada baris 1639 file vehicle.h .

Dokumentasi Lapangan

struct hw_device_t umum

Definisi pada baris 1640 file vehicle.h .

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

Cetak status debugging untuk hal kendaraan. Ini akan dipanggil oleh layanan jaringan kendaraan dan akan dimasukkan ke dalam dump layanan.

Deskriptor file yang diteruskan dapat digunakan untuk menulis teks debug menggunakan dprintf() atau write(). Teks harus dalam pengkodean ASCII saja.

Persyaratan kinerja:

Ini harus berupa panggilan yang tidak memblokir. HAL akan kembali dari panggilan ini dalam 1 md, harus kembali dari panggilan ini dalam 10 md. Panggilan ini harus menghindari kebuntuan, karena panggilan ini dapat dilakukan kapan saja. Primitif sinkronisasi apa pun yang digunakan (seperti kunci mutex atau semafor) harus diperoleh dengan batas waktu.

Definisi pada baris 1744 file vehicle.h .

int(* dapatkan)(struct vehicle_hw_device *perangkat, vehicle_prop_value_t *data)

Dapatkan segera nilai properti kendaraan. data harus dialokasikan dengan benar. Pemanggil API MEMILIKI bidang data. Penelepon akan menyetel data->prop, data->value_type, dan nilai zona opsional untuk properti yang dikategorikan. Namun implementasi HAL perlu mengisi semua entri dengan benar saat kembali. Untuk tipe pointer, implementasi HAL harus mengalokasikan memori yang diperlukan dan pemanggil bertanggung jawab untuk memanggil rilis_memory_from_get, yang memungkinkan HAL melepaskan memori yang dialokasikan. Untuk tipe properti VEHICLE_PROP_CHANGE_MODE_STATIC, get harus selalu mengembalikan nilai yang sama. Untuk jenis properti VEHICLE_PROP_CHANGE_MODE_ON_CHANGE, properti tersebut harus mengembalikan nilai terbaru. Jika belum ada data yang tersedia, yang dapat terjadi pada tahap awal, panggilan ini akan segera kembali dengan kode kesalahan -EAGAIN.

Definisi pada baris 1681 file vehicle.h .

int(* init)(struct vehicle_hw_device *perangkat, vehicle_event_callback_fn event_fn, vehicle_error_callback_fn err_fn)

Setelah memanggil open pada perangkat, pengguna harus mendaftarkan callback untuk fungsi event dan error.

Definisi pada baris 1646 file vehicle.h .

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

Hitung semua properti yang tersedia. Daftar dikembalikan dalam "daftar".

Parameter
nomor_properti jumlah properti yang terkandung dalam array yang dikembalikan.
Kembali
berbagai konfigurasi properti yang didukung oleh mobil ini. Perhatikan bahwa data yang dikembalikan adalah const dan penelepon tidak dapat mengubahnya. Implementasi HAL harus menyimpan memori ini sampai HAL dirilis untuk menghindari penyalinan lagi.

Definisi pada baris 1663 file vehicle.h .

int(* rilis)(struct vehicle_hw_device *perangkat)

Sebelum memanggil close, pengguna harus menghancurkan fungsi panggilan balik yang terdaftar. Jika panggilan unsubscribe() tidak dipanggil pada semua properti sebelum rilis() maka rilis() akan berhenti berlangganan properti itu sendiri.

Definisi pada baris 1654 file vehicle.h .

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

Lepaskan memori yang dialokasikan ke data pada panggilan get sebelumnya. dapatkan panggilan untuk byte atau string melibatkan pengalokasian memori yang diperlukan dari hal kendaraan. Agar aman, memori yang dialokasikan oleh ruang kendaraan harus dilepaskan oleh ruang kendaraan dan layanan jaringan kendaraan akan memanggil ini ketika data dari ruang kendaraan tidak lagi diperlukan. Implementasi hal kendaraan hanya boleh melepaskan anggota vehicle_prop_value_t seperti data->str_value.data atau data->bytes_value.data tetapi bukan data itu sendiri karena data itu sendiri dialokasikan dari layanan jaringan kendaraan. Setelah memori dibebaskan, penunjuk yang sesuai harus disetel ke NULL di bagian kendaraan.

Definisi pada baris 1693 file vehicle.h .

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

Tetapkan nilai properti kendaraan. data harus dialokasikan dengan benar dan bukan NULL. Pemanggil API MEMILIKI bidang data. stempel waktu data akan diabaikan untuk operasi yang disetel. Menyetel beberapa properti memerlukan ketersediaan status awal. Tergantung pada area kendaraan, data awal tersebut mungkin tidak tersedia dalam waktu singkat setelah init. Dalam kasus seperti itu, panggilan yang disetel dapat mengembalikan -EAGAIN seperti dapatkan panggilan. Untuk properti dengan kontrol daya terpisah, set dapat gagal jika properti tidak dihidupkan. Dalam kasus seperti itu, hal akan mengembalikan kesalahan -ESHUTDOWN.

Definisi pada baris 1706 file vehicle.h .

int(* berlangganan)(struct vehicle_hw_device *perangkat, prop int32_t, laju_sampel float, zona int32_t)

Berlangganan acara. Bergantung pada keluaran list_properties jika propertinya: a) sedang berubah: sample_rate harus disetel ke 0. b) mendukung frekuensi: sample_rate harus disetel dari min_sample_rate hingga max_sample_rate. Untuk jenis properti yang sedang diubah, layanan jaringan kendaraan akan melakukan panggilan get lagi untuk memeriksa keadaan awal. Oleh karena itu, penerapan halal kendaraan tidak perlu mengirimkan status awal untuk jenis properti yang sedang diubah.

Parameter
perangkat
menopang
tingkat_sampel
zona Semua zona berlangganan untuk properti yang dikategorikan. dapat diabaikan untuk properti yang tidak dikategorikan. 0 berarti semua zona didukung, bukan tidak ada zona.

Definisi pada baris 1723 file vehicle.h .

int(* berhenti berlangganan)(struct vehicle_hw_device *perangkat, int32_t prop)

Batalkan langganan pada suatu properti.

Definisi pada baris 1727 file vehicle.h .


Dokumentasi untuk struct ini dihasilkan dari file berikut:
  • perangkat keras/libhardware/termasuk/perangkat keras/ kendaraan.h