| /* |
| * 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); |
| }; |