/*
 * 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.
 */

syntax = "proto3";

package android.service.battery;

option java_multiple_files = true;
option java_outer_classname = "BatteryServiceProto";

message BatteryServiceDumpProto {
    enum BatteryPlugged {
        BATTERY_PLUGGED_NONE = 0;
        BATTERY_PLUGGED_AC = 1;
        BATTERY_PLUGGED_USB = 2;
        BATTERY_PLUGGED_WIRELESS = 4;
    }
    enum BatteryStatus {
        BATTERY_STATUS_INVALID = 0;
        BATTERY_STATUS_UNKNOWN = 1;
        BATTERY_STATUS_CHARGING = 2;
        BATTERY_STATUS_DISCHARGING = 3;
        BATTERY_STATUS_NOT_CHARGING = 4;
        BATTERY_STATUS_FULL = 5;
    }
    enum BatteryHealth {
        BATTERY_HEALTH_INVALID = 0;
        BATTERY_HEALTH_UNKNOWN = 1;
        BATTERY_HEALTH_GOOD = 2;
        BATTERY_HEALTH_OVERHEAT = 3;
        BATTERY_HEALTH_DEAD = 4;
        BATTERY_HEALTH_OVER_VOLTAGE = 5;
        BATTERY_HEALTH_UNSPECIFIED_FAILURE = 6;
        BATTERY_HEALTH_COLD = 7;
    }

    // If true: UPDATES STOPPED -- use 'reset' to restart
    bool are_updates_stopped = 1;
    // Plugged status of power sources
    BatteryPlugged plugged = 2;
    // Max current in microamperes
    int32 max_charging_current = 3;
    // Max voltage
    int32 max_charging_voltage = 4;
    // Battery capacity in microampere-hours
    int32 charge_counter = 5;
    // Charging status
    BatteryStatus status = 6;
    // Battery health
    BatteryHealth health = 7;
    // True if the battery is present
    bool is_present = 8;
    // Charge level, from 0 through "scale" inclusive
    int32 level = 9;
    // The maximum value for the charge level
    int32 scale = 10;
    // Battery voltage in millivolts
    int32 voltage = 11;
    // Battery temperature in tenths of a degree Centigrade
    int32 temperature = 12;
    // The type of battery installed, e.g. "Li-ion"
    string technology = 13;
}
