[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.
|