mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-13 10:42:09 +10:00
Controllers (#1068)
* initial * more components * fixes * Update TreePanel.java * fix boost converter * Improve wrapping of component names * Update ULN2003Driver.java * Update NRF24L01Transceiver.java * imp * updates * improvements * more components * arduino * uno * icon * cleanup * mega * mega * improveent * nano * esp boards * esp * esp32 * esp32 * Update ESP8266NodeMCU.java * d1 * Update WemosD1Mini.java * pi * consolidate esp32 * pi pico updates * pi zero * Update RaspberryPiZero.java * pi pico * cleanup * pi improvements * consolidate pins * antenna consolidation * improve solder pads * teensy * headers * teensy fix, test cleanup * s3 * Update ESP32DevKit.java * usb standardization * pico w * button standardization * arduino improvements * Update AbstractMakerBoard.java * Update RaspberryPiZero.java * Update RaspberryPi.java * pi 3 * pi 5 improvements * Update RaspberryPiZero.java * fix tests * esp pinout fix * Update ESP32DevKit.java * pin name improvements * Create tier-1-modern-boards.md * new versions * pinouts * nano improvements * sanitize node names * label improvements * minima fixes * arduino uno labels * nano labels * Update ArduinoNano.java * mega * mega * comment out future stuff * release prep * Update RaspberryPiPico.java * Refactor abstract class * labeling improvement * label offset fixes * Update Teensy.java * consolidate tests * micro variants * Update RaspberryPi.java
This commit is contained in:
@@ -72,6 +72,7 @@ public class NetlistBuilder {
|
||||
if (!(c instanceof IContinuity && !(c instanceof ISwitch)) && !(c instanceof ICommonNode)) {
|
||||
// regular components, create a node per control point
|
||||
for (int i = 0; i < c.getControlPointCount(); i++) {
|
||||
// Node renders the name through Node.sanitizeNodeName; here it only marks a named point
|
||||
String nodeName = c.getControlPointNodeName(i);
|
||||
if (c.isControlPointSticky(i) && nodeName != null
|
||||
&& (!includeSwitches || !ISwitch.class.isAssignableFrom(type.getInstanceClass()))) {
|
||||
|
||||
@@ -52,7 +52,28 @@ public class Node implements Comparable<Node> {
|
||||
}
|
||||
|
||||
public String getDisplayName() {
|
||||
return component.getControlPointNodeName(pointIndex);
|
||||
return sanitizeNodeName(component.getControlPointNodeName(pointIndex));
|
||||
}
|
||||
|
||||
/**
|
||||
* Strips the parenthesized annotation off a raw control point name, so a netlist reads
|
||||
* <code>MCU1.D11</code> rather than <code>MCU1.D11 (~, MOSI)</code>. The bare name identifies the
|
||||
* pin; everything in parentheses documents its alternate functions and only adds noise here.
|
||||
*
|
||||
* <p>A trailing disambiguator such as the <code>_1</code> in <code>GND_1</code> is deliberately
|
||||
* kept, because those mark genuinely different pins that a netlist has to tell apart.
|
||||
*
|
||||
* @param nodeName raw name from {@link IDIYComponent#getControlPointNodeName(int)}
|
||||
* @return the sanitized name, or null if the raw name was null
|
||||
*/
|
||||
public static String sanitizeNodeName(String nodeName) {
|
||||
if (nodeName == null) {
|
||||
return null;
|
||||
}
|
||||
int parenIndex = nodeName.indexOf('(');
|
||||
String sanitized = (parenIndex == -1 ? nodeName : nodeName.substring(0, parenIndex)).trim();
|
||||
// Never let sanitizing leave a pin nameless
|
||||
return sanitized.isEmpty() ? nodeName.trim() : sanitized;
|
||||
}
|
||||
|
||||
public Point2D getPoint2D() {
|
||||
|
||||
@@ -5080,4 +5080,279 @@
|
||||
</org.diylc.core.Template>
|
||||
</list>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>org.diylc.components.micro.ArduinoNano</string>
|
||||
<list>
|
||||
<org.diylc.core.Template>
|
||||
<name>Nano (ATmega328)</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ArduinoNano_-NanoVersion>CLASSIC</diylc.micro.ArduinoNano_-NanoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Nano 33 BLE</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ArduinoNano_-NanoVersion>NANO_33_BLE</diylc.micro.ArduinoNano_-NanoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Nano 33 BLE Sense</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ArduinoNano_-NanoVersion>NANO_33_BLE_SENSE</diylc.micro.ArduinoNano_-NanoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Nano 33 IoT</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ArduinoNano_-NanoVersion>NANO_33_IOT</diylc.micro.ArduinoNano_-NanoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Nano ESP32</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ArduinoNano_-NanoVersion>NANO_ESP32</diylc.micro.ArduinoNano_-NanoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Nano Every</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ArduinoNano_-NanoVersion>EVERY</diylc.micro.ArduinoNano_-NanoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Nano R4</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ArduinoNano_-NanoVersion>NANO_R4</diylc.micro.ArduinoNano_-NanoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Nano RP2040 Connect</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ArduinoNano_-NanoVersion>NANO_RP2040_CONNECT</diylc.micro.ArduinoNano_-NanoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
</list>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>org.diylc.components.micro.ArduinoUno</string>
|
||||
<list>
|
||||
<org.diylc.core.Template>
|
||||
<name>Leonardo</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ArduinoUno_-ArduinoUnoVersion>LEONARDO</diylc.micro.ArduinoUno_-ArduinoUnoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>UNO R3</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ArduinoUno_-ArduinoUnoVersion>REV3</diylc.micro.ArduinoUno_-ArduinoUnoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>UNO R4 Minima</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ArduinoUno_-ArduinoUnoVersion>R4_MINIMA</diylc.micro.ArduinoUno_-ArduinoUnoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>UNO R4 WiFi</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ArduinoUno_-ArduinoUnoVersion>R4_WIFI</diylc.micro.ArduinoUno_-ArduinoUnoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
</list>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>org.diylc.components.micro.ESP32DevKit</string>
|
||||
<list>
|
||||
<org.diylc.core.Template>
|
||||
<name>ESP32 DevKit V1 (30-Pin)</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ESP32DevKit_-DevKitVersion>DevKit_V1_30Pin</diylc.micro.ESP32DevKit_-DevKitVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>ESP32 DevKitC V4 (38-Pin)</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ESP32DevKit_-DevKitVersion>DevKitC_V4_38Pin</diylc.micro.ESP32DevKit_-DevKitVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>ESP32-S3 DevKitC-1 (44-Pin)</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ESP32DevKit_-DevKitVersion>ESP32_S3_DevKitC_44Pin</diylc.micro.ESP32DevKit_-DevKitVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>ESP32-C3 DevKitM-1 (30-Pin)</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ESP32DevKit_-DevKitVersion>ESP32_C3_DevKitM_1</diylc.micro.ESP32DevKit_-DevKitVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>ESP32-C6 DevKitC-1 (32-Pin)</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.ESP32DevKit_-DevKitVersion>ESP32_C6_DevKitC_1</diylc.micro.ESP32DevKit_-DevKitVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
</list>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>org.diylc.components.micro.RaspberryPi</string>
|
||||
<list>
|
||||
<org.diylc.core.Template>
|
||||
<name>Pi 3 (Model B+)</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.RaspberryPi_-RaspberryPiVersion>PI_3_B</diylc.micro.RaspberryPi_-RaspberryPiVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Pi 4 (Model B)</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.RaspberryPi_-RaspberryPiVersion>PI_4_B</diylc.micro.RaspberryPi_-RaspberryPiVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Pi 5</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.RaspberryPi_-RaspberryPiVersion>PI_5</diylc.micro.RaspberryPi_-RaspberryPiVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
</list>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>org.diylc.components.micro.RaspberryPiPico</string>
|
||||
<list>
|
||||
<org.diylc.core.Template>
|
||||
<name>Pi Pico</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.RaspberryPiPico_-PicoVersion>PICO</diylc.micro.RaspberryPiPico_-PicoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Pi Pico W</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.RaspberryPiPico_-PicoVersion>PICO_W</diylc.micro.RaspberryPiPico_-PicoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Pi Pico 2</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.RaspberryPiPico_-PicoVersion>PICO_2</diylc.micro.RaspberryPiPico_-PicoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Pi Pico 2 W</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.RaspberryPiPico_-PicoVersion>PICO_2_W</diylc.micro.RaspberryPiPico_-PicoVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
</list>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>org.diylc.components.micro.RaspberryPiZero</string>
|
||||
<list>
|
||||
<org.diylc.core.Template>
|
||||
<name>Pi Zero</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.RaspberryPiZero_-ZeroVersion>PI_ZERO</diylc.micro.RaspberryPiZero_-ZeroVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Pi Zero W</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.RaspberryPiZero_-ZeroVersion>PI_ZERO_W</diylc.micro.RaspberryPiZero_-ZeroVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Pi Zero 2 W</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.RaspberryPiZero_-ZeroVersion>PI_ZERO_2_W</diylc.micro.RaspberryPiZero_-ZeroVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
</list>
|
||||
</entry>
|
||||
<entry>
|
||||
<string>org.diylc.components.micro.Teensy</string>
|
||||
<list>
|
||||
<org.diylc.core.Template>
|
||||
<name>Teensy 3.2</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.Teensy_-TeensyVersion>Teensy_3_2</diylc.micro.Teensy_-TeensyVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Teensy 4.0</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.Teensy_-TeensyVersion>Teensy_4_0</diylc.micro.Teensy_-TeensyVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
<org.diylc.core.Template>
|
||||
<name>Teensy 4.1</name>
|
||||
<values>
|
||||
<entry><string>Version</string><diylc.micro.Teensy_-TeensyVersion>Teensy_4_1</diylc.micro.Teensy_-TeensyVersion></entry>
|
||||
</values>
|
||||
<defaultFlag>false</defaultFlag>
|
||||
<createdOn>2026-09-12T00:00:00.0000000</createdOn>
|
||||
</org.diylc.core.Template>
|
||||
</list>
|
||||
</entry>
|
||||
</map>
|
||||
|
||||
@@ -412,5 +412,57 @@
|
||||
</changes>
|
||||
<url>https://github.com/bancika/diy-layout-creator/releases</url>
|
||||
</org.diylc.appframework.update.Version>
|
||||
<org.diylc.appframework.update.Version>
|
||||
<versionNumber>
|
||||
<major>6</major>
|
||||
<minor>5</minor>
|
||||
<build>0</build>
|
||||
</versionNumber>
|
||||
<releaseDate>2026-09-04 00:00:00.000 CET</releaseDate>
|
||||
<name></name>
|
||||
<changes>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>Arduino Mega 2560</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>Arduino Nano - ATmega328, 33 BLE, 33 BLE Sense, 33 IoT, ESP32, Every, R4, RP3040 Connect</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>Arduino Uno - R3, R4 Minima, R4 WiFi, Leonardo</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>ESP32 - DevKit V1 (30-pin), DevKitC V4 (38-pin), S3 DevKitC-1 (44-pin), C3 DevKitM-1 (30-pin), C6 DevKitC-1 (32-pin)</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>ESP8266 NodeMCU</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>Raspberry Pi - 3B+, 4B, 5</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>Raspberry Pi - Pico, Pico W, Pico 2, Pico 2 W</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>Raspberry Pi - Zero, Zero 2, Zero 2 W</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>Teensy - 3.2, 4.0, 4.1</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
<org.diylc.appframework.update.Change>
|
||||
<changeType>NEW_FEATURE</changeType>
|
||||
<description>Wemos D1 Mini</description>
|
||||
</org.diylc.appframework.update.Change>
|
||||
</changes>
|
||||
<url>https://github.com/bancika/diy-layout-creator/releases</url>
|
||||
</org.diylc.appframework.update.Version>
|
||||
</a>
|
||||
</java.util.Arrays_-ArrayList>
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
*
|
||||
* DIY Layout Creator (DIYLC).
|
||||
* Copyright (c) 2009-2025 held jointly by the individual authors.
|
||||
*
|
||||
* This file is part of DIYLC.
|
||||
*
|
||||
* DIYLC is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* DIYLC is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with DIYLC. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
package org.diylc.netlist;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class NodeNameTest {
|
||||
|
||||
@Test
|
||||
public void testSanitizeNodeName() {
|
||||
// The annotation in parentheses is stripped, the pin name is kept
|
||||
Assert.assertEquals("D11", Node.sanitizeNodeName("D11 (~, MOSI)"));
|
||||
Assert.assertEquals("A5", Node.sanitizeNodeName("A5 (SCL)"));
|
||||
Assert.assertEquals("D3", Node.sanitizeNodeName("D3 (~)"));
|
||||
Assert.assertEquals("VIN", Node.sanitizeNodeName("VIN (3.6-5.5V)"));
|
||||
Assert.assertEquals("GPIO2/SDA", Node.sanitizeNodeName("GPIO2/SDA (Pin 3)"));
|
||||
|
||||
// Names without an annotation are untouched
|
||||
Assert.assertEquals("VIN", Node.sanitizeNodeName("VIN"));
|
||||
Assert.assertEquals("Tip", Node.sanitizeNodeName("Tip"));
|
||||
Assert.assertEquals("3.3V", Node.sanitizeNodeName("3.3V"));
|
||||
|
||||
// Trailing disambiguators stay: these mark genuinely different pins
|
||||
Assert.assertEquals("GND_1", Node.sanitizeNodeName("GND_1"));
|
||||
Assert.assertEquals("5V_ICSP", Node.sanitizeNodeName("5V_ICSP"));
|
||||
|
||||
// Degenerate input never leaves a pin nameless
|
||||
Assert.assertEquals("(only annotation)", Node.sanitizeNodeName("(only annotation)"));
|
||||
Assert.assertNull(Node.sanitizeNodeName(null));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user