pub struct BatteryProxy { /* private fields */ }Implementations§
Source§impl BatteryProxy
impl BatteryProxy
Sourcepub fn new(channel: AsyncChannel) -> Self
pub fn new(channel: AsyncChannel) -> Self
Create a new Proxy for fuchsia.hardware.power.battery/Battery.
Sourcepub fn take_event_stream(&self) -> BatteryEventStream
pub fn take_event_stream(&self) -> BatteryEventStream
Get a Stream of events from the remote end of the protocol.
§Panics
Panics if the event stream was already taken.
Sourcepub fn get_spec(
&self,
) -> QueryResponseFut<BatteryGetSpecResult, DefaultFuchsiaResourceDialect> ⓘ
pub fn get_spec( &self, ) -> QueryResponseFut<BatteryGetSpecResult, DefaultFuchsiaResourceDialect> ⓘ
Retrieves the static specification of the battery.
Returns:
spec: Static hardware characteristics and driver capabilities of the battery.
Errors:
NOT_SUPPORTED: Hardware does not supply a static specification.IO: Communication failure with the fuel gauge hardware (e.g. I2C transfer failure).INTERNAL: Internal driver error.
Sourcepub fn get_status(
&self,
) -> QueryResponseFut<BatteryGetStatusResult, DefaultFuchsiaResourceDialect> ⓘ
pub fn get_status( &self, ) -> QueryResponseFut<BatteryGetStatusResult, DefaultFuchsiaResourceDialect> ⓘ
Retrieves an instantaneous snapshot of the battery status.
Returns:
status: Complete current telemetry snapshot of battery metrics.
Errors:
IO: Communication failure with the fuel gauge hardware (e.g. I2C transfer failure).INTERNAL: Internal driver error.
Sourcepub fn configure_watch(
&self,
options: &WatchOptions,
) -> QueryResponseFut<BatteryConfigureWatchResult, DefaultFuchsiaResourceDialect> ⓘ
pub fn configure_watch( &self, options: &WatchOptions, ) -> QueryResponseFut<BatteryConfigureWatchResult, DefaultFuchsiaResourceDialect> ⓘ
Configures the fields of interest and wake triggers for this client connection.
The driver filters the requested masks against hardware capabilities and returns the
effective configuration in effective_options.
- Partially supported options: If some requested fields are supported and others are not
(e.g., requesting passive fields like
voltage_uvorcurrent_uathat do not support active interrupt notifications), the driver enables the supported fields and returns the active subset ineffective_options. The call succeeds (Ok). - Fully unsupported options: If non-empty masks were specified but NONE of the requested
fields are supported, the driver returns
NOT_SUPPORTED.
If ConfigureWatch is never called, Watch defaults to returning on ANY supported field
change. The driver aggregates constraints across all clients to determine hardware reporting
rates.
ConfigureWatch may be called at any time, including while a Watch is pending. The new
masks take effect immediately and apply to that pending call. Change detection continues to
compare against the status last delivered on this connection, so a field that changed
before the reconfiguration can still resolve the pending Watch.
Parameters:
options: Requested watch options. Bothinterestandwake_onare optional.
Returns:
effective_options: The subset of requested options supported and enabled by the driver.
Errors:
NOT_SUPPORTED: Non-empty options were requested, but none of the requested interest/wake fields are supported by the driver.
On error the connection’s configuration is left unchanged; a failed call never partially applies.
Sourcepub fn watch(
&self,
lease: Option<EventPair>,
) -> QueryResponseFut<BatteryWatchResult, DefaultFuchsiaResourceDialect> ⓘ
pub fn watch( &self, lease: Option<EventPair>, ) -> QueryResponseFut<BatteryWatchResult, DefaultFuchsiaResourceDialect> ⓘ
Change notification for battery state using a hanging-get pattern.
The first call returns the full current hardware state immediately. Subsequent calls block
until a state change matches the masks in [ConfigureWatch]. Each return contains a
complete telemetry snapshot of all current battery fields, not a sparse delta.
At most one Watch call may be outstanding per connection; concurrent calls fail with
ALREADY_WATCHING.
Parameters:
lease: An optional power lease token used to coordinate handoff between client and server, preventing the system from suspending before critical battery events are handled. If omitted, no lease coordination is performed. If the driver advertises nowake_onfields inSpec.supported_options,leaseis ignored andwake_leaseis always omitted.
Returns:
status: Complete current telemetry snapshot of the battery.wake_lease: An optional lease token provided if the change triggered awake_oncondition. Omitted if the change did not trigger a wake condition or if suspend coordination is inactive.
Errors:
ALREADY_WATCHING: AWatchcall is already pending on this connection.IO: Communication failure with the fuel gauge hardware (e.g. I2C transfer failure).INTERNAL: Internal driver error.
Trait Implementations§
Source§impl BatteryProxyInterface for BatteryProxy
impl BatteryProxyInterface for BatteryProxy
type GetSpecResponseFut = QueryResponseFut<Result<Spec, Error>>
type GetStatusResponseFut = QueryResponseFut<Result<Status, Error>>
type ConfigureWatchResponseFut = QueryResponseFut<Result<WatchOptions, Error>>
type WatchResponseFut = QueryResponseFut<Result<(Status, Option<EventPair>), Error>>
fn get_spec(&self) -> Self::GetSpecResponseFut
fn get_status(&self) -> Self::GetStatusResponseFut
fn configure_watch( &self, options: &WatchOptions, ) -> Self::ConfigureWatchResponseFut
fn watch(&self, lease: Option<EventPair>) -> Self::WatchResponseFut
Source§impl Clone for BatteryProxy
impl Clone for BatteryProxy
Source§fn clone(&self) -> BatteryProxy
fn clone(&self) -> BatteryProxy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BatteryProxy
impl Debug for BatteryProxy
Source§impl Proxy for BatteryProxy
impl Proxy for BatteryProxy
Source§type Protocol = BatteryMarker
type Protocol = BatteryMarker
Proxy controls.