Simplify ZigbeeCluster inheritance
Instead of having 2 methods (setAttribute and addOrUpdateAttribute) to allow specific cluster implementations to override behavior, merge them into one, setAttribute, and use standard C++ syntax for calling a base class implementation.
This commit is contained in:
parent
7ccbfc3a6d
commit
a38e8be190
@ -112,8 +112,7 @@ ZigbeeClusterDoorLock::DoorState ZigbeeClusterDoorLock::doorState() const
|
||||
|
||||
void ZigbeeClusterDoorLock::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
ZigbeeCluster::setAttribute(attribute);
|
||||
|
||||
switch (attribute.id()) {
|
||||
case AttributeLockState:
|
||||
|
||||
@ -46,8 +46,7 @@ float ZigbeeClusterAnalogInput::presentValue() const
|
||||
|
||||
void ZigbeeClusterAnalogInput::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
ZigbeeCluster::setAttribute(attribute);
|
||||
|
||||
switch (attribute.id()) {
|
||||
case AttributeOutOfService:
|
||||
|
||||
@ -33,9 +33,3 @@ ZigbeeClusterAnalogOutput::ZigbeeClusterAnalogOutput(ZigbeeNetwork *network, Zig
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ZigbeeClusterAnalogOutput::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
}
|
||||
|
||||
@ -58,9 +58,6 @@ public:
|
||||
|
||||
explicit ZigbeeClusterAnalogOutput(ZigbeeNetwork *network, ZigbeeNode *node, ZigbeeNodeEndpoint *endpoint, Direction direction, QObject *parent = nullptr);
|
||||
|
||||
private:
|
||||
void setAttribute(const ZigbeeClusterAttribute &attribute) override;
|
||||
|
||||
};
|
||||
|
||||
#endif // ZIGBEECLUSTERANANLOGOUTPUT_H
|
||||
|
||||
@ -33,9 +33,3 @@ ZigbeeClusterAnalogValue::ZigbeeClusterAnalogValue(ZigbeeNetwork *network, Zigbe
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ZigbeeClusterAnalogValue::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
}
|
||||
|
||||
@ -55,9 +55,6 @@ public:
|
||||
|
||||
explicit ZigbeeClusterAnalogValue(ZigbeeNetwork *network, ZigbeeNode *node, ZigbeeNodeEndpoint *endpoint, Direction direction, QObject *parent = nullptr);
|
||||
|
||||
private:
|
||||
void setAttribute(const ZigbeeClusterAttribute &attribute) override;
|
||||
|
||||
};
|
||||
|
||||
#endif // ZIGBEECLUSTERANALOGVALUE_H
|
||||
|
||||
@ -40,9 +40,3 @@ ZigbeeClusterReply *ZigbeeClusterBasic::resetToFactoryDefaults()
|
||||
{
|
||||
return executeClusterCommand(ZigbeeClusterBasic::CommandResetToFactoryDefaults);
|
||||
}
|
||||
|
||||
void ZigbeeClusterBasic::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
}
|
||||
|
||||
@ -206,9 +206,6 @@ public:
|
||||
|
||||
ZigbeeClusterReply *resetToFactoryDefaults();
|
||||
|
||||
private:
|
||||
void setAttribute(const ZigbeeClusterAttribute &attribute) override;
|
||||
|
||||
};
|
||||
|
||||
#endif // ZIGBEECLUSTERBASIC_H
|
||||
|
||||
@ -41,8 +41,7 @@ bool ZigbeeClusterBinaryInput::presentValue() const
|
||||
|
||||
void ZigbeeClusterBinaryInput::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
ZigbeeCluster::setAttribute(attribute);
|
||||
|
||||
// Parse the information for convenience
|
||||
if (attribute.id() == AttributePresentValue) {
|
||||
|
||||
@ -33,9 +33,3 @@ ZigbeeClusterBinaryOutput::ZigbeeClusterBinaryOutput(ZigbeeNetwork *network, Zig
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ZigbeeClusterBinaryOutput::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
}
|
||||
|
||||
@ -59,9 +59,6 @@ public:
|
||||
|
||||
explicit ZigbeeClusterBinaryOutput(ZigbeeNetwork *network, ZigbeeNode *node, ZigbeeNodeEndpoint *endpoint, Direction direction, QObject *parent = nullptr);
|
||||
|
||||
private:
|
||||
void setAttribute(const ZigbeeClusterAttribute &attribute) override;
|
||||
|
||||
};
|
||||
|
||||
#endif // ZIGBEECLUSTERBINARYOUTPUT_H
|
||||
|
||||
@ -33,9 +33,3 @@ ZigbeeClusterBinaryValue::ZigbeeClusterBinaryValue(ZigbeeNetwork *network, Zigbe
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ZigbeeClusterBinaryValue::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
}
|
||||
|
||||
@ -58,9 +58,6 @@ public:
|
||||
|
||||
explicit ZigbeeClusterBinaryValue(ZigbeeNetwork *network, ZigbeeNode *node, ZigbeeNodeEndpoint *endpoint, Direction direction, QObject *parent = nullptr);
|
||||
|
||||
private:
|
||||
void setAttribute(const ZigbeeClusterAttribute &attribute) override;
|
||||
|
||||
};
|
||||
|
||||
#endif // ZIGBEECLUSTERBINARYVALUE_H
|
||||
|
||||
@ -94,9 +94,3 @@ ZigbeeClusterReply *ZigbeeClusterGroups::addGroupIfIdentifying(quint16 groupId,
|
||||
}
|
||||
return executeClusterCommand(ZigbeeClusterGroups::CommandAddGroup, payload);
|
||||
}
|
||||
|
||||
void ZigbeeClusterGroups::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
}
|
||||
|
||||
@ -63,9 +63,6 @@ public:
|
||||
|
||||
signals:
|
||||
|
||||
private:
|
||||
void setAttribute(const ZigbeeClusterAttribute &attribute) override;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -61,12 +61,6 @@ ZigbeeClusterReply *ZigbeeClusterIdentify::triggerEffect(ZigbeeClusterIdentify::
|
||||
return executeClusterCommand(ZigbeeClusterIdentify::CommandTriggerEffect, payload);
|
||||
}
|
||||
|
||||
void ZigbeeClusterIdentify::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
}
|
||||
|
||||
void ZigbeeClusterIdentify::processDataIndication(ZigbeeClusterLibrary::Frame frame)
|
||||
{
|
||||
Command command = static_cast<Command>(frame.header.command);
|
||||
|
||||
@ -75,9 +75,6 @@ public:
|
||||
ZigbeeClusterReply *identifyQuery();
|
||||
ZigbeeClusterReply *triggerEffect(Effect effect, quint8 effectVariant = 0x00);
|
||||
|
||||
private:
|
||||
void setAttribute(const ZigbeeClusterAttribute &attribute) override;
|
||||
|
||||
protected:
|
||||
void processDataIndication(ZigbeeClusterLibrary::Frame frame) override;
|
||||
|
||||
|
||||
@ -110,8 +110,7 @@ quint8 ZigbeeClusterLevelControl::currentLevel() const
|
||||
|
||||
void ZigbeeClusterLevelControl::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
ZigbeeCluster::setAttribute(attribute);
|
||||
|
||||
// Parse the information for convenience
|
||||
if (attribute.id() == AttributeCurrentLevel) {
|
||||
|
||||
@ -33,9 +33,3 @@ ZigbeeClusterMultistateInput::ZigbeeClusterMultistateInput(ZigbeeNetwork *networ
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ZigbeeClusterMultistateInput::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
}
|
||||
|
||||
@ -55,9 +55,6 @@ public:
|
||||
|
||||
explicit ZigbeeClusterMultistateInput(ZigbeeNetwork *network, ZigbeeNode *node, ZigbeeNodeEndpoint *endpoint, Direction direction, QObject *parent = nullptr);
|
||||
|
||||
private:
|
||||
void setAttribute(const ZigbeeClusterAttribute &attribute) override;
|
||||
|
||||
};
|
||||
|
||||
#endif // ZIGBEECLUSTERMULTISTATEINPUT_H
|
||||
|
||||
@ -33,9 +33,3 @@ ZigbeeClusterMultistateOutput::ZigbeeClusterMultistateOutput(ZigbeeNetwork *netw
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ZigbeeClusterMultistateOutput::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
}
|
||||
|
||||
@ -56,9 +56,6 @@ public:
|
||||
|
||||
explicit ZigbeeClusterMultistateOutput(ZigbeeNetwork *network, ZigbeeNode *node, ZigbeeNodeEndpoint *endpoint, Direction direction, QObject *parent = nullptr);
|
||||
|
||||
private:
|
||||
void setAttribute(const ZigbeeClusterAttribute &attribute) override;
|
||||
|
||||
};
|
||||
|
||||
#endif // ZIGBEECLUSTERMULTISTATEOUTPUT_H
|
||||
|
||||
@ -33,9 +33,3 @@ ZigbeeClusterMultistateValue::ZigbeeClusterMultistateValue(ZigbeeNetwork *networ
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ZigbeeClusterMultistateValue::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
}
|
||||
|
||||
@ -56,9 +56,6 @@ public:
|
||||
|
||||
explicit ZigbeeClusterMultistateValue(ZigbeeNetwork *network, ZigbeeNode *node, ZigbeeNodeEndpoint *endpoint, Direction direction, QObject *parent = nullptr);
|
||||
|
||||
private:
|
||||
void setAttribute(const ZigbeeClusterAttribute &attribute) override;
|
||||
|
||||
};
|
||||
|
||||
#endif // ZIGBEECLUSTERMULTISTATEVALUE_H
|
||||
|
||||
@ -84,8 +84,7 @@ bool ZigbeeClusterOnOff::power() const
|
||||
|
||||
void ZigbeeClusterOnOff::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
ZigbeeCluster::setAttribute(attribute);
|
||||
|
||||
// Parse the information for convenience
|
||||
if (attribute.id() == AttributeOnOff) {
|
||||
|
||||
@ -44,7 +44,7 @@ double ZigbeeClusterPowerConfiguration::batteryPercentage() const
|
||||
void ZigbeeClusterPowerConfiguration::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
ZigbeeCluster::setAttribute(attribute);
|
||||
|
||||
if (attribute.id() == AttributeBatteryPercentageRemaining) {
|
||||
bool valueOk = false;
|
||||
|
||||
@ -37,12 +37,6 @@ ZigbeeClusterScenes::ZigbeeClusterScenes(ZigbeeNetwork *network, ZigbeeNode *nod
|
||||
|
||||
}
|
||||
|
||||
void ZigbeeClusterScenes::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
}
|
||||
|
||||
void ZigbeeClusterScenes::processDataIndication(ZigbeeClusterLibrary::Frame frame)
|
||||
{
|
||||
switch (m_direction) {
|
||||
|
||||
@ -65,9 +65,6 @@ public:
|
||||
signals:
|
||||
void commandSent(ZigbeeClusterScenes::Command command, quint16 groupId, quint8 sceneId, quint8 transactionSequenceNumber);
|
||||
|
||||
private:
|
||||
void setAttribute(const ZigbeeClusterAttribute &attribute) override;
|
||||
|
||||
protected:
|
||||
void processDataIndication(ZigbeeClusterLibrary::Frame frame) override;
|
||||
|
||||
|
||||
@ -226,7 +226,7 @@ ZigbeeClusterColorControl::ColorCapabilities ZigbeeClusterColorControl::colorCap
|
||||
void ZigbeeClusterColorControl::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Attribute changed" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
ZigbeeCluster::setAttribute(attribute);
|
||||
|
||||
switch (attribute.id()) {
|
||||
case AttributeColorTemperatureMireds: {
|
||||
|
||||
@ -43,8 +43,7 @@ quint16 ZigbeeClusterIlluminanceMeasurment::illuminance() const
|
||||
|
||||
void ZigbeeClusterIlluminanceMeasurment::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
ZigbeeCluster::setAttribute(attribute);
|
||||
|
||||
// Parse the information for convenience
|
||||
if (attribute.id() == AttributeMeasuredValue) {
|
||||
|
||||
@ -43,8 +43,7 @@ bool ZigbeeClusterOccupancySensing::occupied() const
|
||||
|
||||
void ZigbeeClusterOccupancySensing::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
ZigbeeCluster::setAttribute(attribute);
|
||||
|
||||
// Parse the information for convenience
|
||||
if (attribute.id() == AttributeOccupancy) {
|
||||
|
||||
@ -48,8 +48,7 @@ double ZigbeeClusterPressureMeasurement::pressureScaled() const
|
||||
|
||||
void ZigbeeClusterPressureMeasurement::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
ZigbeeCluster::setAttribute(attribute);
|
||||
|
||||
// Parse the information for convinience
|
||||
if (attribute.id() == AttributeMeasuredValue) {
|
||||
|
||||
@ -44,7 +44,7 @@ double ZigbeeClusterRelativeHumidityMeasurement::humidity() const
|
||||
void ZigbeeClusterRelativeHumidityMeasurement::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
ZigbeeCluster::setAttribute(attribute);
|
||||
|
||||
// Parse the information for convenience
|
||||
if (attribute.id() == AttributeMeasuredValue) {
|
||||
|
||||
@ -43,8 +43,7 @@ double ZigbeeClusterTemperatureMeasurement::temperature() const
|
||||
|
||||
void ZigbeeClusterTemperatureMeasurement::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
ZigbeeCluster::setAttribute(attribute);
|
||||
|
||||
// Parse the information for convenience
|
||||
if (attribute.id() == AttributeMeasuredValue) {
|
||||
|
||||
@ -39,12 +39,6 @@ ZigbeeClusterOta::ZigbeeClusterOta(ZigbeeNetwork *network, ZigbeeNode *node, Zig
|
||||
|
||||
}
|
||||
|
||||
void ZigbeeClusterOta::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
}
|
||||
|
||||
ZigbeeClusterOta::FileVersion ZigbeeClusterOta::parseFileVersion(quint32 fileVersionValue)
|
||||
{
|
||||
FileVersion fileVersion;
|
||||
|
||||
@ -101,8 +101,6 @@ protected:
|
||||
void processDataIndication(ZigbeeClusterLibrary::Frame frame) override;
|
||||
|
||||
private:
|
||||
void setAttribute(const ZigbeeClusterAttribute &attribute) override;
|
||||
|
||||
FileVersion parseFileVersion(quint32 fileVersionValue);
|
||||
};
|
||||
|
||||
|
||||
@ -91,8 +91,7 @@ ZigbeeClusterReply *ZigbeeClusterIasZone::sendZoneStatusChangeNotification(Zigbe
|
||||
|
||||
void ZigbeeClusterIasZone::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << static_cast<Attribute>(attribute.id()) << attribute.dataType();
|
||||
updateOrAddAttribute(attribute);
|
||||
ZigbeeCluster::setAttribute(attribute);
|
||||
|
||||
if (attribute.id() == AttributeZoneState) {
|
||||
quint8 zoneStateInt = attribute.dataType().toUInt8();
|
||||
|
||||
@ -93,7 +93,13 @@ ZigbeeClusterAttribute ZigbeeCluster::attribute(quint16 attributeId)
|
||||
void ZigbeeCluster::setAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
qCDebug(dcZigbeeCluster()) << "Update attribute" << m_node << m_endpoint << this << attribute;
|
||||
updateOrAddAttribute(attribute);
|
||||
if (hasAttribute(attribute.id())) {
|
||||
m_attributes[attribute.id()] = attribute;
|
||||
emit attributeChanged(attribute);
|
||||
} else {
|
||||
m_attributes.insert(attribute.id(), attribute);
|
||||
emit attributeChanged(attribute);
|
||||
}
|
||||
}
|
||||
|
||||
ZigbeeClusterReply *ZigbeeCluster::readAttributes(QList<quint16> attributes, quint16 manufacturerCode)
|
||||
@ -410,17 +416,6 @@ void ZigbeeCluster::processDataIndication(ZigbeeClusterLibrary::Frame frame)
|
||||
qCWarning(dcZigbeeCluster()) << "Unhandled ZCL indication in" << m_node << m_endpoint << this << frame;
|
||||
}
|
||||
|
||||
void ZigbeeCluster::updateOrAddAttribute(const ZigbeeClusterAttribute &attribute)
|
||||
{
|
||||
if (hasAttribute(attribute.id())) {
|
||||
m_attributes[attribute.id()] = attribute;
|
||||
emit attributeChanged(attribute);
|
||||
} else {
|
||||
m_attributes.insert(attribute.id(), attribute);
|
||||
emit attributeChanged(attribute);
|
||||
}
|
||||
}
|
||||
|
||||
quint8 ZigbeeCluster::newTransactionSequenceNumber()
|
||||
{
|
||||
static quint8 tsn = 1;
|
||||
|
||||
@ -122,13 +122,10 @@ protected:
|
||||
|
||||
virtual void processDataIndication(ZigbeeClusterLibrary::Frame frame);
|
||||
|
||||
void updateOrAddAttribute(const ZigbeeClusterAttribute &attribute);
|
||||
virtual void setAttribute(const ZigbeeClusterAttribute &attribute);
|
||||
|
||||
static quint8 newTransactionSequenceNumber();
|
||||
|
||||
private:
|
||||
virtual void setAttribute(const ZigbeeClusterAttribute &attribute);
|
||||
|
||||
signals:
|
||||
void attributeChanged(const ZigbeeClusterAttribute &attribute);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user