[Gpredict-svn] SF.net SVN: gpredict:[234] trunk/src/gtk-rig-ctrl.c
Real time satellite tracking and orbit prediction
Status: Beta
Brought to you by:
csete
From: <cs...@us...> - 2009-04-10 18:05:43
|
Revision: 234 http://gpredict.svn.sourceforge.net/gpredict/?rev=234&view=rev Author: csete Date: 2009-04-10 18:05:42 +0000 (Fri, 10 Apr 2009) Log Message: ----------- Check for proper transponder config before attempting to track uplink or downlink. Modified Paths: -------------- trunk/src/gtk-rig-ctrl.c Modified: trunk/src/gtk-rig-ctrl.c =================================================================== --- trunk/src/gtk-rig-ctrl.c 2009-04-10 14:38:49 UTC (rev 233) +++ trunk/src/gtk-rig-ctrl.c 2009-04-10 18:05:42 UTC (rev 234) @@ -862,7 +862,7 @@ * \param button Pointer to the GtkToggleButton that received the signal. * \param data Pointer to the GtkRigCtrl structure. * - * This finction is called when the user toggles the "Lock Transponder" button. + * This function is called when the user toggles the "Lock Transponder" button. * When ON, the uplink and downlink are locked according to the current transponder * data, i.e. when user changes the downlink, the uplink will follow automatically * taking into account whether the transponder is inverting or not. @@ -871,7 +871,6 @@ { GtkRigCtrl *ctrl = GTK_RIG_CTRL (data); - ctrl->trsplock = gtk_toggle_button_get_active (button); /* set uplink according to downlink */ @@ -1859,17 +1858,21 @@ return; } - down = gtk_freq_knob_get_value (GTK_FREQ_KNOB (ctrl->SatFreqDown)); - delta = down - ctrl->trsp->downlow; + /* ensure that we have a useable transponder config */ + if ((ctrl->trsp->downlow > 0.0) && (ctrl->trsp->uplow > 0.0)) { - if (ctrl->trsp->invert) { - up = ctrl->trsp->uphigh - delta; + down = gtk_freq_knob_get_value (GTK_FREQ_KNOB (ctrl->SatFreqDown)); + delta = down - ctrl->trsp->downlow; + + if (ctrl->trsp->invert) { + up = ctrl->trsp->uphigh - delta; + } + else { + up = ctrl->trsp->uplow + delta; + } + + gtk_freq_knob_set_value (GTK_FREQ_KNOB (ctrl->SatFreqUp), up); } - else { - up = ctrl->trsp->uplow + delta; - } - - gtk_freq_knob_set_value (GTK_FREQ_KNOB (ctrl->SatFreqUp), up); } @@ -1886,16 +1889,20 @@ if (ctrl->trsp == NULL) { return; } + + /* ensure that we have a useable transponder config */ + if ((ctrl->trsp->downlow > 0.0) && (ctrl->trsp->uplow > 0.0)) { + + up = gtk_freq_knob_get_value (GTK_FREQ_KNOB (ctrl->SatFreqUp)); + delta = up - ctrl->trsp->uplow; - up = gtk_freq_knob_get_value (GTK_FREQ_KNOB (ctrl->SatFreqUp)); - delta = up - ctrl->trsp->uplow; + if (ctrl->trsp->invert) { + down = ctrl->trsp->downhigh - delta; + } + else { + down = ctrl->trsp->downlow + delta; + } - if (ctrl->trsp->invert) { - down = ctrl->trsp->downhigh - delta; + gtk_freq_knob_set_value (GTK_FREQ_KNOB (ctrl->SatFreqDown), down); } - else { - down = ctrl->trsp->downlow + delta; - } - - gtk_freq_knob_set_value (GTK_FREQ_KNOB (ctrl->SatFreqDown), down); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |