bug fix #400265: meridian flip check before capturing

Authored by wreissenberger on Sun, Nov 25, 8:51 PM.



Meridian flips are also initiated if a sequence has only one single frame captured. This resolves bug #400265

Test Plan
  1. Create a sequence with one single light frame and select "Meridian flip if HA > xx".
  2. Create a schedule with a target close before meridian using the sequence above that repeats the sequence endlessly.
  3. Start the schedule.

Expected result: as soon as the meridian is passed, a meridian flip is executed. After a successful meridian flip, capturing is continued.

Diff Detail

No Linters Available
No Unit Test Coverage
Build Status
Buildable 5400
Build 5418: arc lint + arc unit
wreissenberger requested review of this revision.Sun, Nov 25, 8:51 PM
wreissenberger created this revision.
wreissenberger retitled this revision from Remembering current target added to bug fix #400265: meridian flip check before capturing.Sun, Nov 25, 9:01 PM
wreissenberger edited the summary of this revision. (Show Details)
wreissenberger edited the test plan for this revision. (Show Details)
TallFurryMan requested changes to this revision.Mon, Nov 26, 6:52 AM
TallFurryMan added inline comments.

Is there any action that needs to be taken here? Shouldn't this abort capture? I understand the decision is pushed to caller, but the management code is missing.


Agreed, this is the core of the change.


Missing management of bool return code.


Test against nullptr?


I'm not sure this is correct : hours are reduced to [0,24[, so you need proper sign management to handle rising/setting limit. But I didn't redo the maths. Took some hair in D16429...


Missing management of return code.

This revision now requires changes to proceed.Mon, Nov 26, 6:52 AM
wreissenberger marked 3 inline comments as done.
wreissenberger edited the test plan for this revision. (Show Details)

Exception handling added

wreissenberger added inline comments.Mon, Nov 26, 7:13 PM

I tend to simply reply "false" in case of a DBus error, i.e. meridian flip has not been executed. This is not super elegant, I know, but from a DBus error I guess there is no option of recovery. And simply issuing a shutdown seems too harsh to me.


Well, maybe, but this is the original code. At least now it is more or less properly encapsulated. I tend to leave it as is.

Commit range corrected

TallFurryMan accepted this revision.Mon, Nov 26, 8:34 PM
TallFurryMan added inline comments.

If you're not aborting, what are the consequences? Either mount is lost, and we'd better stop the procedure, or mount will continue tracking. In that situation we'd better tell the caller, be it end-user of scheduler, that something cannot be done. Scheduler is able to restart the mount connection by itself now.

This revision is now accepted and ready to land.Mon, Nov 26, 8:34 PM