Referensi Struct vehicle_hw_device

Referensi Struct vehicle_hw_device

#include < vehicle.h >

Kolom Data

struct hw_device_t   umum
 
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)
 

Deskripsi Mendetail

Definisi di baris 1639 file vehicle.h .

Dokumentasi Bidang

struct hw_device_t umum

Definisi di baris 1640 dari file vehicle.h .

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

Mencetak status proses debug untuk hal kendaraan. Ini akan dipanggil oleh layanan jaringan kendaraan dan akan disertakan dalam dump layanan.

Deskripsi file yang diteruskan dapat digunakan untuk menulis teks proses debug menggunakan dprintf() atau write(). Teks hanya boleh dalam encoding ASCII.

Persyaratan performa:

Panggilan ini harus berupa panggilan non-pemblokiran. HAL harus kembali dari panggilan ini dalam 1 md, harus kembali dari panggilan ini dalam 10 md. Panggilan ini harus menghindari deadlock, karena dapat dipanggil kapan saja selama operasi. Setiap primitif sinkronisasi yang digunakan (seperti kunci mutex atau semaphore) harus diperoleh dengan waktu tunggu.

Definisi di baris 1744 dari file vehicle.h .

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

Segera dapatkan nilai properti kendaraan. Data harus dialokasikan dengan benar. Pemanggil API MEMILIKI kolom data. Pemanggil akan menetapkan data->prop, data->value_type, dan nilai zona secara opsional untuk properti berzona. Namun, implementasi HAL harus mengisi semua entri dengan benar saat ditampilkan. Untuk jenis pointer, implementasi HAL harus mengalokasikan memori yang diperlukan dan pemanggil bertanggung jawab untuk memanggil release_memory_from_get, yang memungkinkan HAL melepaskan memori yang dialokasikan. Untuk jenis properti VEHICLE_PROP_CHANGE_MODE_STATIC, get harus selalu menampilkan nilai yang sama. Untuk jenis properti VEHICLE_PROP_CHANGE_MODE_ON_CHANGE, properti ini akan menampilkan nilai terbaru. Jika belum ada data yang tersedia, yang dapat terjadi selama tahap awal, panggilan ini akan segera ditampilkan dengan kode error -EAGAIN.

Definisi di baris 1681 dari file vehicle.h .

Setelah memanggil open di perangkat, pengguna harus mendaftarkan callback untuk fungsi peristiwa dan error.

Definisi di baris 1646 dari file vehicle.h .

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

Mengurutkan semua properti yang tersedia. Daftar ditampilkan dalam "list".

Parameter
num_properties jumlah properti yang terdapat dalam array yang ditampilkan kembali.
Hasil
array konfigurasi properti yang didukung oleh mobil ini. Perhatikan bahwa data yang ditampilkan adalah const dan pemanggil tidak dapat mengubahnya. Penerapan HAL harus menyimpan memori ini hingga HAL dirilis untuk menghindari penyalinan lagi.

Definisi di baris 1663 dari file vehicle.h .

int(* release)(struct vehicle_hw_device *device)

Sebelum memanggil close, pengguna harus menghancurkan fungsi callback yang terdaftar. Jika panggilan unsubscribe() tidak dipanggil di semua properti sebelum release() , release() akan membatalkan langganan properti itu sendiri.

Definisi di baris 1654 dari file vehicle.h .

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

Lepaskan memori yang dialokasikan ke data dalam panggilan get sebelumnya. panggilan get untuk byte atau string melibatkan alokasi memori yang diperlukan dari hal kendaraan. Agar aman, memori yang dialokasikan oleh vehicle hal harus dirilis oleh vehicle hal dan layanan jaringan kendaraan akan memanggilnya saat data dari vehicle hal tidak lagi diperlukan. Implementasi vehicle hal hanya boleh merilis 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, pointer yang sesuai harus disetel ke NULL oleh hal kendaraan.

Definisi di baris 1693 dari file vehicle.h .

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

Menetapkan nilai properti kendaraan. Data harus dialokasikan dengan benar dan bukan NULL. Pemanggil API MEMILIKI kolom data. stempel waktu data akan diabaikan untuk operasi set. Menetapkan beberapa properti memerlukan status awal yang tersedia. Bergantung pada hal kendaraan, data awal tersebut mungkin tidak tersedia untuk waktu singkat setelah inisialisasi. Dalam hal ini, panggilan set dapat menampilkan -EAGAIN seperti panggilan get. Untuk properti dengan kontrol daya terpisah, penetapan dapat gagal jika properti tidak diaktifkan. Dalam hal ini, hal akan menampilkan error -ESHUTDOWN.

Definisi di baris 1706 dari file vehicle.h .

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

Berlangganan peristiwa. Bergantung pada output list_properties jika propertinya adalah: a) on-change: sample_rate harus ditetapkan ke 0. b) mendukung frekuensi: sample_rate harus ditetapkan dari min_sample_rate ke max_sample_rate. Untuk jenis properti on-change, layanan jaringan kendaraan akan melakukan panggilan get lain untuk memeriksa status awal. Oleh karena itu, penerapan hal kendaraan tidak perlu mengirim status awal untuk jenis properti on-change.

Parameter
perangkat
properti
sample_rate
zona Semua zona yang dilanggani untuk properti berzona. dapat diabaikan untuk properti tanpa zona. 0 berarti semua zona didukung, bukan tidak ada zona.

Definisi di baris 1723 dari file vehicle.h .

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

Membatalkan langganan di properti.

Definisi di baris 1727 dari file vehicle.h .


Dokumentasi untuk struct ini dibuat dari file berikut: