blob: 3304c7115e2426c513023e03a2d1dfeb31df988c [file] [log] [blame]
// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
// 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 = "chromiumos/system_api/power_manager_proto";
message PeripheralBatteryStatus {
// Path of the battery sysfs.
optional string path = 1;
// Name of the peripheral device.
optional string name = 2;
// Battery level in range [0, 100]. Unset if the level is
// unknown or the device is disconnected.
optional int32 level = 3;
enum ChargeStatus {
// Status unknown, either permanently, or temporarily, e.g.,
// due to a charger not being connected to chargable target.
CHARGE_STATUS_UNKNOWN = 0;
// Discharging may show up in normal operation of a device.
// e.g., a powered stylus is always discharging if it is not
// actually being charged.
CHARGE_STATUS_DISCHARGING = 1;
// Actively charging state, level is expected to rise.
CHARGE_STATUS_CHARGING = 2;
// Full will be returned if device is charging and at 100%
CHARGE_STATUS_FULL = 3;
// Not charging is equivalent to full if charger has decided
// battery has reached maximum possible capacity, and there is
// no error; level may not be 100% in this case.
CHARGE_STATUS_NOT_CHARGING = 4;
// Any health error will override charge status.
CHARGE_STATUS_ERROR = 5;
}
// Charging status; peripherals may rarely expose a useful
// status, primary usage is built-in peripheral chargers.
optional ChargeStatus charge_status = 4;
// Indicates if this is an active update, driven by udev (or other)
// notification.
//
// The distinction is important for styluses and
// other HID devices, as they will express their last known battery level
// until a change, and a periodic poll (or powerd restart) that re-reads the
// same value does not provide any new information, while a udev update
// (even if the charge level is identical) does provide valid information
// about the item.
optional bool active_update = 5;
// If present, contains the serial number of the battery, as a text field.
optional string serial_number = 6;
}