]> sigrok.org Git - libsigrok.git/commitdiff
serial: dump DMM packets during stream detection
authorGerhard Sittig <redacted>
Mon, 8 Oct 2018 15:07:07 +0000 (17:07 +0200)
committerUwe Hermann <redacted>
Sat, 13 Oct 2018 13:57:01 +0000 (15:57 +0200)
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

index 3c7ab643b6d6dfb6a75c2ac7797fc6c87eaf02a2..ca46ea51ca405ddfe59b13ea1e7e19ab46f22bcf 100644 (file)
@@ -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);