From 157e375de49d6484f9df12c0da837c10bed3545f Mon Sep 17 00:00:00 2001
From: Lucas Stratmann <lucas.stratmann@student.reutlingen-university.de>
Date: Wed, 16 Sep 2020 15:27:00 +0200
Subject: [PATCH] Bugfixes and Autoformat

---
 .../ardublock/simulator/Simulator.java        | 31 ++++---
 .../ardublock/simulator/arduino/Arduino.java  | 14 +--
 .../ardublock/simulator/arduino/Pin.java      |  3 +-
 .../ardublock/simulator/arduino/Variable.java |  4 +-
 .../ardublock/simulator/simcode/SimCode.java  |  5 +-
 .../simcode/comm/CodeConnectString.java       |  3 +-
 .../simcode/comm/CodeSerialPrint.java         |  1 +
 .../simulator/simcode/control/CodeDelay.java  |  1 +
 .../simulator/simcode/control/CodeElse.java   |  5 +-
 .../simulator/simcode/control/CodeElseIf.java |  4 +-
 .../simulator/simcode/control/CodeFor.java    |  1 +
 .../simcode/control/CodeForCount.java         |  5 +-
 .../simulator/simcode/control/CodeIf.java     |  8 +-
 .../simulator/simcode/control/CodeWhile.java  |  1 +
 .../simcode/control/CodeWhileMillis.java      |  8 +-
 .../simcode/datatypes/SimTypeBool.java        |  1 +
 .../simcode/datatypes/SimTypeIf.java          |  2 +-
 .../simcode/datatypes/SimTypeInt.java         |  3 +-
 .../simcode/datatypes/SimTypeString.java      |  1 +
 .../functions/CodeExecuteFunction.java        |  1 +
 .../simcode/functions/SimCodeFunction.java    | 15 ++--
 .../simulator/simcode/io/CodeAnalogRead.java  |  3 +-
 .../simulator/simcode/io/CodeAnalogWrite.java |  1 +
 .../simulator/simcode/io/CodeDigitalRead.java |  1 +
 .../simcode/io/CodeDigitalWrite.java          |  1 +
 .../simulator/simcode/logic/CodeAND.java      |  1 +
 .../simcode/logic/CodeBoolEqual.java          |  1 +
 .../simcode/logic/CodeBoolUnequal.java        |  1 +
 .../simcode/logic/CodeIntBigger.java          |  1 +
 .../simcode/logic/CodeIntBiggerEqual.java     |  1 +
 .../simulator/simcode/logic/CodeIntEqual.java |  1 +
 .../simcode/logic/CodeIntSmaller.java         |  1 +
 .../simcode/logic/CodeIntSmallerEqual.java    |  1 +
 .../simcode/logic/CodeIntUnequal.java         |  1 +
 .../simulator/simcode/logic/CodeNOT.java      |  1 +
 .../simulator/simcode/logic/CodeOR.java       |  1 +
 .../simcode/logic/CodeStringEqual.java        |  1 +
 .../simcode/logic/CodeStringUnequal.java      |  1 +
 .../simulator/simcode/math/CodeAbs.java       |  1 +
 .../simulator/simcode/math/CodeAdd.java       |  1 +
 .../simulator/simcode/math/CodeDivison.java   |  1 +
 .../simulator/simcode/math/CodeLimit.java     |  1 +
 .../simulator/simcode/math/CodeMap.java       |  1 +
 .../simulator/simcode/math/CodeMap10to8.java  |  4 +-
 .../simulator/simcode/math/CodeMax.java       |  1 +
 .../simulator/simcode/math/CodeMin.java       |  1 +
 .../simulator/simcode/math/CodeMinus.java     |  1 +
 .../simulator/simcode/math/CodeModulo.java    |  1 +
 .../simulator/simcode/math/CodeProduct.java   |  1 +
 .../simulator/simcode/math/CodeRandMax.java   |  1 +
 .../simcode/math/CodeRandMinMax.java          |  1 +
 .../simcode/vars/CodeBoolCreate.java          |  1 +
 .../simulator/simcode/vars/CodeBoolGet.java   |  3 +-
 .../simulator/simcode/vars/CodeBoolSet.java   |  8 +-
 .../simulator/simcode/vars/CodeIntCreate.java |  1 +
 .../simulator/simcode/vars/CodeIntGet.java    |  3 +-
 .../simulator/simcode/vars/CodeIntSet.java    |  8 +-
 .../simulator/simcode/vars/CodeMillis.java    |  1 +
 .../ardublock/simulator/view/GUI.java         | 85 +++++++++++--------
 .../simulator/view/modules/ArduinoUno.java    | 73 ++++++++--------
 .../simulator/view/modules/Button.java        | 19 +++--
 .../simulator/view/modules/Modul.java         | 15 ++--
 .../simulator/view/modules/Poti.java          | 63 +++++++-------
 .../ardublock/simulator/view/modules/RGB.java | 11 +--
 64 files changed, 264 insertions(+), 179 deletions(-)

