监控Linux上的电池状态

时间:2016-07-13 19:24:00

标签: c++ linux qt

我正在使用Qt应用程序,并希望监控电池状态(充电,百分比等)。 status目录中有uevent/sys/class/power_supply/battery等文件,其中包含我需要的所有信息。这些文件在连接/断开充电器时会更新。我尝试使用QFileSystemWatcher类,因为这些文件的时间戳不随其内容而改变。还有其他监控电池状态的方法吗?

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

1 个答案:

答案 0 :(得分:1)

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

特别应该看看:

  • signal Changed() - 当有什么变化时会通知你[3]

和属性[2]

  • 能源
  • EnergyEmpty
  • EnergyFull

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

要测试的Shell命令:

td

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