From 78e205f31aeccbdab21b5e51e1395faa8144f7bf Mon Sep 17 00:00:00 2001 From: Lucas Stratmann <lucas.stratmann@student.reutlingen-university.de> Date: Tue, 6 Oct 2020 20:34:04 +0200 Subject: [PATCH] Big change for Variablehandling - UML is outdated --- .../ardublock/simulator/simcode/SimCode.java | 49 ++++++++++++++- .../simcode/comm/CodeConnectString.java | 2 +- .../simcode/comm/CodeSerialPrint.java | 2 +- .../simulator/simcode/control/CodeDelay.java | 2 +- .../simulator/simcode/control/CodeElse.java | 8 ++- .../simulator/simcode/control/CodeElseIf.java | 8 ++- .../simulator/simcode/control/CodeFor.java | 8 ++- .../simcode/control/CodeForCount.java | 13 ++-- .../simulator/simcode/control/CodeIf.java | 8 ++- .../simulator/simcode/control/CodeWhile.java | 8 ++- .../simcode/control/CodeWhileMillis.java | 10 +++- .../simcode/datatypes/SimTypeBool.java | 2 +- .../simcode/datatypes/SimTypeIf.java | 2 +- .../simcode/datatypes/SimTypeInt.java | 2 +- .../simcode/datatypes/SimTypeString.java | 2 +- .../functions/CodeExecuteFunction.java | 2 +- .../simcode/functions/SimCodeFunction.java | 60 +++---------------- .../simulator/simcode/io/CodeAnalogRead.java | 2 +- .../simulator/simcode/io/CodeAnalogWrite.java | 2 +- .../simulator/simcode/io/CodeDigitalRead.java | 2 +- .../simcode/io/CodeDigitalWrite.java | 2 +- .../simulator/simcode/logic/CodeAND.java | 2 +- .../simcode/logic/CodeBoolEqual.java | 2 +- .../simcode/logic/CodeBoolUnequal.java | 2 +- .../simcode/logic/CodeIntBigger.java | 2 +- .../simcode/logic/CodeIntBiggerEqual.java | 2 +- .../simulator/simcode/logic/CodeIntEqual.java | 2 +- .../simcode/logic/CodeIntSmaller.java | 2 +- .../simcode/logic/CodeIntSmallerEqual.java | 2 +- .../simcode/logic/CodeIntUnequal.java | 2 +- .../simulator/simcode/logic/CodeNOT.java | 2 +- .../simulator/simcode/logic/CodeOR.java | 2 +- .../simcode/logic/CodeStringEqual.java | 2 +- .../simcode/logic/CodeStringUnequal.java | 2 +- .../simulator/simcode/math/CodeAbs.java | 2 +- .../simulator/simcode/math/CodeAdd.java | 2 +- .../simulator/simcode/math/CodeDivison.java | 2 +- .../simulator/simcode/math/CodeLimit.java | 2 +- .../simulator/simcode/math/CodeMap.java | 2 +- .../simulator/simcode/math/CodeMap10to8.java | 2 +- .../simulator/simcode/math/CodeMax.java | 2 +- .../simulator/simcode/math/CodeMin.java | 2 +- .../simulator/simcode/math/CodeMinus.java | 2 +- .../simulator/simcode/math/CodeModulo.java | 2 +- .../simulator/simcode/math/CodeProduct.java | 2 +- .../simulator/simcode/math/CodeRandMax.java | 2 +- .../simcode/math/CodeRandMinMax.java | 2 +- .../simcode/vars/CodeBoolCreate.java | 2 +- .../simulator/simcode/vars/CodeBoolGet.java | 4 +- .../simulator/simcode/vars/CodeBoolSet.java | 2 +- .../simulator/simcode/vars/CodeIntCreate.java | 2 +- .../simulator/simcode/vars/CodeIntGet.java | 2 +- .../simulator/simcode/vars/CodeIntSet.java | 2 +- .../simulator/simcode/vars/CodeMillis.java | 2 +- 54 files changed, 146 insertions(+), 118 deletions(-) diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/SimCode.java b/src/tec/letsgoing/ardublock/simulator/simcode/SimCode.java index 18c7105..5c90307 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/SimCode.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/SimCode.java @@ -3,7 +3,10 @@ */ package tec.letsgoing.ardublock.simulator.simcode; +import java.util.Vector; + import tec.letsgoing.ardublock.simulator.arduino.Arduino; +import tec.letsgoing.ardublock.simulator.arduino.Variable; import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction; /** @@ -17,6 +20,10 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction; * */ public abstract class SimCode { + protected Vector<Variable> vars = new Vector<Variable>(); + protected boolean isMain = false; + protected Arduino arduino; + protected SimCode prevStack=null; /** * Hauptaufruf, welcher während der Simulation ausgeführt wird. Dieser enthält die komplette Logik des Blocks. @@ -24,8 +31,48 @@ public abstract class SimCode { * @param functionHead Aktueller Funktionskopf um lokale Variablen zu ermöglichen. * @return Ein SimCode Objekt sollte eines als "Ergebnis" entstehen. Ansonsten null */ - public abstract SimCode run(Arduino _arduino, SimCodeFunction functionHead); + public abstract SimCode run(Arduino _arduino, SimCode functionHead); public abstract String toString(); + + public void createVariable(String _name, SimCode _value) { + if (!isMain) { + vars.add(new Variable(_name)); + vars.lastElement().setValue(_value); + } else { + arduino.createVariable(_name, _value); + } + } + + public boolean setVariable(String _name, SimCode _value) { + for (Variable var : vars) { + if (var.getName().equals(_name)) { + var.setValue(_value); + return true; + } + } + if (prevStack!=null) { + if(prevStack.setVariable(_name, _value)) + return true; + } + if (arduino.setVariable(_name, _value)) + return true; + + return false; + } + + public SimCode readVariable(String _name) { + + for (Variable var : vars) { + if (var.getName().equals(_name)) { + return var.getValue(); + } + } + if (prevStack!=null) { + return prevStack.readVariable(_name); + } + return arduino.readVariable(_name); + + } } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java index e53a56b..454d740 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java @@ -26,7 +26,7 @@ public class CodeConnectString extends SimCode { } @Override - public SimTypeString run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeString run(Arduino _arduino, SimCode functionHead) { // TODO Added Space between to Inputs out = "" + block1.run(_arduino, functionHead).toString() + " " + block2.run(_arduino, functionHead).toString(); return new SimTypeString(out); diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeSerialPrint.java b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeSerialPrint.java index 89fa78d..234dc85 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeSerialPrint.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeSerialPrint.java @@ -25,7 +25,7 @@ public class CodeSerialPrint extends SimCode { boolBlock = _boolBlock; } - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { String content; content = stringBlock.run(_arduino, functionHead).toString(); if (boolBlock.run(_arduino, functionHead).getValue()) { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeDelay.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeDelay.java index c9956a4..4da7881 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeDelay.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeDelay.java @@ -21,7 +21,7 @@ public class CodeDelay extends SimCode { codeBlock = _codeBlock; } - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { int duration = (int) codeBlock.run(_arduino, functionHead).getValue(); if (!_arduino.getStop()) { try { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElse.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElse.java index 5fa4212..c8779be 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElse.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElse.java @@ -6,6 +6,7 @@ package tec.letsgoing.ardublock.simulator.simcode.control; import java.util.Vector; 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.datatypes.SimTypeIf; import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction; @@ -25,10 +26,13 @@ public class CodeElse extends SimTypeIf { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { + super.prevStack=functionHead; + super.arduino=_arduino; + super.vars = new Vector<Variable>(); for (SimCode block : codeBlocks) { - block.run(_arduino, functionHead); + block.run(_arduino, this); } return null; diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElseIf.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElseIf.java index ab0984a..929f80c 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElseIf.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElseIf.java @@ -6,6 +6,7 @@ package tec.letsgoing.ardublock.simulator.simcode.control; import java.util.Vector; 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.datatypes.SimTypeBool; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeIf; @@ -29,11 +30,14 @@ public class CodeElseIf extends SimTypeIf { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (condition.run(_arduino, functionHead).getValue()) { // Condition met. + super.prevStack=functionHead; + super.arduino=_arduino; + super.vars = new Vector<Variable>(); for (SimCode block : codeBlocks) { - block.run(_arduino, functionHead); + block.run(_arduino, this); } return null; } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeFor.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeFor.java index 3ed8ae1..808612d 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeFor.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeFor.java @@ -6,6 +6,7 @@ package tec.letsgoing.ardublock.simulator.simcode.control; import java.util.Vector; 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.datatypes.SimTypeInt; import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction; @@ -27,10 +28,13 @@ public class CodeFor extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { + super.prevStack=functionHead; + super.arduino=_arduino; + super.vars = new Vector<Variable>(); for (int i = 0; i < count.run(_arduino, functionHead).getValue(); i++) { for (SimCode code : codeBlocks) { - code.run(_arduino, functionHead); + code.run(_arduino, this); } } return null; diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java index 97ca796..24b4faf 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java @@ -6,6 +6,7 @@ package tec.letsgoing.ardublock.simulator.simcode.control; import java.util.Vector; 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.datatypes.SimTypeInt; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString; @@ -29,14 +30,16 @@ public class CodeForCount extends SimCode { codeblocks = _blocks; } - // TODO For/While Mit Vars ausrüsten @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { - functionHead.createVariable(varname.toString(), new SimTypeInt(0)); + public SimCode run(Arduino _arduino, SimCode functionHead) { + super.prevStack=functionHead; + super.arduino=_arduino; + super.vars = new Vector<Variable>(); + this.createVariable(varname.toString(), new SimTypeInt(0)); for (int i = 0; i < count.run(_arduino, functionHead).getValue(); i++) { - functionHead.setVariable(varname.toString(), new SimTypeInt(i)); + this.setVariable(varname.toString(), new SimTypeInt(i)); for (SimCode block : codeblocks) { - block.run(_arduino, functionHead); + block.run(_arduino, this); } } return null; diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java index 7354a98..a1e56c1 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java @@ -6,6 +6,7 @@ package tec.letsgoing.ardublock.simulator.simcode.control; import java.util.Vector; 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.datatypes.SimTypeBool; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeIf; @@ -32,10 +33,13 @@ public class CodeIf extends SimTypeIf { /** * Returns True if the Condition is met or false if it isnt */ - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { if (condition.run(_arduino, functionHead).getValue()) { + super.prevStack=functionHead; + super.arduino=_arduino; + super.vars = new Vector<Variable>(); for (SimCode block : codeBlocks) { - block.run(_arduino, functionHead); + block.run(_arduino, this); } return null;// True Case } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhile.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhile.java index a08883e..901a0f3 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhile.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhile.java @@ -6,6 +6,7 @@ package tec.letsgoing.ardublock.simulator.simcode.control; import java.util.Vector; 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.datatypes.SimTypeBool; import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction; @@ -26,10 +27,13 @@ public class CodeWhile extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { while (!_arduino.getStop() && condition.run(_arduino, functionHead).getValue()) { + super.prevStack=functionHead; + super.arduino=_arduino; + super.vars = new Vector<Variable>(); for (SimCode code : codeBlocks) { - code.run(_arduino, functionHead); + code.run(_arduino, this); } } return null; diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhileMillis.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhileMillis.java index 2d798d5..47dd3a5 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhileMillis.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhileMillis.java @@ -6,6 +6,7 @@ package tec.letsgoing.ardublock.simulator.simcode.control; import java.util.Vector; 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.datatypes.SimTypeInt; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString; @@ -30,14 +31,17 @@ public class CodeWhileMillis extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { - functionHead.createVariable(varname.toString(), new SimTypeInt(_arduino.getMillis())); + public SimCode run(Arduino _arduino, SimCode functionHead) { + super.prevStack=functionHead; + super.arduino=_arduino; + super.vars = new Vector<Variable>(); + this.setVariable(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); + block.run(_arduino, this); } } return null; diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java index ea4d295..2e86f96 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java @@ -26,7 +26,7 @@ public class SimTypeBool extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (followBlock instanceof SimCode) { SimTypeBool ret = (SimTypeBool) followBlock.run(_arduino, functionHead); value = ret.getValue(); diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeIf.java b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeIf.java index 3ab3d48..0efd6b4 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeIf.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeIf.java @@ -18,7 +18,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction; public abstract class SimTypeIf extends SimCode { @Override - public abstract SimCode run(Arduino _arduino, SimCodeFunction functionHead); + public abstract SimCode run(Arduino _arduino, SimCode functionHead); @Override public abstract String toString(); diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeInt.java b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeInt.java index 1c91f63..d6e4554 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeInt.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeInt.java @@ -26,7 +26,7 @@ public class SimTypeInt extends SimCode { } @Override - public SimTypeInt run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeInt run(Arduino _arduino, SimCode functionHead) { if (followBlock instanceof SimCode) { SimTypeInt ret = (SimTypeInt) followBlock.run(_arduino, functionHead); value = ret.getValue(); diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeString.java b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeString.java index 39fac7a..cb79ed0 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeString.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeString.java @@ -26,7 +26,7 @@ public class SimTypeString extends SimCode { } @Override - public SimTypeString run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeString run(Arduino _arduino, SimCode functionHead) { if (followBlock instanceof SimCode) { SimCode ret = followBlock.run(_arduino, functionHead); content = ret.toString(); diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/functions/CodeExecuteFunction.java b/src/tec/letsgoing/ardublock/simulator/simcode/functions/CodeExecuteFunction.java index a0f876f..b33ebce 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/functions/CodeExecuteFunction.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/functions/CodeExecuteFunction.java @@ -20,7 +20,7 @@ public class CodeExecuteFunction extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { _arduino.getFunction(name).run(_arduino, functionHead); return null; } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/functions/SimCodeFunction.java b/src/tec/letsgoing/ardublock/simulator/simcode/functions/SimCodeFunction.java index 25171c6..c859444 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/functions/SimCodeFunction.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/functions/SimCodeFunction.java @@ -16,31 +16,25 @@ import tec.letsgoing.ardublock.simulator.simcode.SimCode; * */ public class SimCodeFunction extends SimCode { - // FIXME Jede Variable ist "lokal" = dem nächst höheren Funktionsaufruf - // zugeordnet, während Ardublock global ist. - // FIXME Auch machen IF und While keine neuen Stacks auf sondern schieben Ihre - // Variabeln auch in den "Loop" Block private String name; private Vector<SimCode> codeBlocks = new Vector<SimCode>(); - private Vector<Variable> vars = new Vector<Variable>(); - private boolean isMain = false; - private Arduino arduino; - private SimCodeFunction prevStack=null; + + public SimCodeFunction(String _name, Vector<SimCode> vec) { name = _name; codeBlocks = vec; } - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { if (functionHead == null) { - isMain = true; + super.isMain = true; } else { - prevStack=functionHead; + super.prevStack=functionHead; } - this.arduino = _arduino; - vars = new Vector<Variable>(); + super.arduino = _arduino; + super.vars = new Vector<Variable>(); for (SimCode code : codeBlocks) { code.run(_arduino, this); } @@ -51,45 +45,7 @@ public class SimCodeFunction extends SimCode { return name; } - public void createVariable(String _name, SimCode _value) { - if (!isMain) { - vars.add(new Variable(_name)); - vars.lastElement().setValue(_value); - } else { - arduino.createVariable(_name, _value); - } - } - - public boolean setVariable(String _name, SimCode _value) { - for (Variable var : vars) { - if (var.getName().equals(_name)) { - var.setValue(_value); - return true; - } - } - if (prevStack!=null) { - if(prevStack.setVariable(_name, _value)) - return true; - } - if (arduino.setVariable(_name, _value)) - return true; - - return false; - } - - public SimCode readVariable(String _name) { - - for (Variable var : vars) { - if (var.getName().equals(_name)) { - return var.getValue(); - } - } - if (prevStack!=null) { - return prevStack.readVariable(_name); - } - return arduino.readVariable(_name); - - } + @Override public String toString() { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogRead.java b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogRead.java index 27ba239..13aa62a 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogRead.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogRead.java @@ -22,7 +22,7 @@ public class CodeAnalogRead extends SimCode { } @Override - public SimTypeInt run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeInt run(Arduino _arduino, SimCode functionHead) { int ans = _arduino.analogRead(pin.run(_arduino, functionHead).getValue()); return new SimTypeInt(ans); } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogWrite.java b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogWrite.java index 974f531..7ded6d0 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogWrite.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogWrite.java @@ -24,7 +24,7 @@ public class CodeAnalogWrite extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { _arduino.analogWrite(pin.run(_arduino, functionHead).getValue(), value.run(_arduino, functionHead).getValue()); return null; } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalRead.java b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalRead.java index 9d291e0..2da3999 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalRead.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalRead.java @@ -23,7 +23,7 @@ public class CodeDigitalRead extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { boolean ans = _arduino.digitalRead(pin.run(_arduino, functionHead).getValue()); return new SimTypeBool(ans); } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalWrite.java b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalWrite.java index 989930c..af4acbf 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalWrite.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalWrite.java @@ -24,7 +24,7 @@ public class CodeDigitalWrite extends SimCode { value = _value; } - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { _arduino.digitalWrite((int) pin.run(_arduino, functionHead).getValue(), value.run(_arduino, functionHead).getValue()); return null; diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeAND.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeAND.java index 9af25c8..540221a 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeAND.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeAND.java @@ -24,7 +24,7 @@ public class CodeAND extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (b1.run(_arduino, functionHead).getValue() && b2.run(_arduino, functionHead).getValue()) { return new SimTypeBool(true); } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolEqual.java index a315e41..c2fcfb5 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolEqual.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolEqual.java @@ -24,7 +24,7 @@ public class CodeBoolEqual extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (b1.run(_arduino, functionHead).getValue() == b2.run(_arduino, functionHead).getValue()) { return new SimTypeBool(true); } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolUnequal.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolUnequal.java index 1334835..f962ace 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolUnequal.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolUnequal.java @@ -24,7 +24,7 @@ public class CodeBoolUnequal extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (b1.run(_arduino, functionHead).getValue() != b2.run(_arduino, functionHead).getValue()) { return new SimTypeBool(true); } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBigger.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBigger.java index 76df1b6..03d880f 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBigger.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBigger.java @@ -25,7 +25,7 @@ public class CodeIntBigger extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (b1.run(_arduino, functionHead).getValue() > b2.run(_arduino, functionHead).getValue()) { return new SimTypeBool(true); } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBiggerEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBiggerEqual.java index fcaf93e..31e6aab 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBiggerEqual.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBiggerEqual.java @@ -25,7 +25,7 @@ public class CodeIntBiggerEqual extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (b1.run(_arduino, functionHead).getValue() >= b2.run(_arduino, functionHead).getValue()) { return new SimTypeBool(true); } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntEqual.java index fde07fd..b5618de 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntEqual.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntEqual.java @@ -25,7 +25,7 @@ public class CodeIntEqual extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (b1.run(_arduino, functionHead).getValue() == b2.run(_arduino, functionHead).getValue()) { return new SimTypeBool(true); } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmaller.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmaller.java index 3ed7851..d3c833d 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmaller.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmaller.java @@ -25,7 +25,7 @@ public class CodeIntSmaller extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (b1.run(_arduino, functionHead).getValue() < b2.run(_arduino, functionHead).getValue()) { return new SimTypeBool(true); } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmallerEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmallerEqual.java index 8025864..5247e7a 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmallerEqual.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmallerEqual.java @@ -25,7 +25,7 @@ public class CodeIntSmallerEqual extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (b1.run(_arduino, functionHead).getValue() <= b2.run(_arduino, functionHead).getValue()) { return new SimTypeBool(true); } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntUnequal.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntUnequal.java index c9ce10c..18a0c4d 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntUnequal.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntUnequal.java @@ -25,7 +25,7 @@ public class CodeIntUnequal extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (b1.run(_arduino, functionHead).getValue() != b2.run(_arduino, functionHead).getValue()) { return new SimTypeBool(true); } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java index ed0629a..d76be9d 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java @@ -22,7 +22,7 @@ public class CodeNOT extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (!b1.run(_arduino, functionHead).getValue()) { return new SimTypeBool(true); } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeOR.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeOR.java index 68d8568..e5eb077 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeOR.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeOR.java @@ -24,7 +24,7 @@ public class CodeOR extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (b1.run(_arduino, functionHead).getValue() || b2.run(_arduino, functionHead).getValue()) { return new SimTypeBool(true); } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java index a350363..79fd105 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java @@ -25,7 +25,7 @@ public class CodeStringEqual extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (b1.run(_arduino, functionHead).toString().equals(b2.run(_arduino, functionHead).toString())) { return new SimTypeBool(true); } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java index d74a969..9b8b331 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java @@ -25,7 +25,7 @@ public class CodeStringUnequal extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { if (!b1.run(_arduino, functionHead).toString().equals(b2.run(_arduino, functionHead).toString())) { return new SimTypeBool(true); } else { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAbs.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAbs.java index 3ebb920..3825236 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAbs.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAbs.java @@ -22,7 +22,7 @@ public class CodeAbs extends SimCode { } @Override - public SimTypeInt run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeInt run(Arduino _arduino, SimCode functionHead) { return new SimTypeInt(Math.abs(value.run(_arduino, functionHead).getValue())); } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAdd.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAdd.java index 42eb37c..c3496b0 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAdd.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAdd.java @@ -24,7 +24,7 @@ public class CodeAdd extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { out = block1.run(_arduino, functionHead).getValue() + block2.run(_arduino, functionHead).getValue(); return new SimTypeInt(out); } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeDivison.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeDivison.java index 6d09733..56d8ae0 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeDivison.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeDivison.java @@ -24,7 +24,7 @@ public class CodeDivison extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { out = block1.run(_arduino, functionHead).getValue() / block2.run(_arduino, functionHead).getValue(); return new SimTypeInt(out); } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeLimit.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeLimit.java index 9ab9220..89b7cf2 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeLimit.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeLimit.java @@ -26,7 +26,7 @@ public class CodeLimit extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { int v = value.run(_arduino, functionHead).getValue(); int low = lowerLimit.run(_arduino, functionHead).getValue(); int high = upperLimit.run(_arduino, functionHead).getValue(); diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java index 2142d69..7ba4cc4 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java @@ -38,7 +38,7 @@ public class CodeMap extends SimCode { } @Override - public SimTypeInt run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeInt run(Arduino _arduino, SimCode functionHead) { float v = value.run(_arduino, functionHead).getValue(); float fL = fromLow.run(_arduino, functionHead).getValue(); float fH = fromHigh.run(_arduino, functionHead).getValue(); diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap10to8.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap10to8.java index be723a4..8268abd 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap10to8.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap10to8.java @@ -23,7 +23,7 @@ public class CodeMap10to8 extends SimCode { } @Override - public SimTypeInt run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeInt run(Arduino _arduino, SimCode functionHead) { return new SimTypeInt(value.run(_arduino, functionHead).getValue() / 4); } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMax.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMax.java index 66e257d..65a161f 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMax.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMax.java @@ -24,7 +24,7 @@ public class CodeMax extends SimCode { } @Override - public SimTypeInt run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeInt run(Arduino _arduino, SimCode functionHead) { return new SimTypeInt( Math.max(block1.run(_arduino, functionHead).getValue(), block2.run(_arduino, functionHead).getValue())); } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMin.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMin.java index 5a62b0b..163cfc8 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMin.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMin.java @@ -24,7 +24,7 @@ public class CodeMin extends SimCode { } @Override - public SimTypeInt run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeInt run(Arduino _arduino, SimCode functionHead) { return new SimTypeInt( Math.min(block1.run(_arduino, functionHead).getValue(), block2.run(_arduino, functionHead).getValue())); } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMinus.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMinus.java index 3e75427..71cc36b 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMinus.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMinus.java @@ -24,7 +24,7 @@ public class CodeMinus extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { out = block1.run(_arduino, functionHead).getValue() - block2.run(_arduino, functionHead).getValue(); return new SimTypeInt(out); } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeModulo.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeModulo.java index 458f6ae..34606a8 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeModulo.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeModulo.java @@ -24,7 +24,7 @@ public class CodeModulo extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { out = block1.run(_arduino, functionHead).getValue() % block2.run(_arduino, functionHead).getValue(); return new SimTypeInt(out); } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeProduct.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeProduct.java index b364513..bca6e91 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeProduct.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeProduct.java @@ -24,7 +24,7 @@ public class CodeProduct extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { out = block1.run(_arduino, functionHead).getValue() * block2.run(_arduino, functionHead).getValue(); return new SimTypeInt(out); } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMax.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMax.java index 592ca70..3ad1a33 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMax.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMax.java @@ -22,7 +22,7 @@ public class CodeRandMax extends SimCode { } @Override - public SimTypeInt run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeInt run(Arduino _arduino, SimCode functionHead) { int randMax = max.run(_arduino, functionHead).getValue(); return new SimTypeInt((int) Math.floor(Math.random() * randMax)); } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMinMax.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMinMax.java index 9603fae..dd491da 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMinMax.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMinMax.java @@ -24,7 +24,7 @@ public class CodeRandMinMax extends SimCode { } @Override - public SimTypeInt run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeInt run(Arduino _arduino, SimCode functionHead) { int randMax = max.run(_arduino, functionHead).getValue(); int randMin = min.run(_arduino, functionHead).getValue(); return new SimTypeInt((int) Math.floor(Math.random() * (randMax - randMin)) + randMin); diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolCreate.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolCreate.java index be35918..add4107 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolCreate.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolCreate.java @@ -25,7 +25,7 @@ public class CodeBoolCreate extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { functionHead.createVariable(var.run(_arduino, functionHead).toString(), value.run(_arduino, functionHead)); return null; } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java index d3813b8..9f6decd 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java @@ -23,9 +23,7 @@ public class CodeBoolGet extends SimCode { } @Override - public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { - // FIXME Für alle Get und Set müssen die oberligenenden "Stackschichten" - // berücksichtigt werden. + public SimTypeBool run(Arduino _arduino, SimCode functionHead) { return (SimTypeBool) functionHead.readVariable(var.run(_arduino, functionHead).toString()); } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolSet.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolSet.java index af5adf0..c104567 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolSet.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolSet.java @@ -25,7 +25,7 @@ public class CodeBoolSet extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { // Wenn die Variable nicht vorhanden ist, so erzeuge Sie. if (!functionHead.setVariable(var.run(_arduino, functionHead).toString(), new SimTypeBool(value.run(_arduino, functionHead).getValue()))) { diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntCreate.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntCreate.java index d916ec7..39fd8ca 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntCreate.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntCreate.java @@ -25,7 +25,7 @@ public class CodeIntCreate extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { functionHead.createVariable(var.run(_arduino, functionHead).toString(), value.run(_arduino, functionHead)); return null; } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntGet.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntGet.java index 5357904..8399951 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntGet.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntGet.java @@ -23,7 +23,7 @@ public class CodeIntGet extends SimCode { } @Override - public SimTypeInt run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeInt run(Arduino _arduino, SimCode functionHead) { return (SimTypeInt) functionHead.readVariable(var.run(_arduino, functionHead).toString()); } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntSet.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntSet.java index 828da14..ab6ffc0 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntSet.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntSet.java @@ -25,7 +25,7 @@ public class CodeIntSet extends SimCode { } @Override - public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { + public SimCode run(Arduino _arduino, SimCode functionHead) { if (!functionHead.setVariable(var.run(_arduino, functionHead).toString(), new SimTypeInt(value.run(_arduino, functionHead).getValue()))) { functionHead.createVariable(var.run(_arduino, functionHead).toString(), value.run(_arduino, functionHead)); diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeMillis.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeMillis.java index e59f633..04e93a4 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeMillis.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeMillis.java @@ -17,7 +17,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction; public class CodeMillis extends SimCode { @Override - public SimTypeInt run(Arduino _arduino, SimCodeFunction functionHead) { + public SimTypeInt run(Arduino _arduino, SimCode functionHead) { return new SimTypeInt(_arduino.getMillis()); } -- GitLab