BUGFIX: merged nets to me included into overall board
This commit is contained in:
parent
e5ad944b4a
commit
6c1c07635f
|
@ -3,8 +3,7 @@ package com.rusefi.pcb;
|
|||
import com.rusefi.pcb.nodes.NetNode;
|
||||
import com.rusefi.pcb.nodes.PcbNode;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
import static com.rusefi.pcb.nodes.PcbNode.TOKEN_NET;
|
||||
|
||||
|
@ -56,7 +55,11 @@ public class Networks {
|
|||
return value;
|
||||
}
|
||||
|
||||
public BoardState registerAdditionalBoard(PcbNode source) {
|
||||
public BoardState registerAdditionalBoard(PcbNode destNode, PcbNode source) {
|
||||
Set<String> names = new HashSet<>();
|
||||
for (NetNode known : destNode.<NetNode>iterate(TOKEN_NET)) {
|
||||
names.add(known.getName());
|
||||
}
|
||||
|
||||
BoardState result = new BoardState();
|
||||
for (NetNode net : source.<NetNode>iterate(TOKEN_NET)) {
|
||||
|
@ -65,8 +68,15 @@ public class Networks {
|
|||
|
||||
String newNameInCombinedBoard = registerNetworkIfPcbSpecific(netName);
|
||||
result.netNameInLocalToNetNameInCombined.put(netName, newNameInCombinedBoard);
|
||||
result.netIdMapping.put(netId, getId(newNameInCombinedBoard));
|
||||
int id = getId(newNameInCombinedBoard);
|
||||
result.netIdMapping.put(netId, id);
|
||||
|
||||
if (!names.contains(newNameInCombinedBoard)) {
|
||||
System.out.println("Adding new NET declaration into combined PCB");
|
||||
destNode.children.add(new NetNode(0, Arrays.asList("" + id, newNameInCombinedBoard)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return result;
|
||||
|
||||
|
|
|
@ -83,9 +83,9 @@ public class PcbMergeTool {
|
|||
}
|
||||
|
||||
static void mergePcb(PcbNode destNode, PcbNode source, Networks networks) {
|
||||
networks.registerAdditionalBoard(destNode);
|
||||
networks.registerAdditionalBoard(destNode, destNode);
|
||||
|
||||
Networks.BoardState state = networks.registerAdditionalBoard(source);
|
||||
Networks.BoardState state = networks.registerAdditionalBoard(destNode, source);
|
||||
|
||||
List<PcbNode> zones = source.iterate(TOKEN_ZONE);
|
||||
log("Processing " + zones.size() + " zone(s)");
|
||||
|
|
|
@ -22,7 +22,7 @@ public class PcbMergeTest {
|
|||
assertEquals(1036, pcb.children.size());
|
||||
|
||||
PcbMergeTool.mergePcb(destNode, pcb, new Networks());
|
||||
assertEquals(1541, destNode.children.size());
|
||||
assertEquals(1616, destNode.children.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -85,8 +85,8 @@ public class PcbMergeTest {
|
|||
|
||||
assertEquals("\"CAN_VIO\"", net1.getName());
|
||||
|
||||
assertEquals(4, node.iterate(TOKEN_NET).size());
|
||||
assertEquals(6, node.iterateRecursive(TOKEN_NET).size());
|
||||
assertEquals(5, node.iterate(TOKEN_NET).size());
|
||||
assertEquals(7, node.iterateRecursive(TOKEN_NET).size());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -100,7 +100,7 @@ public class PcbMergeTest {
|
|||
assertEquals(1036, pcb.children.size());
|
||||
|
||||
PcbMergeTool.mergePcb(destNode, pcb, new Networks());
|
||||
assertEquals(5758, destNode.children.size());
|
||||
assertEquals(5825, destNode.children.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
Loading…
Reference in New Issue