<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Albert, Hy,<div class="">I took a first look at the checks for initial guide deviation. The outcome is the following:</div><div class=""><br class=""></div><div class="">1. Good news: <span style="color: rgb(128, 0, 128);" class="">IPState</span><span style="color: rgb(192, 192, 192);" class=""> </span><span style="color: rgb(128, 0, 128);" class="">Capture</span>::<span style="font-weight: 600; color: rgb(0, 103, 124);" class="">checkLightFramePendingTasks</span>() is used before each frame capture start.</div><div class=""><br class=""></div><div class="">2. Bad news: even for the first capture in a sequence the check is for the initial guiding deviation is not always executed, for all other frames in a sequence it is never executed. The problem is this check step in checkLightFramesPendingTasks():</div><div class="">
<pre style="margin-top: 0px; margin-bottom: 0px;" class=""><!--StartFragment--><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">//</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">step</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">6:</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">check</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">guide</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">deviation</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">for</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">non</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">meridian</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">flip</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">stages</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">if</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">the</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">initial</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">guide</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">limit</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">is</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">set.</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;" class=""><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">//</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">Wait</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">until</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">the</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">guide</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">deviation</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">is</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">reported</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">to</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">be</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">below</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">the</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">limit</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">(@see</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">setGuideDeviation(double,</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#008000;" class="">double)).</span></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;" class=""><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#808000;" class="">if</span><span style=" color:#c0c0c0;" class=""> </span>(<span style=" color:#800000;" class="">m_State</span><span style=" color:#c0c0c0;" class=""> </span>==<span style=" color:#c0c0c0;" class=""> </span><span style=" color:#800080;" class="">CAPTURE_PROGRESS</span><span style=" color:#c0c0c0;" class=""> </span>&&<span style=" color:#c0c0c0;" class=""> </span><span style=" color:#800000;" class="">m_GuideState</span><span style=" color:#c0c0c0;" class=""> </span>==<span style=" color:#c0c0c0;" class=""> </span><span style=" color:#800080;" class="">GUIDE_GUIDING</span><span style=" color:#c0c0c0;" class=""> </span>&&<span style=" color:#c0c0c0;" class=""> </span><span style=" color:#800000;" class="">m_LimitsUI</span><span style=" color:#00677c;" class="">-></span><span style=" color:#800000;" class="">startGuiderDriftS</span>-><span style=" color:#00677c;" class="">isChecked</span>())</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;" class=""><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#808000;" class="">return</span><span style=" color:#c0c0c0;" class=""> </span><span style=" color:#800080;" class="">IPS_BUSY</span>;</pre>
<pre style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></pre>
<pre style="margin-top: 0px; margin-bottom: 0px;" class=""><pre style="margin-top: 0px; margin-bottom: 0px;" class=""><span style="color: rgb(128, 0, 0);" class="">m_State</span><span style="color: rgb(192, 192, 192);" class=""> </span>==<span style="color: rgb(192, 192, 192);" class=""> </span><font color="#800080" class=""><span style="caret-color: rgb(128, 0, 128);" class="">CAPTURE_CHANGING_FILTER </span></font>for the first capture and <span style="color: rgb(128, 0, 0);" class="">m_State</span><span style="color: rgb(192, 192, 192);" class=""> </span>==<span style="color: rgb(192, 192, 192);" class=""> </span><font color="#800080" class="">CAPTURE_IMAGE_RECEIVED </font>for subsequent frames.</pre><pre style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></pre><pre style="margin-top: 0px; margin-bottom: 0px;" class="">I’ll write a bug report.</pre><pre style="margin-top: 0px; margin-bottom: 0px;" class=""><br class=""></pre><pre style="margin-top: 0px; margin-bottom: 0px;" class="">Cheers</pre><pre style="margin-top: 0px; margin-bottom: 0px;" class="">Wolfgang</pre><div class=""><br class=""></div></pre><div class=""><div class="">
<meta charset="UTF-8" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">—</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">Wolfgang Reissenberger<br class=""><br class=""></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><a href="http://www.sterne-jaeger.de" class="">www.sterne-jaeger.de</a><br class="">TSA-120 + FSQ-85 + epsilon-160 | Avalon Linear + M-zero | ASI 1600mm pro + 6200mm pro</div></div></div></div></div>
</div>
<div><br class=""><blockquote type="cite" class=""><div class="">Am 19.08.2022 um 03:07 schrieb Hy Murveit <<a href="mailto:murveit@gmail.com" class="">murveit@gmail.com</a>>:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Wolfgang, <div class=""><br class=""></div><div class="">I don't think Alfred has it quite right, but here's my shot at what might be wrong.</div><div class=""><br class=""></div><div class="">In order for the pre-capture guide check to be enforced, prepareActions[ACTION_GUIDER_DRIFT] needs to be set to false.</div><div class="">As far as I can tell, during capture execution it is only set to false in SequenceJobState::prepareLightFrameCapture in sequencejobstate.cpp line 50</div><div class="">I believe that prepareLightFrameCapture is only called at the start of a job, and not before each capture, since:</div><div class=""><ul class=""><li class="">it is only called by SequenceJob::prepareCapture()</li><li class="">which is called only by Capture::preparePreCaptureActions() </li><li class="">which is called by both Capture::scriptFinished (I'm ignoring that, doesn't seem relevant) and Capture::prepareActiveJobStage2() </li><li class="">which is called by both Capture::scriptFinished (I'm ignoring that, doesn't seem relevant) and Capture::prepareActiveJobStage1() </li><li class="">which is only called by Capture::prepareJob</li></ul><div class="">and from its title, prepareJob() sounds like it is only called at the start of a job, not each individual capture.</div></div><div class=""><br class=""></div><div class="">Perhaps the bug is that there should be an else at this line:</div><div class=""><a href="https://invent.kde.org/education/kstars/-/blob/master/kstars/ekos/capture/sequencejobstate.cpp#L722" class="">https://invent.kde.org/education/kstars/-/blob/master/kstars/ekos/capture/sequencejobstate.cpp#L722</a></div><div class="">e.g.</div><div class="">else prepareActions[ACTION_GUIDER_DRIFT] = false;</div><div class=""><br class=""></div><div class="">Hy</div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 18, 2022 at 3:32 PM <a href="mailto:amiga2000c@gmx.de" class="">amiga2000c@gmx.de</a> <<a href="mailto:amiga2000c@gmx.de" class="">amiga2000c@gmx.de</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br class="">
Despite the fact that I have absolutely no clue about C++, I had a look<br class="">
at the code. I think the relevant piece is "capture.cpp".<br class="">
<br class="">
A passage where 10 checks are being performed (6039-6121) before<br class="">
"everything is ready for capturing light frames" cought my attention.<br class="">
<br class="">
<br class="">
Step 6 is check guide deviation. Assuming guiding was suspended and the<br class="">
last measured guiding deviation was below the limit, this check is passed.<br class="">
Step 10 is check if guiding was suspended. If so, it is restarted and<br class="">
according to the comment it is assumed that "everything is ready for<br class="">
capturing light frames" then.<br class="">
<br class="">
IMO this is not the case. After resuming guiding, the "check guide<br class="">
deviation" test must be initiated again and only if it is passed,<br class="">
"everything is ready for capturing light frames", indeed.<br class="">
<br class="">
--<br class="">
<br class="">
In case what I wrote is complete rubbish, please excuse my clueless<br class="">
comment and ignore it.<br class="">
<br class="">
Regards<br class="">
Alfred<br class="">
</blockquote></div>
</div></blockquote></div><br class=""></div></div></body></html>