mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 15:58:43 +00:00
Merge "Add README files to VHAL codebase."
This commit is contained in:
committed by
Android (Google) Code Review
commit
5d098ccaa6
26
automotive/vehicle/README.md
Normal file
26
automotive/vehicle/README.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Vehicle Hardware Abstraction Layer (VHAL)
|
||||
---
|
||||
|
||||
This directory stores the VHAL interface definition and VHAL reference
|
||||
implementation.
|
||||
|
||||
## 2.0 (deprecated)
|
||||
|
||||
HIDL based VHAL interface and reference implementation.
|
||||
|
||||
## aidl
|
||||
|
||||
AIDL based VHAL interfadce and reference implementation.
|
||||
|
||||
## proto
|
||||
|
||||
Protobuf used to pass message between emulator VHAL and emulator.
|
||||
|
||||
## tools
|
||||
|
||||
Dev tools related to VHAL.
|
||||
|
||||
## vts
|
||||
|
||||
VTS test for VHAL. The VTS test works for both AIDL and HIDL VHAL
|
||||
implementation. Vendor implementation of VHAL must passes VTS.
|
||||
23
automotive/vehicle/aidl/README.md
Normal file
23
automotive/vehicle/aidl/README.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# AIDL Vehicle Hardware Abstraction Layer (VHAL)
|
||||
---
|
||||
|
||||
This directory stores the AIDL VHAL interface and reference implementation.
|
||||
|
||||
## aidl_api
|
||||
|
||||
Auto-generated current and previous versions of AIDL VHAL api.
|
||||
|
||||
## aidl_test
|
||||
|
||||
Contains a test to test that all HIDL VHAL properties are supported in
|
||||
AIDL VHAL.
|
||||
|
||||
## android
|
||||
|
||||
Contains AIDL VHAL interface definition. The main interface file is
|
||||
`android/hardware/automotive/vehicle/IVehicle.aidl`.
|
||||
|
||||
## impl
|
||||
|
||||
Reference implementation for AIDL VHAL and useful libraries for implementing
|
||||
vendor AIDL VHAL.
|
||||
58
automotive/vehicle/aidl/impl/README.md
Normal file
58
automotive/vehicle/aidl/impl/README.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# AIDL VHAL libraries and reference implementation.
|
||||
---
|
||||
|
||||
This directory stores the libraries useful for implementing vendor AIDL VHAL.
|
||||
This directory also stores a reference fake implementation for AIDL VHAL.
|
||||
|
||||
## default_config
|
||||
|
||||
Stores the default vehicle property configurations for reference vehicle HAL.
|
||||
Vendor implementation could copy this library but must update the configuration
|
||||
to meet their own requirements, e.g. enable or disable certain properties or
|
||||
update the initial value for certain properties.
|
||||
|
||||
## fake_impl
|
||||
|
||||
Contains libraries used specifically for the fake reference VHAL implementation.
|
||||
These libraries are for test only and must not be directly used for vendor
|
||||
VHAL implementation.
|
||||
|
||||
These libraries contain test-spcific logic and must not run directly on a real
|
||||
vehicle.
|
||||
|
||||
## grpc
|
||||
|
||||
Stores code for GRPC based VHAL implementation.
|
||||
|
||||
## hardware
|
||||
|
||||
Defines an interface `IVehicleHardware.h` which vendor must implement for
|
||||
vehicle-specific logic if they want to follow our reference VHAL design.
|
||||
|
||||
## proto
|
||||
|
||||
Stores Some protobuf files translated from AIDL VHAL interface types. These
|
||||
files are used in GRPC VHAL implementation.
|
||||
|
||||
## utils
|
||||
|
||||
Defines a library `VehicleHalUtils` which provides useful utility functions for
|
||||
VHAL implementation. Vendor VHAL could use this library.
|
||||
|
||||
## vhal
|
||||
|
||||
Defines a library `DefaultVehicleHal` which provides generic logic for all VHAL
|
||||
implementations (including reference VHAL). Vendor VHAL implementation could
|
||||
use this library, along with their own implementation for `IVehicleHardware`
|
||||
interface.
|
||||
|
||||
Also defines a binary `android.hardware.automotive.vehicle@V1-default-service`
|
||||
which is the reference VHAL implementation. It implements `IVehicle.aidl`
|
||||
interface. It uses `DefaultVehicleHal`, along with `FakeVehicleHardware`
|
||||
(in fake_impl). It simulates the vehicle bus interaction by using an
|
||||
in-memory map. Meaning that all properties (except for some special ones) are
|
||||
just written into a hash map and read from a hash map without relying on any
|
||||
hardware. As a result, the reference implementation can run on emulator or
|
||||
any host environment.
|
||||
|
||||
Vendor must not directly use the reference implementation for a real vehicle.
|
||||
28
automotive/vehicle/aidl/impl/fake_impl/README.md
Normal file
28
automotive/vehicle/aidl/impl/fake_impl/README.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# Fake reference AIDL VHAL implementation libraries
|
||||
---
|
||||
|
||||
This directory stores libraries for implementing a fake reference AIDL VHAL.
|
||||
|
||||
WARNING: All the libraries here are for TEST ONLY.
|
||||
|
||||
## GeneratorHub
|
||||
|
||||
Defines a library `FakeVehicleHalValueGenerators` that could generate fake
|
||||
vehicle property values for testing.
|
||||
|
||||
## hardware
|
||||
|
||||
Defines a fake implementation for device-specifc interface `IVehicleHardware`:
|
||||
`FakeVehicleHardware`. This implementation uses a in-memory map for storing
|
||||
property values and does not communicate with or depending on any specific
|
||||
vehicle bus.
|
||||
|
||||
## obd2frame
|
||||
|
||||
Defines a library `FakeObd2Frame` that generates fake OBD2 frame for OBD2
|
||||
properties.
|
||||
|
||||
## userhal
|
||||
|
||||
Defines a library `FakeUserHal` that emulates a real User HAL behavior by
|
||||
parsing debug commands.
|
||||
62
automotive/vehicle/aidl/impl/utils/README.md
Normal file
62
automotive/vehicle/aidl/impl/utils/README.md
Normal file
@@ -0,0 +1,62 @@
|
||||
# Utility classes for VHAL implementation
|
||||
---
|
||||
|
||||
This directory stores utility classes for VHAL implementation. Vendor
|
||||
implementation could use utility classes from `common` folder in their
|
||||
VHAL implementation.
|
||||
|
||||
## common
|
||||
|
||||
Defines common utility libraries.
|
||||
|
||||
### ConcurrentQueue
|
||||
|
||||
Provides a thread-safe concurrent queue object. Useful for adding object to
|
||||
a queue in one thread (usually binder thread) and handle the objects in a
|
||||
separate handler thread.
|
||||
|
||||
### ParcelableUtils
|
||||
|
||||
Provides functions to convert between a regular parcelable and a
|
||||
`LargeParcelabe`.
|
||||
|
||||
A `LargeParcelable` is a parcelable that marshals the payload
|
||||
into a shared memory file if the payload is too large to pass across binder.
|
||||
It is used to pass large data across binder. Before sending the data, VHAL
|
||||
impl should convert a regular parcelabe to a `LargeParcelable`. After receving
|
||||
data, VHAL impl should convert a `LargeParcelable` back to regular parcelabe.
|
||||
|
||||
### PendingRequestPool
|
||||
|
||||
Defines A class for managing pending requests and automatically call timeout
|
||||
callback if the request timed-out.
|
||||
|
||||
### PropertyUtils
|
||||
|
||||
Defines some useful constants.
|
||||
|
||||
### RecurrentTimer
|
||||
|
||||
Defines a thread-safe recurrent timer that can call a function periodically.
|
||||
|
||||
### VehicleHalTypes
|
||||
|
||||
Provides a header file that includes many commonly used header files. Useful
|
||||
when you are using multiple types defined in VHAL interface.
|
||||
|
||||
### VehicleObjectPool
|
||||
|
||||
Defines a reusable in-memory pool for `VehiclePropValue`.
|
||||
|
||||
### VehiclePropertyStore
|
||||
|
||||
Defines an in-memory map for storing vehicle properties. Allows easier insert,
|
||||
delete and lookup.
|
||||
|
||||
### VehicleUtils
|
||||
|
||||
Defines many useful utility functions.
|
||||
|
||||
## test
|
||||
|
||||
Defines utility libraries for test only.
|
||||
Reference in New Issue
Block a user