Merge PR #48: Add Battery Alarm State support to PowerConfiguration cluster
This commit is contained in:
commit
4650498d69
@ -41,6 +41,11 @@ double ZigbeeClusterPowerConfiguration::batteryPercentage() const
|
|||||||
return m_batteryPercentage;
|
return m_batteryPercentage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ZigbeeClusterPowerConfiguration::BatteryAlarmMask ZigbeeClusterPowerConfiguration::batteryAlarmState() const
|
||||||
|
{
|
||||||
|
return m_batteryAlarmState;
|
||||||
|
}
|
||||||
|
|
||||||
void ZigbeeClusterPowerConfiguration::setAttribute(const ZigbeeClusterAttribute &attribute)
|
void ZigbeeClusterPowerConfiguration::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||||
{
|
{
|
||||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||||
@ -56,5 +61,14 @@ void ZigbeeClusterPowerConfiguration::setAttribute(const ZigbeeClusterAttribute
|
|||||||
} else {
|
} else {
|
||||||
qCWarning(dcZigbeeCluster()) << "Failed to parse attribute data" << m_node << m_endpoint << this << attribute;
|
qCWarning(dcZigbeeCluster()) << "Failed to parse attribute data" << m_node << m_endpoint << this << attribute;
|
||||||
}
|
}
|
||||||
|
} else if (attribute.id() == AttributeBatteryAlarmState) {
|
||||||
|
bool ok;
|
||||||
|
quint32 alarmState = attribute.dataType().toUInt32(&ok);
|
||||||
|
if (ok) {
|
||||||
|
m_batteryAlarmState = static_cast<BatteryAlarmMask>(alarmState);
|
||||||
|
emit batteryAlarmStateChanged(m_batteryAlarmState);
|
||||||
|
} else {
|
||||||
|
qCWarning(dcZigbeeCluster()) << "Failed to parse attribute data" << m_node << m_endpoint << this << attribute;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,29 +79,44 @@ public:
|
|||||||
};
|
};
|
||||||
Q_ENUM(Attribute)
|
Q_ENUM(Attribute)
|
||||||
|
|
||||||
enum MainsAlarmMask {
|
enum MainsAlarm {
|
||||||
MainsAlarmMaskMainVoltageToLow = 0x01,
|
MainsAlarmNone = 0x00,
|
||||||
MainsAlarmMaskMainVoltageToHigh = 0x02,
|
MainsAlarmMainVoltageToLow = 0x01,
|
||||||
MainsAlarmMaskMainPowerSupplyLost = 0x04
|
MainsAlarmMainVoltageToHigh = 0x02,
|
||||||
|
MainsAlarmMainPowerSupplyLost = 0x04
|
||||||
};
|
};
|
||||||
Q_ENUM(MainsAlarmMask)
|
Q_ENUM(MainsAlarm)
|
||||||
Q_DECLARE_FLAGS(MainsAlarmMaskFlag, MainsAlarmMask)
|
Q_DECLARE_FLAGS(MainsAlarmMask, MainsAlarm)
|
||||||
|
|
||||||
|
enum BatteryAlarm {
|
||||||
|
BatteryAlarmNone = 0x00,
|
||||||
|
BatteryAlarmTooLowToOperate = 0x01,
|
||||||
|
BatteryAlarm1 = 0x02,
|
||||||
|
BatteryAlarm2 = 0x04,
|
||||||
|
BatteryAlarm3 = 0x08
|
||||||
|
};
|
||||||
|
Q_ENUM(BatteryAlarm)
|
||||||
|
Q_DECLARE_FLAGS(BatteryAlarmMask, BatteryAlarm)
|
||||||
|
|
||||||
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;
|
||||||
|
BatteryAlarmMask batteryAlarmState() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
double m_batteryPercentage = 0;
|
double m_batteryPercentage = 0;
|
||||||
|
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 batteryAlarmStateChanged(ZigbeeClusterPowerConfiguration::BatteryAlarmMask alarmState);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Q_DECLARE_OPERATORS_FOR_FLAGS(ZigbeeClusterPowerConfiguration::MainsAlarmMaskFlag)
|
Q_DECLARE_OPERATORS_FOR_FLAGS(ZigbeeClusterPowerConfiguration::MainsAlarmMask)
|
||||||
|
Q_DECLARE_OPERATORS_FOR_FLAGS(ZigbeeClusterPowerConfiguration::BatteryAlarmMask)
|
||||||
|
|
||||||
|
|
||||||
#endif // ZIGBEECLUSTERPOWERCONFIGURATION_H
|
#endif // ZIGBEECLUSTERPOWERCONFIGURATION_H
|
||||||
|
|||||||
Reference in New Issue
Block a user