X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=era.mi%2Fsrc%2Fera%2Fmi%2Flogic%2Fcomponents%2FManualSwitch.java;fp=era.mi%2Fsrc%2Fera%2Fmi%2Flogic%2Fcomponents%2FManualSwitch.java;h=c56d8026c8438a47ad0a18c063dc9047f917963c;hb=4712d3e6ee08461b7754dbfba1c9e82372bb474d;hp=34c603c16a1445dda4a5bb1146cbedabb4a1a7b5;hpb=74aebd92f41d03f4a44c9a455ef8c05465136412;p=Mograsim.git diff --git a/era.mi/src/era/mi/logic/components/ManualSwitch.java b/era.mi/src/era/mi/logic/components/ManualSwitch.java index 34c603c1..c56d8026 100644 --- a/era.mi/src/era/mi/logic/components/ManualSwitch.java +++ b/era.mi/src/era/mi/logic/components/ManualSwitch.java @@ -4,7 +4,7 @@ import java.util.List; import era.mi.logic.Bit; import era.mi.logic.wires.WireArray; -import era.mi.logic.wires.WireArray.WireArrayInput; +import era.mi.logic.wires.WireArray.WireArrayEnd; /** * This class models a simple on/off (ONE/ZERO) switch for user interaction. @@ -12,52 +12,62 @@ import era.mi.logic.wires.WireArray.WireArrayInput; * @author Christian Femers * */ -public class ManualSwitch implements Component { +public class ManualSwitch implements Component +{ private WireArray output; - private WireArrayInput outputI; + private WireArrayEnd outputI; private boolean isOn; - public ManualSwitch(WireArray output) { + public ManualSwitch(WireArray output) + { if (output.length != 1) throw new IllegalArgumentException("Switch output can be only a single wire"); this.output = output; this.outputI = output.createInput(); } - public void switchOn() { + public void switchOn() + { setState(true); } - public void switchOff() { + public void switchOff() + { setState(false); } - public void toggle() { + public void toggle() + { setState(!isOn); } - public void setState(boolean isOn) { + public void setState(boolean isOn) + { if (this.isOn == isOn) return; this.isOn = isOn; outputI.feedSignals(getValue()); } - public boolean isOn() { + public boolean isOn() + { return isOn; } - public Bit getValue() { + public Bit getValue() + { return isOn ? Bit.ONE : Bit.ZERO; } @Override - public List getAllInputs() { + public List getAllInputs() + { return List.of(); } @Override - public List getAllOutputs() { + public List getAllOutputs() + { return List.of(output); }