+ scpi = sdi->conn;
+
+ /* Retrieve requested value for this state. */
+ if (sr_scpi_get_float(scpi, NULL, &f) == SR_OK) {
+ pch = devc->cur_channel->priv;
+ packet.type = SR_DF_ANALOG_OLD;
+ packet.payload = &analog;
+ analog.channels = g_slist_append(NULL, devc->cur_channel);
+ analog.num_samples = 1;
+ analog.mq = pch->mq;
+ if (pch->mq == SR_MQ_VOLTAGE)
+ analog.unit = SR_UNIT_VOLT;
+ else if (pch->mq == SR_MQ_CURRENT)
+ analog.unit = SR_UNIT_AMPERE;
+ else if (pch->mq == SR_MQ_POWER)
+ analog.unit = SR_UNIT_WATT;
+ analog.mqflags = SR_MQFLAG_DC;
+ analog.data = &f;
+ sr_session_send(sdi, &packet);
+ g_slist_free(analog.channels);
+ }
+
+ if (g_slist_length(sdi->channels) > 1) {
+ next_channel = sr_next_enabled_channel(sdi, devc->cur_channel);
+ if (select_channel(sdi, next_channel) != SR_OK) {
+ sr_err("Failed to select channel %s", next_channel->name);
+ return FALSE;
+ }