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 @@ -9,7 +9,6 @@
import com.ardublock.translator.block.exception.SocketNullException;
import com.ardublock.translator.block.exception.SubroutineNotDeclaredException;
import com.ardublock.translator.block.numbers.LocalVariableNumberBlock;
import com.ardublock.translator.block.numbers.NumberBlock;
import com.ardublock.translator.block.numbers.VariableNumberBlock;

public class SetterNumberArrayBlock extends TranslatorBlock
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.ardublock.translator.block.code;

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 CodeBlock extends TranslatorBlock
{
public CodeBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label)
{
super(blockId, translator, codePrefix, codeSuffix, label);
}

@Override
public String toCode() throws SocketNullException, SubroutineNotDeclaredException
{
TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
String ret = "\t"+translatorBlock.toCode().replaceAll("\"", "")+"\n";
return ret;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.ardublock.translator.block.code;

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 CommentBlock extends TranslatorBlock
{
public CommentBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label)
{
super(blockId, translator, codePrefix, codeSuffix, label);
}

@Override
public String toCode() throws SocketNullException, SubroutineNotDeclaredException
{
TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
String comment = translatorBlock.toCode().replaceAll("\"", "");
String ret = "//"+ comment +"\n";
return ret;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.ardublock.translator.block.code;

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 CommentHeadBlock extends TranslatorBlock
{
public CommentHeadBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label)
{
super(blockId, translator, codePrefix, codeSuffix, label);
}

@Override
public String toCode() throws SocketNullException, SubroutineNotDeclaredException
{
TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
String comment = translatorBlock.toCode().replaceAll("\"", "");
String ret = "//"+ comment +"\n";
translator.addDefinitionCommand(ret);
return "";
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
package com.ardublock.translator.block.code;

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 CommentProgramBlock extends TranslatorBlock
{
public CommentProgramBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label)
{
super(blockId, translator, codePrefix, codeSuffix, label);
}

@Override
public String toCode() throws SocketNullException, SubroutineNotDeclaredException
{
String programName = "";
String programAuthor = "";
String programDescription1 = "", programDescription2 = "", programDescription3 = "";
String programDate ="";
String programVersion ="";

String ret = "/**\n";

TranslatorBlock tb_programName = this.getRequiredTranslatorBlockAtSocket(0);
programName = tb_programName.toCode().replaceAll("\"", "");
ret += "* file:\t" + programName +"\n";

TranslatorBlock tb_programAuthor = this.getRequiredTranslatorBlockAtSocket(1);
programAuthor = tb_programAuthor.toCode().replaceAll("\"", "");
ret += "* author:\t" + programAuthor +"\n* \n";

TranslatorBlock tb_programDescription1 = this.getRequiredTranslatorBlockAtSocket(2);
programDescription1 = tb_programDescription1.toCode().replaceAll("\"", "");
ret += "* description:\n* " + programDescription1 +"\n";

TranslatorBlock tb_programDescription2 = this.getTranslatorBlockAtSocket(3);
if(tb_programDescription2 != null){
programDescription2 = tb_programDescription2.toCode().replaceAll("\"", "");
ret += "* " + programDescription2 +"\n";
}

TranslatorBlock tb_programDescription3 = this.getTranslatorBlockAtSocket(4);
if(tb_programDescription3 != null){
programDescription3 = tb_programDescription3.toCode().replaceAll("\"", "");
ret += "* " + programDescription3 +"\n";
}

TranslatorBlock tb_programDate = this.getRequiredTranslatorBlockAtSocket(5);
programDate = tb_programDate.toCode().replaceAll("\"", "");
ret += "* \n* date:\t" + programDate +"\n";

TranslatorBlock tb_programVersion = this.getRequiredTranslatorBlockAtSocket(6);
programVersion = tb_programVersion.toCode().replaceAll("\"", "");
ret += "* version:\t" + programVersion +"\n*/\n";

translator.addDefinitionCommand(ret);
return "";
}
}

/*String ret = "/**\n"
+"* file:\t" + programName +"\n"
+"* author:\t" + programAuthor +"\n"
+"* \n"
+"* description:\n"
+"* " + programDescription1 +"\n"
+"* " + programDescription2 +"\n"
+"* " + programDescription3 +"\n"
+"* \n"
+"* date:\t" + programDate +"\n"
+"* version:\t" + programVersion +"\n"
+"*\n";
*/
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
package com.ardublock.translator.block.communication;

import java.util.ResourceBundle;

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.ConstantStringBlock;
import com.ardublock.translator.block.numbers.LocalVariableNumberBlock;
import com.ardublock.translator.block.numbers.LocalVariableStringBlock;
import com.ardublock.translator.block.numbers.VariableNumberBlock;
import com.ardublock.translator.block.numbers.VariableStringBlock;

public class MQTTReadFrameBlock extends TranslatorBlock
{
private static ResourceBundle uiMessageBundle = ResourceBundle.getBundle("com/ardublock/block/ardublock");

public MQTTReadFrameBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label)
{
super(blockId, translator, codePrefix, codeSuffix, label);
}

private final static String readMQTTFrameFunction = "void readMQTTFrame(int* topicLength, char* topic, int* payloadLength, char* payload, char* recBuffer) {\r\n" +
" char charBuffer = '-';\r\n" +
" int charCounter = 0;\r\n" +
" bool topicRead = false;\r\n" +
" bool payloadRead = false;\r\n" +
" \r\n" +
" topic[0] = char(0); //setze Abschlusszeichen f�r string/print falls keine korrekten Daten erhalten werden\r\n" +
" payload[0] = char(0); //setze Abschlusszeichen f�r string/print falls keine korrekten Daten erhalten werden\r\n" +
" \r\n" +
" while (!(topicRead && payloadRead)) {\r\n" +
" charBuffer = recBuffer[charCounter];\r\n" +
" if (charBuffer == '<') {\r\n" +
" charCounter = 1;\r\n" +
" }\r\n" +
" else if (charBuffer == '|') {\r\n" +
" topicRead = true;\r\n" +
" *topicLength = charCounter - 1;\r\n" +
" topic[*topicLength] = char(0); //setze Abschlusszeichen f�r string/print\r\n" +
" charCounter++;\r\n" +
" }\r\n" +
" else if (charBuffer == '>') {\r\n" +
" payloadRead = true;\r\n" +
" *payloadLength = charCounter - *topicLength - 2;\r\n" +
" payload[*payloadLength] = char(0); //setze Abschlusszeichen f�r string/print\r\n" +
" }\r\n" +
" else if(charCounter > 100){\r\n" +
" *topicLength = 0;\r\n" +
" topic[0] = char(0); //setze Abschlusszeichen f�r string/print da keine korrekten Daten erhalten werden\r\n" +
" *payloadLength = 0;\r\n" +
" payload[0] = char(0); //setze Abschlusszeichen f�r string/print da keine korrekten Daten erhalten werden\r\n" +
" break;\r\n" +
" }\r\n" +
" else {\r\n" +
" if (!topicRead) {\r\n" +
" topic[charCounter - 1] = charBuffer;\r\n" +
" } else {\r\n" +
" payload[charCounter - *topicLength - 2] = charBuffer;\r\n" +
" }\r\n" +
" charCounter++;\r\n" +
" }\r\n" +
" }\r\n" +
"};";

public String toCode() throws SocketNullException, SubroutineNotDeclaredException
{
String topicLength = null;
String topic = null;
String payloadLength = null;
String payload = null;
String recBuffer = null;

TranslatorBlock tbTopicLength = this.getRequiredTranslatorBlockAtSocket(0);
topicLength = tbTopicLength.toCode().replaceAll("\\s*_.new\\b\\s*", "");


TranslatorBlock tbTopic = this.getRequiredTranslatorBlockAtSocket(1);
topic = tbTopic.toCode().replaceAll("\\s*_.new\\b\\s*", "");

TranslatorBlock tbPayloadLength = this.getRequiredTranslatorBlockAtSocket(2);
payloadLength = tbPayloadLength.toCode().replaceAll("\\s*_.new\\b\\s*", "");


TranslatorBlock tbPayload = this.getRequiredTranslatorBlockAtSocket(3);
payload = tbPayload.toCode().replaceAll("\\s*_.new\\b\\s*", "");

TranslatorBlock tbRecBuffer = this.getRequiredTranslatorBlockAtSocket(4);
recBuffer = tbRecBuffer.toCode().replaceAll("\\s*_.new\\b\\s*", "");

if (!(tbTopicLength instanceof VariableNumberBlock) && !(tbTopicLength instanceof LocalVariableNumberBlock)) {
throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.number_var_slot"));
}

if (!(tbTopic instanceof VariableStringBlock) && !(tbTopic instanceof LocalVariableStringBlock) && !(tbTopic instanceof ConstantStringBlock)) {
throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot"));
}

if (!(tbPayloadLength instanceof VariableNumberBlock) && !(tbPayloadLength instanceof LocalVariableNumberBlock)) {
throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.number_var_slot"));
}

if (!(tbPayload instanceof VariableStringBlock) && !(tbPayload instanceof LocalVariableStringBlock) && !(tbPayload instanceof ConstantStringBlock)) {
throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot"));
}

if (!(tbRecBuffer instanceof VariableStringBlock) && !(tbRecBuffer instanceof LocalVariableStringBlock) && !(tbRecBuffer instanceof ConstantStringBlock)) {
throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot"));
}

translator.addDefinitionCommand(readMQTTFrameFunction);

String ret = "readMQTTFrame(&"+topicLength+", "+topic+", &"+payloadLength+", "+payload+", "+recBuffer+");";


return codePrefix + ret + codeSuffix;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package com.ardublock.translator.block.communication;

import java.util.ResourceBundle;

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.ConstantStringBlock;
import com.ardublock.translator.block.numbers.LocalVariableStringBlock;
import com.ardublock.translator.block.numbers.VariableStringBlock;

public class MQTTSetFrameBlock extends TranslatorBlock
{
private static ResourceBundle uiMessageBundle = ResourceBundle.getBundle("com/ardublock/block/ardublock");

public MQTTSetFrameBlock(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label)
{
super(blockId, translator, codePrefix, codeSuffix, label);
}

private final static String setMQTTFrameFunction = "void setMQTTFrame(int topicLength, char* topic, int payloadLength, char* payload, char* sendBuffer) {"
+ " sendBuffer[0] = '<'; //setze Startzeichen"
+ " sendBuffer[topicLength + 1] = '|'; // setze Trennzeichen"
+ " sendBuffer[topicLength + payloadLength + 2] = '>'; // setze Stoppzeichen"
+ " sendBuffer[topicLength + payloadLength + 3] = char(0); // setze Abschlusszeichen f�r string/print"
+ " for (int i = 0; i < topicLength; i++) {"
+ " sendBuffer[1 + i] = topic[i]; //�bertrage Zeichen aus topic in sendBuffer"
+ " }"
+ " for (int i = 0; i < payloadLength; i++) {"
+ " sendBuffer[topicLength + 2 + i] = payload[i]; //�bertrage Zeichen aus payload in sendBuffer"
+ " }"
+ "};";




public String toCode() throws SocketNullException, SubroutineNotDeclaredException
{
String topicLength;
String topic;
String payloadLength;
String payload;
String sendBuffer;

TranslatorBlock tbTopicLength = this.getRequiredTranslatorBlockAtSocket(0);
topicLength = tbTopicLength.toCode().replaceAll("\\s*_.new\\b\\s*", "");

TranslatorBlock tbTopic = this.getRequiredTranslatorBlockAtSocket(1);
topic = tbTopic.toCode().replaceAll("\\s*_.new\\b\\s*", "");

TranslatorBlock tbPayloadLength = this.getRequiredTranslatorBlockAtSocket(2);
payloadLength = tbPayloadLength.toCode().replaceAll("\\s*_.new\\b\\s*", "");

TranslatorBlock tbPayload = this.getRequiredTranslatorBlockAtSocket(3);
payload = tbPayload.toCode().replaceAll("\\s*_.new\\b\\s*", "");

TranslatorBlock tbSendBuffer = this.getRequiredTranslatorBlockAtSocket(4);
sendBuffer = tbSendBuffer.toCode().replaceAll("\\s*_.new\\b\\s*", "");

if (!(tbTopic instanceof VariableStringBlock) && !(tbTopic instanceof LocalVariableStringBlock) && !(tbTopic instanceof ConstantStringBlock)) {
throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot"));
}

if (!(tbPayload instanceof VariableStringBlock) && !(tbPayload instanceof LocalVariableStringBlock) && !(tbPayload instanceof ConstantStringBlock)) {
throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot"));
}

if (!(tbSendBuffer instanceof VariableStringBlock) && !(tbSendBuffer instanceof LocalVariableStringBlock) && !(tbSendBuffer instanceof ConstantStringBlock)) {
throw new BlockException(blockId, uiMessageBundle.getString("ardublock.error_msg.string_var_slot"));
}

translator.addDefinitionCommand(setMQTTFrameFunction);

String ret = "setMQTTFrame("+topicLength+", "+topic+", "+payloadLength+", "+payload+", "+sendBuffer+");";


return codePrefix + ret + codeSuffix;
}
}
Loading