Fix permit joining duration/remaining signals
* Prevent resetting the duration repeatedly by not calling setPermitJoiningState in the timer any more * Added signal emissions for when remaining changes in an unexpected manner.
This commit is contained in:
parent
187278cf7c
commit
4f63ae01c0
@ -48,8 +48,6 @@ ZigbeeNetwork::ZigbeeNetwork(const QUuid &networkUuid, QObject *parent) :
|
|||||||
if (m_permitJoiningRemaining <= 0) {
|
if (m_permitJoiningRemaining <= 0) {
|
||||||
m_permitJoinTimer->stop();
|
m_permitJoinTimer->stop();
|
||||||
setPermitJoining(0);
|
setPermitJoining(0);
|
||||||
} else {
|
|
||||||
setPermitJoiningState(m_permitJoiningRemaining, m_permitJoiningRemaining);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -491,11 +489,13 @@ void ZigbeeNetwork::setPermitJoiningState(bool permitJoiningEnabled, quint8 dura
|
|||||||
emit permitJoinDurationChanged(duration);
|
emit permitJoinDurationChanged(duration);
|
||||||
}
|
}
|
||||||
m_permitJoiningRemaining = duration;
|
m_permitJoiningRemaining = duration;
|
||||||
|
emit permitJoinRemainingChanged(m_permitJoiningRemaining);
|
||||||
m_permitJoinTimer->start();
|
m_permitJoinTimer->start();
|
||||||
} else {
|
} else {
|
||||||
m_permitJoiningDuration = 0;
|
m_permitJoiningDuration = 0;
|
||||||
emit permitJoinDurationChanged(0);
|
emit permitJoinDurationChanged(0);
|
||||||
m_permitJoiningRemaining = 0;
|
m_permitJoiningRemaining = 0;
|
||||||
|
emit permitJoinRemainingChanged(0);
|
||||||
m_permitJoinTimer->stop();
|
m_permitJoinTimer->stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -245,11 +245,15 @@ signals:
|
|||||||
void nodeAdded(ZigbeeNode *node);
|
void nodeAdded(ZigbeeNode *node);
|
||||||
void nodeRemoved(ZigbeeNode *node);
|
void nodeRemoved(ZigbeeNode *node);
|
||||||
|
|
||||||
// Will be emited when a node joined and starts initializing
|
// Will be emitted when a node joined and starts initializing
|
||||||
void nodeJoined(ZigbeeNode *node);
|
void nodeJoined(ZigbeeNode *node);
|
||||||
|
|
||||||
void permitJoiningEnabledChanged(bool permitJoiningEnabled);
|
void permitJoiningEnabledChanged(bool permitJoiningEnabled);
|
||||||
void permitJoinDurationChanged(quint8 duration);
|
void permitJoinDurationChanged(quint8 duration);
|
||||||
|
// Will be emitted when the remaining duration changes in an unexpected
|
||||||
|
// manner. That means, it will not be emitted repeatedly every second,
|
||||||
|
// despite calling permitJoinRemainining() returning updated values,
|
||||||
|
// but it will be emitted for instance when it restarts or is aborted.
|
||||||
void permitJoinRemainingChanged(quint8 remaining);
|
void permitJoinRemainingChanged(quint8 remaining);
|
||||||
|
|
||||||
void errorOccured(Error error);
|
void errorOccured(Error error);
|
||||||
|
|||||||
Reference in New Issue
Block a user