BUGFIX: smarter network merge
This commit is contained in:
parent
3aabd4aab9
commit
241699d597
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue