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 e496e51741582d1efdda7e488fd0c4223de96742..7aebd8840186efd3b200ffebd72fb0d802aa7331 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 282c44db8604faf4734ebde42035a4ecf6a336cf..78d683242a0d3b91d664a72c9365ae12c1aae4f6 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 696f171c552f7a2d6ae7dabd06f5b5a7363c3f51..386b513970ffed1c9aa2213cd2d86c809e36d280 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 e9bab2a27d4e2cfe9f23461a0183a3010f5fbbc7..3688405ce3dbb2e9dd8dfbe22c2e6c1528409358 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 20e46d53f69bba22cfa7963795b7aa8208d239b5..1a225d36914b5bedaeccaa158c455252bfb1689b 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();