- if (revents == G_IO_IN) {
- /* Get the value. */
- korad_kaxxxxp_get_reply(serial, devc);
-
- /* Note: digits/spec_digits will be overridden later. */
- sr_analog_init(&analog, &encoding, &meaning, &spec, 0);
-
- /* Send the value forward. */
- packet.type = SR_DF_ANALOG;
- packet.payload = &analog;
- analog.num_samples = 1;
- l = g_slist_copy(sdi->channels);
- if (devc->target == KAXXXXP_CURRENT) {
- l = g_slist_remove_link(l, g_slist_nth(l, 0));
- analog.meaning->channels = l;
- analog.meaning->mq = SR_MQ_CURRENT;
- analog.meaning->unit = SR_UNIT_AMPERE;
- analog.meaning->mqflags = 0;
- analog.encoding->digits = 3;
- analog.spec->spec_digits = 3;
- analog.data = &devc->current;
- sr_session_send(sdi, &packet);
- }
- else if (devc->target == KAXXXXP_VOLTAGE) {
- l = g_slist_remove_link(l, g_slist_nth(l, 1));
- analog.meaning->channels = l;
- analog.meaning->mq = SR_MQ_VOLTAGE;
- analog.meaning->unit = SR_UNIT_VOLT;
- analog.meaning->mqflags = SR_MQFLAG_DC;
- analog.encoding->digits = 2;
- analog.spec->spec_digits = 2;
- analog.data = &devc->voltage;
- sr_session_send(sdi, &packet);
- sr_sw_limits_update_samples_read(&devc->limits, 1);
- }
- next_measurement(devc);
- } else {
- /* Time out */
- if (!devc->reply_pending) {
- if (korad_kaxxxxp_query_value(serial, devc) < 0)
- return TRUE;
- devc->req_sent_at = g_get_monotonic_time();
- devc->reply_pending = TRUE;
- }
+ /* Get the value. */
+ korad_kaxxxxp_get_value(serial, devc->acquisition_target, devc);
+
+ /* Note: digits/spec_digits will be overridden later. */
+ sr_analog_init(&analog, &encoding, &meaning, &spec, 0);
+
+ /* Send the value forward. */
+ packet.type = SR_DF_ANALOG;
+ packet.payload = &analog;
+ analog.num_samples = 1;
+ l = g_slist_copy(sdi->channels);
+ if (devc->acquisition_target == KAXXXXP_CURRENT) {
+ l = g_slist_remove_link(l, g_slist_nth(l, 0));
+ analog.meaning->channels = l;
+ analog.meaning->mq = SR_MQ_CURRENT;
+ analog.meaning->unit = SR_UNIT_AMPERE;
+ analog.meaning->mqflags = SR_MQFLAG_DC;
+ analog.encoding->digits = 3;
+ analog.spec->spec_digits = 3;
+ analog.data = &devc->current;
+ sr_session_send(sdi, &packet);
+ } else if (devc->acquisition_target == KAXXXXP_VOLTAGE) {
+ l = g_slist_remove_link(l, g_slist_nth(l, 1));
+ analog.meaning->channels = l;
+ analog.meaning->mq = SR_MQ_VOLTAGE;
+ analog.meaning->unit = SR_UNIT_VOLT;
+ analog.meaning->mqflags = SR_MQFLAG_DC;
+ analog.encoding->digits = 2;
+ analog.spec->spec_digits = 2;
+ analog.data = &devc->voltage;
+ sr_session_send(sdi, &packet);
+ sr_sw_limits_update_samples_read(&devc->limits, 1);