Vehicle_hw_device Справочник по структуре

Vehicle_hw_device Справочник по структуре

#include < vehicle.h >

Поля данных

структура hw_device_t общий
интервал (* init )(struct Vehicle_hw_device *device, Vehicle_event_callback_fn event_fn, Vehicle_error_callback_fn err_fn)
интервал (* выпуск )(struct Vehicle_hw_device *device)
Vehicle_prop_config_t константа *(* list_properties )(struct Vehicle_hw_device *device, int *num_properties)
интервал (* получить )(struct Vehicle_hw_device *устройство, Vehicle_prop_value_t *данные)
пустота(* release_memory_from_get )(struct Vehicle_hw_device *устройство, Vehicle_prop_value_t *данные)
интервал (* set )(struct Vehicle_hw_device *устройство, const Vehicle_prop_value_t *data)
интервал (* подписка ) (struct Vehicle_hw_device *device, int32_t prop, float sample_rate, зоны int32_t)
интервал (* отписаться )(struct Vehicle_hw_device *device, int32_t prop)
интервал (* дамп )(struct Vehicle_hw_device *device, int fd)

Подробное описание

Определение в строке 1639 файла Vehicle.h .

Полевая документация

общая структура hw_device_t

Определение в строке 1640 файла Vehicle.h .

int(* дамп)(struct Vehicle_hw_device *device, int fd)

Распечатайте состояние отладки для транспортного средства. Это будет вызвано службой автомобильной сети и включено в дамп службы.

Переданный дескриптор файла можно использовать для записи отладочного текста с помощью dprintf() или write(). Текст должен быть только в кодировке ASCII.

Требования к производительности:

Это должен быть неблокирующий вызов. HAL должен вернуться из этого вызова через 1 мс, должен вернуться из этого вызова через 10 мс. Этот вызов должен избегать взаимоблокировок, так как он может быть вызван в любой момент работы. Любые используемые примитивы синхронизации (например, мьютексы или семафоры) должны быть получены с тайм-аутом.

Определение в строке 1744 файла Vehicle.h .

int(* get)(struct Vehicle_hw_device *device, Vehicle_prop_value_t *data)

Немедленно получите стоимость имущества транспортного средства. данные должны быть правильно распределены. Вызывающий API ВЛАДЕТ полем данных. Вызывающий объект установит data->prop, data->value_type и, возможно, значение зоны для зонированного свойства. Но реализация HAL должна правильно заполнять все записи при возврате. Для типа указателя реализация HAL должна выделять необходимую память, а вызывающая сторона отвечает за вызов release_memory_from_get, что позволяет HAL освободить выделенную память. Для свойства типа VEHICLE_PROP_CHANGE_MODE_STATIC функция get всегда должна возвращать одно и то же значение. Для свойства типа VEHICLE_PROP_CHANGE_MODE_ON_CHANGE оно должно возвращать самое последнее значение. Если данных еще нет, что может произойти на начальном этапе, этот вызов должен немедленно вернуться с кодом ошибки -EAGAIN.

Определение в строке 1681 файла Vehicle.h .

int(* init)(struct Vehicle_hw_device *device, Vehicle_event_callback_fn event_fn, Vehicle_error_callback_fn err_fn)

После вызова open на устройстве пользователь должен зарегистрировать обратные вызовы для функций событий и ошибок.

Определение в строке 1646 файла Vehicle.h .

Vehicle_prop_config_t const*(* list_properties)(struct Vehicle_hw_device *device, int *num_properties)

Перечислите все доступные свойства. Список возвращается в "list".

Параметры
num_properties количество свойств, содержащихся в перенастраиваемом массиве.
Возвращает
массив конфигураций свойств, поддерживаемых этим автомобилем. Обратите внимание, что возвращаемые данные являются константами, и вызывающая сторона не может их изменить. Реализация HAL должна сохранять эту память до тех пор, пока HAL не будет освобожден, чтобы избежать повторного копирования.

Определение в строке 1663 файла Vehicle.h .

int(* выпуск)(struct Vehicle_hw_device *device)

Перед вызовом close пользователь должен уничтожить зарегистрированные функции обратного вызова. Если вызов unsubscribe() не вызывается для всех свойств до release() , то release() сам отменит подписку на свойства.

Определение в строке 1654 файла Vehicle.h .

void (* release_memory_from_get) (struct Vehicle_hw_device * устройство, Vehicle_prop_value_t * данные)

Освободить память, выделенную для данных в предыдущем вызове get. Получить вызов байта или строки включает в себя выделение необходимой памяти из транспортного средства hal. В целях безопасности память, выделенная hal транспортного средства, должна быть освобождена hal транспортного средства, и сетевая служба транспортного средства вызовет это, когда данные из hal транспортного средства больше не нужны. Реализация транспортного средства hal должна освобождать только член Vehicle_prop_value_t, такой как data->str_value.data или data->bytes_value.data, но не сами данные, поскольку сами данные выделяются из сетевой службы транспортного средства. Как только память будет освобождена, соответствующий указатель должен быть установлен в NULL bu Vehicle hal.

Определение в строке 1693 файла Vehicle.h .

int(* set)(struct Vehicle_hw_device *device, const Vehicle_prop_value_t *data)

Установите значение свойства транспортного средства. данные должны быть размещены правильно, а не NULL. Вызывающий API ВЛАДЕТ полем данных. временная метка данных будет игнорироваться для операции установки. Установка некоторых свойств требует наличия начального состояния. В зависимости от транспортного средства такие исходные данные могут быть недоступны в течение короткого времени после инициализации. В таком случае вызов set может вернуть -EAGAIN, как вызов get. Для объекта с отдельным управлением питанием установка может завершиться ошибкой, если объект не включен. В таком случае hal должен вернуть ошибку -ESHUTDOWN.

Определение в строке 1706 файла Vehicle.h .

int(* подписка)(struct Vehicle_hw_device *device, int32_t prop, float sample_rate, зоны int32_t)

Подпишитесь на события. В зависимости от вывода list_properties, если свойство: a) при изменении: sample_rate должно быть установлено на 0. b) поддерживает частоту: sample_rate должно быть установлено от min_sample_rate до max_sample_rate. Для свойств типа «при изменении» сетевая служба транспортного средства выполнит еще один вызов get, чтобы проверить начальное состояние. Из-за этого реализация транспортного средства hal не должна отправлять начальное состояние для типа свойств при изменении.

Параметры
устройство
опора
частота дискретизации
зоны Все подписанные зоны для зонированного имущества. может быть проигнорировано для незонированного имущества. 0 означает, что поддерживаются все зоны, а не отсутствие зоны.

Определение в строке 1723 файла Vehicle.h .

int(* отписаться)(struct Vehicle_hw_device *device, int32_t prop)

Отменить подписку на свойство.

Определение в строке 1727 файла Vehicle.h .


Документация для этой структуры была сгенерирована из следующего файла:
  • hardware/libhardware/include/hardware/ car.h