gpredict icon indicating copy to clipboard operation
gpredict copied to clipboard

LOS isn't signalled if autotrack is enabled

Open srcejon opened this issue 4 years ago • 2 comments

It seems LOS isn't signalled if autotrack is enabled (or at least sometimes isn't signalled).

This appears to be because update_autotrack calls gtk_rig_ctrl_select_sat, which doesn't call check_aos_los before changing the satellite.

Thus if update_autotrack detects the satellite LOS before check_aos_los does, LOS will not be signalled, as the next time check_aos_los is called, the satellite will have already been changed to the new satellite.

srcejon avatar Feb 18 '20 12:02 srcejon

Possible fix included in https://github.com/csete/gpredict/pull/192/commits/d391ce92ff0e3120a5273e3c70b047e4f7b33d45

Call check_aos_los() in gtk_rig_ctrl_select_sat()

void gtk_rig_ctrl_select_sat(GtkRigCtrl * ctrl, gint catnum)
{
    sat_t          *sat;
    int             i, n;

+    /* This is called indirectly by update_autotrack, when a satellite goes
+       below the horizon. So we need to call check_aos_los here, to give it a
+       chance to signal LOS, otherwise it will be missed, as the current sat
+       will have changed on the next call. */
+    check_aos_los(ctrl);

srcejon avatar Feb 25 '20 09:02 srcejon

Hi, I've got the same problem. Did you try your solution ? Thanks, Valstee

Valstee avatar Mar 25 '21 13:03 Valstee