From: Gerhard Sittig Date: Sun, 14 Aug 2022 18:33:18 +0000 (+0200) Subject: kingst-la2016: add support for "probe names" scan option X-Git-Url: https://sigrok.org/gitweb/?p=libsigrok.git;a=commitdiff_plain;h=90ed86aa1737fd30bac4cbbeaae91d87b4c22682 kingst-la2016: add support for "probe names" scan option Add support for the SR_CONF_PROBE_NAMES scan option. Optionally assign user specified channel names instead of the driver's builtin names. --- diff --git a/src/hardware/kingst-la2016/api.c b/src/hardware/kingst-la2016/api.c index ab44d3b3..742f3e3a 100644 --- a/src/hardware/kingst-la2016/api.c +++ b/src/hardware/kingst-la2016/api.c @@ -36,6 +36,7 @@ static const uint32_t scanopts[] = { SR_CONF_CONN, + SR_CONF_PROBE_NAMES, }; static const uint32_t drvopts[] = { @@ -430,6 +431,7 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) uint8_t bus, addr; uint16_t pid; const char *conn; + const char *probe_names; char conn_id[64]; int ret; size_t ch_off, ch_max; @@ -441,12 +443,16 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) conn = NULL; conn_devices = NULL; + probe_names = NULL; for (l = options; l; l = l->next) { src = l->data; switch (src->key) { case SR_CONF_CONN: conn = g_variant_get_string(src->data, NULL); break; + case SR_CONF_PROBE_NAMES: + probe_names = g_variant_get_string(src->data, NULL); + break; } } if (conn) @@ -595,12 +601,14 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) ch_max = ARRAY_SIZE(channel_names_logic); if (ch_max > devc->model->channel_count) ch_max = devc->model->channel_count; + devc->channel_names_logic = sr_parse_probe_names(probe_names, + channel_names_logic, ch_max, ch_max, &ch_max); cg = sr_channel_group_new(sdi, "Logic", NULL); devc->cg_logic = cg; for (ch_idx = 0; ch_idx < ch_max; ch_idx++) { ch = sr_channel_new(sdi, ch_off, SR_CHANNEL_LOGIC, TRUE, - channel_names_logic[ch_idx]); + devc->channel_names_logic[ch_idx]); ch_off++; cg->channels = g_slist_append(cg->channels, ch); } diff --git a/src/hardware/kingst-la2016/protocol.h b/src/hardware/kingst-la2016/protocol.h index dd109244..995ae64b 100644 --- a/src/hardware/kingst-la2016/protocol.h +++ b/src/hardware/kingst-la2016/protocol.h @@ -123,6 +123,7 @@ struct dev_context { uint64_t fw_uploaded; /* Timestamp of most recent FW upload. */ uint8_t identify_magic, identify_magic2; const struct kingst_model *model; + char **channel_names_logic; struct sr_channel_group *cg_logic, *cg_pwm; /* User specified parameters. */