vehicle_hw_device 구조체 참조

vehicle_hw_device 구조체 참조

#include < vehicle.h >

데이터 필드

struct hw_device_t   일반적인
 
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)
 

상세 설명

vehicle.h 파일의 1639 번 줄에 정의가 있습니다.

필드 문서

struct hw_device_t common

vehicle.h 파일의 1640 행에 정의가 있습니다.

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

차량 HAL의 디버깅 상태를 출력합니다. 이는 차량 네트워크 서비스에서 호출하며 서비스 덤프에 포함됩니다.

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

성능 요구사항:

비차단 호출이어야 합니다. HAL은 이 호출에서 1ms 내에 반환되어야 하며 10ms 내에 반환되어야 합니다. 이 호출은 작동 중 언제든지 호출될 수 있으므로 교착 상태를 방지해야 합니다. 사용되는 모든 동기화 원시 유형 (예: 뮤텍스 잠금 또는 세마포)은 시간 제한으로 획득해야 합니다.

vehicle.h FILE의 1744 라인에 정의가 있습니다.

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

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

vehicle.h FILE의 1681 라인에 정의가 있습니다.

기기에서 open을 호출한 후에는 사용자가 이벤트 및 오류 함수의 콜백을 등록해야 합니다.

vehicle.h FILE의 1646 라인에 정의되어 있습니다.

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

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

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

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

int(* release)(struct vehicle_hw_device *device)

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

vehicle.h 파일의 1654 строке에 정의

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

이전 get 호출에서 데이터에 할당된 메모리를 해제합니다. 바이트 또는 문자열의 get 호출에는 차량 HAL에서 필요한 메모리를 할당하는 작업이 포함됩니다. 안전을 위해 차량 HAL에서 할당된 메모리는 차량 HAL에서 해제해야 하며 차량 네트워크 서비스는 차량 HAL의 데이터가 더 이상 필요하지 않을 때 이를 호출합니다. 차량 HAL 구현은 데이터 자체가 차량 네트워크 서비스에서 할당되므로 data->str_value.data 또는 data->bytes_value.data와 같은 vehicle_prop_value_t의 멤버만 해제해야 합니다. 메모리가 해제되면 해당 포인터는 차량 HAL에 의해 NULL로 설정되어야 합니다.

vehicle.h 파일의 1693 행에 정의가 있습니다.

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

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

vehicle.h 파일의 1706 줄에 정의가 있습니다.

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

이벤트를 구독합니다. 속성이 a) 변경 시: sample_rate를 0으로 설정해야 합니다. b) 주파수를 지원하는 경우: sample_rate를 min_sample_rate에서 max_sample_rate로 설정해야 합니다. 변경 시 유형의 속성의 경우 차량 네트워크 서비스가 초기 상태를 확인하기 위해 get을 다시 호출합니다. 따라서 차량 HAL 구현은 변경 시 유형의 속성에 대한 초기 상태를 전송할 필요가 없습니다.

매개변수
기기
prop
sample_rate
zones 구역 분할된 속성의 구독된 모든 구역입니다. 구역 분할되지 않은 속성의 경우 무시할 수 있습니다. 0은 영역이 없음을 의미하는 대신 모든 영역이 지원됨을 의미합니다.

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

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

숙박 시설에서 구독을 취소합니다.

vehicle.h 파일의 1727 행에 정의가 있습니다.


이 구조체에 관한 문서는 다음 파일에서 생성되었습니다.