Skip to content

Commit e93cc35

Browse files
committed
Update following testing
Signed-off-by: Chris Jackson <[email protected]>
1 parent 5d07e9f commit e93cc35

File tree

1 file changed

+34
-7
lines changed

1 file changed

+34
-7
lines changed

com.zsmartsystems.zigbee/src/main/java/com/zsmartsystems/zigbee/ZigBeeNetworkManager.java

+34-7
Original file line numberDiff line numberDiff line change
@@ -1837,14 +1837,12 @@ public void run() {
18371837
return true;
18381838
} else {
18391839
logger.trace("{}: Refresh Node notifyListener LATCH Timeout, remaining = {}",
1840-
currentNode.getIeeeAddress(),
1841-
latch.getCount());
1840+
currentNode.getIeeeAddress(), latch.getCount());
18421841
return false;
18431842
}
18441843
} catch (InterruptedException e) {
18451844
logger.trace("{}: Refresh Node notifyListener LATCH Interrupted, remaining = {}",
1846-
currentNode.getIeeeAddress(),
1847-
latch.getCount());
1845+
currentNode.getIeeeAddress(), latch.getCount());
18481846
return false;
18491847
}
18501848
});
@@ -2088,9 +2086,10 @@ public UUID createBackup() {
20882086
public ZigBeeStatus restoreBackup(UUID uuid) {
20892087
ZigBeeNetworkBackupDao backup = databaseManager.readBackup(uuid);
20902088
if (backup == null) {
2091-
logger.debug("Unable to restore from backup {}", uuid);
2089+
logger.debug("RestoreBackup: Failed to read {}", uuid);
20922090
return ZigBeeStatus.INVALID_ARGUMENTS;
20932091
}
2092+
logger.debug("RestoreBackup: Backup read from {}", uuid);
20942093

20952094
switch (getNetworkState()) {
20962095
case UNINITIALISED:
@@ -2107,6 +2106,8 @@ public ZigBeeStatus restoreBackup(UUID uuid) {
21072106
break;
21082107
}
21092108

2109+
logger.debug("RestoreBackup: Taking network down");
2110+
21102111
// Take the network offline for reconfiguration
21112112
transport.setNetworkState(ZigBeeNetworkState.UNINITIALISED);
21122113

@@ -2125,12 +2126,26 @@ public ZigBeeStatus restoreBackup(UUID uuid) {
21252126
}
21262127
}
21272128

2129+
logger.debug("RestoreBackup: Coordinator {}found {}", coordinator == null ? "not " : "",
2130+
coordinator == null ? "" : coordinator.getIeeeAddress());
2131+
21282132
// Set the coordinator address
21292133
if (coordinator != null) {
21302134
transport.setIeeeAddress(coordinator.getIeeeAddress());
21312135
transport.setNwkAddress(coordinator.getNetworkAddress());
21322136
}
21332137

2138+
long secondsSince = new Date().getTime() - backup.getDate().getTime();
2139+
ZigBeeKey key = backup.getNetworkKey();
2140+
2141+
// Frame counters need to be incremented
2142+
if (key.hasIncomingFrameCounter()) {
2143+
key.setIncomingFrameCounter((int) (key.getIncomingFrameCounter() + secondsSince * 5));
2144+
}
2145+
if (key.hasOutgoingFrameCounter()) {
2146+
key.setOutgoingFrameCounter((int) (key.getOutgoingFrameCounter() + secondsSince * 5));
2147+
}
2148+
21342149
// Set the network configuration
21352150
setZigBeePanId(backup.getPan());
21362151
setZigBeeExtendedPanId(backup.getEpan());
@@ -2140,6 +2155,7 @@ public ZigBeeStatus restoreBackup(UUID uuid) {
21402155

21412156
// Remove all existing nodes
21422157
for (ZigBeeNode node : networkNodes.values()) {
2158+
logger.debug("RestoreBackup: Removing node {} [{}]", node.getIeeeAddress(), node.getNetworkAddress());
21432159
removeNode(node);
21442160
}
21452161

@@ -2150,11 +2166,22 @@ public ZigBeeStatus restoreBackup(UUID uuid) {
21502166
for (ZigBeeNodeDao nodeDao : backup.getNodes()) {
21512167
ZigBeeNode node = new ZigBeeNode(this, nodeDao.getIeeeAddress());
21522168
node.setDao(nodeDao);
2153-
logger.debug("{}: Data store: Node was restored from backup.", node.getIeeeAddress());
2169+
logger.debug("{}: RestoreBackup: Node was restored from backup.", node.getIeeeAddress());
21542170
updateNode(node);
21552171
}
21562172

2157-
return startup(true);
2173+
groupManager.initialize();
2174+
2175+
// Start the transport layer
2176+
ZigBeeStatus status = transport.startup(true);
2177+
if (status != ZigBeeStatus.SUCCESS) {
2178+
setNetworkState(ZigBeeNetworkState.OFFLINE);
2179+
} else {
2180+
setNetworkState(ZigBeeNetworkState.ONLINE);
2181+
}
2182+
logger.debug("RestoreBackup: Completed from {} with state {}", uuid, status);
2183+
2184+
return status;
21582185
}
21592186

21602187
/**

0 commit comments

Comments
 (0)