- probenum = devc->channel_frame->name[2] == '1' ? 0 : 1;
- for (i = 0; i < len; i++) {
- vdiv = devc->vdiv[probenum];
- offset = devc->vert_offset[probenum];
- data[i] = vdiv / 25.6 * (128 - buf[i]) - offset;
+ if (probe->type == SR_PROBE_ANALOG) {
+ for (i = 0; i < len; i++) {
+ vdiv = devc->vdiv[probe->index];
+ offset = devc->vert_offset[probe->index];
+ data[i] = vdiv / 25.6 * (128 - buf[i]) - offset;
+ }
+ analog.probes = g_slist_append(NULL, probe);
+ analog.num_samples = len;
+ analog.data = data;
+ analog.mq = SR_MQ_VOLTAGE;
+ analog.unit = SR_UNIT_VOLT;
+ analog.mqflags = 0;
+ packet.type = SR_DF_ANALOG;
+ packet.payload = &analog;
+ sr_session_send(cb_data, &packet);
+ g_slist_free(analog.probes);
+
+ if (len != ANALOG_WAVEFORM_SIZE)
+ /* Don't have the whole frame yet. */
+ return TRUE;
+ } else {
+ logic.length = len - 10;
+ logic.unitsize = 2;
+ logic.data = buf + 10;
+ packet.type = SR_DF_LOGIC;
+ packet.payload = &logic;
+ sr_session_send(cb_data, &packet);
+
+ if (len != DIGITAL_WAVEFORM_SIZE)
+ /* Don't have the whole frame yet. */
+ return TRUE;