Referência de estrutura Vehicle_hw_device

Referência de estrutura Vehicle_hw_device

#include < vehicle.h >

Campos de dados

estrutura hw_device_t comum
interno(* init )(struct veículo_hw_device *dispositivo, veículo_event_callback_fn evento_fn, veículo_error_callback_fn err_fn)
interno(* liberar )(estrutura veículo_hw_device *dispositivo)
veículo_prop_config_t const *(* list_properties )(struct veículo_hw_device *dispositivo, int *num_properties)
interno(* obter )(estrutura veículo_hw_device *dispositivo, veículo_prop_value_t *dados)
vazio(* release_memory_from_get )(struct veículo_hw_device *dispositivo, veículo_prop_value_t *dados)
interno(* set )(struct veículo_hw_device *dispositivo, const veículo_prop_value_t *dados)
interno(* inscrever-se )(struct veículo_hw_device *device, int32_t prop, float sample_rate, zonas int32_t)
interno(* cancelar assinatura )(struct veículo_hw_device *device, int32_t prop)
interno(* dump )(struct veículo_hw_device *dispositivo, int fd)

Descrição detalhada

Definição na linha 1639 do arquivo Vehicle.h .

Documentação de campo

estrutura hw_device_t comum

Definição na linha 1640 do arquivo Vehicle.h .

int(* dump)(struct veículo_hw_device *dispositivo, int fd)

Imprima o estado de depuração do veículo hal. Este 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 deverá retornar desta chamada em 1ms, deverá retornar desta chamada em 10ms. Esta chamada deve evitar deadlocks, pois pode ser chamada em qualquer ponto da operação. Quaisquer primitivas de sincronização usadas (como bloqueios mutex ou semáforos) devem ser adquiridas com um tempo limite.

Definição na linha 1744 do arquivo Vehicle.h .

int(* get)(struct veículo_hw_device *dispositivo, veículo_prop_value_t *dados)

Obtenha o valor da propriedade do veículo imediatamente. os dados devem ser alocados adequadamente. O chamador da API é dono do 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 ponteiro, a implementação do HAL deve alocar a memória necessária e o chamador é responsável por chamar release_memory_from_get, o que permite que o 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, ele deve retornar o valor mais recente. Caso ainda não haja dados disponíveis, o que pode acontecer na fase inicial, esta chamada deverá retornar imediatamente com o código de erro -EAGAIN.

Definição na linha 1681 do arquivo Vehicle.h .

int(* init)(struct veículo_hw_device *dispositivo, veículo_event_callback_fn event_fn, veículo_error_callback_fn err_fn)

Depois de chamar open no dispositivo, o usuário deve registrar retornos de chamada para funções de eventos e erros.

Definição na linha 1646 do arquivo Vehicle.h .

veículo_prop_config_t const*(* list_properties)(struct veículo_hw_device *dispositivo, 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 propriedades 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 esta memória até que o HAL seja liberado para evitar copiá-lo novamente.

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

int(*liberação)(estrutura veículo_hw_device *dispositivo)

Antes de chamar close o usuário deve destruir as funções de retorno de chamada 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 Vehicle.h .

void(* release_memory_from_get)(struct veículo_hw_device *dispositivo, veículo_prop_value_t *dados)

Libera memória alocada para dados na chamada get anterior. obter chamada para byte ou string envolve a alocação de memória necessária do veículo hal. Por segurança, 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 veículo hal deve liberar apenas membros de veículo_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. Assim que a memória for liberada, o ponteiro correspondente deve ser definido como NULL bu veículo hal.

Definição na linha 1693 do arquivo Vehicle.h .

int(* conjunto)(struct veículo_hw_device *dispositivo, const veículo_prop_value_t *dados)

Defina um valor de propriedade do veículo. os dados devem ser alocados corretamente e não NULOS. O chamador da API é dono do campo de dados. o carimbo de data/hora dos dados será ignorado para a operação definida. A configuração de algumas propriedades exige que o estado inicial esteja disponível. Dependendo 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 poderá falhar se a propriedade não estiver ligada. Nesse caso, hal deve retornar o erro -ESHUTDOWN.

Definição na linha 1706 do arquivo Vehicle.h .

int(*subscrever)(struct veículo_hw_device *device, int32_t prop, float sample_rate, zonas int32_t)

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 veículo hal não precisa enviar o estado inicial para propriedades do tipo on-change.

Parâmetros
dispositivo
suporte
taxa de amostragem
zonas Todas as zonas inscritas para propriedades zoneadas. 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 Vehicle.h .

int(* cancelar assinatura)(struct veículo_hw_device *device, int32_t prop)

Cancelar assinatura de uma propriedade.

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


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