Vehicle_hw_device Referência de estrutura

Vehicle_hw_device Referência de estrutura

#include < vehicle.h >

Campos de dados

struct hw_device_t comum
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)
vazio(* 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)

Descrição detalhada

Definição na linha 1639 do arquivo veículo.h .

Documentação de campo

struct hw_device_t comum

Definição na linha 1640 do arquivo veículo.h .

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

Imprima o estado de depuração para o veículo hal. Isso será chamado pelo serviço de rede do veículo e será incluído no dump do serviço.

O descritor de arquivo passado pode ser usado para escrever texto de depuração usando dprintf() ou write(). O texto deve estar apenas em codificação ASCII.

Requisitos de desempenho:

Esta deve ser uma chamada sem bloqueio. O HAL deve retornar desta chamada em 1ms, deve retornar desta chamada em 10ms. Essa chamada deve evitar deadlocks, pois pode ser chamada em qualquer ponto de operação. Quaisquer primitivas de sincronização usadas (como bloqueios de mutex ou semáforos) devem ser adquiridas com um tempo limite.

Definição na linha 1744 do arquivo veículo.h .

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

Obtenha um valor de propriedade do veículo imediatamente. os dados devem ser alocados adequadamente. O chamador da API possui o campo de dados. O chamador definirá data->prop, data->value_type e, opcionalmente, o valor da zona para a propriedade zoneada. Mas a implementação do HAL precisa preencher todas as entradas corretamente ao retornar. Para o tipo de ponteiro, a implementação de HAL deve alocar a memória necessária e o chamador é responsável por chamar release_memory_from_get, o que permite que HAL libere a memória alocada. Para o tipo de propriedade VEHICLE_PROP_CHANGE_MODE_STATIC, get deve retornar sempre o mesmo valor. Para o tipo de propriedade VEHICLE_PROP_CHANGE_MODE_ON_CHANGE, deve retornar o valor mais recente. Se ainda não houver dados disponíveis, o que pode acontecer durante a fase inicial, esta chamada deve retornar imediatamente com o código de erro -EAGAIN.

Definição na linha 1681 do arquivo veículo.h .

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

Após chamar open no dispositivo, o usuário deve registrar retornos de chamada para funções de evento e erro.

Definição na linha 1646 do arquivo veículo.h .

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

Enumere todas as propriedades disponíveis. A lista é retornada em "lista".

Parâmetros
num_properties número de propriedades contidas na matriz reajustada.
Devoluções
matriz de configurações de propriedade suportadas por este carro. Observe que os dados retornados são const e o chamador não pode modificá-los. A implementação do HAL deve manter essa memória até que o HAL seja liberado para evitar copiá-lo novamente.

Definição na linha 1663 do arquivo veículo.h .

int(* release)(struct vehicle_hw_device *device)

Antes de chamar close o usuário deve destruir as funções de callback registradas. Caso a chamada unsubscribe() não seja chamada em todas as propriedades antes de release() , então release() cancelará a assinatura das próprias propriedades.

Definição na linha 1654 do arquivo veículo.h .

void(* release_memory_from_get)(struct Vehicle_hw_device *device, Vehicle_prop_value_t *data)

Libera a memória alocada aos dados na chamada get anterior. get call for byte ou string envolve a alocação de memória necessária do veículo hal. Para ser seguro, a memória alocada pelo veículo hal deve ser liberada pelo veículo hal e o serviço de rede do veículo chamará isso quando os dados do veículo hal não forem mais necessários. A implementação do hal do veículo deve liberar apenas o membro de Vehicle_prop_value_t como data->str_value.data ou data->bytes_value.data, mas não os dados em si, pois os próprios dados são alocados do serviço de rede do veículo. Uma vez que a memória é liberada, o ponteiro correspondente deve ser definido como NULL bu vehicle hal.

Definição na linha 1693 do arquivo veículo.h .

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

Defina um valor de propriedade do veículo. os dados devem ser alocados corretamente e não NULL. O chamador da API possui o campo de dados. timestamp dos dados serão ignorados para operação de set. A configuração de algumas propriedades requer a disponibilidade do estado inicial. Dependendo do hal do veículo, esses dados iniciais podem não estar disponíveis por um curto período de tempo após a inicialização. Nesse caso, set call pode retornar -EAGAIN como get call. Para uma propriedade com controle de energia separado, o conjunto pode falhar se a propriedade não estiver ligada. Nesse caso, hal deve retornar o erro -ESHUTDOWN.

Definição na linha 1706 do arquivo veículo.h .

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

Inscreva-se em eventos. Dependendo da saída de list_properties se a propriedade for: a) on-change: sample_rate deve ser definido como 0. b) suporta frequência: sample_rate deve ser definido de min_sample_rate para max_sample_rate. Para propriedades do tipo on-change, o serviço de rede do veículo fará outra chamada get para verificar o estado inicial. Devido a isso, a implementação do hal do veículo não precisa enviar o estado inicial para as propriedades do tipo on-change.

Parâmetros
dispositivo
suporte
taxa de amostragem
zonas Todas as zonas inscritas para propriedade zoneada. pode ser ignorado para propriedades não zoneadas. 0 significa todas as zonas suportadas em vez de nenhuma zona.

Definição na linha 1723 do arquivo veículo.h .

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

Cancelar a assinatura de uma propriedade.

Definição na linha 1727 do arquivo veículo.h .


A documentação para esta estrutura foi gerada a partir do seguinte arquivo:
  • hardware/libhardware/include/hardware/ veículo.h