1 package era.mi.logic.tests;
\r
3 import era.mi.logic.Simulation;
\r
4 import era.mi.logic.wires.WireArray;
\r
5 import era.mi.logic.wires.WireArray.WireArrayInput;
\r
6 import era.mi.logic.wires.WireArrayObserver;
\r
8 public class Connector implements WireArrayObserver
\r
10 private final WireArray a;
\r
11 private final WireArray b;
\r
12 private final WireArrayInput aI;
\r
13 private final WireArrayInput bI;
\r
15 public Connector(WireArray a, WireArray b)
\r
17 if (a.length != b.length)
\r
18 throw new IllegalArgumentException("WireArray width does not match: " + a.length + ", " + b.length);
\r
21 a.addObserver(this);
\r
22 b.addObserver(this);
\r
23 aI = a.createInput();
\r
24 bI = b.createInput();
\r
28 public void update(WireArray initiator)
\r
30 Simulation.TIMELINE.addEvent((e) ->
\r
33 bI.feedSignals(aI.wireValuesExcludingMe());
\r
35 aI.feedSignals(bI.wireValuesExcludingMe());
\r