File: power_supply_properties.proto

package info (click to toggle)
chromium 139.0.7258.127-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 6,122,068 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (238 lines) | stat: -rw-r--r-- 9,079 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
// Copyright 2013 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package power_manager;
option go_package = "go.chromium.org/chromiumos/system_api/power_manager_proto";

// Power supply status sent from powerd to Chrome.
message PowerSupplyProperties {
  // For any of these power sources, the system may be consuming power at a high
  // enough rate that the battery is discharging rather than charging; see
  // BatteryState. See the PowerSource submessage's |type| field for more
  // details about the active power source.
  enum ExternalPower {
    // AC/line/mains or USB PD power is connected. This is typically the
    // highest-power source that can be attached to the system.
    AC = 0;

    // A low-power USB source (SDP, DCP, CDP, or ACA) is connected.
    USB = 1;

    // No external power source is connected.
    DISCONNECTED = 2;

    // Next value to use: 4
  }

  enum BatteryState {
    // The battery is full or close to full.
    FULL = 0;

    // The battery is being charged but is not yet full.
    CHARGING = 1;

    // The battery is discharging. Note that an external power source may be
    // connected but not supplying enough power to offset the system's
    // instantaneous power consumption. This state is also used if the battery
    // is neither charging nor discharging (i.e. current is zero) in a non-full
    // state, which may indicate a battery defect.
    DISCHARGING = 2;

    // The system doesn't have a battery.
    NOT_PRESENT = 3;

    // Next value to use: 4
  }

  // Details about a potential source of power to the system.
  message PowerSource {
    enum Port {
      // The location of the port is unknown, or there's only one port.
      UNKNOWN = 0;

      // Various positions on the device. The first word describes the side of
      // the device where the port is located while the second clarifies the
      // position. For example, LEFT_BACK means the farthest-back port on the
      // left side, while BACK_LEFT means the leftmost port on the back of the
      // device.
      LEFT = 1;
      RIGHT = 2;
      BACK = 3;
      FRONT = 4;
      LEFT_FRONT = 5;
      LEFT_BACK = 6;
      RIGHT_FRONT = 7;
      RIGHT_BACK = 8;
      BACK_LEFT = 9;
      BACK_RIGHT = 10;

      // Next value to use: 11
    }

    enum Type {
      // Unspecified type.
      OTHER = 0;

      // Dedicated charger. Typically single-purpose and non-USB (e.g. barrel
      // jack plugs). Corresponds to kernel-reported type "Mains". This source
      // is reported by the ACPI driver and may also appear (along with a USB_PD
      // source) on Type-C-only systems if the ACPI driver is present.
      MAINS = 1;

      // USB Type-C, including dedicated Type-C chargers. Typically >= 7.5W.
      // Corresponds to kernel-reported types "USB_C", "USB_PD", "USB_PD_DRP",
      // and "BrickID".
      USB_C = 2;

      // USB Battery Charging r1.2. Typically <= 7.5W. Corresponds to
      // kernel-reported types "USB", "USB_ACA", "USB_CDP", and "USB_DCP".
      USB_BC_1_2 = 3;

      // Next value to use: 4
    }

    // Opaque ID corresponding to the device. Do not use this for any purpose
    // beyond comparisons with |external_power_source_id| or as an argument to
    // powerd's SetPowerSource D-Bus method.
    optional string id = 1;

    // The charging port to which this power source is connected.
    optional Port port = 7;

    // Power source type.
    optional Type type = 8;

    // Raw strings read from |manufacturer| and |model_name| files in sysfs.
    optional string manufacturer_id = 4;
    optional string model_id = 5;

    // Maximum power this source is capable of delivering, in watts.
    optional double max_power = 6;

    // True if the power source will automatically deliver charge to the system
    // when connected (assuming there isn't another |active_by_default| source
    // doing so). If false, the source will not deliver charge unless requested
    // to do so by the user.
    optional bool active_by_default = 3;

    // Next ID to use: 9
  }

  // Current state of the external power source.
  optional ExternalPower external_power = 14;

  // ID of the PowerSource that is currently providing power to the system.
  optional string external_power_source_id = 17;

  // Currently-connected external power sources.
  repeated PowerSource available_external_power_source = 18;

  // Current state of the battery.
  optional BatteryState battery_state = 15;

  // Estimated battery charge as a percent of its total capacity, in the
  // range [0.0, 100.0]. Unset if a battery isn't present.
  optional double battery_percent = 7 [default = -1.0];

  // Estimated time until the battery is empty, in seconds, or zero if the
  // battery isn't discharging. -1 if the estimated time would be huge
  // (e.g. because the current is zero or close to zero). Unset if a battery
  // isn't present.
  optional int64 battery_time_to_empty_sec = 5;

  // Estimated time until the battery is full, in seconds, or zero if the
  // battery isn't charging. -1 if the estimated time would be huge (e.g.
  // because the current is zero or close to zero). Contains the best estimate
  // for when the battery will be full when Adaptive Charging is delaying
  // charge. If there is no current estimate for when Adaptive Charging will
  // finish, the value is zero. Unset if a battery isn't present.
  optional int64 battery_time_to_full_sec = 6;

  // True when |battery_time_to_*| can't be trusted, e.g. because the power
  // source just changed. Unset if a battery isn't present.
  optional bool is_calculating_battery_time = 12 [default = false];

  // The battery discharge rate measured in W. Positive if the battery is being
  // discharged, negative if it's being charged, or unset if a battery isn't
  // present.
  optional double battery_discharge_rate = 16;

  // True if it is possible for some connected devices to function as either
  // sources or sinks (i.e. to either deliver or receive charge).
  optional bool supports_dual_role_devices = 19;

  // Current battery voltage level.
  optional double battery_voltage = 20;

  // Battery manufacturer reported in sysfs as either "manufacturer" or
  // "vendor". Ex.: "SIMPLO"
  optional string battery_vendor = 21;

  // Battery cycle count representing the total number of times all the
  // battery's power has been used.
  optional int64 battery_cycle_count = 22;

  // Battery serial number reported in sysfs.
  optional string battery_serial_number = 23;

  // Battery design capacity measured in ampere-hours (Ah).
  optional double battery_charge_full_design = 24;

  // Battery full capacity measured in ampere-hours (Ah).
  optional double battery_charge_full = 25;

  // Battery voltage min design measured in V.
  optional double battery_voltage_min_design = 26;

  // Current battery charge right now, measured in ampere-hours (Ah).
  optional double battery_charge = 27;

  // Battery model name reported by |model_name|.
  optional string battery_model_name = 28;

  // Battery current as of now, measured in amperes (A).
  optional double battery_current = 29;

  // Battery technology read from sysfs.
  optional string battery_technology = 30;

  // Battery status read from sysfs.
  optional string battery_status = 31;

  // The device's preferred minimum external power input in watts (W). When
  // requesting the user use a higher-power external power source, this value
  // can be displayed.
  optional double preferred_minimum_external_power = 32;

  // Indicates if the system supports Adaptive Charging required functionality.
  optional bool adaptive_charging_supported = 33 [default = false];

  // Indicates whether charging to full is delayed by adaptive charging. If so,
  // |battery_time_to_full_sec| indicates the time until the battery is planned
  // to be fully charged. The planned time to fully charge the battery may
  // change over time based on predictions from adaptive battery.
  optional bool adaptive_delaying_charge = 34 [default = false];

  // Indicates if Adaptive Charging is currently allowed by its heuristic, which
  // disables Adaptive Charging if the charging behavior of the user won't
  // benefit from the feature.
  // Unused unless Adaptive Charging is supported on the system.
  optional bool adaptive_charging_heuristic_enabled = 35;

  // Indicates whether charging is limited by Charge Limit, which prevents
  // charging over a default battery percentage of 80%. Percentage is
  // configurable via |PowerManagementPolicy::adaptive_charging_hold_percent|.
  // Set to true if the battery percentage is close to or above the limit
  // (defined in the code as greater than or equal to
  // |PowerManagementPolicy::adaptive_charging_hold_percent| -
  // |PowerManagementPolicy::adaptive_charging_hold_delta_percent| - 1) and
  // Charge Limit is enabled.
  optional bool charge_limited = 36;

  // Next ID to use: 37
}