Skip to content
Snippets Groups Projects
Commit 0c0173d2 authored by Lucas Stratmann's avatar Lucas Stratmann
Browse files

finished basic blocks and UML

parent 28f40e88
No related branches found
No related tags found
No related merge requests found
Showing
with 46 additions and 20 deletions
No preview for this file type
File deleted
......@@ -9,7 +9,6 @@ import java.util.Vector;
import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.comm.CodeConnectString;
import tec.letsgoing.ardublock.simulator.simcode.comm.CodeSerialPrint;
import tec.letsgoing.ardublock.simulator.simcode.control.CodeDelay;
import tec.letsgoing.ardublock.simulator.simcode.control.CodeFor;
......@@ -27,6 +26,7 @@ import tec.letsgoing.ardublock.simulator.view.GUI;
/**
* @author Lucas
*/
public class Simulator implements Runnable, ActionListener {
private static Simulator instance;
private Arduino arduino;
......@@ -112,7 +112,6 @@ public class Simulator implements Runnable, ActionListener {
gui.dispose();
createSubClasses();
// FIXME Delete Old Functions on Reload?
for (SimCodeFunction function : functionsCode) {
arduino.addFunction(function);
}
......@@ -140,7 +139,17 @@ public class Simulator implements Runnable, ActionListener {
return true;
}
// TODO Function to Reset the saved Functions
/**
* Function to Clear the Storage of saved Functions in Simulator-Class. After
* this a reload is needed to clear the Arduino.
*
* @return boolean=true if the functions where correctly reset
*/
public boolean resetFunctions() {
functionsCode.clear();
arduino.reset();
return true;
}
public void actionPerformed(ActionEvent arg0) {
String command = arg0.getActionCommand();
......
......@@ -3,12 +3,10 @@
*/
package tec.letsgoing.ardublock.simulator.arduino;
import java.util.Arrays;
import java.util.Vector;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.view.GUI;
......
......@@ -3,8 +3,6 @@
*/
package tec.letsgoing.ardublock.simulator.simcode;
import java.util.Vector;
import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
......
......@@ -14,14 +14,12 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
*
*/
public class CodeElse extends CodeTypeIf {
private CodeTypeIf follow;
private Vector<SimCode> codeBlocks;
public CodeElse(Vector<SimCode> _vec) {
codeBlocks = _vec;
}
// TODO If kann erweitert werden durch else/elseif
@Override
public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
......
......@@ -18,24 +18,30 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
public class CodeForCount extends SimCode {
private SimTypeInt count;
private SimTypeString varname;
private Vector<SimCode> blocks;
private Vector<SimCode> codeblocks;
public CodeForCount(SimTypeInt _count, SimTypeString _varname, Vector<SimCode> _blocks) {
count = _count;
varname = _varname;
blocks = _blocks;
codeblocks = _blocks;
}
@Override
public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
// TODO Auto-generated method stub
functionHead.createVariable(varname.toString(), new SimTypeInt(0));
for (int i = 0; i < count.run(_arduino, functionHead).getValue(); i++) {
functionHead.setVariable(varname.toString(), new SimTypeInt(i));
for (SimCode block : codeblocks) {
block.run(_arduino, functionHead);
}
}
return null;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return null;
return "";
}
}
......@@ -3,8 +3,12 @@
*/
package tec.letsgoing.ardublock.simulator.simcode.control;
import java.util.Vector;
import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/**
......@@ -12,17 +16,32 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
*
*/
public class CodeWhileMillis extends SimCode {
private SimTypeInt duration;
private SimTypeString varname;
private Vector<SimCode> blocks;
public CodeWhileMillis(SimTypeInt _duration, SimTypeString _varname, Vector<SimCode> _blocks) {
duration = _duration;
varname = _varname;
blocks = _blocks;
}
@Override
public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
// TODO Auto-generated method stub
functionHead.createVariable(varname.toString(), new SimTypeInt(_arduino.getMillis()));
int startTime = _arduino.getMillis();
int dura = duration.run(_arduino, functionHead).getValue();
while (startTime + dura < _arduino.getMillis()) {
for (SimCode block : blocks) {
block.run(_arduino, functionHead);
}
}
return null;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return null;
return "";
}
}
......@@ -5,7 +5,6 @@ package tec.letsgoing.ardublock.simulator.simcode.vars;
import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
......
......@@ -5,7 +5,6 @@ package tec.letsgoing.ardublock.simulator.simcode.vars;
import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
......
......@@ -15,7 +15,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
public class CodeMillis extends SimCode {
@Override
public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
public SimTypeInt run(Arduino _arduino, SimCodeFunction functionHead) {
return new SimTypeInt(_arduino.getMillis());
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment