gpt4 book ai didi

c++ - 在 Linux 上监视电池状态

转载 作者:太空狗 更新时间:2023-10-29 12:26:34 26 4
gpt4 key购买 nike

我正在开发一个 Qt 应用程序,想监控电池状态(充电、百分比等)。 /sys/class/power_supply/battery 目录中有 statusuevent 等文件,其中包含我需要的所有信息。这些文件在连接/断开充电器时得到更新。我尝试使用 QFileSystemWatcher 类,但该类不起作用,因为这些文件的时间戳不随其内容而变化。还有其他监测电池状态的方法吗?

我可以使用计时器/单独的线程来执行此操作,但我想探索通过操作系统(Arm 上的 Debian)可用的其他选项。

最佳答案

正如我在评论中所说,您也可以看看 D-Bus。

特别是你应该看看:

  • signal Changed() - 它会在发生变化时通知您 [3]

和属性 [2]

  • 能量
  • EnergyEmpty
  • 精力充沛

QT5 支持 D-Bus [4] [5]。

要测试的 Shell 命令:

dbus-send --print-reply \
--system \
--dest=org.freedesktop.UPower \
/org/freedesktop/UPower/devices/battery_BAT0 \ # change BAT0 to proper value - you can check it with d-feet [6]
org.freedesktop.DBus.Properties.GetAll \
string:org.freedesktop.UPower.Device

d-feet

  1. https://upower.freedesktop.org/docs/UPower.html
  2. https://upower.freedesktop.org/docs/Device.html
  3. https://upower.freedesktop.org/docs/Device.html#Device::Changed
  4. http://doc.qt.io/qt-5/qtdbus-index.html
  5. http://doc.qt.io/qt-5/examples-dbus.html
  6. https://wiki.gnome.org/action/show/Apps/DFeet?action=show&redirect=DFeet

关于c++ - 在 Linux 上监视电池状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38360089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com