Remove bypass of preliminary steps when no light frames are needed.
Needs RevisionPublic

Authored by TallFurryMan on Mar 23 2019, 2:07 PM.

Details

Summary

When Scheduler executes a sequence file which contains no light frames, it bypasses preliminary steps such as tracking, focusing, aligning and guiding.

This differential removes this bypass, considering:

  • Unticking all preliminary steps from the schedule job offers identical behavior.
  • Automatic calibration of exposure duration by the Capture module, using flat frames as light frames, is an interesting feature.
  • The feature is confusing for end-users.

Note that per original behavior, the Scheduler will still bypass opening the dome and avoid sleeping when only calibration frames are to be processed.

Discussion is at https://www.indilib.org/forum/development/4882-calibration-frames-optimized-step-from-the-scheduler.html

Test Plan

Simple workflow with only light frames is undisturbed.
Simple workflow with only calibration frames is now able to track an arbitrary target, focus, align and guide, all of which are useless for real flat frames.
Observe as Wall Slewing option of calibration frames is now in conflict with tracking and guiding steps.
Guiding, especially, will abort the scheduler job when slewing to the Wall coordinates.

Diff Detail

Repository
R321 KStars
Branch
improve__remove_calibration_frame_bypass (branched from master)
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 10011
Build 10029: arc lint + arc unit
TallFurryMan created this revision.Mar 23 2019, 2:07 PM
Restricted Application added a project: KDE Edu. · View Herald TranscriptMar 23 2019, 2:07 PM
Restricted Application added a subscriber: kde-edu. · View Herald Transcript
TallFurryMan requested review of this revision.Mar 23 2019, 2:07 PM
wreissenberger accepted this revision.Mar 23 2019, 3:44 PM

Makes sense, it's more obvious this way. If somebody enforces guiding while capturing flats etc - he should know what he is doing.

I tested a schedule with tracking, focusing, aligning and guiding. In both cases everything runs smoothly.

This revision is now accepted and ready to land.Mar 23 2019, 3:44 PM

This does not work with multi-night setup. Suppose I have a scheduler list with Light + Calibration frames at the end. When I run it daily, I expect it to finish whatever is left. If only calibration frames are left what happens? It tracks and focus and guide on what? What if I only had dark frames left?

This does not work with multi-night setup. Suppose I have a scheduler list with Light + Calibration frames at the end. When I run it daily, I expect it to finish whatever is left. If only calibration frames are left what happens? It tracks and focus and guide on what? What if I only had dark frames left?

What type of setup do you have in mind? In case that there is a separate scheduler job for the calibration frames, it simply depends, whether guiding etc. is selected in the scheduler job. If it is not selected, no guiding will happen, right?

I usually have a single job with all frames (light + calibration) that can span multiple nights. If on the last night I run the scheduler in the morning or evening with only the calibration frames left, what will happen with this patch?

@mutlaqja If you want to mix lights with calibration, I wonder if that is really clearer that you need to remember the progress of jobs in that case. In that situation the scheduler will be able to determine what's left to do, and not redo lights if only calibration remain.
If not remembering, the minimal granularity of the work to do is the full job, which contains in your case lights and calibration.
This may push users to run lights and calibration frames as separate jobs just to be sure on what happens.
But in both cases starting the execution will still schedule the job for capture as if there were lights. There are two sides to this: scheduling and running. This differential is lacking work on scheduling, agreed.
You get a good point. Also a scheduler job with only calibration frames should issue a certain amount of warnings: twilight, altitude, etc. The current UI is not prepared for this...

Hm, seems like both changing it and leaving it have good arguments. What about if we freeze the scheduler, leave it currently as it is and concentrate on refactoring as begun in D20001? Doing both in parallel might be too much...

Agreed, this differential was here just to provide a code baseline. We've got more urgent stuff to do. Let's see if the forum thread gets traction.

Is this applicable anymore to the current code base?

Hm, indifferent. It does not seem like there is burning request for this feature. So never touch a running system?

wreissenberger requested changes to this revision.Oct 3 2019, 11:55 AM

... but it needs to rebased manually. @TallFurryMan: I slightly doubt that it is worth the effort...

This revision now requires changes to proceed.Oct 3 2019, 11:55 AM
mutlaqja resigned from this revision.Oct 3 2019, 12:07 PM

Ok that's great, I'll resign from this and if it is needed, please submit one against current base.

Oh I totally forgot about this one. Actually, it's interesting in the sense it can be used to ensure a mean ADU over the frame. That is, calculate the ideal exposure duration. But there are things to fix, as seen in the comments. I keep this in my list and I'll have a look just because it's cool.