sw_limits: start msec timeout period only after start() call
When application code used the common SW limits API, the call sequence of init() then set() then check() already kept expiring, which is rather unexpected. The timeout period should only start when start() is called, check() should not signal expiration before the start() call. The specific use case is the combination of an msecs timeout and capture ratio when triggers are used. The post-trigger period only starts when the trigger match was seen, even though its length is already known when the acquisition starts. It's desirable to run the start() call for the post-trigger timeout late, and not terminate the acquisition before the trigger match.
This commit is contained in:
parent
dbb3e2ad3d
commit
17ed72cc44
|
@ -43,9 +43,7 @@
|
|||
*/
|
||||
SR_PRIV void sr_sw_limits_init(struct sr_sw_limits *limits)
|
||||
{
|
||||
limits->limit_samples = 0;
|
||||
limits->limit_frames = 0;
|
||||
limits->limit_msec = 0;
|
||||
memset(limits, 0, sizeof(*limits));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -153,7 +151,7 @@ SR_PRIV gboolean sr_sw_limits_check(struct sr_sw_limits *limits)
|
|||
}
|
||||
}
|
||||
|
||||
if (limits->limit_msec) {
|
||||
if (limits->limit_msec && limits->start_time) {
|
||||
guint64 now;
|
||||
now = g_get_monotonic_time();
|
||||
if (now > limits->start_time &&
|
||||
|
|
Loading…
Reference in New Issue