From 86c82e275b6db26dce35f0d003359daf45ea7099 Mon Sep 17 00:00:00 2001
From: Lucas Stratmann <lucas.stratmann@student.reutlingen-university.de>
Date: Fri, 18 Sep 2020 16:50:10 +0200
Subject: [PATCH] changed pin Connections and Variable Handling

---
 src/tec/letsgoing/ardublock/simulator/Simulator.java  |  2 +-
 .../simulator/simcode/comm/CodeConnectString.java     |  2 +-
 .../simulator/simcode/functions/SimCodeFunction.java  | 11 +++++++++++
 src/tec/letsgoing/ardublock/simulator/view/GUI.java   |  9 ++++++---
 .../ardublock/simulator/view/modules/Button.java      |  6 +++---
 .../ardublock/simulator/view/modules/Poti.java        |  4 ++--
 6 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/src/tec/letsgoing/ardublock/simulator/Simulator.java b/src/tec/letsgoing/ardublock/simulator/Simulator.java
index 5c60829..2affd25 100644
--- a/src/tec/letsgoing/ardublock/simulator/Simulator.java
+++ b/src/tec/letsgoing/ardublock/simulator/Simulator.java
@@ -29,7 +29,7 @@ import tec.letsgoing.ardublock.simulator.view.GUI;
  * ist private.
  * 
  * 
- * Pinmapping: RGB: 9,10,11 Poti: A5 Button: 3,4,5
+ * Pinmapping: RGB: 9,10,11 Poti: A0 Button: 2,3,4
  * 
  * @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 ed6254d..5a8e6d5 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeConnectString.java
@@ -27,7 +27,7 @@ public class CodeConnectString extends SimCode {
 
 	@Override
 	public SimTypeString run(Arduino _arduino, SimCodeFunction functionHead) {
-		// TODO Add Space between two inputs?
+		// 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/functions/SimCodeFunction.java b/src/tec/letsgoing/ardublock/simulator/simcode/functions/SimCodeFunction.java
index 986b5cd..25171c6 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/functions/SimCodeFunction.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/functions/SimCodeFunction.java
@@ -25,6 +25,7 @@ public class SimCodeFunction extends 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;
@@ -34,7 +35,10 @@ public class SimCodeFunction extends SimCode {
 	public SimCode run(Arduino _arduino, SimCodeFunction functionHead) {
 		if (functionHead == null) {
 			isMain = true;
+		} else {
+			prevStack=functionHead;
 		}
+		
 		this.arduino = _arduino;
 		vars = new Vector<Variable>();
 		for (SimCode code : codeBlocks) {
@@ -63,6 +67,10 @@ public class SimCodeFunction extends SimCode {
 				return true;
 			}
 		}
+		if (prevStack!=null) {
+		if(prevStack.setVariable(_name, _value)) 
+			return true;
+		}
 		if (arduino.setVariable(_name, _value))
 			return true;
 
@@ -76,6 +84,9 @@ public class SimCodeFunction extends SimCode {
 				return var.getValue();
 			}
 		}
+		if (prevStack!=null) {
+			return prevStack.readVariable(_name);
+		}
 		return arduino.readVariable(_name);
 
 	}
diff --git a/src/tec/letsgoing/ardublock/simulator/view/GUI.java b/src/tec/letsgoing/ardublock/simulator/view/GUI.java
index bdb7273..e6f5764 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/GUI.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/GUI.java
@@ -165,7 +165,7 @@ public class GUI extends JFrame implements Runnable, ActionListener {
 	}
 
 	private void drawConnections(Graphics g) {
-		int[] assignment = { 11, 10, 9, 5, 4, 3, 19 };
+		int[] assignment = { 11, 10, 9, 4, 3,2 , 14 };
 		g.setColor(Color.ORANGE);
 		Vector<Point> pinArduino = modules[3].getPinPos();
 		Point posArduino = modules[3].getPosition();
@@ -178,8 +178,11 @@ public class GUI extends JFrame implements Runnable, ActionListener {
 				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,
+							p.x + modules[i].getPosition().x, pinArduino.get(assignment[counter]).y + posArduino.y-40);
+					g2.drawLine(p.x + modules[i].getPosition().x, pinArduino.get(assignment[counter]).y + posArduino.y-40,
+							pinArduino.get(assignment[counter]).x + posArduino.x,
+							pinArduino.get(assignment[counter]).y + posArduino.y-40);
+					g2.drawLine(pinArduino.get(assignment[counter]).x + posArduino.x, pinArduino.get(assignment[counter]).y + posArduino.y-40,
 							pinArduino.get(assignment[counter]).x + posArduino.x,
 							pinArduino.get(assignment[counter]).y + posArduino.y);
 				} else {
diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java
index e9298f1..1623069 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Button.java
@@ -84,15 +84,15 @@ public class Button extends Modul implements ActionListener {
 	}
 
 	public boolean connect(Arduino arduino) {
-		Pin tmpPin = arduino.getPin(5);
+		Pin tmpPin = arduino.getPin(4);
 		this.addPin(tmpPin);
 		tmpPin.setObserver(this);
 
-		tmpPin = arduino.getPin(4);
+		tmpPin = arduino.getPin(3);
 		this.addPin(tmpPin);
 		tmpPin.setObserver(this);
 
-		tmpPin = arduino.getPin(3);
+		tmpPin = arduino.getPin(2);
 		this.addPin(tmpPin);
 		tmpPin.setObserver(this);
 
diff --git a/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java b/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java
index 0c215f8..28e0e57 100644
--- a/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java
+++ b/src/tec/letsgoing/ardublock/simulator/view/modules/Poti.java
@@ -74,8 +74,8 @@ public class Poti extends Modul implements ChangeListener, MouseWheelListener {
 	}
 
 	public boolean connect(Arduino arduino) {
-		this.addPin(arduino.getPin(5 + 13));
-		arduino.getPin(5 + 13).setObserver(this);
+		this.addPin(arduino.getPin(0 + 14));
+		arduino.getPin(0 + 14).setObserver(this);
 		return true;
 	}
 
-- 
GitLab