From 895206a046e2be2c91bc5bf174eff1f1a82dabb3 Mon Sep 17 00:00:00 2001 From: giomba Date: Mon, 23 Dec 2019 21:45:25 +0100 Subject: [PATCH] SLIP bug: reading too fast from serial when the escape char was read from serial, then the escaped char was read immediately after, but it was not available, thus resulting in no proper escape; now fixed --- slip.ino | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/slip.ino b/slip.ino index de8b8dd..bdf674a 100644 --- a/slip.ino +++ b/slip.ino @@ -3,7 +3,7 @@ namespace slip { void send(const char* buffer, int len) { // Serial.write(END); /* frame-out any possible noise on the line */ - for (uint8_t i = 0; i < len; ++i) { + for (int i = 0; i < len; ++i) { switch (buffer[i]) { case END: Serial.write(ESC); @@ -24,7 +24,7 @@ namespace slip { int recv(char* buffer, int len) { char r; - uint8_t i = 0; + int i = 0; while (i < len) { if (Serial.available()) { @@ -32,6 +32,7 @@ namespace slip { switch (r) { case ESC: + while (Serial.available() <= 0); r = Serial.read(); if (r == ESC_END) { buffer[i++] = END;