BUGFIX: smarter network merge

This commit is contained in:
rusefillc 2021-01-09 19:20:52 -05:00
parent 3aabd4aab9
commit 241699d597
4 changed files with 21 additions and 15 deletions

View File

@ -196,7 +196,7 @@ public class PcbMergeTool {
globalName = newName;
net.setName(newName);
}
net.setInt(0, networks.getId(globalName));
net.setId(networks.getId(globalName));
if (net.getName() != null)
net.setName(globalName);
}

View File

@ -16,7 +16,7 @@ import static com.rusefi.pcb.nodes.PcbNode.TOKEN_VIA;
* 1/21/14
*/
public class RemoveUnneededTraces {
private final static Set<String> alreadyRemoved = new HashSet<String>();
private final static Set<String> alreadyRemoved = new HashSet<>();
public static void main(String[] args) throws IOException {
if (args.length != 2) {
@ -53,7 +53,7 @@ public class RemoveUnneededTraces {
}
private static List<ViaNode> findUnusedVias(PcbNode destNode) {
List<ViaNode> result = new ArrayList<ViaNode>();
List<ViaNode> result = new ArrayList<>();
List<PcbNode> stuff = destNode.iterate(TOKEN_SEGMENT);
// stuff.addAll(destNode.iterate("segment"));
@ -79,12 +79,10 @@ public class RemoveUnneededTraces {
}
private static boolean removeUnusedSegments(PcbNode destNode) {
List<PcbNode> stuff = new ArrayList<PcbNode>(destNode.iterate(PcbMergeTool.TOKEN_MODULE));
List<PcbNode> stuff = new ArrayList<>(destNode.iterate(PcbMergeTool.TOKEN_MODULE));
stuff.addAll(destNode.iterate(TOKEN_VIA));
Object o = destNode.iterate("segment");
List<SegmentNode> segments = (List<SegmentNode>) o;
List<SegmentNode> segments = destNode.iterate("segment");
System.out.println(segments.size() + " segment(s)");
List<SegmentNode> unused = findUnusedSegments(segments, stuff);
@ -92,7 +90,7 @@ public class RemoveUnneededTraces {
boolean removed = destNode.removeChild(segment);
if (!removed)
throw new IllegalStateException();
String netName = segment.net.id;
String netName = segment.net.getId();
if (!alreadyRemoved.contains(netName)) {
alreadyRemoved.add(netName);
System.out.println("Unused segment in network " + netName + ": " + segment);
@ -102,7 +100,7 @@ public class RemoveUnneededTraces {
}
private static List<SegmentNode> findUnusedSegments(List<SegmentNode> segments, List<PcbNode> modules) {
List<SegmentNode> unused = new ArrayList<SegmentNode>();
List<SegmentNode> unused = new ArrayList<>();
for (SegmentNode segment : segments) {
if (isUnused(segments, segment, modules)) {
// System.out.println("Unused on " + segment.net.id + ": " + segment);

View File

@ -7,19 +7,19 @@ import java.util.List;
* 1/21/14
*/
public class NetNode extends PcbNode {
public final String id;
private int id;
private String name;
public static int GND_NET_ID;
public NetNode(int i, List<Object> children) {
super(TOKEN_NET, i, children);
id = getChild(0);
id = Integer.parseInt(getChild(0));
name = children.size() > 1 ? getChild(1) : null;
if (name != null)
System.out.println("NetNode(" + name + " network: " + id + ")");
if ("GND".equalsIgnoreCase(name))
GND_NET_ID = Integer.parseInt(id);
GND_NET_ID = id;
}
public String getName() {
@ -33,8 +33,17 @@ public class NetNode extends PcbNode {
'}';
}
public void setId(int id) {
this.id = id;
setInt(0, id);
}
public void setName(String newName) {
this.name = newName;
setString(1, newName);
}
public String getId() {
return "" + id;
}
}

View File

@ -77,9 +77,8 @@ public class PcbMergeTest {
NetNode net1 = pads.get(0).find(TOKEN_NET);
NetNode net2 = pads.get(1).find(TOKEN_NET);
// todo: fix me!
assertEquals("2", net1.id);
assertEquals("2", net2.id);
assertEquals("2", net1.getId());
assertEquals("3", net2.getId());
assertEquals(4, node.iterate(TOKEN_NET).size());
}