mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-14 07:17:13 -04:00
better integration of generic flag
This commit is contained in:
parent
9013bd6fbe
commit
3354028b11
@ -7,7 +7,6 @@ package de.neemann.digital.core.element;
|
|||||||
|
|
||||||
import de.neemann.digital.core.NodeException;
|
import de.neemann.digital.core.NodeException;
|
||||||
import de.neemann.digital.draw.elements.PinException;
|
import de.neemann.digital.draw.elements.PinException;
|
||||||
import de.neemann.digital.gui.Main;
|
|
||||||
import de.neemann.digital.lang.Lang;
|
import de.neemann.digital.lang.Lang;
|
||||||
|
|
||||||
import java.lang.reflect.Constructor;
|
import java.lang.reflect.Constructor;
|
||||||
@ -71,8 +70,6 @@ public class ElementTypeDescription {
|
|||||||
if (p.getDirection() != PinDescription.Direction.input)
|
if (p.getDirection() != PinDescription.Direction.input)
|
||||||
throw new RuntimeException("pin direction error");
|
throw new RuntimeException("pin direction error");
|
||||||
attributeList = new ArrayList<>();
|
attributeList = new ArrayList<>();
|
||||||
if (Main.isExperimentalMode())
|
|
||||||
attributeList.add(Keys.GENERIC);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -790,4 +790,10 @@ public final class Keys {
|
|||||||
public static final Key<String> GENERIC =
|
public static final Key<String> GENERIC =
|
||||||
new Key.LongString("generic").allowGroupEdit();
|
new Key.LongString("generic").allowGroupEdit();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Circuit is generic
|
||||||
|
*/
|
||||||
|
public static final Key<Boolean> IS_GENERIC =
|
||||||
|
new Key<Boolean>("isGeneric", false).setSecondary();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -79,6 +79,8 @@ public class CircuitComponent extends JComponent implements ChangedListener, Lib
|
|||||||
ATTR_LIST.add(Keys.PRELOAD_PROGRAM);
|
ATTR_LIST.add(Keys.PRELOAD_PROGRAM);
|
||||||
ATTR_LIST.add(Keys.PROGRAM_TO_PRELOAD);
|
ATTR_LIST.add(Keys.PROGRAM_TO_PRELOAD);
|
||||||
ATTR_LIST.add(Keys.TRANSISTORS);
|
ATTR_LIST.add(Keys.TRANSISTORS);
|
||||||
|
if (Main.isExperimentalMode())
|
||||||
|
ATTR_LIST.add(Keys.IS_GENERIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1021,14 +1023,13 @@ public class CircuitComponent extends JComponent implements ChangedListener, Lib
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void editAttributes(VisualElement element, MouseEvent e) {
|
private void editAttributes(VisualElement element, MouseEvent e) {
|
||||||
String name = element.getElementName();
|
|
||||||
try {
|
try {
|
||||||
ElementTypeDescription elementType = library.getElementType(name);
|
ArrayList<Key> list = getAttributeList(element);
|
||||||
ArrayList<Key> list = elementType.getAttributeList();
|
|
||||||
if (list.size() > 0) {
|
if (list.size() > 0) {
|
||||||
Point p = new Point(e.getX(), e.getY());
|
Point p = new Point(e.getX(), e.getY());
|
||||||
SwingUtilities.convertPointToScreen(p, CircuitComponent.this);
|
SwingUtilities.convertPointToScreen(p, CircuitComponent.this);
|
||||||
AttributeDialog attributeDialog = new AttributeDialog(parent, p, list, element.getElementAttributes()).setVisualElement(element);
|
AttributeDialog attributeDialog = new AttributeDialog(parent, p, list, element.getElementAttributes()).setVisualElement(element);
|
||||||
|
ElementTypeDescription elementType = library.getElementType(element.getElementName());
|
||||||
if (elementType instanceof ElementLibrary.ElementTypeDescriptionCustom) {
|
if (elementType instanceof ElementLibrary.ElementTypeDescriptionCustom) {
|
||||||
attributeDialog.addButton(Lang.get("attr_openCircuitLabel"), new ToolTipAction(Lang.get("attr_openCircuit")) {
|
attributeDialog.addButton(Lang.get("attr_openCircuitLabel"), new ToolTipAction(Lang.get("attr_openCircuit")) {
|
||||||
@Override
|
@Override
|
||||||
@ -1179,7 +1180,7 @@ public class CircuitComponent extends JComponent implements ChangedListener, Lib
|
|||||||
for (VisualElement ve : getCircuit().getElements())
|
for (VisualElement ve : getCircuit().getElements())
|
||||||
if (ve.matches(min, max)) {
|
if (ve.matches(min, max)) {
|
||||||
elementList.add(ve);
|
elementList.add(ve);
|
||||||
for (Key k : library.getElementType(ve.getElementName()).getAttributeList()) {
|
for (Key k : getAttributeList(ve)) {
|
||||||
if (k.isGroupEditAllowed()) {
|
if (k.isGroupEditAllowed()) {
|
||||||
if (keyList.contains(k)) {
|
if (keyList.contains(k)) {
|
||||||
if (!ve.getElementAttributes().get(k).equals(attr.get(k))) {
|
if (!ve.getElementAttributes().get(k).equals(attr.get(k))) {
|
||||||
@ -1207,7 +1208,7 @@ public class CircuitComponent extends JComponent implements ChangedListener, Lib
|
|||||||
if (ad.getCheckBoxes().get(key).isSelected()) {
|
if (ad.getCheckBoxes().get(key).isSelected()) {
|
||||||
Object newVal = mod.get(key);
|
Object newVal = mod.get(key);
|
||||||
for (VisualElement ve : elementList) {
|
for (VisualElement ve : elementList) {
|
||||||
if (library.getElementType(ve.getElementName()).getAttributeList().contains(key)) {
|
if (getAttributeList(ve).contains(key)) {
|
||||||
if (!ve.getElementAttributes().get(key).equals(newVal))
|
if (!ve.getElementAttributes().get(key).equals(newVal))
|
||||||
modBuilder.add(new ModifyAttribute<>(ve, key, newVal));
|
modBuilder.add(new ModifyAttribute<>(ve, key, newVal));
|
||||||
}
|
}
|
||||||
@ -1218,10 +1219,19 @@ public class CircuitComponent extends JComponent implements ChangedListener, Lib
|
|||||||
}
|
}
|
||||||
|
|
||||||
} catch (ElementNotFoundException e) {
|
} catch (ElementNotFoundException e) {
|
||||||
// Do nothing if an element is not in library
|
// Do nothing if an element is not in the library
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ArrayList<Key> getAttributeList(VisualElement ve) throws ElementNotFoundException {
|
||||||
|
ArrayList<Key> list = library.getElementType(ve.getElementName()).getAttributeList();
|
||||||
|
if (getCircuit().getAttributes().get(Keys.IS_GENERIC)) {
|
||||||
|
list = new ArrayList<>(list);
|
||||||
|
list.add(Keys.GENERIC);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return true if circuit is modified
|
* @return true if circuit is modified
|
||||||
*/
|
*/
|
||||||
|
@ -1,7 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<circuit>
|
<circuit>
|
||||||
<version>1</version>
|
<version>1</version>
|
||||||
<attributes/>
|
<attributes>
|
||||||
|
<entry>
|
||||||
|
<string>isGeneric</string>
|
||||||
|
<boolean>true</boolean>
|
||||||
|
</entry>
|
||||||
|
</attributes>
|
||||||
<visualElements>
|
<visualElements>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>In</elementName>
|
<elementName>In</elementName>
|
||||||
|
@ -1,7 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<circuit>
|
<circuit>
|
||||||
<version>1</version>
|
<version>1</version>
|
||||||
<attributes/>
|
<attributes>
|
||||||
|
<entry>
|
||||||
|
<string>isGeneric</string>
|
||||||
|
<boolean>true</boolean>
|
||||||
|
</entry>
|
||||||
|
</attributes>
|
||||||
<visualElements>
|
<visualElements>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>In</elementName>
|
<elementName>In</elementName>
|
||||||
@ -11,7 +16,7 @@
|
|||||||
<string>en</string>
|
<string>en</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="-140" y="660"/>
|
<pos x="-100" y="580"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Clock</elementName>
|
<elementName>Clock</elementName>
|
||||||
@ -33,7 +38,7 @@
|
|||||||
<int>2</int>
|
<int>2</int>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="620" y="240"/>
|
<pos x="620" y="260"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>In</elementName>
|
<elementName>In</elementName>
|
||||||
@ -43,7 +48,7 @@
|
|||||||
<string>dir</string>
|
<string>dir</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="-140" y="280"/>
|
<pos x="-100" y="280"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Out</elementName>
|
<elementName>Out</elementName>
|
||||||
@ -61,7 +66,7 @@
|
|||||||
<string>this.Bits=orig.Bits;</string>
|
<string>this.Bits=orig.Bits;</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="740" y="180"/>
|
<pos x="740" y="200"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Out</elementName>
|
<elementName>Out</elementName>
|
||||||
@ -71,7 +76,7 @@
|
|||||||
<string>ovf</string>
|
<string>ovf</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="740" y="620"/>
|
<pos x="740" y="540"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>D_FF</elementName>
|
<elementName>D_FF</elementName>
|
||||||
@ -89,7 +94,7 @@
|
|||||||
<string>this.Bits=orig.Bits;</string>
|
<string>this.Bits=orig.Bits;</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="640" y="180"/>
|
<pos x="640" y="200"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Multiplexer</elementName>
|
<elementName>Multiplexer</elementName>
|
||||||
@ -103,7 +108,7 @@
|
|||||||
<string>this.Bits=orig.Bits;</string>
|
<string>this.Bits=orig.Bits;</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="400" y="140"/>
|
<pos x="400" y="160"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Multiplexer</elementName>
|
<elementName>Multiplexer</elementName>
|
||||||
@ -131,12 +136,12 @@
|
|||||||
<string>this.Bits=orig.Bits;</string>
|
<string>this.Bits=orig.Bits;</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="40" y="160"/>
|
<pos x="80" y="160"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Ground</elementName>
|
<elementName>Ground</elementName>
|
||||||
<elementAttributes/>
|
<elementAttributes/>
|
||||||
<pos x="20" y="220"/>
|
<pos x="60" y="220"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Const</elementName>
|
<elementName>Const</elementName>
|
||||||
@ -150,12 +155,12 @@
|
|||||||
<string>this.Bits=orig.Bits;</string>
|
<string>this.Bits=orig.Bits;</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="-60" y="160"/>
|
<pos x="-20" y="160"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>And</elementName>
|
<elementName>And</elementName>
|
||||||
<elementAttributes/>
|
<elementAttributes/>
|
||||||
<pos x="360" y="600"/>
|
<pos x="360" y="520"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Multiplexer</elementName>
|
<elementName>Multiplexer</elementName>
|
||||||
@ -169,7 +174,7 @@
|
|||||||
<string>this.Bits=orig.Bits;</string>
|
<string>this.Bits=orig.Bits;</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="-40" y="160"/>
|
<pos x="0" y="160"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Const</elementName>
|
<elementName>Const</elementName>
|
||||||
@ -187,7 +192,7 @@
|
|||||||
<string>this.Bits=orig.Bits;</string>
|
<string>this.Bits=orig.Bits;</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="-60" y="200"/>
|
<pos x="-20" y="200"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>In</elementName>
|
<elementName>In</elementName>
|
||||||
@ -223,7 +228,7 @@
|
|||||||
<string>this.Bits=orig.Bits;</string>
|
<string>this.Bits=orig.Bits;</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="240" y="580"/>
|
<pos x="240" y="500"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Const</elementName>
|
<elementName>Const</elementName>
|
||||||
@ -246,7 +251,7 @@ if (orig.maxValue=0) {
|
|||||||
}</string>
|
}</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="-60" y="580"/>
|
<pos x="-20" y="500"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Or</elementName>
|
<elementName>Or</elementName>
|
||||||
@ -300,7 +305,7 @@ if (orig.maxValue=0) {
|
|||||||
</inverterConfig>
|
</inverterConfig>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="20" y="300"/>
|
<pos x="60" y="300"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Multiplexer</elementName>
|
<elementName>Multiplexer</elementName>
|
||||||
@ -314,7 +319,7 @@ if (orig.maxValue=0) {
|
|||||||
<string>this.Bits=orig.Bits;</string>
|
<string>this.Bits=orig.Bits;</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="560" y="160"/>
|
<pos x="560" y="180"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>In</elementName>
|
<elementName>In</elementName>
|
||||||
@ -338,7 +343,7 @@ if (orig.maxValue=0) {
|
|||||||
<string>clr</string>
|
<string>clr</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="-140" y="440"/>
|
<pos x="-100" y="440"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Multiplexer</elementName>
|
<elementName>Multiplexer</elementName>
|
||||||
@ -356,7 +361,7 @@ if (orig.maxValue=0) {
|
|||||||
<string>this.Bits=orig.Bits;</string>
|
<string>this.Bits=orig.Bits;</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="160" y="580"/>
|
<pos x="160" y="500"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Const</elementName>
|
<elementName>Const</elementName>
|
||||||
@ -374,12 +379,12 @@ if (orig.maxValue=0) {
|
|||||||
<string>this.Bits=orig.Bits;</string>
|
<string>this.Bits=orig.Bits;</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="140" y="620"/>
|
<pos x="140" y="540"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>XOr</elementName>
|
<elementName>XOr</elementName>
|
||||||
<elementAttributes/>
|
<elementAttributes/>
|
||||||
<pos x="-120" y="400"/>
|
<pos x="-80" y="400"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Const</elementName>
|
<elementName>Const</elementName>
|
||||||
@ -395,12 +400,12 @@ if (orig.maxValue=0) {
|
|||||||
}</string>
|
}</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="-140" y="400"/>
|
<pos x="-100" y="400"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>XOr</elementName>
|
<elementName>XOr</elementName>
|
||||||
<elementAttributes/>
|
<elementAttributes/>
|
||||||
<pos x="-120" y="620"/>
|
<pos x="-80" y="540"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Const</elementName>
|
<elementName>Const</elementName>
|
||||||
@ -416,12 +421,12 @@ if (orig.maxValue=0) {
|
|||||||
}</string>
|
}</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="-140" y="620"/>
|
<pos x="-100" y="540"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>XOr</elementName>
|
<elementName>XOr</elementName>
|
||||||
<elementAttributes/>
|
<elementAttributes/>
|
||||||
<pos x="-120" y="240"/>
|
<pos x="-80" y="240"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>Const</elementName>
|
<elementName>Const</elementName>
|
||||||
@ -437,7 +442,7 @@ if (orig.maxValue=0) {
|
|||||||
}</string>
|
}</string>
|
||||||
</entry>
|
</entry>
|
||||||
</elementAttributes>
|
</elementAttributes>
|
||||||
<pos x="-140" y="240"/>
|
<pos x="-100" y="240"/>
|
||||||
</visualElement>
|
</visualElement>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>XOr</elementName>
|
<elementName>XOr</elementName>
|
||||||
@ -507,107 +512,99 @@ if (orig.inverterConfig.in) {
|
|||||||
</visualElements>
|
</visualElements>
|
||||||
<wires>
|
<wires>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="440" y="160"/>
|
<p1 x="60" y="160"/>
|
||||||
<p2 x="560" y="160"/>
|
<p2 x="80" y="160"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="20" y="160"/>
|
<p1 x="-20" y="160"/>
|
||||||
<p2 x="40" y="160"/>
|
<p2 x="0" y="160"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="-60" y="160"/>
|
<p1 x="140" y="160"/>
|
||||||
<p2 x="-40" y="160"/>
|
|
||||||
</wire>
|
|
||||||
<wire>
|
|
||||||
<p1 x="100" y="160"/>
|
|
||||||
<p2 x="320" y="160"/>
|
<p2 x="320" y="160"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="80" y="320"/>
|
<p1 x="380" y="160"/>
|
||||||
|
<p2 x="400" y="160"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="120" y="320"/>
|
||||||
<p2 x="300" y="320"/>
|
<p2 x="300" y="320"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
|
||||||
<p1 x="-60" y="640"/>
|
|
||||||
<p2 x="340" y="640"/>
|
|
||||||
</wire>
|
|
||||||
<wire>
|
|
||||||
<p1 x="340" y="640"/>
|
|
||||||
<p2 x="360" y="640"/>
|
|
||||||
</wire>
|
|
||||||
<wire>
|
|
||||||
<p1 x="-60" y="420"/>
|
|
||||||
<p2 x="-20" y="420"/>
|
|
||||||
</wire>
|
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="-20" y="420"/>
|
<p1 x="-20" y="420"/>
|
||||||
|
<p2 x="20" y="420"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="20" y="420"/>
|
||||||
<p2 x="400" y="420"/>
|
<p2 x="400" y="420"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="-60" y="260"/>
|
<p1 x="-20" y="260"/>
|
||||||
<p2 x="-20" y="260"/>
|
<p2 x="20" y="260"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="-20" y="260"/>
|
<p1 x="20" y="260"/>
|
||||||
<p2 x="180" y="260"/>
|
<p2 x="180" y="260"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="-60" y="580"/>
|
<p1 x="-100" y="580"/>
|
||||||
<p2 x="100" y="580"/>
|
<p2 x="-80" y="580"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="220" y="580"/>
|
<p1 x="380" y="200"/>
|
||||||
<p2 x="240" y="580"/>
|
<p2 x="400" y="200"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="100" y="580"/>
|
<p1 x="60" y="200"/>
|
||||||
<p2 x="160" y="580"/>
|
<p2 x="80" y="200"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="20" y="200"/>
|
<p1 x="-20" y="200"/>
|
||||||
<p2 x="40" y="200"/>
|
<p2 x="0" y="200"/>
|
||||||
</wire>
|
|
||||||
<wire>
|
|
||||||
<p1 x="-60" y="200"/>
|
|
||||||
<p2 x="-40" y="200"/>
|
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="260" y="200"/>
|
<p1 x="260" y="200"/>
|
||||||
<p2 x="280" y="200"/>
|
<p2 x="280" y="200"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="620" y="200"/>
|
<p1 x="700" y="200"/>
|
||||||
|
<p2 x="720" y="200"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="600" y="200"/>
|
||||||
<p2 x="640" y="200"/>
|
<p2 x="640" y="200"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="500" y="200"/>
|
<p1 x="720" y="200"/>
|
||||||
<p2 x="560" y="200"/>
|
<p2 x="740" y="200"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="300" y="520"/>
|
||||||
|
<p2 x="360" y="520"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="200" y="520"/>
|
||||||
|
<p2 x="240" y="520"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="20" y="300"/>
|
||||||
|
<p2 x="60" y="300"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="360" y="140"/>
|
<p1 x="360" y="140"/>
|
||||||
<p2 x="400" y="140"/>
|
<p2 x="380" y="140"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="-20" y="300"/>
|
<p1 x="-20" y="560"/>
|
||||||
<p2 x="20" y="300"/>
|
<p2 x="340" y="560"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="140" y="620"/>
|
<p1 x="340" y="560"/>
|
||||||
<p2 x="160" y="620"/>
|
<p2 x="360" y="560"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="420" y="620"/>
|
<p1 x="60" y="80"/>
|
||||||
<p2 x="440" y="620"/>
|
|
||||||
</wire>
|
|
||||||
<wire>
|
|
||||||
<p1 x="-140" y="620"/>
|
|
||||||
<p2 x="-120" y="620"/>
|
|
||||||
</wire>
|
|
||||||
<wire>
|
|
||||||
<p1 x="440" y="620"/>
|
|
||||||
<p2 x="740" y="620"/>
|
|
||||||
</wire>
|
|
||||||
<wire>
|
|
||||||
<p1 x="20" y="80"/>
|
|
||||||
<p2 x="220" y="80"/>
|
<p2 x="220" y="80"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
@ -615,96 +612,104 @@ if (orig.inverterConfig.in) {
|
|||||||
<p2 x="720" y="80"/>
|
<p2 x="720" y="80"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="100" y="240"/>
|
<p1 x="140" y="240"/>
|
||||||
<p2 x="280" y="240"/>
|
<p2 x="280" y="240"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="-140" y="240"/>
|
<p1 x="-100" y="240"/>
|
||||||
<p2 x="-120" y="240"/>
|
<p2 x="-80" y="240"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="-140" y="400"/>
|
<p1 x="-100" y="400"/>
|
||||||
<p2 x="-120" y="400"/>
|
<p2 x="-80" y="400"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="700" y="180"/>
|
<p1 x="440" y="180"/>
|
||||||
<p2 x="720" y="180"/>
|
<p2 x="560" y="180"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="360" y="180"/>
|
<p1 x="40" y="180"/>
|
||||||
<p2 x="400" y="180"/>
|
<p2 x="80" y="180"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="0" y="180"/>
|
<p1 x="-20" y="500"/>
|
||||||
<p2 x="40" y="180"/>
|
<p2 x="140" y="500"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="600" y="180"/>
|
<p1 x="220" y="500"/>
|
||||||
<p2 x="640" y="180"/>
|
<p2 x="240" y="500"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="720" y="180"/>
|
<p1 x="140" y="500"/>
|
||||||
<p2 x="740" y="180"/>
|
<p2 x="160" y="500"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="-20" y="340"/>
|
<p1 x="20" y="340"/>
|
||||||
<p2 x="0" y="340"/>
|
<p2 x="40" y="340"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="-140" y="660"/>
|
<p1 x="-100" y="440"/>
|
||||||
<p2 x="-120" y="660"/>
|
<p2 x="-80" y="440"/>
|
||||||
</wire>
|
|
||||||
<wire>
|
|
||||||
<p1 x="-140" y="440"/>
|
|
||||||
<p2 x="-120" y="440"/>
|
|
||||||
</wire>
|
|
||||||
<wire>
|
|
||||||
<p1 x="300" y="600"/>
|
|
||||||
<p2 x="360" y="600"/>
|
|
||||||
</wire>
|
|
||||||
<wire>
|
|
||||||
<p1 x="200" y="600"/>
|
|
||||||
<p2 x="240" y="600"/>
|
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="220" y="120"/>
|
<p1 x="220" y="120"/>
|
||||||
<p2 x="320" y="120"/>
|
<p2 x="320" y="120"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="-140" y="280"/>
|
<p1 x="-100" y="280"/>
|
||||||
<p2 x="-120" y="280"/>
|
<p2 x="-80" y="280"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="620" y="220"/>
|
||||||
|
<p2 x="640" y="220"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="500" y="220"/>
|
||||||
|
<p2 x="560" y="220"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="320" y="220"/>
|
<p1 x="320" y="220"/>
|
||||||
<p2 x="360" y="220"/>
|
<p2 x="380" y="220"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="140" y="540"/>
|
||||||
|
<p2 x="160" y="540"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="420" y="540"/>
|
||||||
|
<p2 x="440" y="540"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="-100" y="540"/>
|
||||||
|
<p2 x="-80" y="540"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="440" y="540"/>
|
||||||
|
<p2 x="740" y="540"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="480" y="400"/>
|
<p1 x="480" y="400"/>
|
||||||
<p2 x="480" y="420"/>
|
<p2 x="480" y="420"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="420" y="180"/>
|
<p1 x="420" y="200"/>
|
||||||
<p2 x="420" y="340"/>
|
<p2 x="420" y="340"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="100" y="240"/>
|
<p1 x="580" y="220"/>
|
||||||
<p2 x="100" y="580"/>
|
|
||||||
</wire>
|
|
||||||
<wire>
|
|
||||||
<p1 x="580" y="200"/>
|
|
||||||
<p2 x="580" y="340"/>
|
<p2 x="580" y="340"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
|
||||||
<p1 x="360" y="180"/>
|
|
||||||
<p2 x="360" y="220"/>
|
|
||||||
</wire>
|
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="520" y="400"/>
|
<p1 x="520" y="400"/>
|
||||||
<p2 x="520" y="420"/>
|
<p2 x="520" y="420"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="620" y="200"/>
|
<p1 x="140" y="240"/>
|
||||||
<p2 x="620" y="240"/>
|
<p2 x="140" y="500"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="620" y="220"/>
|
||||||
|
<p2 x="620" y="260"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="300" y="240"/>
|
<p1 x="300" y="240"/>
|
||||||
@ -716,43 +721,35 @@ if (orig.inverterConfig.in) {
|
|||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="720" y="80"/>
|
<p1 x="720" y="80"/>
|
||||||
<p2 x="720" y="180"/>
|
<p2 x="720" y="200"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="400" y="400"/>
|
<p1 x="400" y="400"/>
|
||||||
<p2 x="400" y="420"/>
|
<p2 x="400" y="420"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="-20" y="200"/>
|
<p1 x="20" y="200"/>
|
||||||
<p2 x="-20" y="260"/>
|
<p2 x="20" y="260"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="-20" y="340"/>
|
<p1 x="20" y="340"/>
|
||||||
<p2 x="-20" y="420"/>
|
<p2 x="20" y="420"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="-20" y="260"/>
|
<p1 x="20" y="260"/>
|
||||||
<p2 x="-20" y="300"/>
|
<p2 x="20" y="300"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="500" y="200"/>
|
<p1 x="500" y="220"/>
|
||||||
<p2 x="500" y="340"/>
|
<p2 x="500" y="340"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="340" y="160"/>
|
<p1 x="340" y="160"/>
|
||||||
<p2 x="340" y="640"/>
|
<p2 x="340" y="560"/>
|
||||||
</wire>
|
|
||||||
<wire>
|
|
||||||
<p1 x="20" y="80"/>
|
|
||||||
<p2 x="20" y="160"/>
|
|
||||||
</wire>
|
|
||||||
<wire>
|
|
||||||
<p1 x="20" y="200"/>
|
|
||||||
<p2 x="20" y="220"/>
|
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="180" y="260"/>
|
<p1 x="180" y="260"/>
|
||||||
<p2 x="180" y="580"/>
|
<p2 x="180" y="500"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="600" y="400"/>
|
<p1 x="600" y="400"/>
|
||||||
@ -760,7 +757,23 @@ if (orig.inverterConfig.in) {
|
|||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="440" y="400"/>
|
<p1 x="440" y="400"/>
|
||||||
<p2 x="440" y="620"/>
|
<p2 x="440" y="540"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="380" y="200"/>
|
||||||
|
<p2 x="380" y="220"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="380" y="140"/>
|
||||||
|
<p2 x="380" y="160"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="60" y="80"/>
|
||||||
|
<p2 x="60" y="160"/>
|
||||||
|
</wire>
|
||||||
|
<wire>
|
||||||
|
<p1 x="60" y="200"/>
|
||||||
|
<p2 x="60" y="220"/>
|
||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="220" y="80"/>
|
<p1 x="220" y="80"/>
|
||||||
@ -768,7 +781,7 @@ if (orig.inverterConfig.in) {
|
|||||||
</wire>
|
</wire>
|
||||||
<wire>
|
<wire>
|
||||||
<p1 x="220" y="120"/>
|
<p1 x="220" y="120"/>
|
||||||
<p2 x="220" y="580"/>
|
<p2 x="220" y="500"/>
|
||||||
</wire>
|
</wire>
|
||||||
</wires>
|
</wires>
|
||||||
<measurementOrdering/>
|
<measurementOrdering/>
|
||||||
|
@ -1,7 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<circuit>
|
<circuit>
|
||||||
<version>1</version>
|
<version>1</version>
|
||||||
<attributes/>
|
<attributes>
|
||||||
|
<entry>
|
||||||
|
<string>isGeneric</string>
|
||||||
|
<boolean>true</boolean>
|
||||||
|
</entry>
|
||||||
|
</attributes>
|
||||||
<visualElements>
|
<visualElements>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>D_FF</elementName>
|
<elementName>D_FF</elementName>
|
||||||
|
@ -1,7 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<circuit>
|
<circuit>
|
||||||
<version>1</version>
|
<version>1</version>
|
||||||
<attributes/>
|
<attributes>
|
||||||
|
<entry>
|
||||||
|
<string>isGeneric</string>
|
||||||
|
<boolean>true</boolean>
|
||||||
|
</entry>
|
||||||
|
</attributes>
|
||||||
<visualElements>
|
<visualElements>
|
||||||
<visualElement>
|
<visualElement>
|
||||||
<elementName>D_FF</elementName>
|
<elementName>D_FF</elementName>
|
||||||
|
@ -1343,6 +1343,9 @@ Sind evtl. die Namen der Variablen nicht eindeutig?</string>
|
|||||||
<string name="key_generic">Generisch</string>
|
<string name="key_generic">Generisch</string>
|
||||||
<string name="key_generic_tt">Anweisung um eine generische Schaltung anzupassen.</string>
|
<string name="key_generic_tt">Anweisung um eine generische Schaltung anzupassen.</string>
|
||||||
|
|
||||||
|
<string name="key_isGeneric">Schaltung ist generisch</string>
|
||||||
|
<string name="key_isGeneric_tt">Erlaubt die Erzeugung von generischen Schaltungen.</string>
|
||||||
|
|
||||||
<string name="mod_insertWire">Leitung eingefügt.</string>
|
<string name="mod_insertWire">Leitung eingefügt.</string>
|
||||||
<string name="mod_insertCopied">Aus Zwischenablage eingefügt.</string>
|
<string name="mod_insertCopied">Aus Zwischenablage eingefügt.</string>
|
||||||
<string name="mod_setKey_N0_in_element_N1">Wert ''{0}'' in Element ''{1}'' verändert.</string>
|
<string name="mod_setKey_N0_in_element_N1">Wert ''{0}'' in Element ''{1}'' verändert.</string>
|
||||||
|
@ -1313,8 +1313,8 @@
|
|||||||
<string name="key_midiInstrument">MIDI instrument</string>
|
<string name="key_midiInstrument">MIDI instrument</string>
|
||||||
<string name="key_midiInstrument_tt">The MIDI instrument to use.</string>
|
<string name="key_midiInstrument_tt">The MIDI instrument to use.</string>
|
||||||
<string name="key_midiProgChange">Allow program change</string>
|
<string name="key_midiProgChange">Allow program change</string>
|
||||||
<string name="key_midiProgChange_tt">Adds a new input PC. If this input is set to high,
|
<string name="key_midiProgChange_tt">Adds a new input PC. If this input is set to high,
|
||||||
the value at input N is used to change te program (instrument).</string>
|
the value at input N is used to change the program (instrument).</string>
|
||||||
|
|
||||||
<string name="key_transistors">Transistors</string>
|
<string name="key_transistors">Transistors</string>
|
||||||
<string name="key_transistors_tt">Number of transistors required. Used for circuit statistics.
|
<string name="key_transistors_tt">Number of transistors required. Used for circuit statistics.
|
||||||
@ -1331,6 +1331,9 @@
|
|||||||
<string name="key_generic">Generic</string>
|
<string name="key_generic">Generic</string>
|
||||||
<string name="key_generic_tt">Statements used to generify a circuit.</string>
|
<string name="key_generic_tt">Statements used to generify a circuit.</string>
|
||||||
|
|
||||||
|
<string name="key_isGeneric">Circuit is generic</string>
|
||||||
|
<string name="key_isGeneric_tt">Allows to create a generic circuit.</string>
|
||||||
|
|
||||||
<string name="mod_insertWire">Inserted wire.</string>
|
<string name="mod_insertWire">Inserted wire.</string>
|
||||||
<string name="mod_insertCopied">Insert from clipboard.</string>
|
<string name="mod_insertCopied">Insert from clipboard.</string>
|
||||||
<string name="mod_setKey_N0_in_element_N1">Value ''{0}'' in component ''{1}'' modified.</string>
|
<string name="mod_setKey_N0_in_element_N1">Value ''{0}'' in component ''{1}'' modified.</string>
|
||||||
|
@ -1175,8 +1175,8 @@
|
|||||||
<string name="key_midiInstrument">MIDI instrument</string>
|
<string name="key_midiInstrument">MIDI instrument</string>
|
||||||
<string name="key_midiInstrument_tt">The MIDI instrument to use.</string>
|
<string name="key_midiInstrument_tt">The MIDI instrument to use.</string>
|
||||||
<string name="key_midiProgChange">Allow program change</string>
|
<string name="key_midiProgChange">Allow program change</string>
|
||||||
<string name="key_midiProgChange_tt">Adds a new input PC. If this input is set to high,
|
<string name="key_midiProgChange_tt">Adds a new input PC. If this input is set to high,
|
||||||
the value at input N is used to change te program (instrument).</string>
|
the value at input N is used to change the program (instrument).</string>
|
||||||
<string name="mod_insertWire">Inserted wire.</string>
|
<string name="mod_insertWire">Inserted wire.</string>
|
||||||
<string name="mod_insertCopied">Insert from clipboard.</string>
|
<string name="mod_insertCopied">Insert from clipboard.</string>
|
||||||
<string name="mod_setKey_N0_in_element_N1">Value ''{0}'' in component ''{1}'' modified.</string>
|
<string name="mod_setKey_N0_in_element_N1">Value ''{0}'' in component ''{1}'' modified.</string>
|
||||||
|
@ -1304,8 +1304,8 @@
|
|||||||
<string name="key_midiInstrument">MIDI instrument</string>
|
<string name="key_midiInstrument">MIDI instrument</string>
|
||||||
<string name="key_midiInstrument_tt">The MIDI instrument to use.</string>
|
<string name="key_midiInstrument_tt">The MIDI instrument to use.</string>
|
||||||
<string name="key_midiProgChange">Allow program change</string>
|
<string name="key_midiProgChange">Allow program change</string>
|
||||||
<string name="key_midiProgChange_tt">Adds a new input PC. If this input is set to high,
|
<string name="key_midiProgChange_tt">Adds a new input PC. If this input is set to high,
|
||||||
the value at input N is used to change te program (instrument).</string>
|
the value at input N is used to change the program (instrument).</string>
|
||||||
|
|
||||||
<string name="mod_insertWire">Inserted wire.</string>
|
<string name="mod_insertWire">Inserted wire.</string>
|
||||||
<string name="mod_insertCopied">Insert from clipboard.</string>
|
<string name="mod_insertCopied">Insert from clipboard.</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user