From 48b655206418ec0d612efd180e87226734530fb4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Anian=20B=C3=BChler?=
 <anian.buehler@reutlingen-university.de>
Date: Fri, 14 Jan 2022 12:16:25 +0100
Subject: [PATCH] Added EscapeCodes to Serial.print

---
 .../simcode/comm/CodeSerialPrint.java         | 20 ++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeSerialPrint.java b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeSerialPrint.java
index 5547e7a..0745964 100644
--- a/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeSerialPrint.java
+++ b/src/tec/letsgoing/ardublock/simulator/simcode/comm/CodeSerialPrint.java
@@ -11,13 +11,28 @@ import tec.letsgoing.ardublock.simulator.simcode.datatypes.SimTypeString;
 /**
  * Sende Nachricht via Serial
  * 
- * @author Lucas
+ * @author Lucas, Anian
  * 
  *
  */
 public class CodeSerialPrint extends SimCode {
 	private SimTypeString stringBlock;
 	private SimTypeBool boolBlock;
+	
+	private String replaceEscapeCodes(String str) {
+		int indexNL  = str.indexOf("\\n");
+		int indexTab = str.indexOf("\\t");
+		
+		while(indexNL > -1) {
+			str = str.substring(0, indexNL) + "\n" + str.substring(indexNL+2);
+			indexNL =  str.indexOf("\\n");
+		}
+		while(indexTab > -1) {
+			str = str.substring(0, indexTab) + "\t" + str.substring(indexTab+2);
+			indexTab = str.indexOf("\\t");
+		}	
+		return str;
+	}
 
 	public CodeSerialPrint(SimTypeString _stringBlock, SimTypeBool _boolBlock) {
 		stringBlock = _stringBlock;
@@ -26,7 +41,10 @@ public class CodeSerialPrint extends SimCode {
 
 	public SimCode run(Arduino _arduino, SimCode functionHead) {
 		String content;
+		
 		content = stringBlock.run(_arduino, functionHead).toString();
+		content = replaceEscapeCodes(content);
+		
 		if (boolBlock.run(_arduino, functionHead).getValue()) {
 			content += "\n";
 		}
-- 
GitLab