Fix limit_samples check in various drivers.
Check whether a sample limit was actually set (> 0) before checking if that sample limit is reached. This also fixes continuous acquisition mode for drivers which have that.
This commit is contained in:
parent
7869340103
commit
35e199da50
|
@ -119,7 +119,7 @@ SR_PRIV int agdmm_receive_data(int fd, int revents, void *cb_data)
|
||||||
|
|
||||||
dispatch(sdi);
|
dispatch(sdi);
|
||||||
|
|
||||||
if (devc->num_samples >= devc->limit_samples)
|
if (devc->limit_samples && devc->num_samples >= devc->limit_samples)
|
||||||
sdi->driver->dev_acquisition_stop(sdi, cb_data);
|
sdi->driver->dev_acquisition_stop(sdi, cb_data);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -83,12 +83,10 @@ SR_PRIV int alsa_receive_data(int fd, int revents, void *cb_data)
|
||||||
devc->num_samples += count;
|
devc->num_samples += count;
|
||||||
|
|
||||||
/* Stop acquisition if we acquired enough samples. */
|
/* Stop acquisition if we acquired enough samples. */
|
||||||
if (devc->limit_samples > 0) {
|
if (devc->limit_samples && devc->num_samples >= devc->limit_samples) {
|
||||||
if (devc->num_samples >= devc->limit_samples) {
|
|
||||||
sr_info("Requested number of samples reached.");
|
sr_info("Requested number of samples reached.");
|
||||||
sdi->driver->dev_acquisition_stop(sdi, cb_data);
|
sdi->driver->dev_acquisition_stop(sdi, cb_data);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -382,11 +382,8 @@ static int receive_data(int fd, int revents, void *cb_data)
|
||||||
devc->samples_counter += sending_now;
|
devc->samples_counter += sending_now;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (limit_samples && devc->samples_counter >= limit_samples) {
|
||||||
if (devc->samples_counter >= limit_samples) {
|
sr_info("Requested number of samples reached.");
|
||||||
sr_spew("We sent a total of %" PRIu64 " samples.",
|
|
||||||
devc->samples_counter);
|
|
||||||
/* Make sure we don't receive more packets. */
|
|
||||||
hw_dev_acquisition_stop(NULL, cb_data);
|
hw_dev_acquisition_stop(NULL, cb_data);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -179,7 +179,7 @@ static int receive_data(int fd, int revents, int dmm, void *info, void *cb_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (devc->limit_samples && devc->num_samples >= devc->limit_samples) {
|
if (devc->limit_samples && devc->num_samples >= devc->limit_samples) {
|
||||||
sr_info("Requested number of samples reached, stopping.");
|
sr_info("Requested number of samples reached.");
|
||||||
sdi->driver->dev_acquisition_stop(sdi, cb_data);
|
sdi->driver->dev_acquisition_stop(sdi, cb_data);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -187,7 +187,7 @@ static int receive_data(int fd, int revents, int dmm, void *info, void *cb_data)
|
||||||
if (devc->limit_msec) {
|
if (devc->limit_msec) {
|
||||||
time = (g_get_monotonic_time() - devc->starttime) / 1000;
|
time = (g_get_monotonic_time() - devc->starttime) / 1000;
|
||||||
if (time > (int64_t)devc->limit_msec) {
|
if (time > (int64_t)devc->limit_msec) {
|
||||||
sr_info("Requested time limit reached, stopping.");
|
sr_info("Requested time limit reached.");
|
||||||
sdi->driver->dev_acquisition_stop(sdi, cb_data);
|
sdi->driver->dev_acquisition_stop(sdi, cb_data);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -194,12 +194,10 @@ int tondaj_sl_814_receive_data(int fd, int revents, void *cb_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Stop acquisition if we acquired enough samples. */
|
/* Stop acquisition if we acquired enough samples. */
|
||||||
if (devc->limit_samples > 0) {
|
if (devc->limit_samples && devc->num_samples >= devc->limit_samples) {
|
||||||
if (devc->num_samples >= devc->limit_samples) {
|
|
||||||
sr_info("Requested number of samples reached.");
|
sr_info("Requested number of samples reached.");
|
||||||
sdi->driver->dev_acquisition_stop(sdi, cb_data);
|
sdi->driver->dev_acquisition_stop(sdi, cb_data);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -264,7 +264,7 @@ static int uni_t_dmm_receive_data(int fd, int revents, int dmm, void *cb_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Abort acquisition if we acquired enough samples. */
|
/* Abort acquisition if we acquired enough samples. */
|
||||||
if (devc->num_samples >= devc->limit_samples && devc->limit_samples > 0) {
|
if (devc->limit_samples && devc->num_samples >= devc->limit_samples) {
|
||||||
sr_info("Requested number of samples reached.");
|
sr_info("Requested number of samples reached.");
|
||||||
sdi->driver->dev_acquisition_stop(sdi, cb_data);
|
sdi->driver->dev_acquisition_stop(sdi, cb_data);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue