analog.mqflags = 0;
packet.type = SR_DF_ANALOG_OLD;
packet.payload = &analog;
- sr_session_send(devc->cb_data, &packet);
- devc->num_samples++;
+ sr_session_send(sdi, &packet);
+ sr_sw_limits_update_samples_read(&devc->limits, 1);
}
static void handle_line(const struct sr_dev_inst *sdi)
/* Got a measurement. */
packet.type = SR_DF_ANALOG_OLD;
packet.payload = analog;
- sr_session_send(devc->cb_data, &packet);
- devc->num_samples++;
+ sr_session_send(sdi, &packet);
+ sr_sw_limits_update_samples_read(&devc->limits, 1);
g_free(analog->data);
g_free(analog);
}
}
}
- if (devc->limit_samples && devc->num_samples >= devc->limit_samples) {
- sdi->driver->dev_acquisition_stop(sdi, cb_data);
+ if (sr_sw_limits_check(&devc->limits)) {
+ sdi->driver->dev_acquisition_stop(sdi);
return TRUE;
}