DtkSystemSettings  1.0.3
dtk library for systemsettings.
dpowerdevice.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#pragma once
6
7#include <qscopedpointer.h>
8#include <qdatetime.h>
9#include <dexpected.h>
10
11#include "dpowertypes.h"
12using PowerHistoryList = QList<DTK_POWER_NAMESPACE::History>;
13using PowerStatisticList = QList<DTK_POWER_NAMESPACE::Statistic>;
14
15
16DPOWER_BEGIN_NAMESPACE
17using DCORE_NAMESPACE::DExpected;
18
19class DPowerDevicePrivate;
20
21class DPowerDevice : public QObject
22{
23 Q_OBJECT
24public:
25 virtual ~DPowerDevice();
26
27 Q_PROPERTY(bool hasHistory READ hasHistory);
28 Q_PROPERTY(bool hasStatistics READ hasStatistics);
29 Q_PROPERTY(bool isPresent READ isPresent);
30 Q_PROPERTY(bool isRechargeable READ isRechargeable);
31 Q_PROPERTY(bool online READ online);
32 Q_PROPERTY(bool powerSupply READ powerSupply);
33 Q_PROPERTY(double capacity READ capacity);
34 Q_PROPERTY(double energy READ energy NOTIFY energyChanged);
35 Q_PROPERTY(double energyEmpty READ energyEmpty);
36 Q_PROPERTY(double energyFull READ energyFull);
37 Q_PROPERTY(double energyFullDesign READ energyFullDesign);
38 Q_PROPERTY(double energyRate READ energyRate NOTIFY energyRateChanged);
39 Q_PROPERTY(double luminosity READ luminosity);
40 Q_PROPERTY(double percentage READ percentage NOTIFY percentageChanged);
41 Q_PROPERTY(double temperature READ temperature);
42 Q_PROPERTY(double voltage READ voltage);
43 Q_PROPERTY(uint chargeCycles READ chargeCycles);
44 Q_PROPERTY(quint64 timeToEmpty READ timeToEmpty NOTIFY timeToEmptyChanged);
45 Q_PROPERTY(quint64 timeToFull READ timeToFull NOTIFY timeToFullChanged);
46 Q_PROPERTY(QString iconName READ iconName NOTIFY iconNameChanged);
47 Q_PROPERTY(QString model READ model);
48 Q_PROPERTY(QString nativePath READ nativePath);
49 Q_PROPERTY(QString serial READ serial);
50 Q_PROPERTY(QString vendor READ vendor);
51 Q_PROPERTY(uint batteryLevel READ batteryLevel);
52 Q_PROPERTY(uint state READ state);
53 Q_PROPERTY(uint technology READ technology);
54 Q_PROPERTY(uint type READ type);
55 Q_PROPERTY(uint warningLevel READ warningLevel);
56 Q_PROPERTY(QDateTime updateTime READ updateTime NOTIFY updateTimeChanged);
57 Q_PROPERTY(QString deviceName READ deviceName);
58
59 bool hasHistory() const;
60 bool hasStatistics() const;
61 bool isPresent() const;
62 bool isRechargeable() const;
63 bool online() const;
64 bool powerSupply() const;
65 double capacity() const;
66 double energy() const;
67 double energyEmpty() const;
68 double energyFull() const;
69 double energyFullDesign() const;
70 double energyRate() const;
71 double luminosity() const;
72 double percentage() const;
73 double temperature() const;
74 double voltage() const;
75 qint32 chargeCycles() const;
76 qint64 timeToEmpty() const;
77 qint64 timeToFull() const;
78 QString iconName() const;
79 QString model() const;
80 QString nativePath() const;
81 QString serial() const;
82 QString vendor() const;
83 quint32 batteryLevel() const;
84 quint32 state() const;
85 quint32 technology() const;
86 quint32 type() const;
87 quint32 warningLevel() const;
88 QDateTime updateTime() const;
89 QString deviceName() const;
90
91signals:
92 void updateTimeChanged(const QDateTime &value);
93 void percentageChanged(const double value);
94 void timeToEmptyChanged(const qint64 value);
95 void timeToFullChanged(const qint64 value);
96 void energyRateChanged(const double value);
97 void energyChanged(const double value);
98 void iconNameChanged(const QString &value);
99
100public slots:
101 DExpected<PowerHistoryList> history(const QString &type, const uint timespan, const uint resolution) const;
102 DExpected<PowerStatisticList> statistics(const QString &type) const;
103 DExpected<void> refresh();
104
105private:
106 QScopedPointer<DPowerDevicePrivate> d_ptr;
107 Q_DECLARE_PRIVATE(DPowerDevice)
108
109 explicit DPowerDevice(const QString &name, QObject *parent = nullptr);
110 Q_DISABLE_COPY(DPowerDevice)
111
112 friend class DPowerManager;
113};
114DPOWER_END_NAMESPACE
电源设备类,用于管理电源设备的数据和属性
Definition: dpowerdevice.h:22
bool isPresent() const
电源设备是否有电源设备具有统计信息
quint32 technology() const
电池使用技术
double temperature() const
设备的温度, 以摄氏度为单位。
void energyRateChanged(const double value)
电源消耗的能量发生改变, 以W为单位
bool isRechargeable() const
电源设备是否可充电
quint32 state() const
电池电量状态
bool powerSupply() const
如果电源设备用于为系统供电。对于笔记本电脑电池和UPS设备, 这将设置为TRUE, 但对于无线鼠标或掌上电脑设置为FALSE。
DExpected< PowerHistoryList > history(const QString &type, const uint timespan, const uint resolution) const
获取在重新引导期间持续存在的电源设备的历史记录
double percentage() const
功率源中剩余的能量表示为0和100之间的百分比。
double energyEmpty() const
当电源被认为是空的时, 电源中的能量 (以Wh为单位)
void iconNameChanged(const QString &value)
电源图标发生改变
QString model() const
这种电池型号的名称
void energyChanged(const double value)
电源中当前可用的能量发生改变
void updateTimeChanged(const QDateTime &value)
从电源读取数据的时间点发生改变
double energyFull() const
当电源被认为充满时, 电源中的能量 (以Wh为单位)
void timeToEmptyChanged(const qint64 value)
电源消耗到空的时间发生改变
DExpected< void > refresh()
刷新信息
quint32 batteryLevel() const
不报告百分比而是报告粗略电池电量的设备的电池电量。如果该值为None, 则该设备不支持粗略的电池报告, 应改用百分比
bool online() const
电源设备当前是否通过线路电源提供电源。仅当属性类型具有值 line-power 时, 此属性才有效。
QString serial() const
电池的唯一序列号
QString iconName() const
图标名称, 遵循图标命名规范
QString nativePath() const
操作系统特定的电源本机路径。在Linux上, 这是sysfs路径, 例如/sys/devices/LNXSYSTM:00/device:00/PNP0C0A:00/power_supply/BAT0....
double energy() const
电源中当前可用的能量 (以Wh为单位)
double capacity() const
电源的容量表示为0和100之间的百分比。
double voltage() const
电池中的电压或被仪表记录的值。
qint64 timeToFull() const
电池充电达到被认为充满所需的秒数。如果未知, 则设置为0
qint64 timeToEmpty() const
直到电源被认为是空的秒数。如果未知, 则设置为0
qint32 chargeCycles() const
TCO认证定义的充电周期数, 如果该值未知或不适用, 则为-1。(systemd>=251)
quint32 type() const
电源类型
bool hasHistory() const
电源设备是否有历史记录
QString vendor() const
电池供应商的名称
quint32 warningLevel() const
电池警告级别
double luminosity() const
仪表记录的光度
double energyRate() const
电源消耗的能量, 以W为单位。如果是正数, 电源正在放电, 如果是负数, 电源正在充电
void percentageChanged(const double value)
电源百分比发生改变
double energyFullDesign() const
电池设计的最大容量, 以Wh作为单位
QString deviceName() const
获取当前device名称(唯一id)
void timeToFullChanged(const qint64 value)
电源充满时间发生改变
QDateTime updateTime() const
从电源读取数据的时间点 (从世界协调时1970年1月1日开始的0:00秒)。(本质还是unix时间戳)
bool hasStatistics() const
电源设备是否有电源设备具有统计信息
DExpected< PowerStatisticList > statistics(const QString &type) const
获取功率设备的统计信息, 这些统计信息可能会在会话中的图形界面上显示
电源设备管理类, 用于管理电源设备, 包括电源设备的创建, 电源设备的属性获取, 电源设备的状态获取等
Definition: dpowermanager.h:20