SUMMARY Meridian flips are not initiated if a sequence has only one single frame captured - no matter how often the schedule repeats the sequence. STEPS TO REPRODUCE 1. Create a capture sequence with only one single light frame 2. Create a schedule with this sequence, select a star close before meridian and set the schedule to "repeat until terminated" 3. Start the schedule before the target crosses the meridian. OBSERVED RESULT Even if the target crosses the meridian, a meridian flip is never initiated. EXPECTED RESULT As soon as the star has crossed the meridian, the next new frame capture leads to a meridian flip before the frame capture is started. SOFTWARE VERSIONS 2.9.8 as well as 3.0.0 KDE Frameworks Version: 5.28.0 Qt Version: 5.7.1 ADDITIONAL INFORMATION This happens only for sequences contain one single frame. As soon as the sequence contains more than one single frame (e.g. LRGB), the meridian flip is running fine. The reason behind is, that in processJobCompletion() it is checked if getPendingJobCount() > 0 before checkMeridianFlip() is called. For a single capture this makes sense. In case that a sequence is contained in a schedule that repeats this schedule, this restriction does not make sense.
The capture module also has no way to know if there "future" captures pending. In its own little world, once all captures are done, we're done. I'm not sure which solution would be fitting for this issue.
What about shifting (or adding) this check to preparePreCaptureActions()?
Yeah I'd imagine that could work. Can you check it out? Make sure it doesn't cause any regressions?
Well, promising that it does not cause any regressions is challenging for the Capture module :-/ But sure, yes, I will give it a try.
One possible problem I see is that the capture module might do focusing or dithering and then on the next capture, it decides to do meridian flip. So all the focusing/dithering would be a waste of valuable observing time. So maybe the check should exist in both places.
It looks like the Capture module cannot detect the necessity of a meridian flip upfront. The Capture module records the initial hour angle. If the initial hour angle is already west of the meridian, the Capture module assumes that a meridian flip is no longer necessary. This makes sense when the Capture module is used standalone. In combination with the Scheduler, it gets more complicated. The easiest way I see is to set the initial hour angle from outside. But this needs a change in the interface. Does that make sense?
Bug fix diff submitted: https://phabricator.kde.org/D17159
Fixed with diff #D17159 (see https://phabricator.kde.org/D17159)