Rough machine extension point implementation
[Mograsim.git] / net.mograsim.logic.model.am2900 / src / net / mograsim / logic / model / am2900 / machine / Am2900Machine.java
1 package net.mograsim.logic.model.am2900.machine;
2
3 import net.mograsim.logic.core.components.Clock;
4 import net.mograsim.logic.core.timeline.Timeline;
5 import net.mograsim.logic.core.types.BitVector;
6 import net.mograsim.logic.model.model.ViewModel;
7 import net.mograsim.logic.model.model.ViewModelModifiable;
8 import net.mograsim.logic.model.model.components.atomic.GUIClock;
9 import net.mograsim.logic.model.modeladapter.LogicModelParameters;
10 import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
11 import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
12 import net.mograsim.machine.Machine;
13 import net.mograsim.machine.MachineDefinition;
14 import net.mograsim.machine.Register;
15
16 public class Am2900Machine implements Machine
17 {
18         private Am2900MachineDefinition machineDefinition;
19         private ViewModel viewModel;
20         private Timeline timeline;
21         private Clock clock;
22
23         public Am2900Machine(Am2900MachineDefinition am2900MachineDefinition)
24         {
25                 this.machineDefinition = am2900MachineDefinition;
26                 ViewModelModifiable viewModelModifiable = new ViewModelModifiable();
27                 IndirectGUIComponentCreator.createComponent(viewModelModifiable, "resource:Am2900Loader:/components/GUIAm2900.json");
28                 LogicModelParameters params = new LogicModelParameters();
29                 params.gateProcessTime = 50;
30                 params.wireTravelTime = 10;
31                 timeline = ViewLogicModelAdapter.convert(viewModelModifiable, params);
32                 clock = ((GUIClock) viewModelModifiable.getComponentsByName().get("GUIClock#0")).getClock();
33         }
34
35         @Override
36         public MachineDefinition getDefinition()
37         {
38                 return machineDefinition;
39         }
40
41         @Override
42         public void reset()
43         {
44                 // TODO Auto-generated method stub
45
46         }
47
48         @Override
49         public ViewModel getModel()
50         {
51                 return viewModel;
52         }
53
54         @Override
55         public Timeline getTimeline()
56         {
57                 return timeline;
58         }
59
60         @Override
61         public Clock getClock()
62         {
63                 return clock;
64         }
65
66         @Override
67         public BitVector getRegister(Register r)
68         {
69                 // TODO Auto-generated method stub
70                 return null;
71         }
72
73         @Override
74         public void setRegister(Register r, BitVector value)
75         {
76                 // TODO Auto-generated method stub
77
78         }
79
80 }