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)
정수(* 릴리스 )( 차량_hw_device 구조 *장치)
차량_prop_config_t const *(* list_properties )( vehicle_hw_device *device, int *num_properties 구조)
정수(* get )(구조 차량_hw_device *장치, 차량_prop_value_t *데이터)
무효의(* release_memory_from_get )(struct vehicle_hw_device *device, vehicle_prop_value_t *data)
정수(* set )(struct vehicle_hw_device *device, const vehicle_prop_value_t *data)
정수(* subscribe )(struct vehicle_hw_device *device, int32_t prop, float sample_rate, int32_t 구역)
정수(* 구독 취소 )(struct vehicle_hw_device *device, int32_t prop)
정수(* dump )(struct vehicle_hw_device *device, int fd)

상세 설명

파일 vehicle.h1639 행에 있는 정의입니다.

현장 문서

구조체 hw_device_t 공통

파일 vehicle.h1640 행 정의.

int(* 덤프)(구조 차량_hw_device *장치, int fd)

차량 hal에 대한 디버깅 상태를 출력합니다. 이것은 차량 네트워크 서비스에 의해 호출되며 서비스 덤프에 포함됩니다.

전달된 파일 설명자는 dprintf() 또는 write()를 사용하여 디버깅 텍스트를 작성하는 데 사용할 수 있습니다. 텍스트는 ASCII 인코딩으로만 사용해야 합니다.

성능 요건:

이것은 비차단 호출이어야 합니다. HAL은 이 호출에서 1ms 이내에 반환되어야 하고 이 호출에서 10ms 이내에 반환되어야 합니다. 이 호출은 모든 작업 지점에서 호출될 수 있으므로 교착 상태를 피해야 합니다. 사용된 모든 동기화 기본 요소(예: 뮤텍스 잠금 또는 세마포어)는 시간 초과로 획득해야 합니다.

파일 vehicle.h1744 행 정의.

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

즉시 차량 자산 가치를 얻으십시오. 데이터를 적절하게 할당해야 합니다. API 호출자는 데이터 필드를 소유합니다. 호출자는 data->prop, data->value_type 및 선택적으로 zoned 속성에 대한 zone 값을 설정합니다. 그러나 HAL 구현은 반환할 때 모든 항목을 올바르게 채워야 합니다. 포인터 유형의 경우 HAL 구현은 필요한 메모리를 할당해야 하며 호출자는 HAL이 할당된 메모리를 해제할 수 있도록 하는 release_memory_from_get을 호출해야 합니다. VEHICLE_PROP_CHANGE_MODE_STATIC 유형의 속성의 경우 get은 항상 동일한 값을 반환해야 합니다. VEHICLE_PROP_CHANGE_MODE_ON_CHANGE 유형의 속성의 경우 최신 값을 반환해야 합니다. 초기 단계에서 발생할 수 있는 아직 사용 가능한 데이터가 없는 경우 이 호출은 -EAGAIN 오류 코드와 함께 즉시 반환되어야 합니다.

파일 vehicle.h1681 행 정의.

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

장치에서 open을 호출한 후 사용자는 이벤트 및 오류 기능에 대한 콜백을 등록해야 합니다.

파일 vehicle.h1646 행 정의.

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

사용 가능한 모든 속성을 열거합니다. 목록은 "목록"에 반환됩니다.

매개변수
num_properties 재조정된 배열에 포함된 속성의 수입니다.
보고
이 자동차에서 지원하는 속성 구성의 배열입니다. 반환된 데이터는 const이고 호출자는 수정할 수 없습니다. HAL 구현은 이 메모리를 다시 복사하지 않도록 HAL이 해제될 때까지 이 메모리를 유지해야 합니다.

파일 vehicle.h1663 행에 있는 정의입니다.

int(* 릴리스)(struct vehicle_hw_device *device)

close를 호출하기 전에 사용자는 등록된 콜백 함수를 파괴해야 합니다. 모든 속성에 대해 unsubscribe() 호출이 release() 전에 호출되지 않은 경우 release() 는 속성 자체를 구독 취소합니다.

파일 vehicle.h1654 행에 정의되어 있습니다.

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

이전 get 호출에서 데이터에 할당된 메모리를 해제합니다. 바이트 또는 문자열에 대한 호출을 얻으려면 차량 hal에서 필요한 메모리를 할당해야 합니다. 안전을 위해 Vehicle hal에 의해 할당된 메모리는 Vehicle hal에 의해 해제되어야 하며, Vehicle hal의 데이터가 더 이상 필요하지 않을 때 차량 네트워크 서비스가 이를 호출합니다. 차량 hal 구현은 data->str_value.data 또는 data->bytes_value.data와 같은 vehicle_prop_value_t의 구성원만 해제해야 하지만 데이터 자체는 차량 네트워크 서비스에서 할당되므로 데이터 자체는 해제하지 않아야 합니다. 메모리가 해제되면 해당 포인터는 NULL bu vehicle hal로 설정되어야 합니다.

파일 vehicle.h1693 행에 정의

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

차량 속성 값을 설정합니다. 데이터는 NULL이 아닌 적절하게 할당되어야 합니다. API 호출자는 데이터 필드를 소유합니다. 데이터의 타임스탬프는 설정 작업에 대해 무시됩니다. 일부 속성을 설정하려면 초기 상태를 사용할 수 있어야 합니다. 차량에 따라 초기화 후 짧은 시간 동안 이러한 초기 데이터가 제공되지 않을 수 있습니다. 이 경우 set call은 get call처럼 -EAGAIN을 반환할 수 있습니다. 별도의 전원 제어가 있는 속성의 경우 속성의 전원이 켜져 있지 않으면 설정이 실패할 수 있습니다. 이 경우 hal은 -ESHUTDOWN 오류를 반환해야 합니다.

파일 vehicle.h1706 행 정의.

int(* subscribe)(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 구현은 변경 시 속성 유형에 대해 초기 상태를 보낼 필요가 없습니다.

매개변수
장치
소품
sample_rate
구역 구역 속성에 대한 모든 가입 구역. 비구역 속성에 대해서는 무시할 수 있습니다. 0은 영역이 없는 대신 지원되는 모든 영역을 의미합니다.

파일 vehicle.h1723 행에 있는 정의입니다.

int(* 구독 취소)(struct vehicle_hw_device *device, int32_t prop)

속성에 대한 구독을 취소합니다.

파일 vehicle.h1727 행 정의.


이 구조체에 대한 문서는 다음 파일에서 생성되었습니다.
  • 하드웨어/ libhardware /include/hardware/ vehicle.h