diff --git a/src/tec/letsgoing/ardublock/simulator/Simulator.java b/src/tec/letsgoing/ardublock/simulator/Simulator.java
index 6d6cfd4..29f3a5f 100644
--- a/src/tec/letsgoing/ardublock/simulator/Simulator.java
+++ b/src/tec/letsgoing/ardublock/simulator/Simulator.java
@@ -27,14 +27,13 @@ import tec.letsgoing.ardublock.simulator.simcode.vars.CodeMillis;
 import tec.letsgoing.ardublock.simulator.view.GUI;
 
 /**
- * Diese Klasse verwaltet alle Elemente des Simulators. Sie ist geschrieben als Singelton.
- * Daher wird die Instanz über getInstance geholt und der Konstruktor ist private.
+ * Diese Klasse verwaltet alle Elemente des Simulators. Sie ist geschrieben als
+ * Singelton. Daher wird die Instanz über getInstance geholt und der Konstruktor
+ * ist private.
  * 
  * 
- * Pinmapping: 
- * RGB: 9,10,11
- * Poti: A5
- * Button: 3,4,5
+ * Pinmapping: RGB: 9,10,11 Poti: A5 Button: 3,4,5
+ * 
  * @author Lucas
  * 
  * 
@@ -48,7 +47,7 @@ public class Simulator implements Runnable, ActionListener {
 	private Thread simuThread;
 
 	private Vector<SimCodeFunction> functionsCode = new Vector<SimCodeFunction>();
-	
+
 	private Simulator() {
 		createSubClasses();
 	}
@@ -121,7 +120,7 @@ public class Simulator implements Runnable, ActionListener {
 				arduino.errorAbort("Thread Überwachung gestört - Bitte Programm neustarten");
 			}
 		}
-		Point locationWindow=gui.getLocation();
+		Point locationWindow = gui.getLocation();
 
 		gui.stopThread();
 		gui.dispose();
@@ -204,20 +203,20 @@ public class Simulator implements Runnable, ActionListener {
 		SimTypeString s2 = new SimTypeString(d1);
 		CodeAdd s5 = new CodeAdd(d1, d5);
 
-		//testLoop.add(new CodeDigitalWrite(d2, b0));
-		//testLoop.add(new CodeDelay(delay));
-		//testLoop.add(new CodeDigitalWrite(d2, b1));
-		//testLoop.add(new CodeDelay(delay));
+		// testLoop.add(new CodeDigitalWrite(d2, b0));
+		// testLoop.add(new CodeDelay(delay));
+		// testLoop.add(new CodeDigitalWrite(d2, b1));
+		// testLoop.add(new CodeDelay(delay));
 		Vector<SimCode> forVec = new Vector<SimCode>();
 		forVec.add(new CodeDigitalWrite(d3, b1));
 		forVec.add(new CodeDelay(delay));
 		forVec.add(new CodeDigitalWrite(d3, b0));
 		forVec.add(new CodeDelay(delay));
 
-		//testLoop.add(new CodeFor(d1, forVec));
-		//testLoop.add(new CodeSerialPrint(new SimTypeString(new CodeMillis()), b1));
-		testLoop.add(new CodeSerialPrint(new SimTypeString(new CodeAnalogRead(d5)),b1));
-		testLoop.add(new CodeAnalogWrite(d9,new SimTypeInt(new CodeAnalogRead(d5))));
+		// testLoop.add(new CodeFor(d1, forVec));
+		// testLoop.add(new CodeSerialPrint(new SimTypeString(new CodeMillis()), b1));
+		testLoop.add(new CodeSerialPrint(new SimTypeString(new CodeAnalogRead(d5)), b1));
+		testLoop.add(new CodeAnalogWrite(d9, new SimTypeInt(new CodeAnalogRead(d5))));
 		testLoop.add(new CodeDelay(delay));
 
 		SimCodeFunction setupCode = new SimCodeFunction("setup", testSetup);
diff --git a/src/tec/letsgoing/ardublock/simulator/arduino/Arduino.java b/src/tec/letsgoing/ardublock/simulator/arduino/Arduino.java
index e9939a2..23d4564 100644
--- a/src/tec/letsgoing/ardublock/simulator/arduino/Arduino.java
+++ b/src/tec/letsgoing/ardublock/simulator/arduino/Arduino.java
@@ -11,7 +11,9 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 import tec.letsgoing.ardublock.simulator.view.GUI;
 
 /**
- * Diese Klasse hält die Daten eines "virtuellen" Arduinos und verwaltet die Hardware
+ * Diese Klasse hält die Daten eines "virtuellen" Arduinos und verwaltet die
+ * Hardware
+ * 
  * @author Lucas
  * 
  *
@@ -40,7 +42,7 @@ public class Arduino {
 
 	public boolean setVariable(String _name, SimCode _value) {
 		for (Variable var : vars) {
-			if (var.getName() == _name) {
+			if (var.getName().equals(_name)) {
 				var.setValue(_value);
 				return true;
 			}
@@ -52,7 +54,7 @@ public class Arduino {
 	public SimCode readVariable(String _name) {
 
 		for (Variable var : vars) {
-			if (var.getName() == _name) {
+			if (var.getName().equals(_name)) {
 				return var.getValue();
 
 			}
@@ -115,14 +117,14 @@ public class Arduino {
 		}
 		return true;
 	}
-	
+
 	public void resetFunctions() {
 		functions.clear();
 	}
 
 	public void serialPrint(String content) {
 		if (!stopFlag) {
-		gui.serialPrint(content);
+			gui.serialPrint(content);
 		}
 	}
 
@@ -157,7 +159,7 @@ public class Arduino {
 	}
 
 	public void errorAbort(String error) {
-		this.serialPrint("Fehler im Programm: " + error + " - Programm wird beendet");
+		this.serialPrint("Fehler im Programm: " + error + " - Programm wird beendet\n");
 		this.setStop(true);
 		this.getPin(20).setValue(0);
 	}
diff --git a/src/tec/letsgoing/ardublock/simulator/arduino/Pin.java b/src/tec/letsgoing/ardublock/simulator/arduino/Pin.java
index c24d32a..c27174e 100644
--- a/src/tec/letsgoing/ardublock/simulator/arduino/Pin.java
+++ b/src/tec/letsgoing/ardublock/simulator/arduino/Pin.java
@@ -8,13 +8,14 @@ import java.util.Observer;
 
 /**
  * Diese Klasse ist für einen Pin auf dem Arduino
+ * 
  * @author Lucas
  * 
  * 
  *
  */
 public class Pin extends Observable {
-	//FIXME Java 8 oder 11?
+	// FIXME Java 8 oder 11?
 	private int value = 0;
 	private boolean mode = false; // false == Input, true==Output
 
diff --git a/src/tec/letsgoing/ardublock/simulator/arduino/Variable.java b/src/tec/letsgoing/ardublock/simulator/arduino/Variable.java
index 22fdba8..ed7de17 100644
--- a/src/tec/letsgoing/ardublock/simulator/arduino/Variable.java
+++ b/src/tec/letsgoing/ardublock/simulator/arduino/Variable.java
@@ -6,7 +6,9 @@ package tec.letsgoing.ardublock.simulator.arduino;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
 
 /**
- * Diese Klasse speichert eine Variable und stellt diese über Operationen zur Verfügung
+ * Diese Klasse speichert eine Variable und stellt diese über Operationen zur
+ * Verfügung
+ * 
  * @author Lucas
  * 
  * 
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/SimCode.java b/src/tec/letsgoing/ardublock/simulator/simcode/SimCode.java
index f607486..556a2c1 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/SimCode.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/SimCode.java
@@ -8,8 +8,9 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  *
- *  Jedes Codeelement erbt von dieser dieser Klasse.
- * Durch die run()-Methode kann jedes Code-Objekt ausgeführt werden.
+ * Jedes Codeelement erbt von dieser dieser Klasse. Durch die run()-Methode kann
+ * jedes Code-Objekt ausgeführt werden.
+ * 
  * @author Lucas
  * 
  *
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java
index 32c821d..0c0ba28 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Verbinde einen beliebigen Block mit einer Zeichenkette
+ * 
  * @author Lucas
  * 
  * 
@@ -27,7 +28,7 @@ public class CodeConnectString extends SimCode {
 	@Override
 	public SimTypeString run(Arduino _arduino, SimCodeFunction functionHead) {
 
-		out = "" + block1.run(_arduino, functionHead) + block2.run(_arduino, functionHead);
+		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 2e43fff..df1cc91 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeSerialPrint.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeSerialPrint.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Sende Nachricht via Serial
+ * 
  * @author Lucas
  * 
  *
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeDelay.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeDelay.java
index f62e7d7..c9956a4 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeDelay.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeDelay.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Warte Millisekunden.
+ * 
  * @author Lucas
  * 
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElse.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElse.java
index f506535..5fa4212 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElse.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElse.java
@@ -11,7 +11,9 @@ import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeIf;
 import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
- * Führe Befehle aus, falls "falls"-Block FALSCH (und evtl. "sonst falls"-Block) sind.
+ * Führe Befehle aus, falls "falls"-Block FALSCH (und evtl. "sonst falls"-Block)
+ * sind.
+ * 
  * @author Lucas
  * 
  */
@@ -37,5 +39,4 @@ public class CodeElse extends SimTypeIf {
 		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 e342fc2..dd6fef6 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElseIf.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeElseIf.java
@@ -13,6 +13,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Führe die Befehle aus wenn falls-Block FALSCH ist und Bedingung WAHR ist.
+ * 
  * @author Lucas
  * 
  */
@@ -21,7 +22,7 @@ public class CodeElseIf extends SimTypeIf {
 	private SimTypeBool condition;
 	private Vector<SimCode> codeBlocks;
 
-	public CodeElseIf(SimTypeIf _follow,SimTypeBool _condition, Vector<SimCode> _vec) {
+	public CodeElseIf(SimTypeIf _follow, SimTypeBool _condition, Vector<SimCode> _vec) {
 		follow = _follow;
 		condition = _condition;
 		codeBlocks = _vec;
@@ -42,7 +43,6 @@ public class CodeElseIf extends SimTypeIf {
 		}
 	}
 
-
 	@Override
 	public String toString() {
 		return null;
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeFor.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeFor.java
index 6b3ffdc..3ed8ae1 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeFor.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeFor.java
@@ -13,6 +13,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 /**
  * 
  * Wiederhole die Befehle x-mal.
+ * 
  * @author Lucas
  * 
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java
index 2c5588f..86854d3 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeForCount.java
@@ -12,7 +12,9 @@ import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
 import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
- * Wiederhole die Befehle x-mal. Die Wiederholungen werden in der Variable gespeichert.
+ * Wiederhole die Befehle x-mal. Die Wiederholungen werden in der Variable
+ * gespeichert.
+ * 
  * @author Lucas
  * 
  */
@@ -29,6 +31,7 @@ public class CodeForCount extends SimCode {
 
 	@Override
 	public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
+		// TODO delete Var after completion
 		functionHead.createVariable(varname.toString(), new SimTypeInt(0));
 		for (int i = 0; i < count.run(_arduino, functionHead).getValue(); i++) {
 			functionHead.setVariable(varname.toString(), new SimTypeInt(i));
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java
index 1013aca..0f8df71 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeIf.java
@@ -13,6 +13,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Führe Befehle aus, wenn die Bedingung WAHR ist.
+ * 
  * @author Lucas
  *
  * 
@@ -22,7 +23,7 @@ public class CodeIf extends SimTypeIf {
 	private SimTypeBool condition;
 	private Vector<SimCode> codeBlocks;
 
-	public CodeIf(SimTypeIf _follow,SimTypeBool _condition, Vector<SimCode> _vec) {
+	public CodeIf(SimTypeIf _follow, SimTypeBool _condition, Vector<SimCode> _vec) {
 		condition = _condition;
 		codeBlocks = _vec;
 		follow = _follow;
@@ -38,13 +39,14 @@ public class CodeIf extends SimTypeIf {
 			}
 			return null;// True Case
 		} else {
-			follow.run(_arduino, functionHead);
+			if (follow != null) {
+				follow.run(_arduino, functionHead);
+			}
 			return null; // False Case
 		}
 
 	}
 
-
 	public String toString() {
 		return null;
 	}
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhile.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhile.java
index db69ab1..a08883e 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhile.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhile.java
@@ -12,6 +12,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Führe Befehle aus, solange die Bedingung WAHR ist.
+ * 
  * @author Lucas
  * 
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhileMillis.java b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhileMillis.java
index 4347dba..06e82d9 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhileMillis.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/control/CodeWhileMillis.java
@@ -12,7 +12,9 @@ import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
 import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
- * Befehle ausserhalb von mache werden nur alle x-Millisekunden ausgeführt\nDie Startzeit jedes Durchgangs wird in der Variable gespeichert
+ * Befehle ausserhalb von mache werden nur alle x-Millisekunden ausgeführt\nDie
+ * Startzeit jedes Durchgangs wird in der Variable gespeichert
+ * 
  * @author Lucas
  * 
  */
@@ -29,10 +31,12 @@ public class CodeWhileMillis extends SimCode {
 
 	@Override
 	public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
+		// TODO Docu: Vergleich der Zeiten bis zum Überlauf zwischen C und Java
 		functionHead.createVariable(varname.toString(), new SimTypeInt(_arduino.getMillis()));
 		int startTime = _arduino.getMillis();
 		int dura = duration.run(_arduino, functionHead).getValue();
-		while (startTime + dura < _arduino.getMillis()) {
+		while (startTime + dura > _arduino.getMillis()) {
+
 			for (SimCode block : blocks) {
 				block.run(_arduino, functionHead);
 			}
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java
index 060a6a4..ea4d295 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeBool.java
@@ -9,6 +9,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Klasse für einen BooldatenTyp
+ * 
  * @author Lucas
  * 
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeIf.java b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeIf.java
index 21612c2..3ab3d48 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeIf.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeIf.java
@@ -9,6 +9,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Unterklasse für die If-Codeblöcke
+ * 
  * @author Lucas
  * 
  * 
@@ -21,6 +22,5 @@ public abstract class SimTypeIf extends SimCode {
 
 	@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 a30a6ab..1c91f63 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeInt.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeInt.java
@@ -9,8 +9,9 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Klasse für einen Int-Datentyp
+ * 
  * @author Lucas
- *	
+ * 
  */
 public class SimTypeInt extends SimCode {
 	private int value = 0;
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeString.java b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeString.java
index d9e94a1..39fac7a 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeString.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/datatypes/SimTypeString.java
@@ -9,6 +9,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Klasse für einen Zeichenketten Datentyp
+ * 
  * @author Lucas
  * 
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/functions/CodeExecuteFunction.java b/src/tec/letsgoing/ardublock/simulator/simcode/functions/CodeExecuteFunction.java
index 0cca8f7..a0f876f 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/functions/CodeExecuteFunction.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/functions/CodeExecuteFunction.java
@@ -8,6 +8,7 @@ import tec.letsgoing.ardublock.simulator.simcode.SimCode;
 
 /**
  * Führt das Unterprogramm mit dem Namen aus.
+ * 
  * @author Lucas
  * 
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/functions/SimCodeFunction.java b/src/tec/letsgoing/ardublock/simulator/simcode/functions/SimCodeFunction.java
index dbca6fa..986b5cd 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/functions/SimCodeFunction.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/functions/SimCodeFunction.java
@@ -11,10 +11,15 @@ import tec.letsgoing.ardublock.simulator.simcode.SimCode;
 
 /**
  * Erstellt ein Unterprogramm.
- * @author Lucas
  * 
+ * @author Lucas
+ *
  */
 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>();
@@ -29,9 +34,8 @@ public class SimCodeFunction extends SimCode {
 	public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
 		if (functionHead == null) {
 			isMain = true;
-			this.arduino = _arduino;
 		}
-
+		this.arduino = _arduino;
 		vars = new Vector<Variable>();
 		for (SimCode code : codeBlocks) {
 			code.run(_arduino, this);
@@ -54,7 +58,7 @@ public class SimCodeFunction extends SimCode {
 
 	public boolean setVariable(String _name, SimCode _value) {
 		for (Variable var : vars) {
-			if (var.getName() == _name) {
+			if (var.getName().equals(_name)) {
 				var.setValue(_value);
 				return true;
 			}
@@ -68,7 +72,7 @@ public class SimCodeFunction extends SimCode {
 	public SimCode readVariable(String _name) {
 
 		for (Variable var : vars) {
-			if (var.getName() == _name) {
+			if (var.getName().equals(_name)) {
 				return var.getValue();
 			}
 		}
@@ -78,7 +82,6 @@ public class SimCodeFunction extends SimCode {
 
 	@Override
 	public String toString() {
-		// TODO Auto-generated method stub
 		return null;
 	}
 
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogRead.java b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogRead.java
index 1ccd918..27ba239 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogRead.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogRead.java
@@ -10,7 +10,8 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Liest den analogen Wert vom Pin [0V=0;5V=1023]
- * @author Lucas 
+ * 
+ * @author Lucas
  * 
  */
 public class CodeAnalogRead extends SimCode {
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogWrite.java b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogWrite.java
index f7cf701..974f531 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogWrite.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeAnalogWrite.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * PWM-Ausgang Wert[0-255] zuweisen
+ * 
  * @author Lucas
  * 
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalRead.java b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalRead.java
index bbe6a23..9d291e0 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalRead.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalRead.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Liest den digitalen Wert des Pins ein [HIGH/LOW]
+ * 
  * @author Lucas
  * 
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalWrite.java b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalWrite.java
index e1aa849..989930c 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalWrite.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/io/CodeDigitalWrite.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Ausgang eines digitalen Ausgangs festlegen (HIGH/LOW)
+ * 
  * @author Lucas
  * 
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeAND.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeAND.java
index 6a1bff7..9af25c8 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeAND.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeAND.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * WAHR wenn beide Bedingungen erfüllt sind.
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolEqual.java
index 1e8c8d4..a315e41 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolEqual.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolEqual.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * WAHR wenn die beiden Bool-Werte identisch sind.
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolUnequal.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolUnequal.java
index 6760fc5..1334835 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolUnequal.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeBoolUnequal.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * WAHR wenn die beiden Bool-Werte ungleich sind
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBigger.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBigger.java
index f9153e2..76df1b6 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBigger.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBigger.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * WAHR wenn der Erste Wert größer als der Zweite ist
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBiggerEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBiggerEqual.java
index 29a45f1..fcaf93e 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBiggerEqual.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntBiggerEqual.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * WAHR wenn der Erste Wert größer oder gleich wie der Zweite ist
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntEqual.java
index 4ff5332..fde07fd 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntEqual.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntEqual.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * WAHR wenn beide Int Werte gleich sind.
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmaller.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmaller.java
index 548a91f..3ed7851 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmaller.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmaller.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * WAHR wenn der Erste Wert kleiner als der Zweite ist
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmallerEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmallerEqual.java
index 8ace12a..8025864 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmallerEqual.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntSmallerEqual.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * WAHR wenn der erste Wert kleiner oder gleich dem Zweiten ist.
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntUnequal.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntUnequal.java
index e7e46d0..c9ce10c 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntUnequal.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeIntUnequal.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * WAHR wenn die beiden Int-Werte ungleich sind.
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java
index da4156a..595f94c 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeNOT.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * WAHR wenn der Wert FALSCH ist.
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeOR.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeOR.java
index 80da717..68d8568 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeOR.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeOR.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * WAHR wenn einer der beiden Werte WAHR ist
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java
index 3099e1c..19abe19 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringEqual.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * WAHR wenn beide Zeichenketten den identischen Inhalt besitzen
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java
index 971be78..877dc95 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/logic/CodeStringUnequal.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * WAHR wenn beide Zeichenketten nicht identisch sind.
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAbs.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAbs.java
index b5885d0..3ebb920 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAbs.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAbs.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Der Betrag einer Zahl
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAdd.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAdd.java
index 51a529b..42eb37c 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAdd.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeAdd.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Die Addition zweier Zahlen
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeDivison.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeDivison.java
index 9464ef4..6d09733 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeDivison.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeDivison.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Die Division zweier Zahlen
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeLimit.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeLimit.java
index 73ba9e2..9ab9220 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeLimit.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeLimit.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Limitiere einen analogen Wert
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java
index 7318ace..4753285 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Ordne einen Wert aus dem Bereich "von" auf den Bereich "zu"
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap10to8.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap10to8.java
index df281ea..be723a4 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap10to8.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMap10to8.java
@@ -9,7 +9,9 @@ import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeInt;
 import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
- * Ordne Werte aus dem Bereich [0,1023] auf den Bereich von [0,255] zu. (10 Bit zu 8 Bit)
+ * Ordne Werte aus dem Bereich [0,1023] auf den Bereich von [0,255] zu. (10 Bit
+ * zu 8 Bit)
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMax.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMax.java
index 1520ce0..66e257d 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMax.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMax.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Die Größere Zahl der beiden Eingaben
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMin.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMin.java
index cf71942..5a62b0b 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMin.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMin.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Die kleinere Zahl der beiden Eingaben
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMinus.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMinus.java
index 45c7f08..3e75427 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMinus.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeMinus.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Die Differenz der beiden Zahlen
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeModulo.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeModulo.java
index 0a303a7..458f6ae 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeModulo.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeModulo.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Die Modulooperation von zwei Zahlen
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeProduct.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeProduct.java
index 9bec675..b364513 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeProduct.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeProduct.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Das Produkt aus 2 Zahlen
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMax.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMax.java
index 8c342b9..592ca70 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMax.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMax.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Erzeuge eine Zufallszahl zwischen 0 und max-1
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMinMax.java b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMinMax.java
index 8521609..9603fae 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMinMax.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/math/CodeRandMinMax.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Erzeuge eine Zufallszahl zwische min und max
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolCreate.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolCreate.java
index 395399f..be35918 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolCreate.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolCreate.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Erzeuge eine boolsche Variable
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java
index 95f0cec..82918ba 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolGet.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Lese eine boolsche Varibale
+ * 
  * @author Lucas
  *
  */
@@ -23,7 +24,7 @@ public class CodeBoolGet extends SimCode {
 
 	@Override
 	public SimTypeBool run(Arduino _arduino, SimCodeFunction functionHead) {
-		return new SimTypeBool(functionHead.readVariable(var.run(_arduino, functionHead).toString()));
+		return (SimTypeBool) functionHead.readVariable(var.run(_arduino, functionHead).toString());
 	}
 
 	@Override
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolSet.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolSet.java
index 164e3af..af5adf0 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolSet.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeBoolSet.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Setze eine boolsche Variable
+ * 
  * @author Lucas
  *
  */
@@ -25,8 +26,11 @@ public class CodeBoolSet extends SimCode {
 
 	@Override
 	public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
-		functionHead.setVariable(var.run(_arduino, functionHead).toString(),
-				new SimTypeBool(value.run(_arduino, functionHead).getValue()));
+		// Wenn die Variable nicht vorhanden ist, so erzeuge Sie.
+		if (!functionHead.setVariable(var.run(_arduino, functionHead).toString(),
+				new SimTypeBool(value.run(_arduino, functionHead).getValue()))) {
+			functionHead.createVariable(var.run(_arduino, functionHead).toString(), value.run(_arduino, functionHead));
+		}
 		return null;
 	}
 
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntCreate.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntCreate.java
index 33a9a54..d916ec7 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntCreate.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntCreate.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Erzeuge eine analoge/Integer Variable
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntGet.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntGet.java
index 3e8755e..5357904 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntGet.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntGet.java
@@ -11,6 +11,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Lese eine analoge/Integer Variable
+ * 
  * @author Lucas
  *
  */
@@ -23,7 +24,7 @@ public class CodeIntGet extends SimCode {
 
 	@Override
 	public SimTypeInt run(Arduino _arduino, SimCodeFunction functionHead) {
-		return new SimTypeInt(functionHead.readVariable(var.run(_arduino, functionHead).toString()));
+		return (SimTypeInt) functionHead.readVariable(var.run(_arduino, functionHead).toString());
 	}
 
 	@Override
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntSet.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntSet.java
index 49dca07..a6e01e8 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntSet.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeIntSet.java
@@ -5,12 +5,14 @@ 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;
 
 /**
  * Setze eine analoge/Integer Variable
+ * 
  * @author Lucas
  *
  */
@@ -25,8 +27,10 @@ public class CodeIntSet extends SimCode {
 
 	@Override
 	public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
-		functionHead.setVariable(var.run(_arduino, functionHead).toString(),
-				new SimTypeInt(value.run(_arduino, functionHead).getValue()));
+		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));
+		}
 		return null;
 	}
 
diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeMillis.java b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeMillis.java
index f23e410..e59f633 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeMillis.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/vars/CodeMillis.java
@@ -10,6 +10,7 @@ import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 /**
  * Gibt die Zeit seit Programmstart in Millisekunden an
+ * 
  * @author Lucas
  *
  */
diff --git a/src/tec/letsgoing/ardublock/simulator/view/GUI.java b/src/tec/letsgoing/ardublock/simulator/view/GUI.java
index e282cab..bc868c3 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/GUI.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/GUI.java
@@ -39,6 +39,7 @@ import tec.letsgoing.ardublock.simulator.view.modules.RGB;
 
 /**
  * Verwaltet die graphische Oberfläche.
+ * 
  * @author Lucas
  *
  */
@@ -52,29 +53,33 @@ public class GUI extends JFrame implements Runnable, ActionListener {
 	public GUI(Simulator simu) {
 		super("ArdubBlock Simulator");
 		modules[0] = new RGB(new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/PM31_RGB_LED.png"))));
-		modules[1] = new Button(new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/PM26_Taster.png"))),new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/Taster_Off.png"))),new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/Taster_On.png"))));
-		modules[2] = new Poti(new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/PM24_Potentiometer.png"))));
-		modules[3] = new ArduinoUno(new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/ArduinoUno.png"))),simu);
-		
+		modules[1] = new Button(new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/PM26_Taster.png"))),
+				new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/Taster_Off.png"))),
+				new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/Taster_On.png"))));
+		modules[2] = new Poti(
+				new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/PM24_Potentiometer.png"))));
+		modules[3] = new ArduinoUno(new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/ArduinoUno.png"))),
+				simu);
+
 		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 		this.setResizable(false);
 		Container mainPane = this.getContentPane();
 
 		JPanel modulPanel = new JPanel(new BorderLayout()) {
-			@Override 
+			@Override
 			public void paint(Graphics g) {
-				
+
 				super.paint(g);
-				
-				for (int i =-1 ; i<2;i++) {
+
+				for (int i = -1; i < 2; i++) {
 					g.setColor(Color.BLACK);
-					g.fillRect(i*294+261, 183, 60, 5);
+					g.fillRect(i * 294 + 261, 183, 60, 5);
 					g.setColor(Color.RED);
-					g.fillRect(i*294+261, 211, 60, 5);
-					
+					g.fillRect(i * 294 + 261, 211, 60, 5);
+
 				}
 				drawConnections(g);
-				
+
 			}
 		};
 		modulPanel.add(modules[0].getPane(), BorderLayout.WEST);
@@ -86,8 +91,8 @@ public class GUI extends JFrame implements Runnable, ActionListener {
 		mainPane.add(createControlPanel(simu), BorderLayout.LINE_END);
 		mainPane.add(createSerialLog(), BorderLayout.PAGE_END);
 		this.pack();
-		
-		//this.setLocation(-1300, 0); //FIXME Code to Run the Window on second screen
+
+		// this.setLocation(-1300, 0); //FIXME Code to Run the Window on second screen
 		this.setVisible(true);
 
 	}
@@ -101,13 +106,11 @@ public class GUI extends JFrame implements Runnable, ActionListener {
 		JButton reloadButton = new JButton();
 		JButton measButton = new JButton();
 
-
 		goButton.setIcon(new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/Play.png"))));
 		stopButton.setIcon(new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/Stop.png"))));
 		reloadButton.setIcon(new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/Reload.png"))));
 		measButton.setIcon(new ImageIcon(getToolkit().getImage(GUI.class.getResource("/img/Measure.png"))));
 
-
 		goButton.addActionListener(simu);
 		stopButton.addActionListener(simu);
 		reloadButton.addActionListener(simu);
@@ -151,28 +154,40 @@ public class GUI extends JFrame implements Runnable, ActionListener {
 		panel.add(scrollPane, BorderLayout.PAGE_END);
 		return panel;
 	}
-	
+
 	private void drawConnections(Graphics g) {
-		int[] assignment= {11,10,9,5,4,3,19};
+		int[] assignment = { 11, 10, 9, 5, 4, 3, 19 };
 		g.setColor(Color.ORANGE);
-		Vector<Point> pinArduino=modules[3].getPinPos();
-		Point posArduino=modules[3].getPosition();
-		int counter=0;
-		Stroke roundLine=new BasicStroke(5,BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);
-		for (int i=0;i<3;i++) {
-			Vector<Point> pos =modules[i].getPinPos();
-			for (Point p:pos) {
+		Vector<Point> pinArduino = modules[3].getPinPos();
+		Point posArduino = modules[3].getPosition();
+		int counter = 0;
+		Stroke roundLine = new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);
+		for (int i = 0; i < 3; i++) {
+			Vector<Point> pos = modules[i].getPinPos();
+			for (Point p : pos) {
 				Graphics2D g2 = (Graphics2D) g;
-                g2.setStroke(roundLine);
-                if (counter>5) {
-                	g2.drawLine(p.x+modules[i].getPosition().x, p.y+modules[i].getPosition().y, p.x+modules[i].getPosition().x, pinArduino.get(assignment[counter]).y+posArduino.y);
-                	g2.drawLine(p.x+modules[i].getPosition().x, pinArduino.get(assignment[counter]).y+posArduino.y, pinArduino.get(assignment[counter]).x+posArduino.x, pinArduino.get(assignment[counter]).y+posArduino.y);
-                } else {
-                g2.drawLine(p.x+modules[i].getPosition().x, p.y+modules[i].getPosition().y, p.x+modules[i].getPosition().x, p.y+modules[i].getPosition().y+90-(counter)*10);
-                g2.drawLine(p.x+modules[i].getPosition().x, p.y+modules[i].getPosition().y+90-(counter)*10, pinArduino.get(assignment[counter]).x+posArduino.x, p.y+modules[i].getPosition().y+90-(counter)*10);
-				g2.drawLine(pinArduino.get(assignment[counter]).x+posArduino.x, p.y+modules[i].getPosition().y+90-(counter)*10, pinArduino.get(assignment[counter]).x+posArduino.x, pinArduino.get(assignment[counter]).y+posArduino.y);
-                //g2.drawLine(p.x+modules[i].getPosition().x, p.y+modules[i].getPosition().y, pinArduino.get(assignment[counter]).x+posArduino.x, pinArduino.get(assignment[counter]).y+posArduino.y);
-                }
+				g2.setStroke(roundLine);
+				if (counter > 5) {
+					g2.drawLine(p.x + modules[i].getPosition().x, p.y + modules[i].getPosition().y,
+							p.x + modules[i].getPosition().x, pinArduino.get(assignment[counter]).y + posArduino.y);
+					g2.drawLine(p.x + modules[i].getPosition().x, pinArduino.get(assignment[counter]).y + posArduino.y,
+							pinArduino.get(assignment[counter]).x + posArduino.x,
+							pinArduino.get(assignment[counter]).y + posArduino.y);
+				} else {
+					g2.drawLine(p.x + modules[i].getPosition().x, p.y + modules[i].getPosition().y,
+							p.x + modules[i].getPosition().x, p.y + modules[i].getPosition().y + 90 - (counter) * 10);
+					g2.drawLine(p.x + modules[i].getPosition().x,
+							p.y + modules[i].getPosition().y + 90 - (counter) * 10,
+							pinArduino.get(assignment[counter]).x + posArduino.x,
+							p.y + modules[i].getPosition().y + 90 - (counter) * 10);
+					g2.drawLine(pinArduino.get(assignment[counter]).x + posArduino.x,
+							p.y + modules[i].getPosition().y + 90 - (counter) * 10,
+							pinArduino.get(assignment[counter]).x + posArduino.x,
+							pinArduino.get(assignment[counter]).y + posArduino.y);
+					// g2.drawLine(p.x+modules[i].getPosition().x, p.y+modules[i].getPosition().y,
+					// pinArduino.get(assignment[counter]).x+posArduino.x,
+					// pinArduino.get(assignment[counter]).y+posArduino.y);
+				}
 				counter++;
 			}
 		}
diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java b/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java
index 08fc2be..133c335 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/modules/ArduinoUno.java
@@ -25,6 +25,7 @@ import tec.letsgoing.ardublock.simulator.view.GUI;
 
 /**
  * Modul für einen Arduino Uno
+ * 
  * @author Lucas
  *
  */
@@ -33,10 +34,10 @@ public class ArduinoUno extends Modul {
 	private boolean ledOn;
 	private int led13 = 0;
 
-	public ArduinoUno(ImageIcon _icon,Simulator simu) {
-		int locx=50;
-		int locy=50;
-		layerpane.setPreferredSize(new Dimension(587+locx, 418+locy));//587,418
+	public ArduinoUno(ImageIcon _icon, Simulator simu) {
+		int locx = 50;
+		int locy = 50;
+		layerpane.setPreferredSize(new Dimension(587 + locx, 418 + locy));// 587,418
 		JLabel chiplabel = new JLabel();
 		ImageIcon chipIcon = _icon;
 		chipIcon = new ImageIcon(chipIcon.getImage().getScaledInstance(587, 418, Image.SCALE_SMOOTH));
@@ -58,7 +59,7 @@ public class ArduinoUno extends Modul {
 
 		};
 
-		labelPower.setLocation(504+locx, 126+locy);
+		labelPower.setLocation(504 + locx, 126 + locy);
 		labelPower.setSize(20, 20);
 		layerpane.add(labelPower, 0);
 
@@ -72,10 +73,10 @@ public class ArduinoUno extends Modul {
 
 		};
 
-		label13.setLocation(257+locx, 89+locy);
+		label13.setLocation(257 + locx, 89 + locy);
 		label13.setSize(20, 20);
 		layerpane.add(label13, 0);
-		
+
 		JButton button = new JButton();
 		button.setSize(70, 70);
 		button.setActionCommand("reset");
@@ -83,14 +84,14 @@ public class ArduinoUno extends Modul {
 		button.setOpaque(false);
 		button.setContentAreaFilled(false);
 		button.setBorderPainted(false);
-		
+
 		JLabel labelButton = new JLabel();
 		labelButton.add(button);
 		labelButton.setSize(60, 51);
-		labelButton.setLocation(64+locx, 1+locy);
-		layerpane.add(labelButton,0);
-		
-		calculatePinPos(locx,locy);
+		labelButton.setLocation(64 + locx, 1 + locy);
+		layerpane.add(labelButton, 0);
+
+		calculatePinPos(locx, locy);
 
 	}
 
@@ -113,35 +114,31 @@ public class ArduinoUno extends Modul {
 		tmpPin.setObserver(this);
 		return true;
 	}
-	
-	private void calculatePinPos(int locx,int locy) {
-		Vector<Point> pins=new Vector<Point>();
-		int offset=0;
-		for (int i=15;i>1;i--) {
-			if (i<8)offset=-11;
-			pins.add(new Point(i*20+locx+246+offset,locy+19));
+
+	private void calculatePinPos(int locx, int locy) {
+		Vector<Point> pins = new Vector<Point>();
+		int offset = 0;
+		for (int i = 15; i > 1; i--) {
+			if (i < 8)
+				offset = -11;
+			pins.add(new Point(i * 20 + locx + 246 + offset, locy + 19));
 		}
-		for (int i=0;i<6;i++) {
-			pins.add(new Point(i*20+locx+447,locy+397));
+		for (int i = 0; i < 6; i++) {
+			pins.add(new Point(i * 20 + locx + 447, locy + 397));
 		}
-		//Code to check the Pin Pos
-		/*JLabel label;
-		for (Point pin:pins) {
-			label= new JLabel() {
-				@Override
-				public void paintComponent(Graphics g) {
-					g.setColor(Color.RED);
-					g.fillRect(0, 0, 10, 10);
-				}
-
-			};
-
-			label.setLocation(pin.x,pin.y);
-			label.setSize(10, 10);
-			layerpane.add(label, 0);
-		}*/
+		// Code to check the Pin Pos
+		/*
+		 * JLabel label; for (Point pin:pins) { label= new JLabel() {
+		 * 
+		 * @Override public void paintComponent(Graphics g) { g.setColor(Color.RED);
+		 * g.fillRect(0, 0, 10, 10); }
+		 * 
+		 * };
+		 * 
+		 * label.setLocation(pin.x,pin.y); label.setSize(10, 10); layerpane.add(label,
+		 * 0); }
+		 */
 		this.setPinPos(pins);
 	}
 
-
 }
diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java
index 4254988..0c7c9c0 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java
@@ -20,19 +20,20 @@ import tec.letsgoing.ardublock.simulator.arduino.Pin;
 
 /**
  * Modul mit 3 Toogle Buttons
+ * 
  * @author Lucas
  *
  */
 public class Button extends Modul implements ActionListener {
 	private int[] lastState = { 0, 0, 0 };
-	private ImageIcon iconOff,iconOn;
+	private ImageIcon iconOff, iconOn;
 
 	public Button(ImageIcon _icon, ImageIcon _icon1, ImageIcon _icon2) {
-		iconOff=_icon1;
-		iconOn=_icon2;
+		iconOff = _icon1;
+		iconOn = _icon2;
 		layerpane.setPreferredSize(new Dimension(294, 294));
 		JLabel chiplabel = new JLabel();
-		ImageIcon chipIcon =_icon;
+		ImageIcon chipIcon = _icon;
 		chiplabel.setIcon(chipIcon);
 		chiplabel.setSize(294, 294);
 		layerpane.add(chiplabel, 0);
@@ -108,18 +109,18 @@ public class Button extends Modul implements ActionListener {
 		} else {
 			((JToggleButton) arg0.getSource()).setIcon(iconOff);
 		}
-		
+
 		int value = 0;
 		if (bool)
 			value = 1023;
 		lastState[pin] = value;
 		pins.get(pin).setValue(value);
 	}
-	
+
 	private void calculatePinPos() {
-		Vector<Point> pins=new Vector<Point>();
-		for (int i=0;i<3;i++) {
-			pins.add(new Point(i*30+117,235));
+		Vector<Point> pins = new Vector<Point>();
+		for (int i = 0; i < 3; i++) {
+			pins.add(new Point(i * 30 + 117, 235));
 		}
 		this.setPinPos(pins);
 	}
diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java
index 3522dc4..5241939 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Modul.java
@@ -16,15 +16,16 @@ import tec.letsgoing.ardublock.simulator.arduino.Pin;
 
 /**
  * Oberklasse für alle Module
+ * 
  * @author Lucas
  *
  */
-public abstract class Modul implements Observer  {
+public abstract class Modul implements Observer {
 	private boolean active = true;
 	private Point position;
 	protected Vector<Pin> pins = new Vector<Pin>();
 	protected JLayeredPane layerpane = new JLayeredPane();
-	protected Vector<Point> pinPos=new Vector<Point>();
+	protected Vector<Point> pinPos = new Vector<Point>();
 
 	public void setState(boolean State) {
 		active = State;
@@ -39,7 +40,7 @@ public abstract class Modul implements Observer  {
 	}
 
 	public Point getPosition() {
-		//return position;
+		// return position;
 		return layerpane.getLocation();
 	}
 
@@ -50,7 +51,7 @@ public abstract class Modul implements Observer  {
 					updateModul((Pin) Observable);
 			}
 		}
-		
+
 	}
 
 	public abstract void updateModul(Pin pin);
@@ -58,13 +59,13 @@ public abstract class Modul implements Observer  {
 	public void addPin(Pin _pin) {
 		pins.add(_pin);
 	}
-	
+
 	public Vector<Point> getPinPos() {
 		return pinPos;
 	}
-	
+
 	public void setPinPos(Vector<Point> _pins) {
-		pinPos=_pins;
+		pinPos = _pins;
 	}
 
 	public JLayeredPane getPane() {
diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java
index 7c90764..835651e 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java
@@ -24,10 +24,11 @@ import tec.letsgoing.ardublock.simulator.arduino.Pin;
 
 /**
  * Modul mit einem Potentiometer
+ * 
  * @author Lucas
  *
  */
-public class Poti extends Modul implements  ChangeListener, MouseWheelListener {
+public class Poti extends Modul implements ChangeListener, MouseWheelListener {
 	int value = 0;
 	JSlider slider;
 
@@ -37,74 +38,72 @@ public class Poti extends Modul implements  ChangeListener, MouseWheelListener {
 		ImageIcon chipIcon = _icon;
 		chiplabel.setIcon(chipIcon);
 		chiplabel.setSize(294, 294);
-		slider=new JSlider(JSlider.HORIZONTAL,0,1024,512);
-		
+		slider = new JSlider(JSlider.HORIZONTAL, 0, 1024, 512);
+
 		slider.setMajorTickSpacing(256);
 		slider.setMinorTickSpacing(64);
 		slider.setPaintTicks(true);
-		
-		//Create the label table
-		Hashtable<Integer,JLabel> labelTable = new Hashtable<Integer,JLabel>();
-		labelTable.put( new Integer( 10 ), new JLabel("0 V") );
-		labelTable.put( new Integer( 512 ), new JLabel("2.5 V") );
-		labelTable.put( new Integer( 1023 ), new JLabel("5 V") );
-		slider.setLabelTable( labelTable );
+
+		// Create the label table
+		Hashtable<Integer, JLabel> labelTable = new Hashtable<Integer, JLabel>();
+		labelTable.put(new Integer(10), new JLabel("0 V"));
+		labelTable.put(new Integer(512), new JLabel("2.5 V"));
+		labelTable.put(new Integer(1023), new JLabel("5 V"));
+		slider.setLabelTable(labelTable);
 
 		slider.setPaintLabels(true);
-		slider.setPreferredSize(new Dimension(180,50));
+		slider.setPreferredSize(new Dimension(180, 50));
 		slider.setOpaque(false);
 		slider.addChangeListener(this);
 		slider.addMouseWheelListener(this);
-		
-		JPanel sliderPanel=new JPanel();
+
+		JPanel sliderPanel = new JPanel();
 		sliderPanel.add(slider);
 		sliderPanel.setSize(200, 50);
-		sliderPanel.setLocation(47,170);
+		sliderPanel.setLocation(47, 170);
 		sliderPanel.setOpaque(false);
 		layerpane.add(chiplabel, 0);
-		layerpane.add(sliderPanel,0);
-		
+		layerpane.add(sliderPanel, 0);
+
 		calculatePinPos();
-		
-		
-		
+
 	}
 
 	public void updateModul(Pin arg0) {
-		if (pins.get(0).getValue()!=slider.getValue()) {
+		if (pins.get(0).getValue() != slider.getValue()) {
 			pins.get(0).setValue(slider.getValue());
 		}
 	}
 
 	public boolean connect(Arduino arduino) {
-		this.addPin(arduino.getPin(5+13));
-		arduino.getPin(5+13).setObserver(this);
+		this.addPin(arduino.getPin(5 + 13));
+		arduino.getPin(5 + 13).setObserver(this);
 		return true;
 	}
 
 	@Override
 	public void stateChanged(ChangeEvent arg0) {
-		if (slider.getValue()==1024) slider.setValue(1023); //Kleiner Trick damit die 1024 angezeigt wird aber keinen Fehler verursacht
+		if (slider.getValue() == 1024)
+			slider.setValue(1023); // Kleiner Trick damit die 1024 angezeigt wird aber keinen Fehler verursacht
 		pins.get(0).setValue(slider.getValue());
-		
+
 	}
 
 	@Override
 	public void mouseWheelMoved(MouseWheelEvent arg0) {
 		int notches = arg0.getWheelRotation();
 		if (notches > 0) {
-			slider.setValue(slider.getValue()+10);
+			slider.setValue(slider.getValue() + 10);
 		} else {
-			slider.setValue(slider.getValue()-10);
+			slider.setValue(slider.getValue() - 10);
 		}
-		
-		
-		
+
 	}
+
 	private void calculatePinPos() {
-		Vector<Point> pins=new Vector<Point>();
-		pins.add(new Point(30+117,235));
+		Vector<Point> pins = new Vector<Point>();
+		pins.add(new Point(30 + 117, 235));
 		this.setPinPos(pins);
 	}
-	
+
 }
diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java b/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java
index b9cc6d5..2d00b9e 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/modules/RGB.java
@@ -18,6 +18,7 @@ import tec.letsgoing.ardublock.simulator.arduino.Pin;
 
 /**
  * Modul mit einer RGB LED
+ * 
  * @author Lucas
  *
  */
@@ -49,7 +50,7 @@ public class RGB extends Modul {
 		ledlabel.setSize(200, 200);
 		layerpane.add(ledlabel, 0);
 		calculatePinPos();
-		
+
 	}
 
 	public void updateModul(Pin pin) {
@@ -77,11 +78,11 @@ public class RGB extends Modul {
 
 		return true;
 	}
-	
+
 	private void calculatePinPos() {
-		Vector<Point> pins=new Vector<Point>();
-		for (int i=0;i<3;i++) {
-			pins.add(new Point(i*30+117,235));
+		Vector<Point> pins = new Vector<Point>();
+		for (int i = 0; i < 3; i++) {
+			pins.add(new Point(i * 30 + 117, 235));
 		}
 		this.setPinPos(pins);
 	}
-- 
GitLab