diff --git a/src/main/java/de/neemann/digital/core/switching/PlainSwitchDT.java b/src/main/java/de/neemann/digital/core/switching/PlainSwitchDT.java index e794bb5f1..4c4f48ad1 100644 --- a/src/main/java/de/neemann/digital/core/switching/PlainSwitchDT.java +++ b/src/main/java/de/neemann/digital/core/switching/PlainSwitchDT.java @@ -114,4 +114,11 @@ public final class PlainSwitchDT implements NodeInterface { void addOutputsTo(ObservableValues.Builder ov) { ov.add(outputA, outputB, outputC); } + + /** + * @return the number of bits switched + */ + public int getBits() { + return bits; + } } diff --git a/src/main/java/de/neemann/digital/core/switching/Relay.java b/src/main/java/de/neemann/digital/core/switching/Relay.java index 2d1ab7a95..aba7badc2 100644 --- a/src/main/java/de/neemann/digital/core/switching/Relay.java +++ b/src/main/java/de/neemann/digital/core/switching/Relay.java @@ -10,13 +10,14 @@ import de.neemann.digital.core.element.Element; import de.neemann.digital.core.element.ElementAttributes; import de.neemann.digital.core.element.ElementTypeDescription; import de.neemann.digital.core.element.Keys; +import de.neemann.digital.core.stats.Countable; import static de.neemann.digital.core.element.PinInfo.input; /** * A simple relay. */ -public class Relay extends Node implements Element { +public class Relay extends Node implements Element, Countable { /** * The relays description @@ -79,4 +80,14 @@ public class Relay extends Node implements Element { public boolean isClosed() { return s.isClosed(); } + + @Override + public int getDataBits() { + return s.getDataBits(); + } + + @Override + public int getInputsCount() { + return s.getInputsCount(); + } } diff --git a/src/main/java/de/neemann/digital/core/switching/RelayDT.java b/src/main/java/de/neemann/digital/core/switching/RelayDT.java index 1a1da597a..a45e2beab 100644 --- a/src/main/java/de/neemann/digital/core/switching/RelayDT.java +++ b/src/main/java/de/neemann/digital/core/switching/RelayDT.java @@ -10,13 +10,14 @@ import de.neemann.digital.core.element.Element; import de.neemann.digital.core.element.ElementAttributes; import de.neemann.digital.core.element.ElementTypeDescription; import de.neemann.digital.core.element.Keys; +import de.neemann.digital.core.stats.Countable; import static de.neemann.digital.core.element.PinInfo.input; /** * A simple relay. */ -public class RelayDT extends Node implements Element { +public class RelayDT extends Node implements Element, Countable { /** * The relays description @@ -76,4 +77,14 @@ public class RelayDT extends Node implements Element { public boolean isClosed() { return s.isClosed(); } + + @Override + public int getDataBits() { + return s.getDataBits(); + } + + @Override + public int getInputsCount() { + return s.getInputsCount(); + } } diff --git a/src/main/java/de/neemann/digital/core/switching/Switch.java b/src/main/java/de/neemann/digital/core/switching/Switch.java index 537eb54f3..d9eb631ad 100644 --- a/src/main/java/de/neemann/digital/core/switching/Switch.java +++ b/src/main/java/de/neemann/digital/core/switching/Switch.java @@ -10,11 +10,12 @@ import de.neemann.digital.core.element.Element; import de.neemann.digital.core.element.ElementAttributes; import de.neemann.digital.core.element.ElementTypeDescription; import de.neemann.digital.core.element.Keys; +import de.neemann.digital.core.stats.Countable; /** * A simple manually controlled switch */ -public class Switch implements Element, NodeInterface { +public class Switch implements Element, NodeInterface, Countable { /** * The switch description @@ -103,4 +104,14 @@ public class Switch implements Element, NodeInterface { public boolean isClosed() { return closed; } + + @Override + public int getDataBits() { + return poles[0].getBits(); + } + + @Override + public int getInputsCount() { + return poles.length; + } } diff --git a/src/main/java/de/neemann/digital/core/switching/SwitchDT.java b/src/main/java/de/neemann/digital/core/switching/SwitchDT.java index c267adc1b..baebbfe35 100644 --- a/src/main/java/de/neemann/digital/core/switching/SwitchDT.java +++ b/src/main/java/de/neemann/digital/core/switching/SwitchDT.java @@ -10,11 +10,12 @@ import de.neemann.digital.core.element.Element; import de.neemann.digital.core.element.ElementAttributes; import de.neemann.digital.core.element.ElementTypeDescription; import de.neemann.digital.core.element.Keys; +import de.neemann.digital.core.stats.Countable; /** * A simple double throw switch */ -public class SwitchDT implements Element, NodeInterface { +public class SwitchDT implements Element, NodeInterface, Countable { /** * The switch description @@ -91,4 +92,14 @@ public class SwitchDT implements Element, NodeInterface { public boolean isClosed() { return closed; } + + @Override + public int getDataBits() { + return poles[0].getBits(); + } + + @Override + public int getInputsCount() { + return poles.length; + } }