diff --git a/README.md b/README.md index d33a58f1f9fbbbf35df0c3dfb9c5503ebe5f70f8..f79dbd4c11a551548b30ceb9bf3eeab8c6af01ce 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,19 @@ Zu den geplanten Features gehören unter anderem: -Simulation der Basis-Blöcke -Simulation der letsgoING-Module + +##Verwendung +Dieses Java Projekt ist theoretisch alleine lauffähig, dies ist aber nicht sinnvoll, da so das Programm manuell in der main() programmiert werden muss. +Für die korrekte Verwendung muss sich im Eclipse Workspace auch das Ardublock, sowiew das Openblocks-Projekt befinden. +(möglicherweise werden auch Maven-Bibilotheken benötigt) +Der Simulator wird dann aus Ardublock gestartet und die main() dieses Projekts wird nicht benötigt. + ## Dokumentation Nach Abschluss der Entwicklung wird hier eine Dokumentation zur Verfügung stehen. Bis dahin, wird hier das aktuelle UML als .DIA zur Verfügung gestellt. + +##Beteiligte: +Lucas Stratmann lucas.stratmann@student.reutlingen-university.de + + diff --git a/src/tec/letsgoing/ardublock/simulator/Simulator.java b/src/tec/letsgoing/ardublock/simulator/Simulator.java index 29f3a5f5df6769a7ca5efe5e732c001228be4122..5c6082973db19ab2ff4c5266bf387b4b95a09650 100644 --- a/src/tec/letsgoing/ardublock/simulator/Simulator.java +++ b/src/tec/letsgoing/ardublock/simulator/Simulator.java @@ -12,7 +12,6 @@ import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.simcode.SimCode; 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.CodeWhile; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt; @@ -22,8 +21,6 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction; import tec.letsgoing.ardublock.simulator.simcode.io.CodeAnalogRead; import tec.letsgoing.ardublock.simulator.simcode.io.CodeAnalogWrite; import tec.letsgoing.ardublock.simulator.simcode.io.CodeDigitalWrite; -import tec.letsgoing.ardublock.simulator.simcode.math.CodeAdd; -import tec.letsgoing.ardublock.simulator.simcode.vars.CodeMillis; import tec.letsgoing.ardublock.simulator.view.GUI; /** @@ -194,14 +191,14 @@ public class Simulator implements Runnable, ActionListener { SimTypeBool b1 = new SimTypeBool(true); SimTypeBool b0 = new SimTypeBool(false); - SimTypeString s1 = new SimTypeString("CodeString Test"); - SimTypeInt d1 = new SimTypeInt(9); + //SimTypeString s1 = new SimTypeString("CodeString Test"); + //SimTypeInt d1 = new SimTypeInt(9); SimTypeInt d5 = new SimTypeInt(5); SimTypeInt d3 = new SimTypeInt(0); SimTypeInt d9 = new SimTypeInt(9); SimTypeInt delay = new SimTypeInt(testdelay); - SimTypeString s2 = new SimTypeString(d1); - CodeAdd s5 = new CodeAdd(d1, d5); + //SimTypeString s2 = new SimTypeString(d1); + //CodeAdd s5 = new CodeAdd(d1, d5); // testLoop.add(new CodeDigitalWrite(d2, b0)); // testLoop.add(new CodeDelay(delay)); diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java index 0c0ba28845a3cdbf5bb8674c93c39300c43b9424..ed6254d944597f295723d3a6c4505e618ac2fa56 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java @@ -27,8 +27,8 @@ public class CodeConnectString extends SimCode { @Override public SimTypeString run(Arduino _arduino, SimCodeFunction functionHead) { - - out = "" + block1.run(_arduino, functionHead).toString() + block2.run(_arduino, functionHead).toString(); + // TODO Add Space between two 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/control/CodeElseIf.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElseIf.java index dd6fef6dc4aea21a7d146bc80662c3c71a37a1c9..ab0984a96bc11144480aec5b561ec9b5a4cc8097 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElseIf.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElseIf.java @@ -7,8 +7,8 @@ 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.SimTypeIf; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool; +import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeIf; import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction; /** diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java index de74e4f63ea3700662fc8644811451b9966fa060..5b2bdf9c6be21cf5d00cfcfecacc5a829729b332 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java @@ -28,7 +28,8 @@ public class CodeForCount extends SimCode { varname = _varname; codeblocks = _blocks; } - //TODO For/While Mit Vars ausrüsten + + // TODO For/While Mit Vars ausrüsten @Override public SimCode run(Arduino _arduino, SimCodeFunction functionHead) { // TODO delete Var after completion diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java index 0f8df71be1bfd1143034e84344b1252f4546dcb4..7354a9862c01fcf69c8d25ef857ffedf0a181839 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java @@ -7,8 +7,8 @@ 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.SimTypeIf; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool; +import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeIf; import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction; /** diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java index 595f94cbea5b25aaae7f0d07ddbcc4ac7c443b64..ed0629abec81f301fd824b07d669a81620a4c4c9 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java @@ -17,7 +17,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction; public class CodeNOT extends SimCode { private SimTypeBool b1; - public CodeNOT(SimTypeBool _b1, SimTypeBool _b2) { + public CodeNOT(SimTypeBool _b1) { b1 = _b1; } diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java index 19abe190b0616d4bb8f7ba06b3e09441375ecf2f..a3503632911badf39ce56fd1cef49af84e11ee5b 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java @@ -26,7 +26,7 @@ public class CodeStringEqual extends SimCode { @Override public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { - if (b1.run(_arduino, functionHead).toString() == b2.run(_arduino, functionHead).toString()) { + if (b1.run(_arduino, functionHead).toString().equals(b2.run(_arduino, functionHead).toString())) { return new SimTypeBool(true); } else { return new SimTypeBool(false); diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java index 877dc95107f478fc42731dd6ef9384063c7851e0..d74a969a24539e5169e30b319dc790b1e5620f56 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java @@ -26,7 +26,7 @@ public class CodeStringUnequal extends SimCode { @Override public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) { - if (b1.run(_arduino, functionHead).toString() != b2.run(_arduino, functionHead).toString()) { + if (!b1.run(_arduino, functionHead).toString().equals(b2.run(_arduino, functionHead).toString())) { return new SimTypeBool(true); } else { return new SimTypeBool(false); diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java index 4753285f2c16298dab89283ea51eabbc9c2d2b7c..2142d69a448fa0c874b22b6a012471de0e74ee3b 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java @@ -39,12 +39,12 @@ public class CodeMap extends SimCode { @Override public SimTypeInt run(Arduino _arduino, SimCodeFunction functionHead) { - int v = value.run(_arduino, functionHead).getValue(); - int fL = fromLow.run(_arduino, functionHead).getValue(); - int fH = fromHigh.run(_arduino, functionHead).getValue(); - int tL = toLow.run(_arduino, functionHead).getValue(); - int tH = toHigh.run(_arduino, functionHead).getValue(); - return new SimTypeInt((v - fL) / (fH - fL) * (tH - tL) + tL); + float v = value.run(_arduino, functionHead).getValue(); + float fL = fromLow.run(_arduino, functionHead).getValue(); + float fH = fromHigh.run(_arduino, functionHead).getValue(); + float tL = toLow.run(_arduino, functionHead).getValue(); + float tH = toHigh.run(_arduino, functionHead).getValue(); + return new SimTypeInt((int) ((v - fL) / (fH - fL) * (tH - tL) + tL)); } @Override diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java index bf09c98654c3be39c138d48a92e5ee3106cecd2f..d3813b8efeff5d2c805613f16024c0df8aa49d66 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java @@ -24,7 +24,8 @@ 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. + // FIXME Für alle Get und Set müssen die oberligenenden "Stackschichten" + // berücksichtigt werden. return (SimTypeBool) 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 a6e01e8eb1861b694bfc5cc875395920b5fe2be7..828da1464671bea5867de621ea0847cac758a4ff 100644 --- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntSet.java +++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntSet.java @@ -5,7 +5,6 @@ package tec.letsgoing.ardublock.simulator.simcode.vars; import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.simcode.SimCode; -import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt; import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString; import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction; diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java b/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java index 133c335c0471e47cd96a0c17e1b0834cb86e7696..84556bff2f3fcf78b758d2a4dcfabc8c0e707360 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java +++ b/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java @@ -9,19 +9,15 @@ import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Point; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.util.Vector; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JLabel; -import javax.swing.JToggleButton; import tec.letsgoing.ardublock.simulator.Simulator; import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Pin; -import tec.letsgoing.ardublock.simulator.view.GUI; /** * Modul für einen Arduino Uno diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java index 0c7c9c04959d108cd80d4eecb8d71f68491c686b..e9298f10f912d0f84837350b35ff745253e6bd08 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java +++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java @@ -3,9 +3,7 @@ */ package tec.letsgoing.ardublock.simulator.view.modules; -import java.awt.Color; import java.awt.Dimension; -import java.awt.Graphics; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java index 524193949d38b12172fe7daf03bd432f3f0e4b08..d45de05dfd88ce157989eca89d1dda233ffd8d2d 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java +++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java @@ -9,7 +9,6 @@ import java.util.Observer; import java.util.Vector; import javax.swing.JLayeredPane; -import javax.swing.JPanel; import tec.letsgoing.ardublock.simulator.arduino.Arduino; import tec.letsgoing.ardublock.simulator.arduino.Pin; diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java index 835651e84598fd7520957376651b351dccaedf19..0c215f8460007796574cb0c18219e2a5b6fcab91 100644 --- a/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java +++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java @@ -3,9 +3,7 @@ */ package tec.letsgoing.ardublock.simulator.view.modules; -import java.awt.Color; import java.awt.Dimension; -import java.awt.Graphics; import java.awt.Point; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener;