From 3ba4e6b22fc46f0c3c5bad66b55d329ed9305590 Mon Sep 17 00:00:00 2001 From: Corey Harding Date: Mon, 4 Sep 2017 17:14:22 -0400 Subject: [PATCH] Release 2.3.3 Speed up --- source/ESP_Code/ESP_Code.ino | 20 +++++++++++--------- source/ESP_Code/ESP_Code.ino.generic.bin | Bin 353792 -> 353792 bytes 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/source/ESP_Code/ESP_Code.ino b/source/ESP_Code/ESP_Code.ino index 027b476..c9aa625 100644 --- a/source/ESP_Code/ESP_Code.ino +++ b/source/ESP_Code/ESP_Code.ino @@ -61,7 +61,7 @@ ESP8266WebServer httpServer(1337); ESP8266HTTPUpdateServer httpUpdater; HTTPClient http; -String version = "2.3.2"; +String version = "2.3.3"; String latestversion = ""; const char* update_path = "/update"; @@ -89,8 +89,6 @@ void runpayload() { // SOFTserial.println(line); // Serial.println(line); String line = f.readStringUntil('\n'); - Serial.println(line); - String fullkeys = line; int str_len = fullkeys.length()+1; char keyarray[str_len]; @@ -106,7 +104,6 @@ void runpayload() { if(cmd == "Rem") { cmdinput = String(strtok_r(NULL,":",&i)); - DelayLength = 1500; } else if(cmd == "DefaultDelay") { @@ -120,10 +117,13 @@ void runpayload() { cmdinput = String(strtok_r(NULL,":",&i)); String customdelay = cmdinput; custom_delay = customdelay.toInt(); - DelayLength = custom_delay; + delay(custom_delay); // Serial.println(String()+"Custom delay set to:"+custom_delay); } // Serial.println(DelayLength); + else { + Serial.println(line); + } delay(DelayLength); //delay between lines in payload, I found running it slower works best DelayLength = defaultdelay; } @@ -533,8 +533,7 @@ void setup(void) delay(livepayloaddelay); while(splitlines != NULL) { - Serial.println(splitlines); - + String liveline=splitlines; char *i; String cmd; String cmdinput; @@ -547,7 +546,6 @@ void setup(void) if(cmd == "Rem") { cmdinput = String(strtok_r(NULL,":",&i)); - DelayLength = 1500; } else if(cmd == "DefaultDelay") { @@ -561,10 +559,14 @@ void setup(void) cmdinput = String(strtok_r(NULL,":",&i)); String customdelay = cmdinput; custom_delay = customdelay.toInt(); - DelayLength = custom_delay; + delay(custom_delay); // Serial.println(String()+"Custom delay set to:"+custom_delay); } // Serial.println(DelayLength); + else { + Serial.println(liveline); + } + delay(DelayLength); //delay between lines in payload, I found running it slower works best DelayLength = defaultdelay; } diff --git a/source/ESP_Code/ESP_Code.ino.generic.bin b/source/ESP_Code/ESP_Code.ino.generic.bin index 9f0213b51934efd2b61462655ca9108cc05bc44a..38649dc1b7163b1a177fac5dc7c664b16fb7d586 100644 GIT binary patch delta 13806 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 Lv}X;$bg%yh75lM+ delta 13804 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