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

Basic Mathblocks and usage of SimCode Objects

parent 074d74d2
No related branches found
No related tags found
No related merge requests found
Showing
with 395 additions and 134 deletions
...@@ -8,15 +8,17 @@ import java.awt.event.ActionListener; ...@@ -8,15 +8,17 @@ import java.awt.event.ActionListener;
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.Pin;
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.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.blocks.CodeConnectString;
import tec.letsgoing.ardublock.simulator.simcode.blocks.CodeDelay; import tec.letsgoing.ardublock.simulator.simcode.blocks.CodeDelay;
import tec.letsgoing.ardublock.simulator.simcode.blocks.CodeDigitalWrite; import tec.letsgoing.ardublock.simulator.simcode.blocks.CodeDigitalWrite;
import tec.letsgoing.ardublock.simulator.simcode.blocks.CodeExecuteFunction;
import tec.letsgoing.ardublock.simulator.simcode.blocks.CodeSerialPrint; import tec.letsgoing.ardublock.simulator.simcode.blocks.CodeSerialPrint;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeBool;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeDouble;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeString;
import tec.letsgoing.ardublock.simulator.simcode.math.CodeAdd;
import tec.letsgoing.ardublock.simulator.view.GUI; import tec.letsgoing.ardublock.simulator.view.GUI;
import tec.letsgoing.ardublock.simulator.view.modules.RGB;
/** /**
* @author Lucas * @author Lucas
...@@ -65,6 +67,7 @@ public class Simulator implements Runnable, ActionListener { ...@@ -65,6 +67,7 @@ public class Simulator implements Runnable, ActionListener {
} }
} else { } else {
arduino.reset(); arduino.reset();
arduino.setStartTime();
simuThread = new Thread(this); simuThread = new Thread(this);
simuThread.start(); simuThread.start();
} }
...@@ -77,7 +80,12 @@ public class Simulator implements Runnable, ActionListener { ...@@ -77,7 +80,12 @@ public class Simulator implements Runnable, ActionListener {
arduino.getFunction("setup").run(arduino, null); arduino.getFunction("setup").run(arduino, null);
while (!stopFlag) { while (!stopFlag) {
arduino.getFunction("loop").run(arduino, null); arduino.getFunction("loop").run(arduino, null);
try {
Thread.sleep(5);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
} }
...@@ -86,7 +94,8 @@ public class Simulator implements Runnable, ActionListener { ...@@ -86,7 +94,8 @@ public class Simulator implements Runnable, ActionListener {
stopFlag = true; stopFlag = true;
if (simuThread instanceof Thread) { if (simuThread instanceof Thread) {
simuThread.interrupt(); simuThread.interrupt();
simuThread.stop(); //TODO Deprecated - Alternativ check every Execution Arduino StopFlag - Folgen: SerialLog Bugs simuThread.stop(); // TODO Deprecated - Alternativ check every Execution Arduino StopFlag - Folgen:
// SerialLog Bugs
} }
arduino.digitalWrite(20, false); arduino.digitalWrite(20, false);
...@@ -121,7 +130,7 @@ public class Simulator implements Runnable, ActionListener { ...@@ -121,7 +130,7 @@ public class Simulator implements Runnable, ActionListener {
try { try {
simuThread.join(); simuThread.join();
} catch (InterruptedException e) { } catch (InterruptedException e) {
// TODO Auto-generated catch block // TODO Security to hold the GUI responsive if Spam to serialLog accours
e.printStackTrace(); e.printStackTrace();
} }
} }
...@@ -131,7 +140,6 @@ public class Simulator implements Runnable, ActionListener { ...@@ -131,7 +140,6 @@ public class Simulator implements Runnable, ActionListener {
return true; return true;
} }
public boolean addFunctionsCode(SimCodeFunction _functionsCode) { public boolean addFunctionsCode(SimCodeFunction _functionsCode) {
functionsCode.add(_functionsCode); functionsCode.add(_functionsCode);
arduino.addFunction(_functionsCode); arduino.addFunction(_functionsCode);
...@@ -161,29 +169,27 @@ public class Simulator implements Runnable, ActionListener { ...@@ -161,29 +169,27 @@ public class Simulator implements Runnable, ActionListener {
Vector<SimCode> testSetup = new Vector<SimCode>(); Vector<SimCode> testSetup = new Vector<SimCode>();
Vector<SimCode> testLoop = new Vector<SimCode>(); Vector<SimCode> testLoop = new Vector<SimCode>();
int testdelay = 500; int testdelay = 500;
testSetup.add(new CodeDelay(1000));
testLoop.add(new CodeDigitalWrite(0, true)); CodeBool b1 = new CodeBool(true);
testLoop.add(new CodeDelay(testdelay)); CodeBool b0 = new CodeBool(false);
testLoop.add(new CodeDigitalWrite(1, true));
testLoop.add(new CodeDelay(testdelay)); CodeString s1 = new CodeString("CodeString Test");
testLoop.add(new CodeDigitalWrite(13, true)); CodeDouble d1 = new CodeDouble(5);
testLoop.add(new CodeDigitalWrite(2, true)); CodeDouble d5 = new CodeDouble(23);
testLoop.add(new CodeDelay(testdelay)); CodeDouble d2 = new CodeDouble(0);
testLoop.add(new CodeSerialPrint("Hello World",true)); CodeDouble delay = new CodeDouble(testdelay);
testLoop.add(new CodeSerialPrint("Hello World",true)); CodeString s2 = new CodeString(d1);
testLoop.add(new CodeDigitalWrite(1, false)); CodeAdd s5 = new CodeAdd(d1, d5);
testLoop.add(new CodeDelay(testdelay)); testLoop.add(new CodeSerialPrint(new CodeString(new CodeConnectString(d2, s5)), b1));
testLoop.add(new CodeExecuteFunction("setup")); // testLoop.add(new CodeSerialPrint(s1,b0));
testLoop.add(new CodeDigitalWrite(0, false)); // testLoop.add(new CodeSerialPrint(s2,b1));
testLoop.add(new CodeDigitalWrite(13, false)); testLoop.add(new CodeDigitalWrite(d2, b0));
testLoop.add(new CodeSerialPrint("Hello World",true)); testLoop.add(new CodeDelay(delay));
testLoop.add(new CodeDelay(testdelay)); testLoop.add(new CodeDigitalWrite(d2, b1));
testLoop.add(new CodeDigitalWrite(2, false));
testLoop.add(new CodeDelay(testdelay));
SimCodeFunction setupCode = new SimCodeFunction("setup", testSetup); SimCodeFunction setupCode = new SimCodeFunction("setup", testSetup);
SimCodeFunction loopCode = new SimCodeFunction("loop", testLoop); SimCodeFunction loopCode = new SimCodeFunction("loop", testLoop);
Simulator simu = Simulator.getInstance(); Simulator simu = Simulator.getInstance();
simu.addFunctionsCode(setupCode); simu.addFunctionsCode(setupCode);
simu.addFunctionsCode(loopCode); simu.addFunctionsCode(loopCode);
......
...@@ -18,8 +18,7 @@ public class Arduino { ...@@ -18,8 +18,7 @@ public class Arduino {
private Pin[] pins = new Pin[21]; private Pin[] pins = new Pin[21];
private GUI gui; private GUI gui;
private Vector<SimCodeFunction> functions = new Vector<SimCodeFunction>(); private Vector<SimCodeFunction> functions = new Vector<SimCodeFunction>();
private long startTime = 0;
public Arduino(GUI _gui) { public Arduino(GUI _gui) {
gui = _gui; gui = _gui;
...@@ -33,7 +32,6 @@ public class Arduino { ...@@ -33,7 +32,6 @@ public class Arduino {
vars.lastElement().setValue(_value); vars.lastElement().setValue(_value);
} }
public boolean setVariable(String _name, Object _value) { public boolean setVariable(String _name, Object _value) {
for (Variable var : vars) { for (Variable var : vars) {
if (var.getName() == _name) { if (var.getName() == _name) {
...@@ -53,7 +51,6 @@ public class Arduino { ...@@ -53,7 +51,6 @@ public class Arduino {
} }
} }
return null; return null;
} }
...@@ -104,6 +101,14 @@ public class Arduino { ...@@ -104,6 +101,14 @@ public class Arduino {
functions.add(function); functions.add(function);
} }
public void setStartTime() {
startTime = System.currentTimeMillis();
}
public int getMillis() {
return (int) (System.currentTimeMillis() - startTime);
}
public SimCodeFunction getFunction(String name) { public SimCodeFunction getFunction(String name) {
for (SimCodeFunction function : functions) { for (SimCodeFunction function : functions) {
if (function.getName() == name) { if (function.getName() == name) {
......
...@@ -16,7 +16,6 @@ public abstract class SimCode { ...@@ -16,7 +16,6 @@ public abstract class SimCode {
public abstract SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead); public abstract SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead);
public void setArguments(Vector<Object> _arguments) { public void setArguments(Vector<Object> _arguments) {
arguments = _arguments; arguments = _arguments;
} }
......
...@@ -21,6 +21,7 @@ public class SimCodeFunction { ...@@ -21,6 +21,7 @@ public class SimCodeFunction {
name = _name; name = _name;
codeBlocks = vec; codeBlocks = vec;
} }
public void run(Arduino ArduinoClass, SimCodeFunction functionHead) { public void run(Arduino ArduinoClass, SimCodeFunction functionHead) {
vars = new Vector<Variable>(); vars = new Vector<Variable>();
for (SimCode code : codeBlocks) { for (SimCode code : codeBlocks) {
...@@ -38,8 +39,6 @@ public class SimCodeFunction { ...@@ -38,8 +39,6 @@ public class SimCodeFunction {
vars.lastElement().setValue(_value); vars.lastElement().setValue(_value);
} }
public boolean setVariable(String _name, Object _value) { public boolean setVariable(String _name, Object _value) {
for (Variable var : vars) { for (Variable var : vars) {
if (var.getName() == _name) { if (var.getName() == _name) {
...@@ -59,10 +58,7 @@ public Object readVariable(String _name) { ...@@ -59,10 +58,7 @@ public Object readVariable(String _name) {
} }
} }
return null; return null;
} }
} }
/**
*
*/
package tec.letsgoing.ardublock.simulator.simcode.blocks;
import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeString;
/**
* @author Lucas
*
*/
public class CodeConnectString extends SimCode {
private SimCode block1, block2;
String out;
public CodeConnectString(SimCode _block1, SimCode _block2) {
block1 = _block1;
block2 = _block2;
}
@Override
public CodeString run(Arduino ArduinoClass, SimCodeFunction functionHead) {
out = block1.run(ArduinoClass, functionHead).toString() + block2.run(ArduinoClass, functionHead).toString();
return new CodeString(out);
}
@Override
public String toString() {
return out;
}
}
...@@ -6,20 +6,21 @@ package tec.letsgoing.ardublock.simulator.simcode.blocks; ...@@ -6,20 +6,21 @@ package tec.letsgoing.ardublock.simulator.simcode.blocks;
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.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeDouble;
/** /**
* @author Lucas * @author Lucas
* *
*/ */
public class CodeDelay extends SimCode { public class CodeDelay extends SimCode {
int duration = 0; CodeDouble codeBlock;
public CodeDelay(int _delay) { public CodeDelay(CodeDouble _codeBlock) {
duration = _delay; codeBlock = _codeBlock;
} }
public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) { public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) {
ArduinoClass.serialPrint("Sleep for: " + duration); int duration = (int) codeBlock.run(ArduinoClass, functionHead).getValue();
try { try {
Thread.sleep(duration); Thread.sleep(duration);
} catch (InterruptedException e) { } catch (InterruptedException e) {
......
...@@ -4,25 +4,27 @@ ...@@ -4,25 +4,27 @@
package tec.letsgoing.ardublock.simulator.simcode.blocks; package tec.letsgoing.ardublock.simulator.simcode.blocks;
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.simcode.SimCode; import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction; import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeBool;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeDouble;
/** /**
* @author Lucas * @author Lucas
* *
*/ */
public class CodeDigitalWrite extends SimCode { public class CodeDigitalWrite extends SimCode {
int pin = 0; CodeDouble pin;
boolean value = false; CodeBool value;
public CodeDigitalWrite(int _pin, boolean _value) { public CodeDigitalWrite(CodeDouble _pin, CodeBool _value) {
pin = _pin; pin = _pin;
value = _value; value = _value;
} }
public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) { public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) {
ArduinoClass.digitalWrite(pin, value); ArduinoClass.digitalWrite((int) pin.run(ArduinoClass, functionHead).getValue(),
value.run(ArduinoClass, functionHead).getValue());
return null; return null;
} }
......
...@@ -17,11 +17,13 @@ public class CodeExecuteFunction extends SimCode { ...@@ -17,11 +17,13 @@ public class CodeExecuteFunction extends SimCode {
public CodeExecuteFunction(String _name) { public CodeExecuteFunction(String _name) {
name = _name; name = _name;
} }
@Override @Override
public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) { public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) {
ArduinoClass.getFunction(name).run(ArduinoClass, null); ArduinoClass.getFunction(name).run(ArduinoClass, functionHead);
return null; return null;
} }
@Override @Override
public String toString() { public String toString() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
......
/**
*
*/
package tec.letsgoing.ardublock.simulator.simcode.blocks;
import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeDouble;
/**
* @author Lucas
*
*/
public class CodeMillis extends SimCode {
@Override
public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) {
return new CodeDouble(ArduinoClass.getMillis());
}
@Override
public String toString() {
// TODO Auto-generated method stub
return null;
}
}
...@@ -6,21 +6,28 @@ package tec.letsgoing.ardublock.simulator.simcode.blocks; ...@@ -6,21 +6,28 @@ package tec.letsgoing.ardublock.simulator.simcode.blocks;
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.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeBool;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeString;
/** /**
* @author Lucas * @author Lucas
* *
*/ */
public class CodeSerialPrint extends SimCode { public class CodeSerialPrint extends SimCode {
private String content; private CodeString stringBlock;
private CodeBool boolBlock;
public CodeSerialPrint(String _content, boolean _lineEnding) { public CodeSerialPrint(CodeString _stringBlock, CodeBool _boolBlock) {
content = _content; stringBlock = _stringBlock;
if (_lineEnding) content+="\n"; boolBlock = _boolBlock;
} }
public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) { public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) {
String content;
content = stringBlock.run(ArduinoClass, functionHead).toString();
if (boolBlock.run(ArduinoClass, functionHead).getValue()) {
content += "\n";
}
ArduinoClass.serialPrint(content); ArduinoClass.serialPrint(content);
return null; return null;
......
...@@ -19,11 +19,13 @@ public class CodeBool extends SimCode { ...@@ -19,11 +19,13 @@ public class CodeBool extends SimCode {
public CodeBool(boolean _value) { public CodeBool(boolean _value) {
value = _value; value = _value;
} }
public CodeBool(SimCode block) { public CodeBool(SimCode block) {
followBlock = block; followBlock = block;
} }
@Override @Override
public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) { public CodeBool run(Arduino ArduinoClass, SimCodeFunction functionHead) {
if (followBlock instanceof SimCode) { if (followBlock instanceof SimCode) {
CodeBool ret = (CodeBool) followBlock.run(ArduinoClass, functionHead); CodeBool ret = (CodeBool) followBlock.run(ArduinoClass, functionHead);
value = ret.getValue(); value = ret.getValue();
...@@ -35,6 +37,7 @@ public class CodeBool extends SimCode { ...@@ -35,6 +37,7 @@ public class CodeBool extends SimCode {
public String toString() { public String toString() {
return String.valueOf(value); return String.valueOf(value);
} }
public boolean getValue() { public boolean getValue() {
return value; return value;
} }
......
...@@ -7,6 +7,8 @@ import tec.letsgoing.ardublock.simulator.arduino.Arduino; ...@@ -7,6 +7,8 @@ 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.SimCodeFunction;
//FIXME ist alles ein INT?
/** /**
* @author Lucas * @author Lucas
* *
...@@ -18,11 +20,13 @@ public class CodeDouble extends SimCode { ...@@ -18,11 +20,13 @@ public class CodeDouble extends SimCode {
public CodeDouble(double _value) { public CodeDouble(double _value) {
value = _value; value = _value;
} }
public CodeDouble(SimCode block) { public CodeDouble(SimCode block) {
followBlock = block; followBlock = block;
} }
@Override @Override
public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) { public CodeDouble run(Arduino ArduinoClass, SimCodeFunction functionHead) {
if (followBlock instanceof SimCode) { if (followBlock instanceof SimCode) {
CodeDouble ret = (CodeDouble) followBlock.run(ArduinoClass, functionHead); CodeDouble ret = (CodeDouble) followBlock.run(ArduinoClass, functionHead);
value = ret.getValue(); value = ret.getValue();
...@@ -30,6 +34,7 @@ public class CodeDouble extends SimCode { ...@@ -30,6 +34,7 @@ public class CodeDouble extends SimCode {
return new CodeDouble(value); return new CodeDouble(value);
} }
@Override @Override
public String toString() { public String toString() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
...@@ -40,5 +45,4 @@ public class CodeDouble extends SimCode { ...@@ -40,5 +45,4 @@ public class CodeDouble extends SimCode {
return value; return value;
} }
} }
...@@ -18,14 +18,16 @@ public class CodeString extends SimCode { ...@@ -18,14 +18,16 @@ public class CodeString extends SimCode {
public CodeString(String _content) { public CodeString(String _content) {
content = _content; content = _content;
} }
public CodeString(SimCode block) { public CodeString(SimCode block) {
followBlock = block; followBlock = block;
} }
@Override @Override
public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) { public CodeString run(Arduino ArduinoClass, SimCodeFunction functionHead) {
if (followBlock instanceof SimCode) { if (followBlock instanceof SimCode) {
SimCode ret = followBlock.run(ArduinoClass, functionHead); SimCode ret = followBlock.run(ArduinoClass, functionHead);
content=((CodeString)ret).toString(); content = ret.toString();
} }
return new CodeString(content); return new CodeString(content);
} }
......
/**
*
*/
package tec.letsgoing.ardublock.simulator.simcode.math;
import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeDouble;
/**
* @author Lucas
*
*/
public class CodeAdd extends SimCode {
CodeDouble block1, block2;
Double out;
public CodeAdd(CodeDouble _block1, CodeDouble _block2) {
block1 = _block1;
block2 = _block2;
}
@Override
public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) {
out = block1.run(ArduinoClass, functionHead).getValue() + block2.run(ArduinoClass, functionHead).getValue();
return new CodeDouble(out);
}
@Override
public String toString() {
return String.valueOf(out);
}
}
/**
*
*/
package tec.letsgoing.ardublock.simulator.simcode.math;
import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeDouble;
/**
* @author Lucas
*
*/
public class CodeDivison extends SimCode {
CodeDouble block1, block2;
Double out;
public CodeDivison(CodeDouble _block1, CodeDouble _block2) {
block1 = _block1;
block2 = _block2;
}
@Override
public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) {
out = block1.run(ArduinoClass, functionHead).getValue() / block2.run(ArduinoClass, functionHead).getValue();
return new CodeDouble(out);
}
@Override
public String toString() {
return String.valueOf(out);
}
}
/**
*
*/
package tec.letsgoing.ardublock.simulator.simcode.math;
import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeDouble;
/**
* @author Lucas
*
*/
public class CodeMinus extends SimCode {
CodeDouble block1, block2;
Double out;
public CodeMinus(CodeDouble _block1, CodeDouble _block2) {
block1 = _block1;
block2 = _block2;
}
@Override
public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) {
out = block1.run(ArduinoClass, functionHead).getValue() - block2.run(ArduinoClass, functionHead).getValue();
return new CodeDouble(out);
}
@Override
public String toString() {
return String.valueOf(out);
}
}
/**
*
*/
package tec.letsgoing.ardublock.simulator.simcode.math;
import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeDouble;
/**
* @author Lucas
*
*/
public class CodeModulo extends SimCode {
CodeDouble block1, block2;
Double out;
public CodeModulo(CodeDouble _block1, CodeDouble _block2) {
block1 = _block1;
block2 = _block2;
}
@Override
public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) {
out = block1.run(ArduinoClass, functionHead).getValue() % block2.run(ArduinoClass, functionHead).getValue();
return new CodeDouble(out);
}
@Override
public String toString() {
return String.valueOf(out);
}
}
/**
*
*/
package tec.letsgoing.ardublock.simulator.simcode.math;
import tec.letsgoing.ardublock.simulator.arduino.Arduino;
import tec.letsgoing.ardublock.simulator.simcode.SimCode;
import tec.letsgoing.ardublock.simulator.simcode.SimCodeFunction;
import tec.letsgoing.ardublock.simulator.simcode.datatypes.CodeDouble;
/**
* @author Lucas
*
*/
public class CodeProduct extends SimCode {
CodeDouble block1, block2;
Double out;
public CodeProduct(CodeDouble _block1, CodeDouble _block2) {
block1 = _block1;
block2 = _block2;
}
@Override
public SimCode run(Arduino ArduinoClass, SimCodeFunction functionHead) {
out = block1.run(ArduinoClass, functionHead).getValue() * block2.run(ArduinoClass, functionHead).getValue();
return new CodeDouble(out);
}
@Override
public String toString() {
return String.valueOf(out);
}
}
...@@ -5,7 +5,6 @@ package tec.letsgoing.ardublock.simulator.view; ...@@ -5,7 +5,6 @@ package tec.letsgoing.ardublock.simulator.view;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Color; import java.awt.Color;
import java.awt.Component;
import java.awt.Container; import java.awt.Container;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Font; import java.awt.Font;
...@@ -20,10 +19,8 @@ import javax.swing.JButton; ...@@ -20,10 +19,8 @@ import javax.swing.JButton;
import javax.swing.JCheckBox; import javax.swing.JCheckBox;
import javax.swing.JFrame; import javax.swing.JFrame;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import javax.swing.JTextArea; import javax.swing.JTextArea;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultCaret; import javax.swing.text.DefaultCaret;
import tec.letsgoing.ardublock.simulator.Simulator; import tec.letsgoing.ardublock.simulator.Simulator;
......
...@@ -8,7 +8,6 @@ import java.awt.Dimension; ...@@ -8,7 +8,6 @@ import java.awt.Dimension;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Image; import java.awt.Image;
import java.util.Observable;
import javax.swing.ImageIcon; import javax.swing.ImageIcon;
import javax.swing.JButton; import javax.swing.JButton;
...@@ -33,7 +32,7 @@ public class ArduinoUno extends Modul { ...@@ -33,7 +32,7 @@ public class ArduinoUno extends Modul {
chipIcon = new ImageIcon(chipIcon.getImage().getScaledInstance(587, 418, Image.SCALE_SMOOTH)); chipIcon = new ImageIcon(chipIcon.getImage().getScaledInstance(587, 418, Image.SCALE_SMOOTH));
chiplabel.setIcon(chipIcon); chiplabel.setIcon(chipIcon);
chiplabel.setSize(587, 418); chiplabel.setSize(587, 418);
layerpane.add(chiplabel, 2); layerpane.add(chiplabel, 0);
JLabel labelPower = new JLabel() { JLabel labelPower = new JLabel() {
@Override @Override
...@@ -64,7 +63,7 @@ public class ArduinoUno extends Modul { ...@@ -64,7 +63,7 @@ public class ArduinoUno extends Modul {
label13.setLocation(257, 89); label13.setLocation(257, 89);
label13.setSize(20, 20); label13.setSize(20, 20);
layerpane.add(label13, 1); // TODO Strange different Order doesnt work layerpane.add(label13, 0);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment