#dbus #zbus #systemd #linux #logind

upower_dbus

通过 zbus 获取 UPower 信息

5 个不稳定版本

0.3.2 2023年1月9日
0.3.1 2022年12月5日
0.3.0 2022年10月3日
0.2.0 2022年1月5日
0.1.0 2018年5月9日

#3 in #logind

Download history · Rust 包仓库 307/week @ 2024-03-14 · Rust 包仓库 1082/week @ 2024-03-21 · Rust 包仓库 544/week @ 2024-03-28 · Rust 包仓库 467/week @ 2024-04-04 · Rust 包仓库 542/week @ 2024-04-11 · Rust 包仓库 949/week @ 2024-04-18 · Rust 包仓库 1410/week @ 2024-04-25 · Rust 包仓库 1721/week @ 2024-05-02 · Rust 包仓库 1336/week @ 2024-05-09 · Rust 包仓库 1302/week @ 2024-05-16 · Rust 包仓库 775/week @ 2024-05-23 · Rust 包仓库 819/week @ 2024-05-30 · Rust 包仓库 689/week @ 2024-06-06 · Rust 包仓库 611/week @ 2024-06-13 · Rust 包仓库 567/week @ 2024-06-20 · Rust 包仓库 455/week @ 2024-06-27 · Rust 包仓库

2,442 每月下载量
3 crates 中使用

MIT 许可证

15KB
118 代码行

upower-dbus

一个通过 dbus 与 UPower 状态信息交互的 Rust 库。

示例

检测系统是否正在运行在电池上

extern crate upower_dbus;

use futures::stream::StreamExt;
use upower_dbus::UPowerProxy;

fn main() -> zbus::Result<()> {
    futures::executor::block_on(async move {
        let connection = zbus::Connection::system().await?;

        let upower = UPowerProxy::new(&connection).await?;

        println!("On Battery: {:?}", upower.on_battery().await);

        let mut stream = upower.receive_on_battery_changed().await;

        while let Some(event) = stream.next().await {
            println!("On Battery: {:?}", event.get().await);
        }

        Ok(())
    })
}

获取当前电池状态作为百分比

extern crate upower_dbus;

use upower_dbus::UPowerProxy;

fn main() -> zbus::Result<()> {
    futures::executor::block_on(async move {
        let connection = zbus::Connection::system().await?;

        let upower = UPowerProxy::new(&connection).await?;

        let device = upower.get_display_device().await?;

        println!("Battery: {:?}", device.percentage().await);

        Ok(())
    })
}

依赖项

~13–27MB
~387K SLoC