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

Reorganize and updated if

parent ce1ecef7
No related branches found
No related tags found
No related merge requests found
Showing
with 145 additions and 66 deletions
...@@ -9,19 +9,19 @@ import java.util.Vector; ...@@ -9,19 +9,19 @@ import java.util.Vector;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.blocks.CodeDelay;
import tec.letsgoing.ardublock.simulator.simcode.blocks.CodeExecuteFunction;
import tec.letsgoing.ardublock.simulator.simcode.blocks.CodeMillis;
import tec.letsgoing.ardublock.simulator.simcode.comm.CodeConnectString; import tec.letsgoing.ardublock.simulator.simcode.comm.CodeConnectString;
import tec.letsgoing.ardublock.simulator.simcode.comm.CodeSerialPrint; import tec.letsgoing.ardublock.simulator.simcode.comm.CodeSerialPrint;
import tec.letsgoing.ardublock.simulator.simcode.control.CodeDelay;
import tec.letsgoing.ardublock.simulator.simcode.control.CodeFor; import tec.letsgoing.ardublock.simulator.simcode.control.CodeFor;
import tec.letsgoing.ardublock.simulator.simcode.control.CodeWhile; import tec.letsgoing.ardublock.simulator.simcode.control.CodeWhile;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
import tec.letsgoing.ardublock.simulator.simcode.functions.CodeExecuteFunction;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.io.CodeDigitalWrite; import tec.letsgoing.ardublock.simulator.simcode.io.CodeDigitalWrite;
import tec.letsgoing.ardublock.simulator.simcode.math.CodeAdd; import tec.letsgoing.ardublock.simulator.simcode.math.CodeAdd;
import tec.letsgoing.ardublock.simulator.simcode.vars.CodeMillis;
import tec.letsgoing.ardublock.simulator.view.GUI; import tec.letsgoing.ardublock.simulator.view.GUI;
/** /**
...@@ -201,7 +201,6 @@ public class Simulator implements Runnable, ActionListener { ...@@ -201,7 +201,6 @@ public class Simulator implements Runnable, ActionListener {
testMain.add(new CodeWhile(b1, tempVec)); testMain.add(new CodeWhile(b1, tempVec));
SimCodeFunction main = new SimCodeFunction("main", testMain); SimCodeFunction main = new SimCodeFunction("main", testMain);
Simulator simu = Simulator.getInstance(); Simulator simu = Simulator.getInstance();
simu.addFunctionsCode(setupCode); simu.addFunctionsCode(setupCode);
simu.addFunctionsCode(loopCode); simu.addFunctionsCode(loopCode);
......
...@@ -7,9 +7,9 @@ import java.util.Arrays; ...@@ -7,9 +7,9 @@ import java.util.Arrays;
import java.util.Vector; import java.util.Vector;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.view.GUI; import tec.letsgoing.ardublock.simulator.view.GUI;
/** /**
...@@ -83,7 +83,6 @@ public class Arduino { ...@@ -83,7 +83,6 @@ public class Arduino {
return false; return false;
} }
public boolean analogWrite(int _pin, int _value) { public boolean analogWrite(int _pin, int _value) {
int[] array = { 3, 5, 6, 9, 10, 11 }; int[] array = { 3, 5, 6, 9, 10, 11 };
for (int i = 0; i < 6; i++) { for (int i = 0; i < 6; i++) {
......
...@@ -6,6 +6,7 @@ package tec.letsgoing.ardublock.simulator.simcode; ...@@ -6,6 +6,7 @@ package tec.letsgoing.ardublock.simulator.simcode;
import java.util.Vector; import java.util.Vector;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/** /**
* @author Lucas * @author Lucas
......
...@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.comm; ...@@ -5,8 +5,8 @@ package tec.letsgoing.ardublock.simulator.simcode.comm;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/** /**
* @author Lucas * @author Lucas
......
...@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.comm; ...@@ -5,9 +5,9 @@ package tec.letsgoing.ardublock.simulator.simcode.comm;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/** /**
* @author Lucas * @author Lucas
......
/** /**
* *
*/ */
package tec.letsgoing.ardublock.simulator.simcode.blocks; package tec.letsgoing.ardublock.simulator.simcode.control;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/** /**
* @author Lucas * @author Lucas
......
...@@ -7,36 +7,27 @@ import java.util.Vector; ...@@ -7,36 +7,27 @@ import java.util.Vector;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction; import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/** /**
* @author Lucas * @author Lucas
* *
*/ */
public class CodeElse extends SimCode { public class CodeElse extends CodeTypeIf {
private SimCode ifBlock; private CodeTypeIf follow;
private Vector<SimCode> codeBlocks; private Vector<SimCode> codeBlocks;
public CodeElse(SimCode _ifBlock, Vector<SimCode> _vec) { public CodeElse(Vector<SimCode> _vec) {
ifBlock = _ifBlock;
codeBlocks = _vec; codeBlocks = _vec;
} }
//TODO Oberklasse IFType
// TODO If kann erweitert werden durch else/elseif // TODO If kann erweitert werden durch else/elseif
@Override @Override
public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
boolean cond = true;
if (ifBlock instanceof CodeIf) {
cond = ((CodeIf) ifBlock).run(_arduino, functionHead).getValue();
}
if (ifBlock instanceof CodeElseIf) {
cond = ((CodeElseIf) ifBlock).run(_arduino, functionHead).getValue();
}
if (!cond) {
for (SimCode block : codeBlocks) { for (SimCode block : codeBlocks) {
block.run(_arduino, functionHead); block.run(_arduino, functionHead);
} }
}
return null; return null;
} }
......
...@@ -7,40 +7,36 @@ import java.util.Vector; ...@@ -7,40 +7,36 @@ import java.util.Vector;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/** /**
* @author Lucas * @author Lucas
* *
*/ */
public class CodeElseIf extends SimCode { public class CodeElseIf extends CodeTypeIf {
private CodeIf ifBlock; private CodeTypeIf follow;
private SimTypeBool condition; private SimTypeBool condition;
private Vector<SimCode> codeBlocks; private Vector<SimCode> codeBlocks;
public CodeElseIf(CodeIf _ifBlock, SimTypeBool _condition, Vector<SimCode> _vec) { public CodeElseIf(CodeTypeIf _follow, SimTypeBool _condition, Vector<SimCode> _vec) {
ifBlock = _ifBlock; follow = _follow;
condition = _condition; condition = _condition;
codeBlocks = _vec; codeBlocks = _vec;
} }
@Override @Override
public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) {
if (!ifBlock.run(_arduino, functionHead).getValue()) {
if (condition.run(_arduino, functionHead).getValue()) { if (condition.run(_arduino, functionHead).getValue()) {
// No If before and Condition met. // Condition met.
for (SimCode block : codeBlocks) { for (SimCode block : codeBlocks) {
block.run(_arduino, functionHead); block.run(_arduino, functionHead);
} }
return new SimTypeBool(true); return null;
} else { } else {
// Condition not met and different else can execute // Condition not met and different else can execute
return new SimTypeBool(false); follow.run(_arduino, functionHead);
} return null;
} else {
// If already executet
return new SimTypeBool(true);
} }
} }
......
...@@ -7,8 +7,8 @@ import java.util.Vector; ...@@ -7,8 +7,8 @@ import java.util.Vector;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/** /**
* @author Lucas * @author Lucas
......
/**
*
*/
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;
/**
* @author Lucas
*
*/
public class CodeForCount extends SimCode {
private SimTypeInt count;
private SimTypeString varname;
private Vector<SimCode> blocks;
public CodeForCount(SimTypeInt _count, SimTypeString _varname, Vector<SimCode> _blocks) {
count = _count;
varname = _varname;
blocks = _blocks;
}
@Override
public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
// TODO Auto-generated method stub
return null;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return null;
}
}
...@@ -7,33 +7,36 @@ import java.util.Vector; ...@@ -7,33 +7,36 @@ import java.util.Vector;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/** /**
* @author Lucas * @author Lucas
* *
*/ */
public class CodeIf extends SimCode { public class CodeIf extends CodeTypeIf {
private CodeTypeIf follow;
private SimTypeBool condition; private SimTypeBool condition;
private Vector<SimCode> codeBlocks; private Vector<SimCode> codeBlocks;
public CodeIf(SimTypeBool _condition, Vector<SimCode> _vec) { public CodeIf(CodeTypeIf _follow, SimTypeBool _condition, Vector<SimCode> _vec) {
condition = _condition; condition = _condition;
codeBlocks = _vec; codeBlocks = _vec;
follow = _follow;
} }
/** /**
* Returns True if the Condition is met or false if it isnt * Returns True if the Condition is met or false if it isnt
*/ */
public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
if (condition.run(_arduino, functionHead).getValue()) { if (condition.run(_arduino, functionHead).getValue()) {
for (SimCode block : codeBlocks) { for (SimCode block : codeBlocks) {
block.run(_arduino, functionHead); block.run(_arduino, functionHead);
} }
return new SimTypeBool(true); return null;// True Case
} else { } else {
return new SimTypeBool(false); follow.run(_arduino, functionHead);
return null; // False Case
} }
} }
......
/**
*
*/
package tec.letsgoing.ardublock.simulator.simcode.control;
import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/**
* @author Lucas
*
*/
public abstract class CodeTypeIf extends SimCode {
@Override
public abstract SimCode run(Arduino _arduino, SimCodeFunction functionHead);
@Override
public abstract String toString();
}
...@@ -7,8 +7,8 @@ import java.util.Vector; ...@@ -7,8 +7,8 @@ import java.util.Vector;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/** /**
* @author Lucas * @author Lucas
......
/**
*
*/
package tec.letsgoing.ardublock.simulator.simcode.control;
import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/**
* @author Lucas
*
*/
public class CodeWhileMillis extends SimCode {
@Override
public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
// TODO Auto-generated method stub
return null;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return null;
}
}
...@@ -5,7 +5,7 @@ package tec.letsgoing.ardublock.simulator.simcode.datatypes; ...@@ -5,7 +5,7 @@ package tec.letsgoing.ardublock.simulator.simcode.datatypes;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction; import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/** /**
* @author Lucas * @author Lucas
......
...@@ -5,7 +5,7 @@ package tec.letsgoing.ardublock.simulator.simcode.datatypes; ...@@ -5,7 +5,7 @@ package tec.letsgoing.ardublock.simulator.simcode.datatypes;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction; import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/** /**
* @author Lucas * @author Lucas
......
...@@ -5,7 +5,7 @@ package tec.letsgoing.ardublock.simulator.simcode.datatypes; ...@@ -5,7 +5,7 @@ package tec.letsgoing.ardublock.simulator.simcode.datatypes;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction; import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/** /**
* @author Lucas * @author Lucas
......
/** /**
* *
*/ */
package tec.letsgoing.ardublock.simulator.simcode.blocks; package tec.letsgoing.ardublock.simulator.simcode.functions;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
/** /**
* @author Lucas * @author Lucas
......
/** /**
* *
*/ */
package tec.letsgoing.ardublock.simulator.simcode; package tec.letsgoing.ardublock.simulator.simcode.functions;
import java.util.Vector; import java.util.Vector;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.arduino.Variable; import tec.letsgoing.ardublock.simulator.arduino.Variable;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
/** /**
* @author Lucas * @author Lucas
......
...@@ -5,12 +5,11 @@ package tec.letsgoing.ardublock.simulator.simcode.io; ...@@ -5,12 +5,11 @@ package tec.letsgoing.ardublock.simulator.simcode.io;
import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
/** /**
* @author Lucas * @author Lucas //TODO Block Beschreibung realtiv zu Ardublock
* //TODO Block Beschreibung realtiv zu Ardublock
*/ */
public class CodeAnalogRead extends SimCode { public class CodeAnalogRead extends SimCode {
private SimTypeInt pin; private SimTypeInt pin;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment