From a0ade2f933d62fee3dea55475c7a9c69883b8b25 Mon Sep 17 00:00:00 2001 From: Timo Kokkonen Date: Mon, 1 Jun 2020 23:56:03 -0700 Subject: [PATCH] scpi_serial: Add support for (broken) devices sending NL+CR terminator. This allows SCPI code to work with devices that terminate their responses with NL+CR (instead of usual NL) like some GW-Instek DMMs. --- src/scpi/scpi_serial.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/scpi/scpi_serial.c b/src/scpi/scpi_serial.c index 6158f089..6f642211 100644 --- a/src/scpi/scpi_serial.c +++ b/src/scpi/scpi_serial.c @@ -187,7 +187,12 @@ static int scpi_serial_read_data(void *priv, char *buf, int maxlen) if (ret > 0) { if (buf[ret - 1] == '\n') { sscpi->got_newline = TRUE; - sr_spew("Received terminator"); + sr_spew("Received NL terminator"); + } else if (ret > 1 && + buf[ret - 2] == '\n' && buf[ret - 1] == '\r') { + sscpi->got_newline = TRUE; + sr_spew("Received NL+CR terminator"); + ret--; } else { sscpi->got_newline = FALSE; }