On Sun, Mar 7, 2021 at 1:48 AM Ivan Wick <ivanwick+sourceforge....@gmail.com>
wrote:

> Hi All,
> Some work has already been done to implement a repeat capture mode for
> PulseView which automatically rearms the trigger for repeated captures,
> with an adjustable time delay between when each capture segment completes
> and the next one starts.
>
>
> https://sourceforge.net/p/sigrok/mailman/sigrok-devel/thread/cdf7c54b-c509-9162-34fb-2709f5756437%40BrianAndChristine.com/
>
> This feature has not been merged yet, so I'm continuing work on it
> following the suggestions in the prior email exchange to better fit the UI
> and architecture. Changes are on github:
>
> https://github.com/sigrokproject/pulseview/pull/38
>
> This is a work in progress and I would appreciate some guidance in getting
> it merged, since I agree that it is a useful feature. Code on this branch
> can compile and run, but has a problem switching the segment display mode
> while a repeat capture is running.
>
> Open questions
> - Session states: The new repeat mode means that a capture session may
> return to `Running` state repeatedly. However `pv::views::trace::View`
> expects the transition to `Running` state to happen only once per capture
> and uses it as a signal to reset the state of the UI which interferes with
> segment display. More states can be added to the session but I don't know
> whether it is best to do so. See comments in view.cpp.
>

I've gone ahead and updated my PR to add a Starting state to pv::Session so
that observers can do one-time setup tasks before states start looping
between Running and Awaiting, as they do during a repeating capture.
Previously, these setup tasks were done at the transition to Running state
which, without the repeat capture ability, would have only happened once.

This allows pv::views::trace::View to reset its currently displayed segment
to zero only once at the start of a repeating capture.

With this and some other minor updates, the repeat capture feature is
working nicely with the segment display modes. Selecting "Display last
complete segment only" mode will redraw the traces only when a capture
segment is complete. This behavior was requested in Brian's prior repeat
capture discussion.

Soeren was right, most of the code to implement repeat captures as multiple
segments was already there.

I appreciate any feedback and guidance about how to resolve any other open
tasks.
Thanks,
Ivan
_______________________________________________
sigrok-devel mailing list
sigrok-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sigrok-devel

Reply via email to