From e5fa47c1c938fc7389d18df314784871e16049ae Mon Sep 17 00:00:00 2001 From: Gerhard Sittig Date: Mon, 8 Oct 2018 17:07:07 +0200 Subject: [PATCH] serial: dump DMM packets during stream detection Regular operation of serial DMM drivers optionally can dump packet bytes after the intialization phase has synchronized to the stream. Failure to synchronize to the stream left developers without a dump, which complicates research what went wrong. Do dump packet content while the serial_stream_detect() routine tries to synchronize to the stream. Use the spew level since the dump occurs upon every attempt, which translates to: every received byte until a valid packet was seen (or the synchronization phase expired). --- src/serial.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/serial.c b/src/serial.c index 3c7ab643..ca46ea51 100644 --- a/src/serial.c +++ b/src/serial.c @@ -715,7 +715,11 @@ SR_PRIV int serial_stream_detect(struct sr_serial_dev_inst *serial, time /= 1000; if ((ibuf - i) >= packet_size) { + GString *text; /* We have at least a packet's worth of data. */ + text = sr_hexdump_new(&buf[i], packet_size); + sr_spew("Trying DMM packet: %s", text->str); + sr_hexdump_free(text); if (is_valid(&buf[i])) { sr_spew("Found valid %zu-byte packet after " "%" PRIu64 "ms.", (ibuf - i), time);