X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fhp-59306a%2Fprotocol.c;h=69af3610d590f5c89d0f72600ee97ba175d5c7f0;hb=fe4acad1c2e39040c787b6245284b29c8b1b1c20;hp=3628f98d458e339f05b6913120b48f57546b7fc9;hpb=584269fd2f44daa61497fb2cc9baa10a472577b0;p=libsigrok.git diff --git a/src/hardware/hp-59306a/protocol.c b/src/hardware/hp-59306a/protocol.c index 3628f98d..69af3610 100644 --- a/src/hardware/hp-59306a/protocol.c +++ b/src/hardware/hp-59306a/protocol.c @@ -24,17 +24,27 @@ SR_PRIV int hp_59306a_switch_cg(const struct sr_dev_inst *sdi, const struct sr_channel_group *cg, gboolean enabled) { - int ret; - struct sr_scpi_dev_inst *scpi; + char *cmd; struct channel_group_context *cgc; + struct sr_scpi_dev_inst *scpi; + int ret; - scpi = sdi->conn; - cgc = cg->priv; + if (!cg) { + if (enabled) + cmd = g_strdup("A123456"); + else + cmd = g_strdup("B123456"); + } else { + cgc = cg->priv; + if (enabled) + cmd = g_strdup_printf("A%zu", cgc->number); + else + cmd = g_strdup_printf("B%zu", cgc->number); + } - if (enabled) - ret = sr_scpi_send(scpi, "A%zu", cgc->number); - else - ret = sr_scpi_send(scpi, "B%zu", cgc->number); + scpi = sdi->conn; + ret = sr_scpi_send(scpi, cmd); + g_free(cmd); return ret; }