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