From: Sylvain Pelissier Date: Mon, 2 Oct 2017 07:01:31 +0000 (+0200) Subject: SCPI: Ignore IDN header in *IDN? response X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=commitdiff_plain;h=47bbc4b531eb8e491115b0dbcb686d23c78235fb SCPI: Ignore IDN header in *IDN? response --- diff --git a/src/scpi/scpi.c b/src/scpi/scpi.c index 48e6a484..84335408 100644 --- a/src/scpi/scpi.c +++ b/src/scpi/scpi.c @@ -908,6 +908,7 @@ SR_PRIV int sr_scpi_get_hw_id(struct sr_scpi_dev_inst *scpi, char *response; gchar **tokens; struct sr_scpi_hw_info *hw_info; + gchar *idn_substr; response = NULL; tokens = NULL; @@ -936,7 +937,13 @@ SR_PRIV int sr_scpi_get_hw_id(struct sr_scpi_dev_inst *scpi, g_free(response); hw_info = g_malloc0(sizeof(struct sr_scpi_hw_info)); - hw_info->manufacturer = g_strstrip(g_strdup(tokens[0])); + + idn_substr = g_strstr_len(tokens[0], -1, "IDN "); + if (idn_substr == NULL) + hw_info->manufacturer = g_strstrip(g_strdup(tokens[0])); + else + hw_info->manufacturer = g_strstrip(g_strdup(idn_substr + 4)); + hw_info->model = g_strstrip(g_strdup(tokens[1])); hw_info->serial_number = g_strstrip(g_strdup(tokens[2])); hw_info->firmware_version = g_strstrip(g_strdup(tokens[3]));