Merge PR #82: PowerConfiguration cluster: Add battery voltage
commit
b7fe5a624e
|
|
@ -41,6 +41,11 @@ double ZigbeeClusterPowerConfiguration::batteryPercentage() const
|
||||||
return m_batteryPercentage;
|
return m_batteryPercentage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double ZigbeeClusterPowerConfiguration::batteryVoltage() const
|
||||||
|
{
|
||||||
|
return m_batteryVoltage;
|
||||||
|
}
|
||||||
|
|
||||||
ZigbeeClusterPowerConfiguration::BatteryAlarmMask ZigbeeClusterPowerConfiguration::batteryAlarmState() const
|
ZigbeeClusterPowerConfiguration::BatteryAlarmMask ZigbeeClusterPowerConfiguration::batteryAlarmState() const
|
||||||
{
|
{
|
||||||
return m_batteryAlarmState;
|
return m_batteryAlarmState;
|
||||||
|
|
@ -50,7 +55,17 @@ void ZigbeeClusterPowerConfiguration::setAttribute(const ZigbeeClusterAttribute
|
||||||
{
|
{
|
||||||
ZigbeeCluster::setAttribute(attribute);
|
ZigbeeCluster::setAttribute(attribute);
|
||||||
|
|
||||||
if (attribute.id() == AttributeBatteryPercentageRemaining) {
|
if (attribute.id() == AttributeBatteryVoltage) {
|
||||||
|
bool ok;
|
||||||
|
quint8 value = attribute.dataType().toUInt8(&ok);
|
||||||
|
if (ok) {
|
||||||
|
m_batteryVoltage = value / 10.0;
|
||||||
|
qCDebug(dcZigbeeCluster()) << "PowerConfiguration battery voltage changed on" << m_node << m_endpoint << this << m_batteryVoltage << "V";
|
||||||
|
emit batteryVoltageChanged(m_batteryVoltage);
|
||||||
|
} else {
|
||||||
|
qCWarning(dcZigbeeCluster()) << "Failed to parse battery voltage attribute data" << m_node << m_endpoint << this << attribute;
|
||||||
|
}
|
||||||
|
} else if (attribute.id() == AttributeBatteryPercentageRemaining) {
|
||||||
bool valueOk = false;
|
bool valueOk = false;
|
||||||
quint8 value = attribute.dataType().toUInt8(&valueOk);
|
quint8 value = attribute.dataType().toUInt8(&valueOk);
|
||||||
if (valueOk) {
|
if (valueOk) {
|
||||||
|
|
@ -58,7 +73,7 @@ void ZigbeeClusterPowerConfiguration::setAttribute(const ZigbeeClusterAttribute
|
||||||
qCDebug(dcZigbeeCluster()) << "PowerConfiguration remaining battery percentage changed on" << m_node << m_endpoint << this << m_batteryPercentage << "%";
|
qCDebug(dcZigbeeCluster()) << "PowerConfiguration remaining battery percentage changed on" << m_node << m_endpoint << this << m_batteryPercentage << "%";
|
||||||
emit batteryPercentageChanged(m_batteryPercentage);
|
emit batteryPercentageChanged(m_batteryPercentage);
|
||||||
} else {
|
} else {
|
||||||
qCWarning(dcZigbeeCluster()) << "Failed to parse attribute data" << m_node << m_endpoint << this << attribute;
|
qCWarning(dcZigbeeCluster()) << "Failed to parse battery percentage attribute data" << m_node << m_endpoint << this << attribute;
|
||||||
}
|
}
|
||||||
} else if (attribute.id() == AttributeBatteryAlarmState) {
|
} else if (attribute.id() == AttributeBatteryAlarmState) {
|
||||||
bool ok;
|
bool ok;
|
||||||
|
|
|
||||||
|
|
@ -101,16 +101,19 @@ public:
|
||||||
explicit ZigbeeClusterPowerConfiguration(ZigbeeNetwork *network, ZigbeeNode *node, ZigbeeNodeEndpoint *endpoint, Direction direction, QObject *parent = nullptr);
|
explicit ZigbeeClusterPowerConfiguration(ZigbeeNetwork *network, ZigbeeNode *node, ZigbeeNodeEndpoint *endpoint, Direction direction, QObject *parent = nullptr);
|
||||||
|
|
||||||
double batteryPercentage() const;
|
double batteryPercentage() const;
|
||||||
|
double batteryVoltage() const;
|
||||||
BatteryAlarmMask batteryAlarmState() const;
|
BatteryAlarmMask batteryAlarmState() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
double m_batteryPercentage = 0;
|
double m_batteryPercentage = 0;
|
||||||
|
double m_batteryVoltage = 0;
|
||||||
BatteryAlarmMask m_batteryAlarmState = BatteryAlarmNone;
|
BatteryAlarmMask m_batteryAlarmState = BatteryAlarmNone;
|
||||||
|
|
||||||
void setAttribute(const ZigbeeClusterAttribute &attribute) override;
|
void setAttribute(const ZigbeeClusterAttribute &attribute) override;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void batteryPercentageChanged(double percentage);
|
void batteryPercentageChanged(double percentage);
|
||||||
|
void batteryVoltageChanged(double voltage);
|
||||||
void batteryAlarmStateChanged(ZigbeeClusterPowerConfiguration::BatteryAlarmMask alarmState);
|
void batteryAlarmStateChanged(ZigbeeClusterPowerConfiguration::BatteryAlarmMask alarmState);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue