From 14a7aabf65e1c3f0d2a5dc121038efec29b83435 Mon Sep 17 00:00:00 2001
From: Lucas Stratmann <lucas.stratmann@student.reutlingen-university.de>
Date: Fri, 11 Sep 2020 11:20:02 +0200
Subject: [PATCH] Blinktest successful

---
 .../translator/block/control/DelayBlock.java   |  1 -
 .../block/numbers/DigitalHighBlock.java        |  3 ++-
 .../block/numbers/DigitalLowBlock.java         |  7 +++++++
 .../block/output/DigitalOutputBlock.java       | 11 ++++++++---
 .../listener/SimulateCodeButtonListener.java   | 18 ++++++++++++++++++
 5 files changed, 35 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/ardublock/translator/block/control/DelayBlock.java b/src/main/java/com/ardublock/translator/block/control/DelayBlock.java
index e496e51..7aebd88 100644
--- a/src/main/java/com/ardublock/translator/block/control/DelayBlock.java
+++ b/src/main/java/com/ardublock/translator/block/control/DelayBlock.java
@@ -30,7 +30,6 @@ public class DelayBlock extends TranslatorBlock
 	
 	@Override
 	public SimCode toSim() throws BlockException, SocketNullException {
-		System.out.println("New Delayblock");
 		CodeDelay delay = new CodeDelay((SimTypeInt)this.getRequiredTranslatorBlockAtSocket(0).toSim()); 
 		return delay;
 	}
diff --git a/src/main/java/com/ardublock/translator/block/numbers/DigitalHighBlock.java b/src/main/java/com/ardublock/translator/block/numbers/DigitalHighBlock.java
index 282c44d..78d6832 100644
--- a/src/main/java/com/ardublock/translator/block/numbers/DigitalHighBlock.java
+++ b/src/main/java/com/ardublock/translator/block/numbers/DigitalHighBlock.java
@@ -4,6 +4,7 @@ import com.ardublock.translator.Translator;
 import com.ardublock.translator.block.ConstBlock;
 
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
+import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
 
 public class DigitalHighBlock extends ConstBlock
 {
@@ -15,6 +16,6 @@ public class DigitalHighBlock extends ConstBlock
 	}
 	
 	public SimCode toSim() {
-		return null;//FIXME @Lucas Continue Work here!
+		return new SimTypeBool(true);
 	}
 }
diff --git a/src/main/java/com/ardublock/translator/block/numbers/DigitalLowBlock.java b/src/main/java/com/ardublock/translator/block/numbers/DigitalLowBlock.java
index 696f171..386b513 100644
--- a/src/main/java/com/ardublock/translator/block/numbers/DigitalLowBlock.java
+++ b/src/main/java/com/ardublock/translator/block/numbers/DigitalLowBlock.java
@@ -3,6 +3,9 @@ package com.ardublock.translator.block.numbers;
 import com.ardublock.translator.Translator;
 import com.ardublock.translator.block.ConstBlock;
 
+import tec.letsgoing.ardublock.simulator.simcode.SimCode;
+import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
+
 public class DigitalLowBlock extends ConstBlock
 {
 
@@ -11,4 +14,8 @@ public class DigitalLowBlock extends ConstBlock
 		super(blockId, translator, codePrefix, codeSuffix, label);
 		this.setCode("LOW");
 	}
+	
+	public SimCode toSim() {
+		return new SimTypeBool(false);
+	}
 }
\ No newline at end of file
diff --git a/src/main/java/com/ardublock/translator/block/output/DigitalOutputBlock.java b/src/main/java/com/ardublock/translator/block/output/DigitalOutputBlock.java
index e9bab2a..3688405 100644
--- a/src/main/java/com/ardublock/translator/block/output/DigitalOutputBlock.java
+++ b/src/main/java/com/ardublock/translator/block/output/DigitalOutputBlock.java
@@ -2,12 +2,14 @@ package com.ardublock.translator.block.output;
 
 import com.ardublock.translator.Translator;
 import com.ardublock.translator.block.TranslatorBlock;
+import com.ardublock.translator.block.exception.BlockException;
 import com.ardublock.translator.block.exception.SocketNullException;
 import com.ardublock.translator.block.exception.SubroutineNotDeclaredException;
 import com.ardublock.translator.block.numbers.NumberBlock;
 import com.ardublock.translator.block.numbers.VariableNumberBlock;
 
 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.io.CodeDigitalWrite;
 
@@ -41,9 +43,12 @@ public class DigitalOutputBlock extends TranslatorBlock
 		return ret;
 	}
 	
-	public SimCode toSim() {
-		//SimTypeInt(Integer.parseInt(label));
-		return null;//new CodeDigitalWrite(); 
+	public SimCode toSim() throws BlockException, SocketNullException {
+		TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
+		SimTypeInt pin=new SimTypeInt(translatorBlock.toSim());
+		translatorBlock = this.getRequiredTranslatorBlockAtSocket(1);
+		SimTypeBool lvl=new SimTypeBool(translatorBlock.toSim());
+		return new CodeDigitalWrite(pin,lvl);//new CodeDigitalWrite(); 
 	}
 
 }
diff --git a/src/main/java/com/ardublock/ui/listener/SimulateCodeButtonListener.java b/src/main/java/com/ardublock/ui/listener/SimulateCodeButtonListener.java
index 20e46d5..1a225d3 100644
--- a/src/main/java/com/ardublock/ui/listener/SimulateCodeButtonListener.java
+++ b/src/main/java/com/ardublock/ui/listener/SimulateCodeButtonListener.java
@@ -25,6 +25,9 @@ import edu.mit.blocks.workspace.Workspace;
 
 import tec.letsgoing.ardublock.simulator.Simulator;
 import tec.letsgoing.ardublock.simulator.simcode.SimCode;
+import tec.letsgoing.ardublock.simulator.simcode.control.CodeWhile;
+import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeBool;
+import tec.letsgoing.ardublock.simulator.simcode.functions.CodeExecuteFunction;
 import tec.letsgoing.ardublock.simulator.simcode.functions.SimCodeFunction;
 
 public class SimulateCodeButtonListener implements ActionListener
@@ -306,7 +309,22 @@ public class SimulateCodeButtonListener implements ActionListener
 				System.out.println(codeOut);
 			}	
 			context.didGenerate(codeOut, false);
+			
+	
+			
+			SimTypeBool boolTrue = new SimTypeBool(true);
+			Vector<SimCode> mainVec = new Vector<SimCode>();
+			//mainVec.add(new CodeExecuteFunction("setup"));
+			Vector<SimCode> loopVec = new Vector<SimCode>();
+			loopVec.add(new CodeExecuteFunction("loop"));
+			mainVec.add(new CodeWhile(boolTrue, loopVec));
+			SimCodeFunction main = new SimCodeFunction("main", mainVec);
+
+			//sim.addFunctionsCode(setupCode);
+			System.out.println("Add new Functions");
+			sim.resetFunctions();
 			sim.addFunctionsCode(loop);
+			sim.addFunctionsCode(main);
 			//TODO ! start simulator here
 			//sim.run();
 			//sim.startSimu();
-- 
GitLab