| // Copyright 2017 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.power; |
| |
| enum Status { |
| OK = 0; |
| NotAvailable = 1; |
| }; |
| |
| // Provides battery status |
| struct BatteryStatus { |
| // Error status |
| Status status; |
| |
| // If battery is present |
| bool batteryPresent; |
| |
| // If battery is charging |
| bool charging; |
| |
| // If battery is dis-charging |
| bool discharging; |
| |
| // If battery is at critical level |
| bool critical; |
| |
| // If power cable is plugged in |
| bool powerAdapterOnline; |
| |
| // To distinguish between latest and stale status |
| int64 timestamp; |
| |
| // Battery level in percentage |
| float32 level; |
| |
| // Remaining Battery life in hours. It is negative when battery is not discharging |
| float32 remainingBatteryLife; |
| }; |
| |
| // Manager Interface used to manage power |
| [Discoverable] |
| protocol PowerManager { |
| // Gets battery status |
| GetBatteryStatus() -> (BatteryStatus status); |
| |
| // watcher called when battery status changes |
| Watch(PowerManagerWatcher watcher); |
| }; |
| |
| // Watcher on battery status |
| protocol PowerManagerWatcher { |
| OnChangeBatteryStatus(BatteryStatus battery_status); |
| }; |