8655bc3e59
Bug: 72054677 Test: None Change-Id: I68a29c786dabf99afb4c44b49586f372a97abae6
104 lines
3.6 KiB
Text
104 lines
3.6 KiB
Text
/*
|
|
* Copyright (C) 2016 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package android.hardware.automotive.vehicle@2.0;
|
|
|
|
import IVehicleCallback;
|
|
|
|
interface IVehicle {
|
|
/**
|
|
* Returns a list of all property configurations supported by this vehicle
|
|
* HAL.
|
|
*/
|
|
getAllPropConfigs() generates (vec<VehiclePropConfig> propConfigs);
|
|
|
|
/**
|
|
* Returns a list of property configurations for given properties.
|
|
*
|
|
* If requested VehicleProperty wasn't found it must return
|
|
* StatusCode::INVALID_ARG, otherwise a list of vehicle property
|
|
* configurations with StatusCode::OK
|
|
*/
|
|
getPropConfigs(vec<int32_t> props)
|
|
generates (StatusCode status, vec<VehiclePropConfig> propConfigs);
|
|
|
|
/**
|
|
* Get a vehicle property value.
|
|
*
|
|
* For VehiclePropertyChangeMode::STATIC properties, this method must always
|
|
* return the same value always.
|
|
* For VehiclePropertyChangeMode::ON_CHANGE properties, it must return the
|
|
* latest available value.
|
|
*
|
|
* Some properties like RADIO_PRESET requires to pass additional data in
|
|
* GET request in VehiclePropValue object.
|
|
*
|
|
* If there is no data available yet, which can happen during initial stage,
|
|
* this call must return immediately with an error code of
|
|
* StatusCode::TRY_AGAIN.
|
|
*/
|
|
get(VehiclePropValue requestedPropValue)
|
|
generates (StatusCode status, VehiclePropValue propValue);
|
|
|
|
/**
|
|
* Set a vehicle property value.
|
|
*
|
|
* Timestamp of data must be ignored for set operation.
|
|
*
|
|
* Setting some properties require having initial state available. If initial
|
|
* data is not available yet this call must return StatusCode::TRY_AGAIN.
|
|
* For a property with separate power control this call must return
|
|
* StatusCode::NOT_AVAILABLE error if property is not powered on.
|
|
*/
|
|
set(VehiclePropValue propValue) generates (StatusCode status);
|
|
|
|
/**
|
|
* Subscribes to property events.
|
|
*
|
|
* Clients must be able to subscribe to multiple properties at a time
|
|
* depending on data provided in options argument.
|
|
*
|
|
* @param listener This client must be called on appropriate event.
|
|
* @param options List of options to subscribe. SubscribeOption contains
|
|
* information such as property Id, area Id, sample rate, etc.
|
|
*/
|
|
subscribe(IVehicleCallback callback, vec<SubscribeOptions> options)
|
|
generates (StatusCode status);
|
|
|
|
/**
|
|
* Unsubscribes from property events.
|
|
*
|
|
* If this client wasn't subscribed to the given property, this method
|
|
* must return StatusCode::INVALID_ARG.
|
|
*/
|
|
unsubscribe(IVehicleCallback callback, int32_t propId)
|
|
generates (StatusCode status);
|
|
|
|
/**
|
|
* Print out debugging state for the vehicle hal.
|
|
*
|
|
* The text must be in ASCII encoding only.
|
|
*
|
|
* Performance requirements:
|
|
*
|
|
* The HAL must return from this call in less than 10ms. This call must avoid
|
|
* deadlocks, as it may be called at any point of operation. Any synchronization
|
|
* primitives used (such as mutex locks or semaphores) must be acquired
|
|
* with a timeout.
|
|
*
|
|
*/
|
|
debugDump() generates (string s);
|
|
};
|