| /* |
| * Copyright (C) 2017 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.car.diagnostic; |
| |
| import android.car.diagnostic.CarDiagnosticEvent; |
| import android.car.diagnostic.ICarDiagnosticEventListener; |
| |
| /** @hide */ |
| interface ICarDiagnostic { |
| /** |
| * Register a callback (or update registration) for diagnostic events. |
| */ |
| boolean registerOrUpdateDiagnosticListener(int frameType, int rate, |
| in ICarDiagnosticEventListener listener) = 1; |
| |
| /** |
| * Get the value for the most recent live frame data available. |
| */ |
| CarDiagnosticEvent getLatestLiveFrame() = 2; |
| |
| /** |
| * Get the list of timestamps for which there exist a freeze frame stored. |
| */ |
| long[] getFreezeFrameTimestamps() = 3; |
| |
| /** |
| * Get the value for the freeze frame stored given a timestamp. |
| */ |
| CarDiagnosticEvent getFreezeFrame(long timestamp) = 4; |
| |
| /** |
| * Erase freeze frames given timestamps (or all, if no timestamps). |
| */ |
| boolean clearFreezeFrames(in long[] timestamps) = 5; |
| |
| /** |
| * Stop receiving diagnostic events for a given callback. |
| */ |
| void unregisterDiagnosticListener(int frameType, |
| in ICarDiagnosticEventListener callback) = 6; |
| |
| /** |
| * Returns whether the underlying HAL supports live frames. |
| */ |
| boolean isLiveFrameSupported() = 7; |
| |
| /** |
| * Returns whether the underlying HAL supports sending notifications to |
| * registered listeners when new freeze frames happen. |
| */ |
| boolean isFreezeFrameNotificationSupported() = 8; |
| |
| /** |
| * Returns whether the underlying HAL supports retrieving freeze frames |
| * stored in vehicle memory using timestamp. |
| */ |
| boolean isGetFreezeFrameSupported() = 9; |
| |
| /** |
| * Returns whether the underlying HAL supports clearing freeze frames. |
| */ |
| boolean isClearFreezeFramesSupported() = 10; |
| |
| /** |
| * Returns whether the underlying HAL supports clearing specific freeze frames specified |
| * by means of their timestamps. |
| */ |
| boolean isSelectiveClearFreezeFramesSupported() = 11; |
| } |