From: Wolfram Sang <w...@kernel.org>

- always say 'ID' when the ID command failed
- print hexdump of a faulty ID because on a stalled device we may get 4
  0x00 bytes which would terminate the string early.

Made debugging OLS startup issues a lot easier.

Signed-off-by: Wolfram Sang <w...@kernel.org>
---

 src/hardware/openbench-logic-sniffer/api.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/hardware/openbench-logic-sniffer/api.c 
b/src/hardware/openbench-logic-sniffer/api.c
index 4f9ee04f..6a341462 100644
--- a/src/hardware/openbench-logic-sniffer/api.c
+++ b/src/hardware/openbench-logic-sniffer/api.c
@@ -136,19 +136,22 @@ static GSList *scan(struct sr_dev_driver *di, GSList 
*options)
        g_usleep(RESPONSE_DELAY_US);
 
        if (serial_has_receive_data(serial) == 0) {
-               sr_dbg("Didn't get any reply.");
+               sr_dbg("Didn't get any ID reply.");
                return NULL;
        }
 
        ret = serial_read_blocking(serial, buf, 4, serial_timeout(serial, 4));
        if (ret != 4) {
-               sr_err("Invalid reply (expected 4 bytes, got %d).", ret);
+               sr_err("Invalid ID reply (expected 4 bytes, got %d).", ret);
                return NULL;
        }
 
        if (strncmp(buf, "1SLO", 4) && strncmp(buf, "1ALS", 4)) {
-               sr_err("Invalid reply (expected '1SLO' or '1ALS', got "
-                      "'%c%c%c%c').", buf[0], buf[1], buf[2], buf[3]);
+               GString *id = sr_hexdump_new((uint8_t *)buf, 4);
+
+               sr_err("Invalid ID reply (got %s).", id->str);
+
+               sr_hexdump_free(id);
                return NULL;
        }
 
-- 
2.20.1



_______________________________________________
sigrok-devel mailing list
sigrok-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sigrok-devel

Reply via email to