Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -92,13 +92,15 @@ public String generateSetupFunction()
StringBuilder setupFunction = new StringBuilder();
setupFunction.append("void setup()\n{\n");

//Replaced with "addSetupCommand" in DigitalInputBlock letsgoING
if (!inputPinSet.isEmpty())
{
for (String pinNumber:inputPinSet)
{
setupFunction.append("pinMode( " + pinNumber + " , INPUT);\n");
}
}
//Replaced with "addSetupCommand" in DigitalOutputBlock letsgoING
if (!outputPinSet.isEmpty())
{
for (String pinNumber:outputPinSet)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio
{
TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
String comment = translatorBlock.toCode().replaceAll("\"", "");
String ret = "//"+ comment +"\n";
String ret = "\n//"+ comment+"\n";
return ret;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio
{
TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
String comment = translatorBlock.toCode().replaceAll("\"", "");
String ret = "//"+ comment +"\n";
String ret = "\n//"+ comment+"\n";
translator.addDefinitionCommand(ret);
return "";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio
String ret = "if (";
TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
ret = ret + translatorBlock.toCode().replaceAll("\\s*_.new\\b\\s*", "");
ret = ret + ")\n{\n";
ret = ret + ") {\n";
translatorBlock = getTranslatorBlockAtSocket(1);
while (translatorBlock != null)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio
String ret = "if (";
TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
ret = ret + translatorBlock.toCode().replaceAll("\\s*_.new\\b\\s*", "");
ret = ret + ")\n{\n";
ret = ret + ") {\n";
translatorBlock = getTranslatorBlockAtSocket(1);
while (translatorBlock != null)
{
ret = ret + translatorBlock.toCode();
translatorBlock = translatorBlock.nextTranslatorBlock();
}
ret = ret + "}\nelse\n{\n";
ret = ret + "}\nelse {\n";
translatorBlock = getTranslatorBlockAtSocket(2);
while (translatorBlock != null)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ else if ((tb_Name instanceof VariableNumberBlock) && variableName.contains(newMa
ret += variableName;
}

ret += " = 0; " + variableName +" < " + value + "; "+ variableName +"++){\n";
ret += " = 0; " + variableName +" < " + value + "; "+ variableName +"++) {\n";

TranslatorBlock translatorBlock = getTranslatorBlockAtSocket(2);
while (translatorBlock != null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio

String ret = "";

ret = ret + "for( int" + varName + " = " + startVal + "; \n" +
ret = ret + "for ( int" + varName + " = " + startVal + "; \n" +
startVal + "<=" + stopVal + "?" + varName + " <= " + stopVal + ":" + varName + " >= " + stopVal + "; \n" +
startVal + "<=" + stopVal + "?" + varName + " = " + varName + " + " + incVal + ":" + varName + " = " + varName + " - " + incVal + ")\n{";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio
String ret = "for (int i = 0; i < ";
TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
ret = ret + translatorBlock.toCode().replaceAll("\\s*_.new\\b\\s*", "");
ret = ret + "; i++){\n";
ret = ret + "; i++) {\n";


translatorBlock = getTranslatorBlockAtSocket(1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public void onTranslateBodyFinished()

for (String command : setupCommand)
{
translator.addSetupCommandForced(command);
translator.addSetupCommand(command);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio
String ret = "while ( ";
TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
ret = ret + translatorBlock.toCode().replaceAll("\\s*_.new\\b\\s*", "");
ret = ret + " )\n\t{\n";
ret = ret + " ) {\n";
translatorBlock = getTranslatorBlockAtSocket(1);
while (translatorBlock != null)
{
ret = ret + "\t"+translatorBlock.toCode();
ret = ret +translatorBlock.toCode();
translatorBlock = translatorBlock.nextTranslatorBlock();
}
ret = ret + "\t}\n\n";
ret = ret + "}\n";
return ret;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import com.ardublock.translator.block.TranslatorBlock;
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;

public class DigitalInputBlock extends TranslatorBlock
{
Expand All @@ -18,7 +20,12 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio
String number;
TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
number = translatorBlock.toCode().replaceAll("\\s*_.new\\b\\s*", "");
translator.addInputPin(number.trim());

if(translatorBlock instanceof NumberBlock || translatorBlock instanceof VariableNumberBlock){
//translator.addInputPin(number.trim());
translator.addSetupCommand("pinMode("+number.trim()+", INPUT);");
}


String ret = "digitalRead(";
ret = ret + number;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import com.ardublock.translator.block.TranslatorBlock;
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;

public class DigitalInputPullBlock extends TranslatorBlock
{
Expand All @@ -17,8 +19,11 @@ public String toCode() throws SocketNullException, SubroutineNotDeclaredExceptio
{
TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
String number = translatorBlock.toCode().replaceAll("\\s*_.new\\b\\s*", "");
String setupCode = "pinMode( " + number + " , INPUT_PULLUP);";
translator.addSetupCommand(setupCode);

if(translatorBlock instanceof NumberBlock || translatorBlock instanceof VariableNumberBlock){
//translator.addSetupCommand("pinMode( " + number + " , INPUT_PULLUP);");
translator.addSetupCommand("pinMode("+number.trim()+", INPUT_PULLUP);");
}

String ret = "digitalRead(";
ret = ret + translatorBlock.toCode().replaceAll("\\s*_.new\\b\\s*", "");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.ardublock.translator.block.input;

import com.ardublock.translator.Translator;
import com.ardublock.translator.block.TranslatorBlock;
import com.ardublock.translator.block.exception.SocketNullException;
import com.ardublock.translator.block.exception.SubroutineNotDeclaredException;

public class PinModeInputBlock extends TranslatorBlock
{
public PinModeInputBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label)
{
super(blockId, translator, codePrefix, codeSuffix, label);
}

@Override
public String toCode() throws SocketNullException, SubroutineNotDeclaredException
{
String number;
TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
number = translatorBlock.toCode().replaceAll("\\s*_.new\\b\\s*", "");

String ret = "pinMode("+number.trim()+", INPUT);";
return codePrefix + ret + codeSuffix;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
import com.ardublock.translator.block.TranslatorBlock;
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;

public class DigitalOutputBlock extends TranslatorBlock
{
Expand All @@ -15,9 +17,15 @@ public DigitalOutputBlock(Long blockId, Translator translator, String codePrefix
@Override
public String toCode() throws SocketNullException, SubroutineNotDeclaredException
{

TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
String number = translatorBlock.toCode().replaceAll("\\s*_.new\\b\\s*", "");
translator.addOutputPin(number.trim());

//ToDo:
if(translatorBlock instanceof NumberBlock || translatorBlock instanceof VariableNumberBlock){
//translator.addOutputPin(number.trim());
translator.addSetupCommand("pinMode("+number.trim()+", OUTPUT);");
}

String ret = "digitalWrite( ";
ret = ret + number;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.ardublock.translator.block.output;

import com.ardublock.translator.Translator;
import com.ardublock.translator.block.TranslatorBlock;
import com.ardublock.translator.block.exception.SocketNullException;
import com.ardublock.translator.block.exception.SubroutineNotDeclaredException;

public class PinModeOutputBlock extends TranslatorBlock
{
public PinModeOutputBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label)
{
super(blockId, translator, codePrefix, codeSuffix, label);
}

@Override
public String toCode() throws SocketNullException, SubroutineNotDeclaredException
{
String number;
TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
number = translatorBlock.toCode().replaceAll("\\s*_.new\\b\\s*", "");

String ret = "pinMode("+number.trim()+", OUTPUT);";
return codePrefix + ret + codeSuffix;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import javax.swing.KeyStroke;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.undo.UndoManager;

import com.ardublock.core.Context;
import com.ardublock.ui.listener.ArdublockWorkspaceListener;
Expand Down Expand Up @@ -62,8 +61,6 @@ public class OpenblocksFrame extends JFrame

private boolean workspaceModeState = false;

private UndoManager undoManager;

private ResourceBundle uiMessageBundle;

public void addListener(OpenblocksFrameListener ofl)
Expand Down Expand Up @@ -106,9 +103,6 @@ private void initOpenBlocks()
{
final Context context = Context.getContext();

undoManager = new UndoManager();
undoManager.setLimit(1000);

/*
WorkspaceController workspaceController = context.getWorkspaceController();
JComponent workspaceComponent = workspaceController.getWorkspacePanel();
Expand Down Expand Up @@ -151,7 +145,7 @@ private void initOpenBlocks()
openButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.load.tooltip"));

JButton generateButton = new JButton(uiMessageBundle.getString("ardublock.ui.upload"));
ActionListener generateButtonListener = new GenerateCodeButtonListener(this, context);
ActionListener generateButtonListener = new GenerateCodeButtonListener(this, this, context);
generateButton.addActionListener(generateButtonListener);
KeyStroke ctrluKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_U, ActionEvent.CTRL_MASK);
generateButton.registerKeyboardAction(generateButtonListener, ctrluKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import com.ardublock.translator.block.exception.SocketNullException;
import com.ardublock.translator.block.exception.SubroutineNameDuplicatedException;
import com.ardublock.translator.block.exception.SubroutineNotDeclaredException;
import com.ardublock.ui.OpenblocksFrame;

import edu.mit.blocks.codeblocks.Block;
import edu.mit.blocks.renderable.RenderableBlock;
Expand All @@ -27,10 +28,12 @@ public class GenerateCodeButtonListener implements ActionListener
private Context context;
private Workspace workspace;
private ResourceBundle uiMessageBundle;
private OpenblocksFrame openBlocksFrame;

public GenerateCodeButtonListener(JFrame frame, Context context)
public GenerateCodeButtonListener(JFrame frame, OpenblocksFrame obFrame, Context context)
{
this.parentFrame = frame;
this.openBlocksFrame=obFrame;
this.context = context;
workspace = context.getWorkspaceController().getWorkspace();
uiMessageBundle = ResourceBundle.getBundle("com/ardublock/block/ardublock");
Expand All @@ -43,6 +46,9 @@ public void actionPerformed(ActionEvent e)
Translator translator = new Translator(workspace);
translator.reset();

//AutoSave on Upload letsgoING
openBlocksFrame.doSaveArduBlockFile();

Iterable<RenderableBlock> renderableBlocks = workspace.getRenderableBlocks();

Set<RenderableBlock> loopBlockSet = new HashSet<RenderableBlock>();
Expand Down Expand Up @@ -86,7 +92,7 @@ public void actionPerformed(ActionEvent e)
{
loopBlockSet.add(renderableBlock);
}
if (block.getGenusName().equals("subroutine"))
if (block.getGenusName().equals("subroutine") || block.getGenusName().equals("subroutine_com"))
{
String functionName = block.getBlockLabel().trim();
try
Expand All @@ -102,7 +108,7 @@ public void actionPerformed(ActionEvent e)
}
subroutineBlockSet.add(renderableBlock);
}
if (block.getGenusName().equals("subroutine_var"))
if (block.getGenusName().equals("subroutine_var") || block.getGenusName().equals("subroutine_var_com"))
{
String functionName = block.getBlockLabel().trim();
try
Expand All @@ -118,7 +124,7 @@ public void actionPerformed(ActionEvent e)
}
subroutineBlockSet.add(renderableBlock);
}
if (block.getGenusName().equals("subroutine_varret"))
if (block.getGenusName().equals("subroutine_varret") || block.getGenusName().equals("subroutine_varret_com"))
{
String functionName = block.getBlockLabel().trim();
try
Expand Down
Loading