X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model.am2900%2Ftest%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fam2900%2FSwitchWithDisplay.java;fp=net.mograsim.logic.model.am2900%2Ftest%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fam2900%2FSwitchWithDisplay.java;h=c5c3ab790d6abd8a0f267fb13fad909e8b16c055;hb=ff8f3e75025958484dd10ebd380d1b62eb393396;hp=0000000000000000000000000000000000000000;hpb=ebdf5a12e795656aa71e4bba14fea840205d4c26;p=Mograsim.git diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/SwitchWithDisplay.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/SwitchWithDisplay.java new file mode 100644 index 00000000..c5c3ab79 --- /dev/null +++ b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/SwitchWithDisplay.java @@ -0,0 +1,65 @@ +package net.mograsim.logic.model.am2900; + +import net.mograsim.logic.core.components.BitDisplay; +import net.mograsim.logic.core.components.ManualSwitch; +import net.mograsim.logic.core.types.BitVector; +import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.components.atomic.GUIBitDisplay; +import net.mograsim.logic.model.model.components.atomic.GUIManualSwitch; +import net.mograsim.logic.model.model.wires.Pin; +import net.mograsim.logic.model.model.wires.WireCrossPoint; +import net.mograsim.logic.model.util.ModellingTool; + +public class SwitchWithDisplay +{ + private final Pin pin; + private final GUIBitDisplay guiBitDisplay; + private final GUIManualSwitch guiManualSwitch; + + public SwitchWithDisplay(ViewModelModifiable model, Pin target) + { + pin = target; + guiBitDisplay = new GUIBitDisplay(model, pin.logicWidth); + guiManualSwitch = new GUIManualSwitch(model, pin.logicWidth); + + ModellingTool tool = ModellingTool.createFor(model); + WireCrossPoint crossPoint = new WireCrossPoint(model, pin.logicWidth); + tool.connect(guiBitDisplay.getInputPin(), crossPoint); + tool.connect(guiManualSwitch.getOutputPin(), crossPoint); + } + + public final BitVector getDisplayedValue() + { + return guiBitDisplay.getBitDisplay().getDisplayedValue(); + } + + public final void setState(BitVector bits) + { + guiManualSwitch.getManualSwitch().setState(bits); + } + + public final Pin getPin() + { + return pin; + } + + public final BitDisplay getBitDisplay() + { + return guiBitDisplay.getBitDisplay(); + } + + public final ManualSwitch getManualSwitch() + { + return guiManualSwitch.getManualSwitch(); + } + + final GUIBitDisplay getGuiBitDisplay() + { + return guiBitDisplay; + } + + final GUIManualSwitch getGuiManualSwitch() + { + return guiManualSwitch; + } +}