blob: 015a2a844ca5a646a5c5e62981d41aa2bd7402f6 [file] [log] [blame]
/*
* Copyright (C) 2019 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 = "proto2";
package perfetto.protos;
message AndroidBatteryMetric {
message BatteryCounters {
// Timestamp measured from boot time [ns].
optional int64 timestamp_ns = 1;
// Fields 2-5 are the same as in BatteryCounters proto in TracePacket.
optional double charge_counter_uah = 2;
optional float capacity_percent = 3;
optional double current_ua = 4;
optional double current_avg_ua = 5;
}
message BatteryAggregates {
// Field numbers for these 3 == the int values from Android
optional int64 total_screen_off_ns = 1;
optional int64 total_screen_on_ns = 2;
optional int64 total_screen_doze_ns = 3;
// Total time a wakelock was held
optional int64 total_wakelock_ns = 4;
// Amount of time the device was suspended. Depends on the ftrace source
// "power/suspend_resume".
optional int64 sleep_ns = 5;
optional int64 sleep_screen_off_ns = 6;
optional int64 sleep_screen_on_ns = 7;
optional int64 sleep_screen_doze_ns = 8;
}
// Period of time during the trace that the device went to sleep completely.
message SuspendPeriod {
optional int64 timestamp_ns = 1;
optional int64 duration_ns = 2;
}
// Battery counters info for each ts of the trace. This should only be
// extracted for short traces.
repeated BatteryCounters battery_counters = 1;
optional BatteryAggregates battery_aggregates = 2;
repeated SuspendPeriod suspend_period = 3;
}