gpredict-svn Mailing List for Gpredict (Page 13)
Real time satellite tracking and orbit prediction
Status: Beta
Brought to you by:
csete
You can subscribe to this list here.
2008 |
Jan
(24) |
Feb
|
Mar
(6) |
Apr
(14) |
May
(9) |
Jun
|
Jul
|
Aug
(25) |
Sep
(60) |
Oct
(26) |
Nov
|
Dec
(20) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
|
Feb
(2) |
Mar
(22) |
Apr
(61) |
May
(57) |
Jun
|
Jul
(3) |
Aug
(83) |
Sep
(35) |
Oct
(50) |
Nov
(28) |
Dec
(34) |
2010 |
Jan
(29) |
Feb
(15) |
Mar
(2) |
Apr
|
May
(6) |
Jun
(2) |
Jul
(24) |
Aug
(2) |
Sep
(9) |
Oct
(43) |
Nov
(22) |
Dec
(6) |
2011 |
Jan
(24) |
Feb
(22) |
Mar
(31) |
Apr
(13) |
May
(10) |
Jun
(10) |
Jul
(43) |
Aug
(12) |
Sep
(18) |
Oct
(33) |
Nov
(18) |
Dec
(4) |
From: <aa...@us...> - 2010-10-09 21:49:28
|
Revision: 666 http://gpredict.svn.sourceforge.net/gpredict/?rev=666&view=rev Author: aa1vs Date: 2010-10-09 21:49:21 +0000 (Sat, 09 Oct 2010) Log Message: ----------- Update copyright dates for modified files Modified Paths: -------------- trunk/src/first-time.c trunk/src/gtk-rig-ctrl.c trunk/src/gtk-rot-ctrl.c trunk/src/gtk-sat-selector.c trunk/src/gtk-sat-tree.c trunk/src/main.c trunk/src/mod-cfg.c trunk/src/sat-log.c trunk/src/sat-pref-qth.c trunk/src/sat-pref-rig.c trunk/src/sat-pref-rot.c Modified: trunk/src/first-time.c =================================================================== --- trunk/src/first-time.c 2010-10-09 21:48:03 UTC (rev 665) +++ trunk/src/first-time.c 2010-10-09 21:49:21 UTC (rev 666) @@ -2,7 +2,7 @@ /* Gpredict: Real-time satellite tracking and orbit prediction program - Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. + Copyright (C) 2001-2010 Alexandru Csete, OZ9AEC. Authors: Alexandru Csete <oz...@gm...> Modified: trunk/src/gtk-rig-ctrl.c =================================================================== --- trunk/src/gtk-rig-ctrl.c 2010-10-09 21:48:03 UTC (rev 665) +++ trunk/src/gtk-rig-ctrl.c 2010-10-09 21:49:21 UTC (rev 666) @@ -2,7 +2,7 @@ /* Gpredict: Real-time satellite tracking and orbit prediction program - Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. + Copyright (C) 2001-2010 Alexandru Csete, OZ9AEC. Authors: Alexandru Csete <oz...@gm...> Modified: trunk/src/gtk-rot-ctrl.c =================================================================== --- trunk/src/gtk-rot-ctrl.c 2010-10-09 21:48:03 UTC (rev 665) +++ trunk/src/gtk-rot-ctrl.c 2010-10-09 21:49:21 UTC (rev 666) @@ -2,7 +2,7 @@ /* Gpredict: Real-time satellite tracking and orbit prediction program - Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. + Copyright (C) 2001-2010 Alexandru Csete, OZ9AEC. Authors: Alexandru Csete <oz...@gm...> Modified: trunk/src/gtk-sat-selector.c =================================================================== --- trunk/src/gtk-sat-selector.c 2010-10-09 21:48:03 UTC (rev 665) +++ trunk/src/gtk-sat-selector.c 2010-10-09 21:49:21 UTC (rev 666) @@ -2,7 +2,7 @@ /* Gpredict: Real-time satellite tracking and orbit prediction program - Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. + Copyright (C) 2001-2010 Alexandru Csete, OZ9AEC. Authors: Alexandru Csete <oz...@gm...> Modified: trunk/src/gtk-sat-tree.c =================================================================== --- trunk/src/gtk-sat-tree.c 2010-10-09 21:48:03 UTC (rev 665) +++ trunk/src/gtk-sat-tree.c 2010-10-09 21:49:21 UTC (rev 666) @@ -2,7 +2,7 @@ /* Gpredict: Real-time satellite tracking and orbit prediction program - Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. + Copyright (C) 2001-2010 Alexandru Csete, OZ9AEC. Authors: Alexandru Csete <oz...@gm...> Modified: trunk/src/main.c =================================================================== --- trunk/src/main.c 2010-10-09 21:48:03 UTC (rev 665) +++ trunk/src/main.c 2010-10-09 21:49:21 UTC (rev 666) @@ -2,7 +2,7 @@ /* Gpredict: Real-time satellite tracking and orbit prediction program - Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. + Copyright (C) 2001-2010 Alexandru Csete, OZ9AEC. Authors: Alexandru Csete <oz...@gm...> Modified: trunk/src/mod-cfg.c =================================================================== --- trunk/src/mod-cfg.c 2010-10-09 21:48:03 UTC (rev 665) +++ trunk/src/mod-cfg.c 2010-10-09 21:49:21 UTC (rev 666) @@ -2,7 +2,7 @@ /* Gpredict: Real-time satellite tracking and orbit prediction program - Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. + Copyright (C) 2001-2010 Alexandru Csete, OZ9AEC. Authors: Alexandru Csete <oz...@gm...> Modified: trunk/src/sat-log.c =================================================================== --- trunk/src/sat-log.c 2010-10-09 21:48:03 UTC (rev 665) +++ trunk/src/sat-log.c 2010-10-09 21:49:21 UTC (rev 666) @@ -2,7 +2,7 @@ /* Gpredict: Real-time satellite tracking and orbit prediction program - Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. + Copyright (C) 2001-2010 Alexandru Csete, OZ9AEC. Authors: Alexandru Csete <oz...@gm...> Modified: trunk/src/sat-pref-qth.c =================================================================== --- trunk/src/sat-pref-qth.c 2010-10-09 21:48:03 UTC (rev 665) +++ trunk/src/sat-pref-qth.c 2010-10-09 21:49:21 UTC (rev 666) @@ -2,7 +2,7 @@ /* Gpredict: Real-time satellite tracking and orbit prediction program - Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. + Copyright (C) 2001-2010 Alexandru Csete, OZ9AEC. Authors: Alexandru Csete <oz...@gm...> Modified: trunk/src/sat-pref-rig.c =================================================================== --- trunk/src/sat-pref-rig.c 2010-10-09 21:48:03 UTC (rev 665) +++ trunk/src/sat-pref-rig.c 2010-10-09 21:49:21 UTC (rev 666) @@ -2,7 +2,7 @@ /* Gpredict: Real-time satellite tracking and orbit prediction program - Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. + Copyright (C) 2001-2010 Alexandru Csete, OZ9AEC. Authors: Alexandru Csete <oz...@gm...> Modified: trunk/src/sat-pref-rot.c =================================================================== --- trunk/src/sat-pref-rot.c 2010-10-09 21:48:03 UTC (rev 665) +++ trunk/src/sat-pref-rot.c 2010-10-09 21:49:21 UTC (rev 666) @@ -2,7 +2,7 @@ /* Gpredict: Real-time satellite tracking and orbit prediction program - Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. + Copyright (C) 2001-2010 Alexandru Csete, OZ9AEC. Authors: Alexandru Csete <oz...@gm...> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-10-09 21:48:09
|
Revision: 665 http://gpredict.svn.sourceforge.net/gpredict/?rev=665&view=rev Author: aa1vs Date: 2010-10-09 21:48:03 +0000 (Sat, 09 Oct 2010) Log Message: ----------- Update ChangeLog and NEWS Modified Paths: -------------- trunk/ChangeLog trunk/NEWS Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-10-02 22:29:38 UTC (rev 664) +++ trunk/ChangeLog 2010-10-09 21:48:03 UTC (rev 665) @@ -1,3 +1,45 @@ +2010-10-02 Charles Suprin <hamaa1vs at gmail.com> + + * src/gtk-rig-ctrl.c + Fix bug with set and unset toggle buffer size being incorrect + causing junk to be sent to rigctld. + + * src/gtk-rig-ctrl.c + * src/gtk-rot-ctrl.c + Catch NULLs in ctrl->conf + + * src/sat-pref-qth.c + * src/sat-pref-rig.c + * src/sat-pref-rot.c + Add sorting to rig, rot, and qth preference screens. + +2010-09-24 Charles Suprin <hamaa1vs at gmail.com> + + * src/first-time.c + Applied patch from bug 3074990 from Zlika catching crash if data + directory does not exist. Added error message to log. + +2010-09-17 Charles Suprin <hamaa1vs at gmail.com> + + * src/first-time.c + * src/gtk-sat-selector.c + * src/gtk-sat-tree.c + * src/main.c + * src/mod-cfg.c + * src/sat-log.c + * src/sat-pref-qth.c + * src/tle-update.c + Make file name checks check for suffix not substring + + * src/gtk-rig-ctrl.c + * src/gtk-rot-ctrl.c + Fix potential memory leak + +2010-09-14 Alexandru Csete <oz9aec at gmail.com> + + * data/satdata: + Updated satellite database. + 2010-08-21 Alexandru Csete <oz9aec at gmail.com> * src/gtk-sat-module.c: Modified: trunk/NEWS =================================================================== --- trunk/NEWS 2010-10-02 22:29:38 UTC (rev 664) +++ trunk/NEWS 2010-10-09 21:48:03 UTC (rev 665) @@ -19,6 +19,8 @@ - Fixed bug 2792349: Segfault on certain satellites (Geo). - Fixed bug 3050068: Unable to update TLE from local files. - Fixed bugs 3057771 and 3058753: Crash if module file is empty. +- Fixed bug 3074990: Crash if directory does not exist +- Fixed bug 3080019: Corrupted hw file cause crash. - Applied patch 2876485: Fix a memory leak in the rotator controller (Thanks to Charles Suprin AA1VS). - Applied patch 2877878: Change Flag to Lock in tle-update (thanks to Charles Suprin AA1VS). - Applied patch 2877918: Fixes segfault in TLE updater (thanks to Charles Suprin AA1VS). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-10-02 22:29:44
|
Revision: 664 http://gpredict.svn.sourceforge.net/gpredict/?rev=664&view=rev Author: aa1vs Date: 2010-10-02 22:29:38 +0000 (Sat, 02 Oct 2010) Log Message: ----------- Added checks for null ctrl->conf Modified Paths: -------------- branches/continuous_network/src/gtk-rig-ctrl.c branches/continuous_network/src/gtk-rot-ctrl.c Modified: branches/continuous_network/src/gtk-rig-ctrl.c =================================================================== --- branches/continuous_network/src/gtk-rig-ctrl.c 2010-10-02 21:35:09 UTC (rev 663) +++ branches/continuous_network/src/gtk-rig-ctrl.c 2010-10-02 22:29:38 UTC (rev 664) @@ -1178,6 +1178,16 @@ { GtkRigCtrl *ctrl = GTK_RIG_CTRL (data); + if (ctrl->conf == NULL) { + /* we don't have a working configuration */ + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: Controller does not have a valid configuration"), + __FUNCTION__); + return; + } + + + if (!gtk_toggle_button_get_active (button)) { /* close socket */ @@ -1186,6 +1196,7 @@ ctrl->engaged = FALSE; ctrl->lasttxf = 0.0; ctrl->lastrxf = 0.0; + switch (ctrl->conf->type) { case RIG_TYPE_TOGGLE_AUTO: case RIG_TYPE_TOGGLE_MAN: @@ -1193,7 +1204,7 @@ break; default: break; - } + } if (ctrl->conf2 != NULL) { close_rigctld_socket(ctrl->sock2); @@ -1202,14 +1213,6 @@ } else { - if (ctrl->conf == NULL) { - /* we don't have a working configuration */ - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Controller does not have a valid configuration"), - __FUNCTION__); - return; - } - gtk_widget_set_sensitive (ctrl->DevSel, FALSE); gtk_widget_set_sensitive (ctrl->DevSel2, FALSE); ctrl->engaged = TRUE; @@ -1302,6 +1305,14 @@ static gboolean rig_ctrl_timeout_cb (gpointer data) { GtkRigCtrl *ctrl = GTK_RIG_CTRL (data); + + if (ctrl->conf == NULL) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: Controller does not have a valid configuration"), + __FUNCTION__); + return (TRUE); + } + if (g_static_mutex_trylock(&(ctrl->busy))==FALSE) { sat_log_log (SAT_LOG_LEVEL_ERROR,_("%s missed the deadline"),__FUNCTION__); @@ -2374,6 +2385,8 @@ if (g_str_has_suffix (filename, ".rig")) { i++; + /*once we have one we are done*/ + break; } } } Modified: branches/continuous_network/src/gtk-rot-ctrl.c =================================================================== --- branches/continuous_network/src/gtk-rot-ctrl.c 2010-10-02 21:35:09 UTC (rev 663) +++ branches/continuous_network/src/gtk-rot-ctrl.c 2010-10-02 22:29:38 UTC (rev 664) @@ -936,19 +936,20 @@ } /* update controller circle on polar plot */ - if ((ctrl->conf->aztype == ROT_AZ_TYPE_180) && (rotaz < 0.0)) { - gtk_polar_plot_set_ctrl_pos (GTK_POLAR_PLOT (ctrl->plot), - gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->AzSet))+360.0, - gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->ElSet))); - } - else { - gtk_polar_plot_set_ctrl_pos (GTK_POLAR_PLOT (ctrl->plot), - gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->AzSet)), - gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->ElSet))); - } + if (ctrl->conf !=NULL){ + if ((ctrl->conf->aztype == ROT_AZ_TYPE_180) && (rotaz < 0.0)) { + gtk_polar_plot_set_ctrl_pos (GTK_POLAR_PLOT (ctrl->plot), + gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->AzSet))+360.0, + gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->ElSet))); + } + else { + gtk_polar_plot_set_ctrl_pos (GTK_POLAR_PLOT (ctrl->plot), + gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->AzSet)), + gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->ElSet))); + } + } + g_static_mutex_unlock(&(ctrl->busy)); - g_static_mutex_unlock(&(ctrl->busy)); - return TRUE; } @@ -1130,6 +1131,8 @@ if (g_str_has_suffix (filename, ".rot")) { i++; + /*once we have one we need nothing else*/ + break; } } } @@ -1146,6 +1149,8 @@ return (i > 0) ? TRUE : FALSE; } +/** \brief open the rotcld socket. return true if successful false otherwise.*/ + static gboolean open_rotctld_socket (GtkRotCtrl * ctrl, gint *sock) { struct sockaddr_in ServAddr; struct hostent *h; @@ -1187,6 +1192,8 @@ return TRUE; } + +/*close a rotcld socket. First send a q command to cleanly shut down rotctld*/ static gboolean close_rotctld_socket (gint sock) { gint written; /*shutdown the rigctld connect*/ @@ -1202,6 +1209,11 @@ return TRUE; } + +/** \brief Send a command to rigctld + * Inputs are a controller, a string command, and a buffer and length for returning the output from rigctld. + */ + gboolean send_rotctld_command(GtkRotCtrl *ctrl, gchar *buff, gchar *buffout, gint sizeout) { gint written; @@ -1256,11 +1268,16 @@ return TRUE; } -/*simple function to sort the list of satellites in the combo box.*/ +/** \brief Compare Satellite Names. + *simple function to sort the list of satellites in the combo box. + */ static gint sat_name_compare (sat_t* a,sat_t*b){ return (g_ascii_strcasecmp(a->nickname,b->nickname)); } + +/** \brief Compare Rotator Names. + */ static gint rot_name_compare (const gchar* a,const gchar *b){ return (g_ascii_strcasecmp(a,b)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-10-02 21:35:15
|
Revision: 663 http://gpredict.svn.sourceforge.net/gpredict/?rev=663&view=rev Author: aa1vs Date: 2010-10-02 21:35:09 +0000 (Sat, 02 Oct 2010) Log Message: ----------- Add sorting to rig, rot, and qth preference screens. Modified Paths: -------------- trunk/src/sat-pref-qth.c trunk/src/sat-pref-rig.c trunk/src/sat-pref-rot.c Modified: trunk/src/sat-pref-qth.c =================================================================== --- trunk/src/sat-pref-qth.c 2010-10-02 19:57:00 UTC (rev 662) +++ trunk/src/sat-pref-qth.c 2010-10-02 21:35:09 UTC (rev 663) @@ -301,6 +301,7 @@ G_TYPE_BOOLEAN // Default ); + gtk_tree_sortable_set_sort_column_id( GTK_TREE_SORTABLE(liststore), QTH_LIST_COL_NAME,GTK_SORT_ASCENDING); /* scan for .qth files in the user config directory and add the contents of each .qth file to the list store */ @@ -1016,3 +1017,4 @@ return FALSE; } + Modified: trunk/src/sat-pref-rig.c =================================================================== --- trunk/src/sat-pref-rig.c 2010-10-02 19:57:00 UTC (rev 662) +++ trunk/src/sat-pref-rig.c 2010-10-02 21:35:09 UTC (rev 663) @@ -250,6 +250,7 @@ G_TYPE_DOUBLE // LO UO ); + gtk_tree_sortable_set_sort_column_id( GTK_TREE_SORTABLE(liststore),RIG_LIST_COL_NAME,GTK_SORT_ASCENDING); /* open configuration directory */ dirname = get_hwconf_dir (); @@ -859,6 +860,3 @@ g_free (buff); } - - - Modified: trunk/src/sat-pref-rot.c =================================================================== --- trunk/src/sat-pref-rot.c 2010-10-02 19:57:00 UTC (rev 662) +++ trunk/src/sat-pref-rot.c 2010-10-02 21:35:09 UTC (rev 663) @@ -217,7 +217,7 @@ G_TYPE_DOUBLE, // Max El G_TYPE_INT // Az type ); - + gtk_tree_sortable_set_sort_column_id( GTK_TREE_SORTABLE(liststore),ROT_LIST_COL_NAME,GTK_SORT_ASCENDING); /* open configuration directory */ dirname = get_hwconf_dir (); @@ -681,6 +681,3 @@ g_free (text); } - - - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-10-02 19:57:06
|
Revision: 662 http://gpredict.svn.sourceforge.net/gpredict/?rev=662&view=rev Author: aa1vs Date: 2010-10-02 19:57:00 +0000 (Sat, 02 Oct 2010) Log Message: ----------- Fixing rig_ctrl_timeout_cb for NULL ctrl->conf Modified Paths: -------------- trunk/src/gtk-rig-ctrl.c Modified: trunk/src/gtk-rig-ctrl.c =================================================================== --- trunk/src/gtk-rig-ctrl.c 2010-10-02 16:38:08 UTC (rev 661) +++ trunk/src/gtk-rig-ctrl.c 2010-10-02 19:57:00 UTC (rev 662) @@ -1160,6 +1160,15 @@ { GtkRigCtrl *ctrl = GTK_RIG_CTRL (data); + if (ctrl->conf == NULL) { + /* we don't have a working configuration */ + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: Controller does not have a valid configuration"), + __FUNCTION__); + return; + } + + if (!gtk_toggle_button_get_active (button)) { /* close socket */ @@ -1168,6 +1177,7 @@ ctrl->engaged = FALSE; ctrl->lasttxf = 0.0; ctrl->lastrxf = 0.0; + if (ctrl->conf->type != NULL) { switch (ctrl->conf->type) { case RIG_TYPE_TOGGLE_AUTO: @@ -1180,14 +1190,7 @@ } } else { - if (ctrl->conf == NULL) { - /* we don't have a working configuration */ - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Controller does not have a valid configuration"), - __FUNCTION__); - return; - } - + gtk_widget_set_sensitive (ctrl->DevSel, FALSE); gtk_widget_set_sensitive (ctrl->DevSel2, FALSE); ctrl->engaged = TRUE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-10-02 16:38:15
|
Revision: 661 http://gpredict.svn.sourceforge.net/gpredict/?rev=661&view=rev Author: aa1vs Date: 2010-10-02 16:38:08 +0000 (Sat, 02 Oct 2010) Log Message: ----------- Trap NULL values in rig_ctrl_timeout_cb that caused crash Modified Paths: -------------- trunk/src/gtk-rig-ctrl.c Modified: trunk/src/gtk-rig-ctrl.c =================================================================== --- trunk/src/gtk-rig-ctrl.c 2010-10-02 16:36:25 UTC (rev 660) +++ trunk/src/gtk-rig-ctrl.c 2010-10-02 16:38:08 UTC (rev 661) @@ -1168,14 +1168,16 @@ ctrl->engaged = FALSE; ctrl->lasttxf = 0.0; ctrl->lastrxf = 0.0; - switch (ctrl->conf->type) { - case RIG_TYPE_TOGGLE_AUTO: - case RIG_TYPE_TOGGLE_MAN: - unset_toggle (ctrl,ctrl->conf); - break; - default: - break; - } + if (ctrl->conf->type != NULL) { + switch (ctrl->conf->type) { + case RIG_TYPE_TOGGLE_AUTO: + case RIG_TYPE_TOGGLE_MAN: + unset_toggle (ctrl,ctrl->conf); + break; + default: + break; + } + } } else { if (ctrl->conf == NULL) { @@ -1274,7 +1276,15 @@ static gboolean rig_ctrl_timeout_cb (gpointer data) { GtkRigCtrl *ctrl = GTK_RIG_CTRL (data); - + if (ctrl->conf == NULL) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: Controller does not have a valid configuration"), + __FUNCTION__); + return (TRUE); + + } + + if (g_static_mutex_trylock(&(ctrl->busy))==FALSE) { sat_log_log (SAT_LOG_LEVEL_ERROR,_("%s missed the deadline"),__FUNCTION__); return TRUE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-10-02 16:36:31
|
Revision: 660 http://gpredict.svn.sourceforge.net/gpredict/?rev=660&view=rev Author: aa1vs Date: 2010-10-02 16:36:25 +0000 (Sat, 02 Oct 2010) Log Message: ----------- Catch null value in rot_ctrl_timeout_cb that caused crash Modified Paths: -------------- trunk/src/gtk-rot-ctrl.c Modified: trunk/src/gtk-rot-ctrl.c =================================================================== --- trunk/src/gtk-rot-ctrl.c 2010-10-02 14:39:11 UTC (rev 659) +++ trunk/src/gtk-rot-ctrl.c 2010-10-02 16:36:25 UTC (rev 660) @@ -916,17 +916,18 @@ } /* update controller circle on polar plot */ - if ((ctrl->conf->aztype == ROT_AZ_TYPE_180) && (rotaz < 0.0)) { - gtk_polar_plot_set_ctrl_pos (GTK_POLAR_PLOT (ctrl->plot), - gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->AzSet))+360.0, - gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->ElSet))); + if (ctrl->conf !=NULL){ + if ((ctrl->conf->aztype == ROT_AZ_TYPE_180) && (rotaz < 0.0)) { + gtk_polar_plot_set_ctrl_pos (GTK_POLAR_PLOT (ctrl->plot), + gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->AzSet))+360.0, + gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->ElSet))); + } + else { + gtk_polar_plot_set_ctrl_pos (GTK_POLAR_PLOT (ctrl->plot), + gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->AzSet)), + gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->ElSet))); + } } - else { - gtk_polar_plot_set_ctrl_pos (GTK_POLAR_PLOT (ctrl->plot), - gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->AzSet)), - gtk_rot_knob_get_value (GTK_ROT_KNOB (ctrl->ElSet))); - } - g_static_mutex_unlock(&(ctrl->busy)); return TRUE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-10-02 14:39:19
|
Revision: 659 http://gpredict.svn.sourceforge.net/gpredict/?rev=659&view=rev Author: aa1vs Date: 2010-10-02 14:39:11 +0000 (Sat, 02 Oct 2010) Log Message: ----------- Updates to gtk-rit-ctrl.c and gtk-rot-ctrl.c towards a polished continuous network connection. Modified Paths: -------------- branches/continuous_network/src/gtk-rig-ctrl.c branches/continuous_network/src/gtk-rot-ctrl.c Modified: branches/continuous_network/src/gtk-rig-ctrl.c =================================================================== --- branches/continuous_network/src/gtk-rig-ctrl.c 2010-10-02 14:23:44 UTC (rev 658) +++ branches/continuous_network/src/gtk-rig-ctrl.c 2010-10-02 14:39:11 UTC (rev 659) @@ -129,7 +129,11 @@ static void track_downlink (GtkRigCtrl *ctrl); static void track_uplink (GtkRigCtrl *ctrl); static gboolean is_rig_tx_capable (const gchar *confname); -static gboolean send_rigctld_command(GtkRigCtrl *ctrl, gint sock, gchar *buff, gint size, gchar *buffout, gint sizeout); +static gboolean send_rigctld_command(GtkRigCtrl *ctrl, gint sock, gchar *buff, gchar *buffout, gint sizeout); +static gboolean check_set_response (gchar *buff,gboolean retcode,const gchar* filename); +static gboolean check_get_response (gchar *buff,gboolean retcode,const gchar* filename); +static gint sat_name_compare (sat_t* a,sat_t*b); +static gint rig_name_compare (const gchar* a,const gchar *b); static GtkVBoxClass *parent_class = NULL; @@ -654,7 +658,7 @@ gchar *dirname; /* directory name */ gchar **vbuff; const gchar *filename; /* file name */ - + gchar *rigname; table = gtk_table_new (4, 3, FALSE); @@ -678,15 +682,26 @@ dir = g_dir_open (dirname, 0, &error); if (dir) { /* read each .rig file */ + GSList *rigs=NULL; + gint i; + gint n; while ((filename = g_dir_read_name (dir))) { if (g_str_has_suffix (filename, ".rig")) { - - vbuff = g_strsplit (filename, ".rig", 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (ctrl->DevSel), vbuff[0]); + vbuff = g_strsplit (filename, ".rig", 0); + rigs=g_slist_insert_sorted(rigs,g_strdup(vbuff[0]),(GCompareFunc)rig_name_compare); g_strfreev (vbuff); } } + n = g_slist_length (rigs); + for (i = 0; i < n; i++) { + rigname = g_slist_nth_data (rigs, i); + if (rigname) { + gtk_combo_box_append_text (GTK_COMBO_BOX (ctrl->DevSel), rigname); + g_free(rigname); + } + } + g_slist_free(rigs); } else { sat_log_log (SAT_LOG_LEVEL_ERROR, @@ -811,7 +826,8 @@ GtkRigCtrl *ctrl = GTK_RIG_CTRL( user_data); sat_t *sat = SAT (value); - ctrl->sats = g_slist_append (ctrl->sats, sat); + //ctrl->sats = g_slist_append (ctrl->sats, sat); + ctrl->sats = g_slist_insert_sorted (ctrl->sats, sat, (GCompareFunc)sat_name_compare); } @@ -1179,6 +1195,7 @@ break; } if (ctrl->conf2 != NULL) { + close_rigctld_socket(ctrl->sock2); } close_rigctld_socket(ctrl->sock); @@ -1240,6 +1257,7 @@ } } } + printf("Returning from engage\n"); } @@ -1922,22 +1940,19 @@ gchar *buff,**vbuff; gchar buffback[128]; gboolean retcode; - gint size; guint64 pttstat = 0; if (ctrl->conf->ptt == PTT_TYPE_CAT) { /* send command get_ptt (t) */ buff = g_strdup_printf ("t\x0a"); - size = 2; } else { /* send command \get_dcd */ buff = g_strdup_printf ("%c\x0a",0x8b); - size = 2; } - retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); + retcode=send_rigctld_command(ctrl,sock,buff,buffback,128); if (retcode) { vbuff = g_strsplit (buffback, "\n", 3); pttstat = g_ascii_strtoull (vbuff[0], NULL, 0); //FIXME base = 0 ok? @@ -1959,7 +1974,6 @@ { gchar *buff; gchar buffback[128]; - gint size; gboolean retcode; /* send command */ @@ -1970,13 +1984,12 @@ buff = g_strdup_printf ("T 0\x0a"); } - size = 4; - retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); + retcode=send_rigctld_command(ctrl,sock,buff,buffback,128); g_free (buff); + return(check_set_response(buffback,retcode,__FUNCTION__)); - return retcode; } @@ -1995,17 +2008,15 @@ { gchar *buff; gchar buffback[128]; - gint size; gboolean retcode; - buff = g_strdup_printf ("F %10.0f\x0a", freq); - - size = 13; + buff = g_strdup_printf ("F %10.0f\x0a", freq); - retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); + retcode=send_rigctld_command(ctrl,sock,buff,buffback,128); g_free(buff); - return retcode; + return(check_set_response(buffback,retcode,__FUNCTION__)); + } @@ -2024,15 +2035,17 @@ { gchar *buff; gchar buffback[128]; - gint size; gboolean retcode; + /* send command */ buff = g_strdup_printf ("I %10.0f\x0a", freq); - size = 12; - retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); + + retcode=send_rigctld_command(ctrl,sock,buff,buffback,128); g_free(buff); - return retcode; + + return(check_set_response(buffback,retcode,__FUNCTION__)); + } @@ -2047,16 +2060,15 @@ gchar *buff; gchar buffback[128]; gboolean retcode; - gint size; /* send command */ buff = g_strdup_printf ("S 1 %d\x0a",ctrl->conf->vfoDown); - size = 13; - retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); + retcode=send_rigctld_command(ctrl,sock,buff,buffback,128); g_free(buff); - return retcode; + return(check_set_response(buffback,retcode,__FUNCTION__)); + } /** \brief Turn off the radios toggle mode @@ -2071,16 +2083,16 @@ gchar *buff; gchar buffback[128]; gboolean retcode; - gint size; + /* send command */ buff = g_strdup_printf ("S 0 %d\x0a",ctrl->conf->vfoDown); - size = 13; - retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); + retcode=send_rigctld_command(ctrl,sock,buff,buffback,128); g_free(buff); - return retcode; + return(check_set_response(buffback,retcode,__FUNCTION__)); + } /** \brief Get frequency @@ -2094,7 +2106,6 @@ gchar *buff,**vbuff; gchar buffback[128]; gboolean retcode; - gint size; if (freq == NULL) { sat_log_log (SAT_LOG_LEVEL_BUG, @@ -2105,8 +2116,9 @@ /* send command */ buff = g_strdup_printf ("f\x0a"); - size = 2; - retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); + + retcode=send_rigctld_command(ctrl,sock,buff,buffback,128); + retcode=check_get_response(buffback,retcode,__FUNCTION__); if (retcode) { vbuff = g_strsplit (buffback, "\n", 3); *freq = g_ascii_strtod (vbuff[0], NULL); @@ -2128,7 +2140,6 @@ { gchar *buff,**vbuff; gchar buffback[128]; - gint size; gboolean retcode; @@ -2141,8 +2152,9 @@ /* send command */ buff = g_strdup_printf ("i\x0a"); - size = 2; - retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); + + retcode=send_rigctld_command(ctrl,sock,buff,buffback,128); + retcode=check_get_response(buffback,retcode,__FUNCTION__); if (retcode) { vbuff = g_strsplit (buffback, "\n", 3); *freq = g_ascii_strtod (vbuff[0], NULL); @@ -2164,7 +2176,6 @@ { gchar *buff; gchar buffback[128]; - gint size; gboolean retcode; @@ -2172,22 +2183,18 @@ switch (vfo) { case VFO_A: buff = g_strdup_printf ("V VFOA\x0a"); - size = 7; break; case VFO_B: buff = g_strdup_printf ("V VFOB\x0a"); - size = 7; break; case VFO_MAIN: buff = g_strdup_printf ("V Main\x0a"); - size = 7; break; case VFO_SUB: buff = g_strdup_printf ("V Sub\x0a"); - size = 6; break; default: @@ -2195,13 +2202,14 @@ _("%s: Invalid VFO argument. Using VFOA."), __FUNCTION__); buff = g_strdup_printf ("V VFOA\x0a"); - size = 7; break; } - retcode=send_rigctld_command(ctrl,ctrl->sock,buff,size,buffback,128); + + retcode=send_rigctld_command(ctrl,ctrl->sock,buff,buffback,128); g_free(buff); - return retcode; + + return(check_set_response(buffback,retcode,__FUNCTION__)); } @@ -2488,12 +2496,19 @@ -gboolean send_rigctld_command(GtkRigCtrl *ctrl, gint sock, gchar *buff, gint size, gchar *buffout, gint sizeout) +gboolean send_rigctld_command(GtkRigCtrl *ctrl, gint sock, gchar *buff, gchar *buffout, gint sizeout) { gint written; + gint size; + + size = strlen(buff); + sat_log_log (SAT_LOG_LEVEL_DEBUG, + _("%s:%s: sending %d bytes to rigctld as \"%s\""), + __FILE__, __FUNCTION__, size, buff); + /* send command */ - written = send(sock, buff, size, 0); + written = send(sock, buff, strlen(buff), 0); if (written != size) { sat_log_log (SAT_LOG_LEVEL_ERROR, _("%s: SIZE ERROR %d / %d"), @@ -2712,3 +2727,36 @@ return TRUE; } + +/*simple function to sort the list of satellites in the combo box.*/ +static gint sat_name_compare (sat_t* a,sat_t*b){ + return (g_ascii_strcasecmp(a->nickname,b->nickname)); +} + +static gint rig_name_compare (const gchar* a,const gchar *b){ + return (g_ascii_strcasecmp(a,b)); +} + +static gboolean check_set_response (gchar *buffback,gboolean retcode,const gchar *function){ + if (retcode==TRUE) + if (strncmp(buffback,"RPRT 0",6)!=0) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: %s rigctld returned error (%s)"), + __FILE__,function,buffback); + + retcode=FALSE; + } + return retcode; +} + +static gboolean check_get_response (gchar *buffback,gboolean retcode,const gchar *function){ + if (retcode==TRUE) + if (strncmp(buffback,"RPRT",4)==0) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: %s rigctld returned error (%s)"), + __FILE__,function,buffback); + + retcode=FALSE; + } + return retcode; +} Modified: branches/continuous_network/src/gtk-rot-ctrl.c =================================================================== --- branches/continuous_network/src/gtk-rot-ctrl.c 2010-10-02 14:23:44 UTC (rev 658) +++ branches/continuous_network/src/gtk-rot-ctrl.c 2010-10-02 14:39:11 UTC (rev 659) @@ -89,11 +89,13 @@ static gboolean get_pos (GtkRotCtrl *ctrl, gdouble *az, gdouble *el); static gboolean set_pos (GtkRotCtrl *ctrl, gdouble az, gdouble el); -static gboolean send_rotctld_command(GtkRotCtrl *ctrl, gchar *buff, gint size, gchar *buffout, gint sizeout); +static gboolean send_rotctld_command(GtkRotCtrl *ctrl, gchar *buff, gchar *buffout, gint sizeout); static gboolean open_rotctld_socket (GtkRotCtrl *ctrl, gint *sock); static gboolean close_rotctld_socket (gint sock); static gboolean have_conf (void); +static gint sat_name_compare (sat_t* a,sat_t*b); +static gint rot_name_compare (const gchar* a,const gchar *b); static GtkVBoxClass *parent_class = NULL; @@ -481,7 +483,7 @@ gchar *dirname; /* directory name */ gchar **vbuff; const gchar *filename; /* file name */ - + gchar *rotname; table = gtk_table_new (3, 3, FALSE); @@ -503,15 +505,27 @@ dir = g_dir_open (dirname, 0, &error); if (dir) { /* read each .rot file */ + GSList *rots=NULL; + gint i; + gint n; while ((filename = g_dir_read_name (dir))) { if (g_str_has_suffix (filename, ".rot")) { vbuff = g_strsplit (filename, ".rot", 0); - gtk_combo_box_append_text (GTK_COMBO_BOX (ctrl->DevSel), vbuff[0]); + rots=g_slist_insert_sorted(rots,g_strdup(vbuff[0]),(GCompareFunc)rot_name_compare); g_strfreev (vbuff); } } + n = g_slist_length (rots); + for (i = 0; i < n; i++) { + rotname = g_slist_nth_data (rots, i); + if (rotname) { + gtk_combo_box_append_text (GTK_COMBO_BOX (ctrl->DevSel), rotname); + g_free(rotname); + } + } + g_slist_free(rots); } else { sat_log_log (SAT_LOG_LEVEL_ERROR, @@ -609,7 +623,8 @@ GtkRotCtrl *ctrl = GTK_ROT_CTRL( user_data); sat_t *sat = SAT (value); - ctrl->sats = g_slist_append (ctrl->sats, sat); + //ctrl->sats = g_slist_append (ctrl->sats, sat); + ctrl->sats = g_slist_insert_sorted (ctrl->sats, sat, (GCompareFunc)sat_name_compare); } @@ -949,7 +964,6 @@ { gchar *buff,**vbuff; gchar buffback[128]; - gint size; gboolean retcode; if ((az == NULL) || (el == NULL)) { @@ -961,16 +975,24 @@ /* send command */ buff = g_strdup_printf ("p\x0a"); - size = 2; - retcode=send_rotctld_command(ctrl,buff,size,buffback,128); + + retcode=send_rotctld_command(ctrl,buff,buffback,128); /* try to read answer */ if (retcode) { - vbuff = g_strsplit (buffback, "\n", 3); - *az = g_strtod (vbuff[0], NULL); - *el = g_strtod (vbuff[1], NULL); + if (strncmp(buffback,"RPRT",4)==0){ + retcode=FALSE; + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s:%d: rotctld returned error (%s)"), + __FILE__, __LINE__,buffback); - g_strfreev (vbuff); + } else { + vbuff = g_strsplit (buffback, "\n", 3); + *az = g_strtod (vbuff[0], NULL); + *el = g_strtod (vbuff[1], NULL); + + g_strfreev (vbuff); + } } g_free (buff); @@ -994,7 +1016,6 @@ gchar *buff; gchar buffback[128]; gchar azstr[8],elstr[8]; - gint size; gboolean retcode; /* send command */ @@ -1002,11 +1023,19 @@ g_ascii_formatd (elstr, 8, "%7.2f", el); buff = g_strdup_printf ("P %s %s\x0a", azstr, elstr); - size = strlen(buff); - retcode=send_rotctld_command(ctrl,buff,size,buffback,128); + retcode=send_rotctld_command(ctrl,buff,buffback,128); g_free (buff); + if (retcode==TRUE) + if (strncmp(buffback,"RPRT 0",6)!=0) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s:%d: rotctld returned error (%s)"), + __FILE__, __LINE__,buffback); + + retcode=FALSE; + } + return (retcode); } @@ -1173,9 +1202,13 @@ return TRUE; } -gboolean send_rotctld_command(GtkRotCtrl *ctrl, gchar *buff, gint size, gchar *buffout, gint sizeout) +gboolean send_rotctld_command(GtkRotCtrl *ctrl, gchar *buff, gchar *buffout, gint sizeout) { gint written; + gint size; + + size = strlen(buff); + sat_log_log (SAT_LOG_LEVEL_DEBUG, _("%s:%s: Sending %d bytes as %s."), __FILE__, __FUNCTION__, size, buff); @@ -1223,4 +1256,11 @@ return TRUE; } +/*simple function to sort the list of satellites in the combo box.*/ +static gint sat_name_compare (sat_t* a,sat_t*b){ + return (g_ascii_strcasecmp(a->nickname,b->nickname)); +} +static gint rot_name_compare (const gchar* a,const gchar *b){ + return (g_ascii_strcasecmp(a,b)); +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-10-02 14:23:51
|
Revision: 658 http://gpredict.svn.sourceforge.net/gpredict/?rev=658&view=rev Author: aa1vs Date: 2010-10-02 14:23:44 +0000 (Sat, 02 Oct 2010) Log Message: ----------- Fix bug with set and unset toggle buffer size being incorrect causing junk to be sent to rigctld. Modified Paths: -------------- trunk/src/gtk-rig-ctrl.c Modified: trunk/src/gtk-rig-ctrl.c =================================================================== --- trunk/src/gtk-rig-ctrl.c 2010-09-26 20:23:08 UTC (rev 657) +++ trunk/src/gtk-rig-ctrl.c 2010-10-02 14:23:44 UTC (rev 658) @@ -2315,7 +2315,7 @@ /* send command */ buff = g_strdup_printf ("S 1 %d\x0aq\x0a",ctrl->conf->vfoDown); - size = 15; + size = strlen(buff); written = send(sock, buff, size, 0); if (written != size) { sat_log_log (SAT_LOG_LEVEL_ERROR, @@ -2390,7 +2390,7 @@ /* send command */ buff = g_strdup_printf ("S 0 %d\x0aq\x0a",ctrl->conf->vfoDown); - size = 15; + size = strlen(buff); written = send(sock, buff, size, 0); if (written != size) { sat_log_log (SAT_LOG_LEVEL_ERROR, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-09-26 20:23:14
|
Revision: 657 http://gpredict.svn.sourceforge.net/gpredict/?rev=657&view=rev Author: aa1vs Date: 2010-09-26 20:23:08 +0000 (Sun, 26 Sep 2010) Log Message: ----------- Added improved error handling for network errors Modified Paths: -------------- branches/continuous_network/src/gtk-rig-ctrl.c branches/continuous_network/src/gtk-rot-ctrl.c Modified: branches/continuous_network/src/gtk-rig-ctrl.c =================================================================== --- branches/continuous_network/src/gtk-rig-ctrl.c 2010-09-25 16:45:30 UTC (rev 656) +++ branches/continuous_network/src/gtk-rig-ctrl.c 2010-09-26 20:23:08 UTC (rev 657) @@ -2499,9 +2499,23 @@ _("%s: SIZE ERROR %d / %d"), __FUNCTION__, written, size); } + if (written == -1) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: rigctld port closed"), + __FUNCTION__); + return FALSE; + } /* try to read answer */ size = read (sock, buffout, 127); + if (size == -1) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: rigctld port closed"), + __FUNCTION__); + return FALSE; + } + buffout[size]='\0'; + if (size == 0) { sat_log_log (SAT_LOG_LEVEL_ERROR, _("%s:%s: Got 0 bytes from rigctld"), Modified: branches/continuous_network/src/gtk-rot-ctrl.c =================================================================== --- branches/continuous_network/src/gtk-rot-ctrl.c 2010-09-25 16:45:30 UTC (rev 656) +++ branches/continuous_network/src/gtk-rot-ctrl.c 2010-09-26 20:23:08 UTC (rev 657) @@ -964,7 +964,6 @@ size = 2; retcode=send_rotctld_command(ctrl,buff,size,buffback,128); - printf(" buffback = %s\n", buffback); /* try to read answer */ if (retcode) { vbuff = g_strsplit (buffback, "\n", 3); @@ -1177,7 +1176,11 @@ gboolean send_rotctld_command(GtkRotCtrl *ctrl, gchar *buff, gint size, gchar *buffout, gint sizeout) { gint written; + sat_log_log (SAT_LOG_LEVEL_DEBUG, + _("%s:%s: Sending %d bytes as %s."), + __FILE__, __FUNCTION__, size, buff); + /* send command */ written = send(ctrl->sock, buff, size, 0); if (written != size) { @@ -1185,18 +1188,33 @@ _("%s: SIZE ERROR %d / %d"), __FUNCTION__, written, size); } + if (written == -1) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: rotctld Socket Down"), + __FUNCTION__); + return FALSE; + } + /* try to read answer */ size = read (ctrl->sock, buffout, sizeout); + + if (size == -1) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: rotctld Socket Down"), + __FUNCTION__); + return FALSE; + } + buffout[size]='\0'; - if (size == 0) { + if (size == 0) { sat_log_log (SAT_LOG_LEVEL_ERROR, _("%s:%s: Got 0 bytes from rotctld"), __FILE__, __FUNCTION__); } else { sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%s: Read %d bytes from rotctld"), - __FILE__, __FUNCTION__, size); + _("%s:%s: Read %d bytes as %s from rotctld"), + __FILE__, __FUNCTION__, size, buffout); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-09-25 16:45:36
|
Revision: 656 http://gpredict.svn.sourceforge.net/gpredict/?rev=656&view=rev Author: aa1vs Date: 2010-09-25 16:45:30 +0000 (Sat, 25 Sep 2010) Log Message: ----------- Added persistent connection for rotator and fixed bugs in ric control Modified Paths: -------------- branches/continuous_network/src/gtk-rig-ctrl.c branches/continuous_network/src/gtk-rot-ctrl.c branches/continuous_network/src/gtk-rot-ctrl.h Modified: branches/continuous_network/src/gtk-rig-ctrl.c =================================================================== --- branches/continuous_network/src/gtk-rig-ctrl.c 2010-09-25 13:58:47 UTC (rev 655) +++ branches/continuous_network/src/gtk-rig-ctrl.c 2010-09-25 16:45:30 UTC (rev 656) @@ -2501,6 +2501,7 @@ } /* try to read answer */ size = read (sock, buffout, 127); + buffout[size]='\0'; if (size == 0) { sat_log_log (SAT_LOG_LEVEL_ERROR, _("%s:%s: Got 0 bytes from rigctld"), @@ -2647,7 +2648,7 @@ gint status; *sock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP); - if (sock < 0) { + if (*sock < 0) { sat_log_log (SAT_LOG_LEVEL_ERROR, _("%s: Failed to create socket"), __FUNCTION__); Modified: branches/continuous_network/src/gtk-rot-ctrl.c =================================================================== --- branches/continuous_network/src/gtk-rot-ctrl.c 2010-09-25 13:58:47 UTC (rev 655) +++ branches/continuous_network/src/gtk-rot-ctrl.c 2010-09-25 16:45:30 UTC (rev 656) @@ -89,6 +89,10 @@ static gboolean get_pos (GtkRotCtrl *ctrl, gdouble *az, gdouble *el); static gboolean set_pos (GtkRotCtrl *ctrl, gdouble az, gdouble el); +static gboolean send_rotctld_command(GtkRotCtrl *ctrl, gchar *buff, gint size, gchar *buffout, gint sizeout); +static gboolean open_rotctld_socket (GtkRotCtrl *ctrl, gint *sock); +static gboolean close_rotctld_socket (gint sock); + static gboolean have_conf (void); static GtkVBoxClass *parent_class = NULL; @@ -771,6 +775,7 @@ if (!gtk_toggle_button_get_active (button)) { gtk_widget_set_sensitive (ctrl->DevSel, TRUE); ctrl->engaged = FALSE; + close_rotctld_socket(ctrl->sock); gtk_label_set_text (GTK_LABEL (ctrl->AzRead), "---"); gtk_label_set_text (GTK_LABEL (ctrl->ElRead), "---"); } @@ -784,7 +789,7 @@ } gtk_widget_set_sensitive (ctrl->DevSel, FALSE); ctrl->engaged = TRUE; - + open_rotctld_socket(ctrl,&(ctrl->sock)); ctrl->wrops = 0; ctrl->rdops = 0; } @@ -943,13 +948,10 @@ static gboolean get_pos (GtkRotCtrl *ctrl, gdouble *az, gdouble *el) { gchar *buff,**vbuff; - gint written,size; - gint status; - struct hostent *h; - struct sockaddr_in ServAddr; - gint sock; /*!< Network socket */ - - + gchar buffback[128]; + gint size; + gboolean retcode; + if ((az == NULL) || (el == NULL)) { sat_log_log (SAT_LOG_LEVEL_BUG, _("%s:%d: NULL storage."), @@ -957,108 +959,29 @@ return FALSE; } - /* create socket */ - sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: Failed to create socket"), - __FILE__, __LINE__); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%d Network socket created successfully"), - __FILE__, __LINE__); - } - - memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ - ServAddr.sin_family = AF_INET; /* Internet address family */ - h = gethostbyname(ctrl->conf->host); - memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); - ServAddr.sin_port = htons(ctrl->conf->port); /* Server port */ - - /* establish connection */ - status = connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); - if (status < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: Failed to connect to %s:%d"), - __FILE__, __LINE__, ctrl->conf->host, ctrl->conf->port); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%d: Connection opened to %s:%d"), - __FILE__, __LINE__, ctrl->conf->host, ctrl->conf->port); - } - /* send command */ - buff = g_strdup_printf ("p\x0aq\x0a"); + buff = g_strdup_printf ("p\x0a"); + size = 2; + retcode=send_rotctld_command(ctrl,buff,size,buffback,128); - size = 4; - written = send(sock, buff, size, 0); - if (written != size) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: SIZE ERROR %d / %d"), - __FILE__, __LINE__, written, size); - } - g_free (buff); - - + printf(" buffback = %s\n", buffback); /* try to read answer */ - buff = g_try_malloc (128); - if (buff == NULL) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%s: Failed to allocate 128 bytes (yes, this means trouble)"), - __FILE__, __FUNCTION__); - -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif - - close (sock); - return FALSE; - } - - size = read (sock, buff, 127); - if (size == 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%s: Got 0 bytes from rotctld"), - __FILE__, __FUNCTION__); - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%s: Read %d bytes from rotctld"), - __FILE__, __FUNCTION__, size); - - buff[size] = 0; - vbuff = g_strsplit (buff, "\n", 3); + if (retcode) { + vbuff = g_strsplit (buffback, "\n", 3); *az = g_strtod (vbuff[0], NULL); *el = g_strtod (vbuff[1], NULL); g_strfreev (vbuff); - } + } g_free (buff); -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif - - close (sock); - - ctrl->wrops++; - ctrl->rdops++; - - return TRUE; + return retcode; } /** \brief Send new position to rotator device - * \param ctrl Poitner to the GtkRotCtrl widget + * \param ctrl Pointer to the GtkRotCtrl widget * \param az The new Azimuth * \param el The new Elevation * \return TRUE if the new position has been sent successfully @@ -1070,76 +993,22 @@ static gboolean set_pos (GtkRotCtrl *ctrl, gdouble az, gdouble el) { gchar *buff; + gchar buffback[128]; gchar azstr[8],elstr[8]; - gint written,size; - gint status; - struct hostent *h; - struct sockaddr_in ServAddr; - gint sock; /*!< Network socket */ - + gint size; + gboolean retcode; - /* create socket */ - sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: Failed to create socket"), - __FILE__, __LINE__); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%d Network socket created successfully"), - __FILE__, __LINE__); - } - - memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ - ServAddr.sin_family = AF_INET; /* Internet address family */ - h = gethostbyname(ctrl->conf->host); - memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); - ServAddr.sin_port = htons(ctrl->conf->port); /* Server port */ - - /* establish connection */ - status = connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); - if (status < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: Failed to connect to %s:%d"), - __FILE__, __LINE__, ctrl->conf->host, ctrl->conf->port); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%d: Connection opened to %s:%d"), - __FILE__, __LINE__, ctrl->conf->host, ctrl->conf->port); - } - /* send command */ g_ascii_formatd (azstr, 8, "%7.2f", az); g_ascii_formatd (elstr, 8, "%7.2f", el); - buff = g_strdup_printf ("P %s %s\x0aq\x0a", azstr, elstr); + buff = g_strdup_printf ("P %s %s\x0a", azstr, elstr); - size = 20; - written = send(sock, buff, size, 0); - if (written != size) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: SIZE ERROR %d / %d"), - __FILE__, __LINE__, written, size); - } + size = strlen(buff); + retcode=send_rotctld_command(ctrl,buff,size,buffback,128); - //g_print ("SZ:%d WR:%d AZ:%s EL:%s STR:%s", size, written, azstr, elstr, buff); - g_free (buff); -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif - - close (sock); - - ctrl->wrops++; - - return TRUE; + return (retcode); } @@ -1248,3 +1117,92 @@ return (i > 0) ? TRUE : FALSE; } + +static gboolean open_rotctld_socket (GtkRotCtrl * ctrl, gint *sock) { + struct sockaddr_in ServAddr; + struct hostent *h; + gint status; + + ctrl->sock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP); + if (ctrl->sock < 0) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: Failed to create socket"), + __FUNCTION__); + return FALSE; + } + else { + sat_log_log (SAT_LOG_LEVEL_DEBUG, + _("%s: Network socket created successfully"), + __FUNCTION__); + } + + memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ + ServAddr.sin_family = AF_INET; /* Internet address family */ + h = gethostbyname(ctrl->conf->host); + memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); + ServAddr.sin_port = htons(ctrl->conf->port); /* Server port */ + + /* establish connection */ + status = connect(ctrl->sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); + if (status < 0) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: Failed to connect to %s:%d"), + __FUNCTION__, ctrl->conf->host, ctrl->conf->port); + return FALSE; + } + else { + sat_log_log (SAT_LOG_LEVEL_DEBUG, + _("%s: Connection opened to %s:%d"), + __FUNCTION__, ctrl->conf->host, ctrl->conf->port); + } + + return TRUE; +} + +static gboolean close_rotctld_socket (gint sock) { + gint written; + /*shutdown the rigctld connect*/ + written = send(sock, "q\x0a", 2, 0); + +#ifndef WIN32 + shutdown (sock, SHUT_RDWR); +#else + shutdown (sock, SD_BOTH); +#endif + + close (sock); + + return TRUE; +} +gboolean send_rotctld_command(GtkRotCtrl *ctrl, gchar *buff, gint size, gchar *buffout, gint sizeout) +{ + gint written; + + /* send command */ + written = send(ctrl->sock, buff, size, 0); + if (written != size) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: SIZE ERROR %d / %d"), + __FUNCTION__, written, size); + } + /* try to read answer */ + size = read (ctrl->sock, buffout, sizeout); + buffout[size]='\0'; + if (size == 0) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s:%s: Got 0 bytes from rotctld"), + __FILE__, __FUNCTION__); + } + else { + sat_log_log (SAT_LOG_LEVEL_DEBUG, + _("%s:%s: Read %d bytes from rotctld"), + __FILE__, __FUNCTION__, size); + + } + + ctrl->wrops++; + + return TRUE; +} + + Modified: branches/continuous_network/src/gtk-rot-ctrl.h =================================================================== --- branches/continuous_network/src/gtk-rot-ctrl.h 2010-09-25 13:58:47 UTC (rev 655) +++ branches/continuous_network/src/gtk-rot-ctrl.h 2010-09-25 16:45:30 UTC (rev 656) @@ -93,7 +93,8 @@ gboolean engaged; /*!< Flag indicating that rotor device is engaged. */ gint errcnt; /*!< Error counter. */ - + gint sock; /*!< socket for connecting to rotctld. */ + /* debug related */ guint wrops; guint rdops; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-09-25 13:58:53
|
Revision: 655 http://gpredict.svn.sourceforge.net/gpredict/?rev=655&view=rev Author: aa1vs Date: 2010-09-25 13:58:47 +0000 (Sat, 25 Sep 2010) Log Message: ----------- Move socket Out of radio-conf.h Modified Paths: -------------- branches/continuous_network/src/gtk-rig-ctrl.c branches/continuous_network/src/gtk-rig-ctrl.h branches/continuous_network/src/radio-conf.h Modified: branches/continuous_network/src/gtk-rig-ctrl.c =================================================================== --- branches/continuous_network/src/gtk-rig-ctrl.c 2010-09-25 11:46:00 UTC (rev 654) +++ branches/continuous_network/src/gtk-rig-ctrl.c 2010-09-25 13:58:47 UTC (rev 655) @@ -109,18 +109,18 @@ static void exec_toggle_tx_cycle (GtkRigCtrl *ctrl); static void exec_duplex_cycle (GtkRigCtrl *ctrl); static void exec_dual_rig_cycle (GtkRigCtrl *ctrl); -static gboolean set_freq_simplex (GtkRigCtrl *ctrl, radio_conf_t *conf, gdouble freq); -static gboolean get_freq_simplex (GtkRigCtrl *ctrl, radio_conf_t *conf, gdouble *freq); -static gboolean set_freq_toggle (GtkRigCtrl *ctrl, radio_conf_t *conf, gdouble freq); -static gboolean set_toggle (GtkRigCtrl *ctrl, radio_conf_t *conf); -static gboolean unset_toggle (GtkRigCtrl *ctrl, radio_conf_t *conf); -static gboolean get_freq_toggle (GtkRigCtrl *ctrl, radio_conf_t *conf, gdouble *freq); -static gboolean get_ptt (GtkRigCtrl *ctrl, radio_conf_t *conf); -static gboolean set_ptt (GtkRigCtrl *ctrl, radio_conf_t *conf, gboolean ptt); +static gboolean set_freq_simplex (GtkRigCtrl *ctrl, gint sock, gdouble freq); +static gboolean get_freq_simplex (GtkRigCtrl *ctrl, gint sock, gdouble *freq); +static gboolean set_freq_toggle (GtkRigCtrl *ctrl, gint sock, gdouble freq); +static gboolean set_toggle (GtkRigCtrl *ctrl, gint sock); +static gboolean unset_toggle (GtkRigCtrl *ctrl, gint sock); +static gboolean get_freq_toggle (GtkRigCtrl *ctrl, gint sock, gdouble *freq); +static gboolean get_ptt (GtkRigCtrl *ctrl, gint sock); +static gboolean set_ptt (GtkRigCtrl *ctrl, gint sock, gboolean ptt); static gboolean set_vfo (GtkRigCtrl *ctrl, vfo_t vfo); static void update_count_down (GtkRigCtrl *ctrl, gdouble t); -static gboolean open_rigctld_socket(radio_conf_t *conf); -static gboolean close_rigctld_socket(radio_conf_t *conf); +static gboolean open_rigctld_socket(radio_conf_t *conf, gint *sock); +static gboolean close_rigctld_socket(gint sock); /* misc utility functions */ static void load_trsp_list (GtkRigCtrl *ctrl); @@ -129,7 +129,7 @@ static void track_downlink (GtkRigCtrl *ctrl); static void track_uplink (GtkRigCtrl *ctrl); static gboolean is_rig_tx_capable (const gchar *confname); -static gboolean send_rigctld_command(GtkRigCtrl *ctrl, radio_conf_t *conf, gchar *buff, gint size, gchar *buffout, gint sizeout); +static gboolean send_rigctld_command(GtkRigCtrl *ctrl, gint sock, gchar *buff, gint size, gchar *buffout, gint sizeout); static GtkVBoxClass *parent_class = NULL; @@ -1173,15 +1173,15 @@ switch (ctrl->conf->type) { case RIG_TYPE_TOGGLE_AUTO: case RIG_TYPE_TOGGLE_MAN: - unset_toggle (ctrl,ctrl->conf); + unset_toggle (ctrl,ctrl->sock); break; default: break; } if (ctrl->conf2 != NULL) { - close_rigctld_socket(ctrl->conf2); + close_rigctld_socket(ctrl->sock2); } - close_rigctld_socket(ctrl->conf); + close_rigctld_socket(ctrl->sock); } else { @@ -1198,11 +1198,11 @@ ctrl->engaged = TRUE; ctrl->wrops = 0; - open_rigctld_socket(ctrl->conf); + open_rigctld_socket(ctrl->conf,&(ctrl->sock)); /* set initial frequency */ if (ctrl->conf2 != NULL) { - open_rigctld_socket(ctrl->conf2); + open_rigctld_socket(ctrl->conf2,&(ctrl->sock2)); /* set initial dual mode */ exec_dual_rig_cycle (ctrl); } @@ -1227,7 +1227,7 @@ case RIG_TYPE_TOGGLE_AUTO: case RIG_TYPE_TOGGLE_MAN: - set_toggle (ctrl,ctrl->conf); + set_toggle (ctrl,ctrl->sock); ctrl->last_toggle_tx = -1; exec_toggle_cycle (ctrl); break; @@ -1363,7 +1363,7 @@ /* get PTT status */ if (ctrl->engaged && ctrl->conf->ptt) - ptt = get_ptt (ctrl, ctrl->conf); + ptt = get_ptt (ctrl, ctrl->sock); /* Dial feedback: @@ -1377,7 +1377,7 @@ if ((ctrl->engaged) && (ctrl->lastrxf > 0.0)) { if (ptt == FALSE) { - if (!get_freq_simplex (ctrl, ctrl->conf, &readfreq)) { + if (!get_freq_simplex (ctrl, ctrl->sock, &readfreq)) { /* error => use a passive value */ readfreq = ctrl->lastrxf; ctrl->errcnt++; @@ -1442,7 +1442,7 @@ /* if device is engaged, send freq command to radio */ if ((ctrl->engaged) && (ptt == FALSE) && (fabs(ctrl->lastrxf - tmpfreq) >= 1.0)) { - if (set_freq_simplex (ctrl, ctrl->conf, tmpfreq)) { + if (set_freq_simplex (ctrl, ctrl->sock, tmpfreq)) { /* reset error counter */ ctrl->errcnt = 0; @@ -1453,7 +1453,7 @@ the tuning step is larger than what we work with (e.g. FT-817 has a smallest tuning step of 10 Hz). Therefore we read back the actual frequency from the rig. */ - get_freq_simplex (ctrl, ctrl->conf, &tmpfreq); + get_freq_simplex (ctrl, ctrl->sock, &tmpfreq); ctrl->lastrxf = tmpfreq; } else { @@ -1478,7 +1478,7 @@ /* get PTT status */ if (ctrl->engaged && ctrl->conf->ptt) { - ptt = get_ptt (ctrl, ctrl->conf); + ptt = get_ptt (ctrl, ctrl->sock); } /* Dial feedback: @@ -1492,7 +1492,7 @@ if ((ctrl->engaged) && (ctrl->lasttxf > 0.0)) { if (ptt == TRUE) { - if (!get_freq_simplex (ctrl, ctrl->conf, &readfreq)) { + if (!get_freq_simplex (ctrl, ctrl->sock, &readfreq)) { /* error => use a passive value */ readfreq = ctrl->lasttxf; ctrl->errcnt++; @@ -1555,7 +1555,7 @@ /* if device is engaged, send freq command to radio */ if ((ctrl->engaged) && (ptt == TRUE) && (fabs(ctrl->lasttxf - tmpfreq) >= 1.0)) { - if (set_freq_simplex (ctrl, ctrl->conf, tmpfreq)) { + if (set_freq_simplex (ctrl, ctrl->sock, tmpfreq)) { /* reset error counter */ ctrl->errcnt = 0; @@ -1566,7 +1566,7 @@ the tuning step is larger than what we work with (e.g. FT-817 has a smallest tuning step of 10 Hz). Therefore we read back the actual frequency from the rig. */ - get_freq_simplex (ctrl, ctrl->conf, &tmpfreq); + get_freq_simplex (ctrl, ctrl->sock, &tmpfreq); ctrl->lasttxf = tmpfreq; } else { @@ -1643,7 +1643,7 @@ if (ctrl->engaged && ctrl->conf->ptt) { - ptt = get_ptt (ctrl, ctrl->conf); + ptt = get_ptt (ctrl, ctrl->sock); } /* if we are in TX mode do nothing */ @@ -1656,7 +1656,7 @@ /* if device is engaged, send freq command to radio */ if ((ctrl->engaged) && (fabs(ctrl->lasttxf - tmpfreq) >= 10.0)) { - if (set_freq_toggle (ctrl, ctrl->conf, tmpfreq)) { + if (set_freq_toggle (ctrl, ctrl->sock, tmpfreq)) { /* reset error counter */ ctrl->errcnt = 0; } @@ -1710,7 +1710,7 @@ if (ctrl->engaged && (ctrl->lastrxf > 0.0)) { /* get frequency from receiver */ - if (!get_freq_simplex (ctrl, ctrl->conf, &readfreq)) { + if (!get_freq_simplex (ctrl, ctrl->sock, &readfreq)) { /* error => use a passive value */ readfreq = ctrl->lastrxf; ctrl->errcnt++; @@ -1755,7 +1755,7 @@ /* if device is engaged, send freq command to radio */ if ((ctrl->engaged) && (fabs(ctrl->lasttxf - tmpfreq) >= 1.0)) { - if (set_freq_simplex (ctrl, ctrl->conf2, tmpfreq)) { + if (set_freq_simplex (ctrl, ctrl->sock2, tmpfreq)) { /* reset error counter */ ctrl->errcnt = 0; @@ -1763,7 +1763,7 @@ g_usleep (WR_DEL); /* The actual frequency migh be different from what we have set */ - get_freq_simplex (ctrl, ctrl->conf2, &tmpfreq); + get_freq_simplex (ctrl, ctrl->sock2, &tmpfreq); ctrl->lasttxf = tmpfreq; } else { @@ -1792,7 +1792,7 @@ /* if device is engaged, send freq command to radio */ if ((ctrl->engaged) && (fabs(ctrl->lastrxf - tmpfreq) >= 1.0)) { - if (set_freq_simplex (ctrl, ctrl->conf, tmpfreq)) { + if (set_freq_simplex (ctrl, ctrl->sock, tmpfreq)) { /* reset error counter */ ctrl->errcnt = 0; @@ -1800,7 +1800,7 @@ g_usleep (WR_DEL); /* The actual frequency migh be different from what we have set */ - get_freq_simplex (ctrl, ctrl->conf, &tmpfreq); + get_freq_simplex (ctrl, ctrl->sock, &tmpfreq); ctrl->lastrxf = tmpfreq; } else { @@ -1813,7 +1813,7 @@ /* check if uplink dial has changed */ if ((ctrl->engaged) && (ctrl->lasttxf > 0.0)) { - if (!get_freq_simplex (ctrl, ctrl->conf2, &readfreq)) { + if (!get_freq_simplex (ctrl, ctrl->sock2, &readfreq)) { /* error => use a passive value */ readfreq = ctrl->lasttxf; ctrl->errcnt++; @@ -1857,7 +1857,7 @@ /* if device is engaged, send freq command to radio */ if ((ctrl->engaged) && (fabs(ctrl->lastrxf - tmpfreq) >= 1.0)) { - if (set_freq_simplex (ctrl, ctrl->conf, tmpfreq)) { + if (set_freq_simplex (ctrl, ctrl->sock, tmpfreq)) { /* reset error counter */ ctrl->errcnt = 0; @@ -1865,7 +1865,7 @@ g_usleep (WR_DEL); /* The actual frequency migh be different from what we have set */ - get_freq_simplex (ctrl, ctrl->conf, &tmpfreq); + get_freq_simplex (ctrl, ctrl->sock, &tmpfreq); ctrl->lastrxf = tmpfreq; } else { @@ -1889,15 +1889,15 @@ /* if device is engaged, send freq command to radio */ if ((ctrl->engaged) && (fabs(ctrl->lasttxf - tmpfreq) >= 1.0)) { - if (set_freq_simplex (ctrl, ctrl->conf2, tmpfreq)) { + if (set_freq_simplex (ctrl, ctrl->sock2, tmpfreq)) { /* reset error counter */ ctrl->errcnt = 0; /* give radio a chance to set frequency */ g_usleep (WR_DEL); - /* The actual frequency migh be different from what we have set. */ - get_freq_simplex (ctrl, ctrl->conf2, &tmpfreq); + /* The actual frequency might be different from what we have set. */ + get_freq_simplex (ctrl, ctrl->sock2, &tmpfreq); ctrl->lasttxf = tmpfreq; } else { @@ -1917,7 +1917,7 @@ * \return TRUE if PTT is ON, FALSE if PTT is OFF or an error occurred. * */ -static gboolean get_ptt (GtkRigCtrl *ctrl, radio_conf_t *conf) +static gboolean get_ptt (GtkRigCtrl *ctrl, gint sock) { gchar *buff,**vbuff; gchar buffback[128]; @@ -1926,7 +1926,7 @@ guint64 pttstat = 0; - if (conf->ptt == PTT_TYPE_CAT) { + if (ctrl->conf->ptt == PTT_TYPE_CAT) { /* send command get_ptt (t) */ buff = g_strdup_printf ("t\x0a"); size = 2; @@ -1937,7 +1937,7 @@ size = 2; } - retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); if (retcode) { vbuff = g_strsplit (buffback, "\n", 3); pttstat = g_ascii_strtoull (vbuff[0], NULL, 0); //FIXME base = 0 ok? @@ -1955,7 +1955,7 @@ * \param ptt The new PTT value (TRUE=ON, FALSE=OFF) * \return TRUE if the operation was successful, FALSE if an error has occurred */ -static gboolean set_ptt (GtkRigCtrl *ctrl, radio_conf_t *conf, gboolean ptt) +static gboolean set_ptt (GtkRigCtrl *ctrl, gint sock, gboolean ptt) { gchar *buff; gchar buffback[128]; @@ -1971,7 +1971,7 @@ } size = 4; - retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); g_free (buff); @@ -1991,7 +1991,7 @@ * gotten the current frequency from the ctrl; however, the param * might become useful in the future. */ -static gboolean set_freq_simplex (GtkRigCtrl *ctrl, radio_conf_t *conf, gdouble freq) +static gboolean set_freq_simplex (GtkRigCtrl *ctrl, gint sock, gdouble freq) { gchar *buff; gchar buffback[128]; @@ -2002,7 +2002,7 @@ size = 13; - retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); g_free(buff); return retcode; @@ -2020,7 +2020,7 @@ * might become useful in the future. */ -static gboolean set_freq_toggle (GtkRigCtrl *ctrl, radio_conf_t *conf, gdouble freq) +static gboolean set_freq_toggle (GtkRigCtrl *ctrl, gint sock, gdouble freq) { gchar *buff; gchar buffback[128]; @@ -2029,7 +2029,7 @@ /* send command */ buff = g_strdup_printf ("I %10.0f\x0a", freq); size = 12; - retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); g_free(buff); return retcode; @@ -2042,7 +2042,7 @@ * occurred. * */ -static gboolean set_toggle (GtkRigCtrl *ctrl, radio_conf_t *conf) +static gboolean set_toggle (GtkRigCtrl *ctrl, gint sock) { gchar *buff; gchar buffback[128]; @@ -2053,7 +2053,7 @@ buff = g_strdup_printf ("S 1 %d\x0a",ctrl->conf->vfoDown); size = 13; - retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); g_free(buff); return retcode; @@ -2066,7 +2066,7 @@ * */ -static gboolean unset_toggle (GtkRigCtrl *ctrl, radio_conf_t *conf) +static gboolean unset_toggle (GtkRigCtrl *ctrl, gint sock) { gchar *buff; gchar buffback[128]; @@ -2076,7 +2076,7 @@ buff = g_strdup_printf ("S 0 %d\x0a",ctrl->conf->vfoDown); size = 13; - retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); g_free(buff); return retcode; @@ -2089,7 +2089,7 @@ * \return TRUE if the operation was successful, FALSE if a connection error * occurred. */ -static gboolean get_freq_simplex (GtkRigCtrl *ctrl, radio_conf_t *conf, gdouble *freq) +static gboolean get_freq_simplex (GtkRigCtrl *ctrl, gint sock, gdouble *freq) { gchar *buff,**vbuff; gchar buffback[128]; @@ -2106,7 +2106,7 @@ /* send command */ buff = g_strdup_printf ("f\x0a"); size = 2; - retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); if (retcode) { vbuff = g_strsplit (buffback, "\n", 3); *freq = g_ascii_strtod (vbuff[0], NULL); @@ -2124,7 +2124,7 @@ * occurred. */ -static gboolean get_freq_toggle (GtkRigCtrl *ctrl, radio_conf_t *conf, gdouble *freq) +static gboolean get_freq_toggle (GtkRigCtrl *ctrl, gint sock, gdouble *freq) { gchar *buff,**vbuff; gchar buffback[128]; @@ -2142,7 +2142,7 @@ /* send command */ buff = g_strdup_printf ("i\x0a"); size = 2; - retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + retcode=send_rigctld_command(ctrl,sock,buff,size,buffback,128); if (retcode) { vbuff = g_strsplit (buffback, "\n", 3); *freq = g_ascii_strtod (vbuff[0], NULL); @@ -2198,7 +2198,7 @@ size = 7; break; } - retcode=send_rigctld_command(ctrl,ctrl->conf,buff,size,buffback,128); + retcode=send_rigctld_command(ctrl,ctrl->sock,buff,size,buffback,128); g_free(buff); return retcode; @@ -2488,60 +2488,19 @@ -gboolean send_rigctld_command(GtkRigCtrl *ctrl, radio_conf_t *conf, gchar *buff, gint size, gchar *buffout, gint sizeout) +gboolean send_rigctld_command(GtkRigCtrl *ctrl, gint sock, gchar *buff, gint size, gchar *buffout, gint sizeout) { gint written; -#if 0 - gint status; - struct hostent *h; - struct sockaddr_in ServAddr; - gint sock; /*!< Network socket */ - - - /* create socket */ - sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to create socket"), - __FUNCTION__); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s: Network socket created successfully"), - __FUNCTION__); - } - - memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ - ServAddr.sin_family = AF_INET; /* Internet address family */ - h = gethostbyname(conf->host); - memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); - ServAddr.sin_port = htons(conf->port); /* Server port */ - - /* establish connection */ - status = connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); - if (status < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to connect to %s:%d"), - __FUNCTION__, conf->host, conf->port); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s: Connection opened to %s:%d"), - __FUNCTION__, conf->host, conf->port); - } -#endif /* send command */ - written = send(conf->sock, buff, size, 0); + written = send(sock, buff, size, 0); if (written != size) { sat_log_log (SAT_LOG_LEVEL_ERROR, _("%s: SIZE ERROR %d / %d"), __FUNCTION__, written, size); } /* try to read answer */ - size = read (conf->sock, buffout, 127); + size = read (sock, buffout, 127); if (size == 0) { sat_log_log (SAT_LOG_LEVEL_ERROR, _("%s:%s: Got 0 bytes from rigctld"), @@ -2554,17 +2513,6 @@ } -#if 0 - /*shutdown the rigctld connect*/ - written = send(sock, "q\x0a", 2, 0); -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - - shutdown (sock, SD_BOTH); -#endif - close (sock); -#endif ctrl->wrops++; return TRUE; @@ -2661,7 +2609,7 @@ } else { - ptt = get_ptt (ctrl, ctrl->conf); + ptt = get_ptt (ctrl, ctrl->sock); if (ptt == FALSE) { /* PTT is OFF => set TX freq then set PTT to ON */ @@ -2670,7 +2618,7 @@ __FUNCTION__); exec_toggle_tx_cycle (ctrl); - set_ptt(ctrl, ctrl->conf, TRUE); + set_ptt(ctrl, ctrl->sock, TRUE); } else { /* PTT is ON => set to OFF */ @@ -2678,7 +2626,7 @@ _("%s: PTT is ON = Set PTT=OFF"), __FUNCTION__); - set_ptt(ctrl, ctrl->conf, FALSE); + set_ptt(ctrl, ctrl->sock, FALSE); } } @@ -2693,13 +2641,13 @@ } -static gboolean open_rigctld_socket (radio_conf_t *conf) { +static gboolean open_rigctld_socket (radio_conf_t *conf, gint *sock) { struct sockaddr_in ServAddr; struct hostent *h; gint status; - conf->sock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP); - if (conf->sock < 0) { + *sock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP); + if (sock < 0) { sat_log_log (SAT_LOG_LEVEL_ERROR, _("%s: Failed to create socket"), __FUNCTION__); @@ -2718,7 +2666,7 @@ ServAddr.sin_port = htons(conf->port); /* Server port */ /* establish connection */ - status = connect(conf->sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); + status = connect(*sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); if (status < 0) { sat_log_log (SAT_LOG_LEVEL_ERROR, _("%s: Failed to connect to %s:%d"), @@ -2734,18 +2682,18 @@ return TRUE; } -static gboolean close_rigctld_socket (radio_conf_t *conf) { +static gboolean close_rigctld_socket (gint sock) { gint written; /*shutdown the rigctld connect*/ - written = send(conf->sock, "q\x0a", 2, 0); + written = send(sock, "q\x0a", 2, 0); #ifndef WIN32 - shutdown (conf->sock, SHUT_RDWR); + shutdown (sock, SHUT_RDWR); #else - shutdown (conf->sock, SD_BOTH); + shutdown (sock, SD_BOTH); #endif - close (conf->sock); + close (sock); return TRUE; } Modified: branches/continuous_network/src/gtk-rig-ctrl.h =================================================================== --- branches/continuous_network/src/gtk-rig-ctrl.h 2010-09-25 11:46:00 UTC (rev 654) +++ branches/continuous_network/src/gtk-rig-ctrl.h 2010-09-25 13:58:47 UTC (rev 655) @@ -108,7 +108,9 @@ glong last_toggle_tx; /*!< Last time when exec_toggle_tx_cycle() was executed (seconds) -1 indicates that an update should be performed ASAP */ - + + gint sock, sock2; /*!< Sockets for controlling the radio(s). */ + /* debug related */ guint wrops; guint rdops; Modified: branches/continuous_network/src/radio-conf.h =================================================================== --- branches/continuous_network/src/radio-conf.h 2010-09-25 11:46:00 UTC (rev 654) +++ branches/continuous_network/src/radio-conf.h 2010-09-25 13:58:47 UTC (rev 655) @@ -69,7 +69,6 @@ ptt_type_t ptt; /*!< PTT type (needed for RX, TX, and TRX) */ vfo_t vfoDown; /*!< Downlink VFO for full-duplex radios */ vfo_t vfoUp; /*!< Uplink VFO for full-duplex radios */ - gint sock; /*!< Socket for communications with rigctld */ } radio_conf_t; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-09-25 11:46:07
|
Revision: 654 http://gpredict.svn.sourceforge.net/gpredict/?rev=654&view=rev Author: aa1vs Date: 2010-09-25 11:46:00 +0000 (Sat, 25 Sep 2010) Log Message: ----------- Creating branch for continous network testing Modified Paths: -------------- branches/continuous_network/src/gtk-rig-ctrl.c branches/continuous_network/src/radio-conf.h branches/continuous_network/src/sat-pref-layout.c branches/continuous_network/src/sat-pref-map-view.c branches/continuous_network/src/sat-pref-polar-view.c Added Paths: ----------- branches/continuous_network/ Modified: branches/continuous_network/src/gtk-rig-ctrl.c =================================================================== --- trunk/src/gtk-rig-ctrl.c 2010-09-25 00:30:20 UTC (rev 653) +++ branches/continuous_network/src/gtk-rig-ctrl.c 2010-09-25 11:46:00 UTC (rev 654) @@ -119,6 +119,8 @@ static gboolean set_ptt (GtkRigCtrl *ctrl, radio_conf_t *conf, gboolean ptt); static gboolean set_vfo (GtkRigCtrl *ctrl, vfo_t vfo); static void update_count_down (GtkRigCtrl *ctrl, gdouble t); +static gboolean open_rigctld_socket(radio_conf_t *conf); +static gboolean close_rigctld_socket(radio_conf_t *conf); /* misc utility functions */ static void load_trsp_list (GtkRigCtrl *ctrl); @@ -127,8 +129,8 @@ static void track_downlink (GtkRigCtrl *ctrl); static void track_uplink (GtkRigCtrl *ctrl); static gboolean is_rig_tx_capable (const gchar *confname); +static gboolean send_rigctld_command(GtkRigCtrl *ctrl, radio_conf_t *conf, gchar *buff, gint size, gchar *buffout, gint sizeout); - static GtkVBoxClass *parent_class = NULL; static GdkColor ColBlack = { 0, 0, 0, 0}; @@ -1176,6 +1178,11 @@ default: break; } + if (ctrl->conf2 != NULL) { + close_rigctld_socket(ctrl->conf2); + } + close_rigctld_socket(ctrl->conf); + } else { if (ctrl->conf == NULL) { @@ -1190,9 +1197,12 @@ gtk_widget_set_sensitive (ctrl->DevSel2, FALSE); ctrl->engaged = TRUE; ctrl->wrops = 0; - + + open_rigctld_socket(ctrl->conf); + /* set initial frequency */ if (ctrl->conf2 != NULL) { + open_rigctld_socket(ctrl->conf2); /* set initial dual mode */ exec_dual_rig_cycle (ctrl); } @@ -1910,114 +1920,30 @@ static gboolean get_ptt (GtkRigCtrl *ctrl, radio_conf_t *conf) { gchar *buff,**vbuff; - gint written,size; - gint status; - struct hostent *h; - struct sockaddr_in ServAddr; - gint sock; /*!< Network socket */ + gchar buffback[128]; + gboolean retcode; + gint size; guint64 pttstat = 0; - /* create socket */ - sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: Failed to create socket"), - __FILE__, __LINE__); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%d Network socket created successfully"), - __FILE__, __LINE__); - } - - memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ - ServAddr.sin_family = AF_INET; /* Internet address family */ - h = gethostbyname(conf->host); - memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); - ServAddr.sin_port = htons(conf->port); /* Server port */ - - /* establish connection */ - status = connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); - if (status < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: Failed to connect to %s:%d"), - __FILE__, __LINE__, conf->host, conf->port); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%d: Connection opened to %s:%d"), - __FILE__, __LINE__, conf->host, conf->port); - } - if (conf->ptt == PTT_TYPE_CAT) { /* send command get_ptt (t) */ - buff = g_strdup_printf ("t\x0aq\x0a"); - size = 4; + buff = g_strdup_printf ("t\x0a"); + size = 2; } else { /* send command \get_dcd */ - buff = g_strdup_printf ("%c\x0aq\x0a",0x8b); - size = 4; + buff = g_strdup_printf ("%c\x0a",0x8b); + size = 2; } - written = send(sock, buff, size, 0); - if (written != size) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: SIZE ERROR %d / %d"), - __FILE__, __LINE__, written, size); - } - g_free (buff); - - - /* try to read answer */ - buff = g_try_malloc (128); - if (buff == NULL) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%s: Failed to allocate 128 bytes (yes, this means trouble)"), - __FILE__, __FUNCTION__); - -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif - - close (sock); - return FALSE; - } - - size = read (sock, buff, 127); - if (size == 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%s: Got 0 bytes from rigctld"), - __FILE__, __FUNCTION__); - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%s: Read %d bytes from rigctld"), - __FILE__, __FUNCTION__, size); - - buff[size] = 0; - vbuff = g_strsplit (buff, "\n", 3); + retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + if (retcode) { + vbuff = g_strsplit (buffback, "\n", 3); pttstat = g_ascii_strtoull (vbuff[0], NULL, 0); //FIXME base = 0 ok? - g_strfreev (vbuff); - } - g_free (buff); - -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif - - close (sock); - - + } return (pttstat == 1) ? TRUE : FALSE; } @@ -2032,74 +1958,25 @@ static gboolean set_ptt (GtkRigCtrl *ctrl, radio_conf_t *conf, gboolean ptt) { gchar *buff; - gint written,size; - gint status; - struct hostent *h; - struct sockaddr_in ServAddr; - gint sock; /*!< Network socket */ - - /* create socket */ - sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to create socket"), - __FUNCTION__); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s: Network socket created successfully"), - __FUNCTION__); - } - - memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ - ServAddr.sin_family = AF_INET; /* Internet address family */ - h = gethostbyname(conf->host); - memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); - ServAddr.sin_port = htons(conf->port); /* Server port */ - - /* establish connection */ - status = connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); - if (status < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to connect to %s:%d"), - __FUNCTION__, conf->host, conf->port); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s: Connection opened to %s:%d"), - __FUNCTION__, conf->host, conf->port); - } + gchar buffback[128]; + gint size; + gboolean retcode; /* send command */ if (ptt == TRUE) { - buff = g_strdup_printf ("T 1\x0aq\x0a"); + buff = g_strdup_printf ("T 1\x0a"); } else { - buff = g_strdup_printf ("T 0\x0aq\x0a"); + buff = g_strdup_printf ("T 0\x0a"); } - size = 6; - written = send(sock, buff, size, 0); - if (written != size) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: SIZE ERROR %d / %d"), - __FUNCTION__, written, size); - } + size = 4; + retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + + g_free (buff); -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif - - close (sock); - - ctrl->wrops++; - - return TRUE; + return retcode; } @@ -2117,69 +1994,18 @@ static gboolean set_freq_simplex (GtkRigCtrl *ctrl, radio_conf_t *conf, gdouble freq) { gchar *buff; - gint written,size; - gint status; - struct hostent *h; - struct sockaddr_in ServAddr; - gint sock; /*!< Network socket */ + gchar buffback[128]; + gint size; + gboolean retcode; - /* create socket */ - sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to create socket"), - __FUNCTION__); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s: Network socket created successfully"), - __FUNCTION__); - } - - memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ - ServAddr.sin_family = AF_INET; /* Internet address family */ - h = gethostbyname(conf->host); - memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); - ServAddr.sin_port = htons(conf->port); /* Server port */ - - /* establish connection */ - status = connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); - if (status < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to connect to %s:%d"), - __FUNCTION__, conf->host, conf->port); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s: Connection opened to %s:%d"), - __FUNCTION__, conf->host, conf->port); - } + buff = g_strdup_printf ("F %10.0f\x0a", freq); - /* send command */ - buff = g_strdup_printf ("F %10.0f\x0aq\x0a", freq); - - size = 15; - written = send(sock, buff, size, 0); - if (written != size) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: SIZE ERROR %d / %d"), - __FUNCTION__, written, size); - } - g_free (buff); + size = 13; -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif - - close (sock); - - ctrl->wrops++; - - return TRUE; + retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + + g_free(buff); + return retcode; } @@ -2197,69 +2023,16 @@ static gboolean set_freq_toggle (GtkRigCtrl *ctrl, radio_conf_t *conf, gdouble freq) { gchar *buff; - gint written,size; - gint status; - struct hostent *h; - struct sockaddr_in ServAddr; - gint sock; /*!< Network socket */ - - /* create socket */ - sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to create socket"), - __FUNCTION__); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s: Network socket created successfully"), - __FUNCTION__); - } - - memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ - ServAddr.sin_family = AF_INET; /* Internet address family */ - h = gethostbyname(conf->host); - memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); - ServAddr.sin_port = htons(conf->port); /* Server port */ - - /* establish connection */ - status = connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); - if (status < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to connect to %s:%d"), - __FUNCTION__, conf->host, conf->port); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s: Connection opened to %s:%d"), - __FUNCTION__, conf->host, conf->port); - } - + gchar buffback[128]; + gint size; + gboolean retcode; /* send command */ - buff = g_strdup_printf ("I %10.0f\x0aq\x0a", freq); - - size = 15; - written = send(sock, buff, size, 0); - if (written != size) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: SIZE ERROR %d / %d"), - __FUNCTION__, written, size); - } - g_free (buff); - -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif - - close (sock); - - ctrl->wrops++; - - return TRUE; + buff = g_strdup_printf ("I %10.0f\x0a", freq); + size = 12; + retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + + g_free(buff); + return retcode; } @@ -2272,69 +2045,18 @@ static gboolean set_toggle (GtkRigCtrl *ctrl, radio_conf_t *conf) { gchar *buff; - gint written,size; - gint status; - struct hostent *h; - struct sockaddr_in ServAddr; - gint sock; /*!< Network socket */ + gchar buffback[128]; + gboolean retcode; + gint size; - /* create socket */ - sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to create socket"), - __FUNCTION__); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s: Network socket created successfully"), - __FUNCTION__); - } - - memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ - ServAddr.sin_family = AF_INET; /* Internet address family */ - h = gethostbyname(conf->host); - memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); - ServAddr.sin_port = htons(conf->port); /* Server port */ - - /* establish connection */ - status = connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); - if (status < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to connect to %s:%d"), - __FUNCTION__, conf->host, conf->port); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s: Connection opened to %s:%d"), - __FUNCTION__, conf->host, conf->port); - } - /* send command */ - buff = g_strdup_printf ("S 1 %d\x0aq\x0a",ctrl->conf->vfoDown); - - size = 15; - written = send(sock, buff, size, 0); - if (written != size) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: SIZE ERROR %d / %d"), - __FUNCTION__, written, size); - } - g_free (buff); - -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif - - close (sock); - - ctrl->wrops++; - - return TRUE; + buff = g_strdup_printf ("S 1 %d\x0a",ctrl->conf->vfoDown); + size = 13; + + retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + + g_free(buff); + return retcode; } /** \brief Turn off the radios toggle mode @@ -2347,75 +2069,20 @@ static gboolean unset_toggle (GtkRigCtrl *ctrl, radio_conf_t *conf) { gchar *buff; - gint written,size; - gint status; - struct hostent *h; - struct sockaddr_in ServAddr; - gint sock; /*!< Network socket */ - - /* create socket */ - sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to create socket"), - __FUNCTION__); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s: Network socket created successfully"), - __FUNCTION__); - } - - memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ - ServAddr.sin_family = AF_INET; /* Internet address family */ - h = gethostbyname(conf->host); - memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); - ServAddr.sin_port = htons(conf->port); /* Server port */ - - /* establish connection */ - status = connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); - if (status < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to connect to %s:%d"), - __FUNCTION__, conf->host, conf->port); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s: Connection opened to %s:%d"), - __FUNCTION__, conf->host, conf->port); - } - + gchar buffback[128]; + gboolean retcode; + gint size; /* send command */ - buff = g_strdup_printf ("S 0 %d\x0aq\x0a",ctrl->conf->vfoDown); - - size = 15; - written = send(sock, buff, size, 0); - if (written != size) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: SIZE ERROR %d / %d"), - __FUNCTION__, written, size); - } - g_free (buff); + buff = g_strdup_printf ("S 0 %d\x0a",ctrl->conf->vfoDown); + size = 13; -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif + retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + + g_free(buff); + return retcode; - close (sock); - - ctrl->wrops++; - - return TRUE; } - - - - /** \brief Get frequency * \param ctrl Pointer to the GtkRigCtrl structure. * \param freq The current frequency of the radio. @@ -2425,13 +2092,10 @@ static gboolean get_freq_simplex (GtkRigCtrl *ctrl, radio_conf_t *conf, gdouble *freq) { gchar *buff,**vbuff; - gint written,size; - gint status; - struct hostent *h; - struct sockaddr_in ServAddr; - gint sock; /*!< Network socket */ + gchar buffback[128]; + gboolean retcode; + gint size; - if (freq == NULL) { sat_log_log (SAT_LOG_LEVEL_BUG, _("%s:%d: NULL storage."), @@ -2439,100 +2103,18 @@ return FALSE; } - /* create socket */ - sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: Failed to create socket"), - __FILE__, __LINE__); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%d Network socket created successfully"), - __FILE__, __LINE__); - } - - memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ - ServAddr.sin_family = AF_INET; /* Internet address family */ - h = gethostbyname(conf->host); - memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); - ServAddr.sin_port = htons(conf->port); /* Server port */ - - /* establish connection */ - status = connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); - if (status < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: Failed to connect to %s:%d"), - __FILE__, __LINE__, conf->host, conf->port); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%d: Connection opened to %s:%d"), - __FILE__, __LINE__, conf->host, conf->port); - } - /* send command */ - buff = g_strdup_printf ("f\x0aq\x0a"); - - size = 4; - written = send(sock, buff, size, 0); - if (written != size) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: SIZE ERROR %d / %d"), - __FILE__, __LINE__, written, size); - } - g_free (buff); - - - /* try to read answer */ - buff = g_try_malloc (128); - if (buff == NULL) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%s: Failed to allocate 128 bytes (yes, this means trouble)"), - __FILE__, __FUNCTION__); + buff = g_strdup_printf ("f\x0a"); + size = 2; + retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + if (retcode) { + vbuff = g_strsplit (buffback, "\n", 3); + *freq = g_ascii_strtod (vbuff[0], NULL); + g_strfreev (vbuff); + } -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif - - close (sock); - return FALSE; - } - - size = read (sock, buff, 127); - if (size == 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%s: Got 0 bytes from rigctld"), - __FILE__, __FUNCTION__); - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%s: Read %d bytes from rigctld"), - __FILE__, __FUNCTION__, size); - - buff[size] = 0; - vbuff = g_strsplit (buff, "\n", 3); - *freq = g_ascii_strtod (vbuff[0], NULL); - - g_strfreev (vbuff); - } - g_free (buff); - - -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif - - close (sock); - - - return TRUE; + g_free(buff); + return retcode; } /** \brief Get frequency when the radio is working toggle @@ -2545,11 +2127,9 @@ static gboolean get_freq_toggle (GtkRigCtrl *ctrl, radio_conf_t *conf, gdouble *freq) { gchar *buff,**vbuff; - gint written,size; - gint status; - struct hostent *h; - struct sockaddr_in ServAddr; - gint sock; /*!< Network socket */ + gchar buffback[128]; + gint size; + gboolean retcode; if (freq == NULL) { @@ -2559,99 +2139,18 @@ return FALSE; } - /* create socket */ - sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: Failed to create socket"), - __FILE__, __LINE__); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%d Network socket created successfully"), - __FILE__, __LINE__); - } - - memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ - ServAddr.sin_family = AF_INET; /* Internet address family */ - h = gethostbyname(conf->host); - memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); - ServAddr.sin_port = htons(conf->port); /* Server port */ - - /* establish connection */ - status = connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); - if (status < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: Failed to connect to %s:%d"), - __FILE__, __LINE__, conf->host, conf->port); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%d: Connection opened to %s:%d"), - __FILE__, __LINE__, conf->host, conf->port); - } - /* send command */ - buff = g_strdup_printf ("i\x0aq\x0a"); - - size = 4; - written = send(sock, buff, size, 0); - if (written != size) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%d: SIZE ERROR %d / %d"), - __FILE__, __LINE__, written, size); - } - g_free (buff); - - - /* try to read answer */ - buff = g_try_malloc (128); - if (buff == NULL) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%s: Failed to allocate 128 bytes (yes, this means trouble)"), - __FILE__, __FUNCTION__); + buff = g_strdup_printf ("i\x0a"); + size = 2; + retcode=send_rigctld_command(ctrl,conf,buff,size,buffback,128); + if (retcode) { + vbuff = g_strsplit (buffback, "\n", 3); + *freq = g_ascii_strtod (vbuff[0], NULL); + g_strfreev (vbuff); + } -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif - - close (sock); - return FALSE; - } - - size = read (sock, buff, 127); - if (size == 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%s: Got 0 bytes from rigctld"), - __FILE__, __FUNCTION__); - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s:%s: Read %d bytes from rigctld"), - __FILE__, __FUNCTION__, size); - - buff[size] = 0; - vbuff = g_strsplit (buff, "\n", 3); - *freq = g_ascii_strtod (vbuff[0], NULL); - - g_strfreev (vbuff); - } g_free (buff); - -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif - - close (sock); - - - return TRUE; + return retcode; } /** \brief Select target VFO @@ -2664,97 +2163,46 @@ static gboolean set_vfo (GtkRigCtrl *ctrl, vfo_t vfo) { gchar *buff; - gint written,size; - gint status; - struct hostent *h; - struct sockaddr_in ServAddr; - gint sock; /*!< Network socket */ + gchar buffback[128]; + gint size; + gboolean retcode; - /* create socket */ - sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to create socket"), - __FUNCTION__); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s: Network socket created successfully"), - __FUNCTION__); - } - memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ - ServAddr.sin_family = AF_INET; /* Internet address family */ - h = gethostbyname(ctrl->conf->host); - memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); - ServAddr.sin_port = htons(ctrl->conf->port); /* Server port */ - - /* establish connection */ - status = connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); - if (status < 0) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to connect to %s:%d"), - __FUNCTION__, ctrl->conf->host, ctrl->conf->port); - return FALSE; - } - else { - sat_log_log (SAT_LOG_LEVEL_DEBUG, - _("%s: Connection opened to %s:%d"), - __FUNCTION__, ctrl->conf->host, ctrl->conf->port); - } - /* prepare command */ switch (vfo) { case VFO_A: - buff = g_strdup_printf ("V VFOA\x0aq\x0a"); - size = 9; + buff = g_strdup_printf ("V VFOA\x0a"); + size = 7; break; case VFO_B: - buff = g_strdup_printf ("V VFOB\x0aq\x0a"); - size = 9; + buff = g_strdup_printf ("V VFOB\x0a"); + size = 7; break; case VFO_MAIN: - buff = g_strdup_printf ("V Main\x0aq\x0a"); - size = 9; + buff = g_strdup_printf ("V Main\x0a"); + size = 7; break; case VFO_SUB: - buff = g_strdup_printf ("V Sub\x0aq\x0a"); - size = 8; + buff = g_strdup_printf ("V Sub\x0a"); + size = 6; break; default: sat_log_log (SAT_LOG_LEVEL_BUG, _("%s: Invalid VFO argument. Using VFOA."), __FUNCTION__); - buff = g_strdup_printf ("V VFOA"); - size = 6; + buff = g_strdup_printf ("V VFOA\x0a"); + size = 7; break; } + retcode=send_rigctld_command(ctrl,ctrl->conf,buff,size,buffback,128); + + g_free(buff); + return retcode; - /* send command */ - written = send(sock, buff, size, 0); - if (written != size) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: SIZE ERROR %d / %d"), - __FUNCTION__, written, size); - } - g_free (buff); - -#ifndef WIN32 - shutdown (sock, SHUT_RDWR); -#else - shutdown (sock, SD_BOTH); -#endif - - close (sock); - - ctrl->wrops++; - - return TRUE; } @@ -3040,14 +2488,17 @@ -gboolean send_rigctld_command(GtkRigCtrl *ctrl, gchar *buff, gint size) +gboolean send_rigctld_command(GtkRigCtrl *ctrl, radio_conf_t *conf, gchar *buff, gint size, gchar *buffout, gint sizeout) { gint written; - gint status; + +#if 0 + gint status; struct hostent *h; struct sockaddr_in ServAddr; - gint sock; /*!< Network socket */ + gint sock; /*!< Network socket */ + /* create socket */ sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if (sock < 0) { @@ -3064,40 +2515,56 @@ memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ ServAddr.sin_family = AF_INET; /* Internet address family */ - h = gethostbyname(ctrl->conf->host); + h = gethostbyname(conf->host); memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); - ServAddr.sin_port = htons(ctrl->conf->port); /* Server port */ + ServAddr.sin_port = htons(conf->port); /* Server port */ /* establish connection */ status = connect(sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); if (status < 0) { sat_log_log (SAT_LOG_LEVEL_ERROR, _("%s: Failed to connect to %s:%d"), - __FUNCTION__, ctrl->conf->host, ctrl->conf->port); + __FUNCTION__, conf->host, conf->port); return FALSE; } else { sat_log_log (SAT_LOG_LEVEL_DEBUG, _("%s: Connection opened to %s:%d"), - __FUNCTION__, ctrl->conf->host, ctrl->conf->port); + __FUNCTION__, conf->host, conf->port); } - +#endif /* send command */ - written = send(sock, buff, size, 0); + written = send(conf->sock, buff, size, 0); if (written != size) { sat_log_log (SAT_LOG_LEVEL_ERROR, _("%s: SIZE ERROR %d / %d"), __FUNCTION__, written, size); } + /* try to read answer */ + size = read (conf->sock, buffout, 127); + if (size == 0) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s:%s: Got 0 bytes from rigctld"), + __FILE__, __FUNCTION__); + } + else { + sat_log_log (SAT_LOG_LEVEL_DEBUG, + _("%s:%s: Read %d bytes from rigctld"), + __FILE__, __FUNCTION__, size); + + } +#if 0 + /*shutdown the rigctld connect*/ + written = send(sock, "q\x0a", 2, 0); #ifndef WIN32 shutdown (sock, SHUT_RDWR); #else + shutdown (sock, SD_BOTH); #endif - close (sock); - +#endif ctrl->wrops++; return TRUE; @@ -3225,3 +2692,60 @@ } } + +static gboolean open_rigctld_socket (radio_conf_t *conf) { + struct sockaddr_in ServAddr; + struct hostent *h; + gint status; + + conf->sock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP); + if (conf->sock < 0) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: Failed to create socket"), + __FUNCTION__); + return FALSE; + } + else { + sat_log_log (SAT_LOG_LEVEL_DEBUG, + _("%s: Network socket created successfully"), + __FUNCTION__); + } + + memset(&ServAddr, 0, sizeof(ServAddr)); /* Zero out structure */ + ServAddr.sin_family = AF_INET; /* Internet address family */ + h = gethostbyname(conf->host); + memcpy((char *) &ServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); + ServAddr.sin_port = htons(conf->port); /* Server port */ + + /* establish connection */ + status = connect(conf->sock, (struct sockaddr *) &ServAddr, sizeof(ServAddr)); + if (status < 0) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: Failed to connect to %s:%d"), + __FUNCTION__, conf->host, conf->port); + return FALSE; + } + else { + sat_log_log (SAT_LOG_LEVEL_DEBUG, + _("%s: Connection opened to %s:%d"), + __FUNCTION__, conf->host, conf->port); + } + + return TRUE; +} + +static gboolean close_rigctld_socket (radio_conf_t *conf) { + gint written; + /*shutdown the rigctld connect*/ + written = send(conf->sock, "q\x0a", 2, 0); + +#ifndef WIN32 + shutdown (conf->sock, SHUT_RDWR); +#else + shutdown (conf->sock, SD_BOTH); +#endif + + close (conf->sock); + + return TRUE; +} Modified: branches/continuous_network/src/radio-conf.h =================================================================== --- trunk/src/radio-conf.h 2010-09-25 00:30:20 UTC (rev 653) +++ branches/continuous_network/src/radio-conf.h 2010-09-25 11:46:00 UTC (rev 654) @@ -69,6 +69,7 @@ ptt_type_t ptt; /*!< PTT type (needed for RX, TX, and TRX) */ vfo_t vfoDown; /*!< Downlink VFO for full-duplex radios */ vfo_t vfoUp; /*!< Uplink VFO for full-duplex radios */ + gint sock; /*!< Socket for communications with rigctld */ } radio_conf_t; Modified: branches/continuous_network/src/sat-pref-layout.c =================================================================== --- trunk/src/sat-pref-layout.c 2010-09-25 00:30:20 UTC (rev 653) +++ branches/continuous_network/src/sat-pref-layout.c 2010-09-25 11:46:00 UTC (rev 654) @@ -100,7 +100,7 @@ /* create the table */ - table = gtk_table_new (8, 5, FALSE); + table = gtk_table_new (5, 5, FALSE); gtk_table_set_row_spacings (GTK_TABLE (table), 10); gtk_table_set_col_spacings (GTK_TABLE (table), 5); @@ -116,7 +116,7 @@ /* create vertical box */ vbox = gtk_vbox_new (FALSE, 5); - gtk_container_set_border_width (GTK_CONTAINER (vbox), 20); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, TRUE, 0); /* window placement */ Modified: branches/continuous_network/src/sat-pref-map-view.c =================================================================== --- trunk/src/sat-pref-map-view.c 2010-09-25 00:30:20 UTC (rev 653) +++ branches/continuous_network/src/sat-pref-map-view.c 2010-09-25 11:46:00 UTC (rev 654) @@ -92,17 +92,17 @@ /* create vertical box */ vbox = gtk_vbox_new (FALSE, 2); // !!! - gtk_container_set_border_width (GTK_CONTAINER (vbox), 20); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); /* create the components */ create_map_selector (cfg, GTK_BOX (vbox)); - gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 10); + gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 2); create_bool_selectors (cfg, GTK_BOX (vbox)); - gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 10); + gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 2); create_colour_selectors (cfg, GTK_BOX (vbox)); - gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 10); + gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 2); create_orbit_selector (cfg, GTK_BOX (vbox)); - gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 10); + gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 2); create_reset_button (cfg, GTK_BOX (vbox)); reset = FALSE; Modified: branches/continuous_network/src/sat-pref-polar-view.c =================================================================== --- trunk/src/sat-pref-polar-view.c 2010-09-25 00:30:20 UTC (rev 653) +++ branches/continuous_network/src/sat-pref-polar-view.c 2010-09-25 11:46:00 UTC (rev 654) @@ -84,18 +84,18 @@ /* create vertical box */ - vbox = gtk_vbox_new (FALSE, 5); // !!! - gtk_container_set_border_width (GTK_CONTAINER (vbox), 20); + vbox = gtk_vbox_new (FALSE, 2); // !!! + gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); /* create the components */ create_orient_selector (cfg, GTK_BOX (vbox)); - gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 10); + gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 2); create_bool_selectors (cfg, GTK_BOX (vbox)); - gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 10); + gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 2); create_colour_selectors (cfg, GTK_BOX (vbox)); - gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 10); + gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 2); create_misc_selectors (cfg, GTK_BOX (vbox)); - gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 10); + gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 2); create_reset_button (cfg, GTK_BOX (vbox)); reset = FALSE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-09-25 00:30:26
|
Revision: 653 http://gpredict.svn.sourceforge.net/gpredict/?rev=653&view=rev Author: aa1vs Date: 2010-09-25 00:30:20 +0000 (Sat, 25 Sep 2010) Log Message: ----------- Applied patch from bug 3074990 from Zilka catching crash if data directory does not exist. Added error message to log. Modified Paths: -------------- trunk/src/first-time.c Modified: trunk/src/first-time.c =================================================================== --- trunk/src/first-time.c 2010-09-18 01:15:58 UTC (rev 652) +++ trunk/src/first-time.c 2010-09-25 00:30:20 UTC (rev 653) @@ -850,40 +850,45 @@ g_free (buff); dir = g_dir_open (datadirname, 0, NULL); - /* for each .trsp file found in data dir */ - while ((filename = g_dir_read_name (dir))) { - if (g_str_has_suffix (filename, ".trsp")) { - /* check if .trsp file already in user dir */ - destfile = g_strconcat (targetdirname, G_DIR_SEPARATOR_S, filename, NULL); - - /* check if .trsp file already in user dir */ - if (!g_file_test (destfile, G_FILE_TEST_EXISTS)) { - sat_log_log (SAT_LOG_LEVEL_MSG, - _("%s: %s does not appear to be in user conf dir; adding."), - __FUNCTION__, filename); - - /* copy new .trsp file to user dir */ - srcfile = g_strconcat (datadirname, G_DIR_SEPARATOR_S, filename,NULL); - if (gpredict_file_copy (srcfile, destfile)) { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s: Failed to copy %s"), + if (dir) { + /* for each .trsp file found in data dir */ + while ((filename = g_dir_read_name (dir))) { + if (g_str_has_suffix (filename, ".trsp")) { + /* check if .trsp file already in user dir */ + destfile = g_strconcat (targetdirname, G_DIR_SEPARATOR_S, filename, NULL); + + /* check if .trsp file already in user dir */ + if (!g_file_test (destfile, G_FILE_TEST_EXISTS)) { + sat_log_log (SAT_LOG_LEVEL_MSG, + _("%s: %s does not appear to be in user conf dir; adding."), __FUNCTION__, filename); - *error |= FTC_ERROR_STEP_09; + /* copy new .trsp file to user dir */ + srcfile = g_strconcat (datadirname, G_DIR_SEPARATOR_S, filename,NULL); + if (gpredict_file_copy (srcfile, destfile)) { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: Failed to copy %s"), + __FUNCTION__, filename); + + *error |= FTC_ERROR_STEP_09; + } + g_free (srcfile); } - g_free (srcfile); + else { + sat_log_log (SAT_LOG_LEVEL_MSG, + _("%s: %s already in user conf dir."), + __FUNCTION__, filename); + } + + g_free (destfile); } - else { - sat_log_log (SAT_LOG_LEVEL_MSG, - _("%s: %s already in user conf dir."), - __FUNCTION__, filename); - } - - g_free (destfile); - } - } - g_dir_close (dir); + g_dir_close (dir); + } else { + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: %s directory does not exist. Incomplete installation."), + __FUNCTION__, datadirname); + } g_free (datadirname); } g_free (targetdirname); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-09-18 01:16:04
|
Revision: 652 http://gpredict.svn.sourceforge.net/gpredict/?rev=652&view=rev Author: aa1vs Date: 2010-09-18 01:15:58 +0000 (Sat, 18 Sep 2010) Log Message: ----------- Make file name checks check for suffix not substring Modified Paths: -------------- trunk/src/first-time.c trunk/src/gtk-rot-ctrl.c trunk/src/gtk-sat-selector.c trunk/src/gtk-sat-tree.c trunk/src/main.c trunk/src/mod-cfg.c trunk/src/sat-log.c trunk/src/sat-pref-qth.c trunk/src/tle-update.c Modified: trunk/src/first-time.c =================================================================== --- trunk/src/first-time.c 2010-09-17 11:05:26 UTC (rev 651) +++ trunk/src/first-time.c 2010-09-18 01:15:58 UTC (rev 652) @@ -201,7 +201,7 @@ so we must not free it */ - if (g_strrstr (datafile, ".qth")) { + if (g_str_has_suffix (datafile, ".qth")) { foundqth = TRUE; } @@ -227,7 +227,7 @@ /* note: filename is not a newly allocated gchar *, so we must not free it */ - if (g_strrstr (datafile, ".qth")) { + if (g_str_has_suffix (datafile, ".qth")) { gchar *source = g_strconcat (olddir, G_DIR_SEPARATOR_S, datafile, NULL); @@ -342,7 +342,7 @@ /* note: filename is not a newly allocated gchar *, so we must not free it */ - if (g_strrstr (datafile, ".mod")) { + if (g_str_has_suffix (datafile, ".mod")) { gchar *source = g_strconcat (olddir, G_DIR_SEPARATOR_S, datafile, NULL); /* copy .qth file to USER_CONF_DIR */ @@ -606,7 +606,7 @@ /* note: filename is not a newly allocated gchar *, so we must not free it */ - if (g_strrstr (filename, ".cat")) { + if (g_str_has_suffix (filename, ".cat")) { /* check whether .cat file exisits in user conf */ gchar *catfilename = sat_file_name (filename); @@ -852,7 +852,7 @@ /* for each .trsp file found in data dir */ while ((filename = g_dir_read_name (dir))) { - if (g_strrstr (filename, ".trsp")) { + if (g_str_has_suffix (filename, ".trsp")) { /* check if .trsp file already in user dir */ destfile = g_strconcat (targetdirname, G_DIR_SEPARATOR_S, filename, NULL); Modified: trunk/src/gtk-rot-ctrl.c =================================================================== --- trunk/src/gtk-rot-ctrl.c 2010-09-17 11:05:26 UTC (rev 651) +++ trunk/src/gtk-rot-ctrl.c 2010-09-18 01:15:58 UTC (rev 652) @@ -501,7 +501,7 @@ /* read each .rot file */ while ((filename = g_dir_read_name (dir))) { - if (g_strrstr (filename, ".rot")) { + if (g_str_has_suffix (filename, ".rot")) { vbuff = g_strsplit (filename, ".rot", 0); gtk_combo_box_append_text (GTK_COMBO_BOX (ctrl->DevSel), vbuff[0]); @@ -1231,7 +1231,7 @@ /* read each .rot file */ while ((filename = g_dir_read_name (dir))) { - if (g_strrstr (filename, ".rot")) { + if (g_str_has_suffix (filename, ".rot")) { i++; } } Modified: trunk/src/gtk-sat-selector.c =================================================================== --- trunk/src/gtk-sat-selector.c 2010-09-17 11:05:26 UTC (rev 651) +++ trunk/src/gtk-sat-selector.c 2010-09-18 01:15:58 UTC (rev 652) @@ -417,7 +417,7 @@ */ while ((fname = g_dir_read_name (dir))) { - if (g_strrstr (fname, ".sat")) { + if (g_str_has_suffix (fname, ".sat")) { buffv = g_strsplit (fname, ".", 0); catnum = (gint) g_ascii_strtoll (buffv[0], NULL, 0); @@ -450,7 +450,7 @@ /* load satellites from each .cat file into selector->models[i] */ g_dir_rewind (dir); while ((fname = g_dir_read_name (dir))) { - if (g_strrstr (fname, ".cat")) { + if (g_str_has_suffix (fname, ".cat")) { load_cat_file (selector, fname); Modified: trunk/src/gtk-sat-tree.c =================================================================== --- trunk/src/gtk-sat-tree.c 2010-09-17 11:05:26 UTC (rev 651) +++ trunk/src/gtk-sat-tree.c 2010-09-18 01:15:58 UTC (rev 652) @@ -352,7 +352,7 @@ */ while ((fname = g_dir_read_name (dir))) { - if (g_strrstr (fname, ".tle")) { + if (g_str_has_suffix (fname, ".tle")) { buffv = g_strsplit (fname, ".tle", 0); nodename = g_strdup (buffv[0]); Modified: trunk/src/main.c =================================================================== --- trunk/src/main.c 2010-09-17 11:05:26 UTC (rev 651) +++ trunk/src/main.c 2010-09-18 01:15:58 UTC (rev 652) @@ -608,7 +608,7 @@ while ((filename = g_dir_read_name (targetdir))) { - if (g_strrstr (filename, ".sat")) { + if (g_str_has_suffix (filename, ".sat")) { /* remove .sat file */ path = sat_file_name (filename); if G_UNLIKELY(g_unlink (path)) { @@ -649,7 +649,7 @@ while ((filename = g_dir_read_name (targetdir))) { - if (g_strrstr (filename, ".trsp")) { + if (g_str_has_suffix (filename, ".trsp")) { /* remove .trsp file */ path = trsp_file_name (filename); if G_UNLIKELY(g_unlink (path)) { Modified: trunk/src/mod-cfg.c =================================================================== --- trunk/src/mod-cfg.c 2010-09-17 11:05:26 UTC (rev 651) +++ trunk/src/mod-cfg.c 2010-09-18 01:15:58 UTC (rev 652) @@ -864,7 +864,7 @@ if (dir) { while ((filename = g_dir_read_name (dir))) { - if (g_strrstr (filename, ".qth")) { + if (g_str_has_suffix (filename, ".qth")) { buffv = g_strsplit (filename, ".qth", 0); gtk_combo_box_append_text (GTK_COMBO_BOX (combo), buffv[0]); Modified: trunk/src/sat-log.c =================================================================== --- trunk/src/sat-log.c 2010-09-17 11:05:26 UTC (rev 651) +++ trunk/src/sat-log.c 2010-09-18 01:15:58 UTC (rev 652) @@ -348,7 +348,7 @@ while ((fname = g_dir_read_name (dir)) != NULL) { /* ensure this is a .log file */ - if G_LIKELY(g_strrstr (fname, ".log")) { + if G_LIKELY(g_str_has_suffix (fname, ".log")) { vbuf = g_strsplit_set (fname, "-.", -1); Modified: trunk/src/sat-pref-qth.c =================================================================== --- trunk/src/sat-pref-qth.c 2010-09-17 11:05:26 UTC (rev 651) +++ trunk/src/sat-pref-qth.c 2010-09-18 01:15:58 UTC (rev 652) @@ -312,7 +312,7 @@ while ((filename = g_dir_read_name (dir))) { - if (g_strrstr (filename, ".qth")) { + if (g_str_has_suffix (filename, ".qth")) { buff = g_strconcat (dirname, G_DIR_SEPARATOR_S, filename, NULL); @@ -918,7 +918,7 @@ while ((filename = g_dir_read_name (dir))) { - if (g_strrstr (filename, ".qth")) { + if (g_str_has_suffix (filename, ".qth")) { buff = g_strconcat (dirname, G_DIR_SEPARATOR_S, filename, NULL); Modified: trunk/src/tle-update.c =================================================================== --- trunk/src/tle-update.c 2010-09-17 11:05:26 UTC (rev 651) +++ trunk/src/tle-update.c 2010-09-18 01:15:58 UTC (rev 652) @@ -245,7 +245,7 @@ num = 0; while ((fnam = g_dir_read_name (loc_dir)) != NULL) { /* only consider .sat files */ - if (g_strrstr (fnam, ".sat")) { + if (g_str_has_suffix (fnam, ".sat")) { num++; } } @@ -255,7 +255,7 @@ /* update TLE files one by one */ while ((fnam = g_dir_read_name (loc_dir)) != NULL) { /* only consider .sat files */ - if (g_strrstr (fnam, ".sat")) { + if (g_str_has_suffix (fnam, ".sat")) { /* clear stat bufs */ updated_tmp = 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aa...@us...> - 2010-09-17 11:05:33
|
Revision: 651 http://gpredict.svn.sourceforge.net/gpredict/?rev=651&view=rev Author: aa1vs Date: 2010-09-17 11:05:26 +0000 (Fri, 17 Sep 2010) Log Message: ----------- Fix potential memory leak gtk-rig-ctrl.c Modified Paths: -------------- trunk/src/gtk-rig-ctrl.c Modified: trunk/src/gtk-rig-ctrl.c =================================================================== --- trunk/src/gtk-rig-ctrl.c 2010-09-14 19:54:09 UTC (rev 650) +++ trunk/src/gtk-rig-ctrl.c 2010-09-17 11:05:26 UTC (rev 651) @@ -2004,10 +2004,11 @@ vbuff = g_strsplit (buff, "\n", 3); pttstat = g_ascii_strtoull (vbuff[0], NULL, 0); //FIXME base = 0 ok? - g_free (buff); g_strfreev (vbuff); } + g_free (buff); + #ifndef WIN32 shutdown (sock, SHUT_RDWR); #else @@ -2517,9 +2518,10 @@ vbuff = g_strsplit (buff, "\n", 3); *freq = g_ascii_strtod (vbuff[0], NULL); - g_free (buff); g_strfreev (vbuff); } + g_free (buff); + #ifndef WIN32 shutdown (sock, SHUT_RDWR); @@ -2636,9 +2638,9 @@ vbuff = g_strsplit (buff, "\n", 3); *freq = g_ascii_strtod (vbuff[0], NULL); - g_free (buff); g_strfreev (vbuff); } + g_free (buff); #ifndef WIN32 shutdown (sock, SHUT_RDWR); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cs...@us...> - 2010-09-14 19:54:18
|
Revision: 650 http://gpredict.svn.sourceforge.net/gpredict/?rev=650&view=rev Author: csete Date: 2010-09-14 19:54:09 +0000 (Tue, 14 Sep 2010) Log Message: ----------- Updated satellite database. Modified Paths: -------------- trunk/data/satdata/amateur.cat trunk/data/satdata/cubesat.cat trunk/data/satdata/engineering.cat trunk/data/satdata/geo.cat trunk/data/satdata/glo-ops.cat trunk/data/satdata/gps-ops.cat trunk/data/satdata/noaa.cat trunk/data/satdata/satellites.dat trunk/data/satdata/tdrss.cat trunk/data/satdata/tle-new.cat trunk/data/satdata/visual.cat trunk/data/satdata/weather.cat trunk/data/satdata/x-comm.cat Modified: trunk/data/satdata/amateur.cat =================================================================== --- trunk/data/satdata/amateur.cat 2010-09-04 11:06:39 UTC (rev 649) +++ trunk/data/satdata/amateur.cat 2010-09-14 19:54:09 UTC (rev 650) @@ -65,4 +65,3 @@ 35694 35870 36122 -36575 Modified: trunk/data/satdata/cubesat.cat =================================================================== --- trunk/data/satdata/cubesat.cat 2010-09-04 11:06:39 UTC (rev 649) +++ trunk/data/satdata/cubesat.cat 2010-09-14 19:54:09 UTC (rev 650) @@ -8,7 +8,6 @@ 28892 28895 28897 -29655 31122 31126 31128 @@ -29,3 +28,4 @@ 35933 35934 35935 +36799 Modified: trunk/data/satdata/engineering.cat =================================================================== --- trunk/data/satdata/engineering.cat 2010-09-04 11:06:39 UTC (rev 649) +++ trunk/data/satdata/engineering.cat 2010-09-14 19:54:09 UTC (rev 650) @@ -30,3 +30,5 @@ 35684 35686 36037 +36599 +36827 Modified: trunk/data/satdata/geo.cat =================================================================== --- trunk/data/satdata/geo.cat 2010-09-04 11:06:39 UTC (rev 649) +++ trunk/data/satdata/geo.cat 2010-09-14 19:54:09 UTC (rev 650) @@ -80,7 +80,6 @@ 23846 23864 23865 -23877 23880 23915 23943 @@ -94,11 +93,9 @@ 24665 24674 24713 -24714 24732 24742 24748 -24769 24798 24808 24812 @@ -151,7 +148,6 @@ 25785 25880 25894 -25897 25922 25924 25937 @@ -296,10 +292,10 @@ 28946 29045 29055 -29236 29155 29162 29163 +29236 29270 29272 29273 @@ -399,3 +395,11 @@ 36411 36499 36516 +36581 +36582 +36590 +36592 +36744 +36745 +36792 +36828 Modified: trunk/data/satdata/glo-ops.cat =================================================================== --- trunk/data/satdata/glo-ops.cat 2010-09-04 11:06:39 UTC (rev 649) +++ trunk/data/satdata/glo-ops.cat 2010-09-14 19:54:09 UTC (rev 650) @@ -1,7 +1,6 @@ Glonass Operational 28509 28915 -28916 29670 29671 29672 Modified: trunk/data/satdata/gps-ops.cat =================================================================== --- trunk/data/satdata/gps-ops.cat 2010-09-04 11:06:39 UTC (rev 649) +++ trunk/data/satdata/gps-ops.cat 2010-09-14 19:54:09 UTC (rev 650) @@ -30,3 +30,4 @@ 32711 34661 35752 +36585 Modified: trunk/data/satdata/noaa.cat =================================================================== --- trunk/data/satdata/noaa.cat 2010-09-04 11:06:39 UTC (rev 649) +++ trunk/data/satdata/noaa.cat 2010-09-14 19:54:09 UTC (rev 650) @@ -1,10 +1,10 @@ NOAA -11060 4793 6235 6920 7529 9057 +11060 11416 12553 13923 Modified: trunk/data/satdata/satellites.dat =================================================================== --- trunk/data/satdata/satellites.dat 2010-09-04 11:06:39 UTC (rev 649) +++ trunk/data/satdata/satellites.dat 2010-09-14 19:54:09 UTC (rev 650) @@ -1,8764 +1,8799 @@ -[31125] +[733] VERSION=1.1 -NAME=SAUDICOMSAT 3 -NICKNAME=SAUDICOMSAT 3 -TLE1=1 31125U 07012J 10191.62791711 .00000411 00000-0 88749-4 0 9949 -TLE2=2 31125 97.9510 249.9735 0046248 103.0810 257.5536 14.62640359172521 +NAME=THOR AGENA D R/B +NICKNAME=THOR AGENA D R/B +TLE1=1 00733U 64002A 10255.75274446 .00000001 00000-0 18298-4 0 1688 +TLE2=2 00733 99.0762 303.7959 0033984 159.8129 200.4405 14.31310365428945 -[25478] +[24960] VERSION=1.1 -NAME=ORBCOMM FM24 [+] -NICKNAME=ORBCOMM FM24 [+] -TLE1=1 25478U 98053D 10190.83773413 -.00000098 00000-0 16156-4 0 9056 -TLE2=2 25478 45.0125 341.5915 0003194 136.4123 223.6980 14.29097167615402 +NAME=MOLNIYA 1-90 +NICKNAME=MOLNIYA 1-90 +TLE1=1 24960U 97054A 10256.37941517 -.00000031 00000-0 13096-3 0 8634 +TLE2=2 24960 63.4615 18.9293 7471388 253.2463 19.6237 2.00618499 95071 -[25982] +[25908] VERSION=1.1 -NAME=ORBCOMM FM32 [+] -NICKNAME=ORBCOMM FM32 [+] -TLE1=1 25982U 99065C 10191.28726353 -.00000269 00000-0 -50301-4 0 8882 -TLE2=2 25982 45.0226 140.5086 0007999 301.7412 58.2610 14.29374869552808 +NAME=GLOBALSTAR M050 +NICKNAME=GLOBALSTAR M050 +TLE1=1 25908U 99049B 10256.98958338 -.00000079 00000-0 10000-3 0 2525 +TLE2=2 25908 51.9978 150.6996 0009108 86.9209 273.2638 12.07314053501826 -[28894] +[28922] VERSION=1.1 -NAME=SSETI EXPRESS (XO-53) -NICKNAME=XO-53 -TLE1=1 28894U 05043E 10191.25446410 .00000011 00000-0 11651-4 0 8125 -TLE2=2 28894 98.0077 74.3777 0016738 212.8767 147.1388 14.59738400250467 +NAME=GIOVE-A +NICKNAME=GIOVE-A +TLE1=1 28922U 05051A 10256.06497667 -.00000012 00000-0 10000-3 0 7304 +TLE2=2 28922 56.1101 145.4810 0008870 355.1120 4.9492 1.69477376 29247 -[33595] +[24932] VERSION=1.1 -NAME=EXPRESS-AM 44 -NICKNAME=EXPRESS-AM 44 -TLE1=1 33595U 09007A 10190.90957546 -.00000082 00000-0 10000-3 0 3558 -TLE2=2 33595 0.0377 227.5644 0001368 280.3017 96.3197 1.00272143 5193 +NAME=METEOSAT-7 +NICKNAME=METEOSAT-7 +TLE1=1 24932U 97049B 10254.66651019 .00000047 00000-0 00000+0 0 2112 +TLE2=2 24932 6.2721 64.0587 0000517 288.5953 295.3242 1.00272829 47710 -[25291] +[27858] VERSION=1.1 -NAME=IRIDIUM 68 [+] -NICKNAME=IRIDIUM 68 [+] -TLE1=1 25291U 98021G 10191.18932999 -.00000069 00000-0 -31877-4 0 449 -TLE2=2 25291 86.3944 203.0426 0002689 82.4302 277.7174 14.34218155641792 +NAME=SCISAT 1 +NICKNAME=SCISAT 1 +TLE1=1 27858U 03036A 10255.94424654 .00000026 00000-0 90988-5 0 1206 +TLE2=2 27858 73.9362 11.6954 0008875 320.0342 40.0193 14.74880179381468 -[13923] +[25495] VERSION=1.1 -NAME=NOAA 8 [-] -NICKNAME=NOAA 8 [-] -TLE1=1 13923U 83022A 10191.53458944 .00000000 00000-0 17325-4 0 3432 -TLE2=2 13923 98.5224 217.8063 0016528 51.7273 308.5403 14.27741472420260 +NAME=EUROBIRD 2 +NICKNAME=EUROBIRD 2 +TLE1=1 25495U 98057A 10252.04987928 .00000125 00000-0 10000-3 0 8914 +TLE2=2 25495 0.0650 340.9299 0003934 173.7394 236.8095 1.00275428 43691 -[24769] +[24869] VERSION=1.1 -NAME=BSAT-1A -NICKNAME=BSAT-1A -TLE1=1 24769U 97016B 10190.60985367 -.00000342 00000-0 10000-3 0 1194 -TLE2=2 24769 0.0587 268.3842 0002429 238.4343 109.7737 1.00268692 48489 +NAME=IRIDIUM 15 [+] +NICKNAME=IRIDIUM 15 [+] +TLE1=1 24869U 97034A 10256.26248219 .00000238 00000-0 77889-4 0 2359 +TLE2=2 24869 86.3997 333.7141 0002373 82.2600 277.8888 14.34215584690042 -[32062] +[32404] VERSION=1.1 -NAME=CBERS 2B -NICKNAME=CBERS 2B -TLE1=1 32062U 07042A 10191.27729205 -.00000042 00000-0 42976-6 0 343 -TLE2=2 32062 98.4548 267.1020 0031470 238.2607 121.5518 14.38571968147203 +NAME=THURAYA-3 +NICKNAME=THURAYA-3 +TLE1=1 32404U 08001A 10256.88123250 -.00000321 00000-0 10000-3 0 5037 +TLE2=2 32404 5.2527 333.9713 0004509 191.7927 242.8487 1.00270540 9822 -[6212] +[28892] VERSION=1.1 -NAME=OPS 8180 (RADCAT) -NICKNAME=OPS 8180 (RADCAT) -TLE1=1 06212U 72076A 10191.77175206 .00002539 00000-0 87834-4 0 545 -TLE2=2 06212 98.5570 264.4811 0004484 102.0050 258.1703 15.31086627182287 +NAME=UWE-1 +NICKNAME=UWE-1 +TLE1=1 28892U 05043C 10256.71881780 .00000182 00000-0 47394-4 0 7298 +TLE2=2 28892 97.9963 137.4173 0017805 11.1977 348.9616 14.59909312260016 -[27715] +[23319] VERSION=1.1 -NAME=GALAXY 12 (G-12) -NICKNAME=GALAXY 12 (G-12) -TLE1=1 27715U 03013B 10190.56924947 .00000086 00000-0 10000-3 0 3156 -TLE2=2 27715 0.0200 25.6848 0002288 85.4467 248.1870 1.00272053 26629 +NAME=EXPRESS 1 +NICKNAME=EXPRESS 1 +TLE1=1 23319U 94067A 10254.63569741 .00000062 00000-0 10000-3 0 8718 +TLE2=2 23319 9.1492 57.2873 0004139 87.5613 272.5937 0.99829375 58127 -[27830] +[36131] VERSION=1.1 -NAME=BSAT-2C -NICKNAME=BSAT-2C -TLE1=1 27830U 03028A 10189.96031763 -.00000341 00000-0 10000-3 0 1622 -TLE2=2 27830 0.0943 249.5067 0002381 283.7132 209.1841 1.00270239 25951 +NAME=DIRECTV 12 +NICKNAME=DIRECTV 12 +TLE1=1 36131U 09075A 10255.54722964 -.00000123 00000-0 10000-3 0 2687 +TLE2=2 36131 0.0164 320.4958 0000226 32.5657 92.5906 1.00271274 2665 -[25170] +[25104] VERSION=1.1 -NAME=IRIDIUM 56 [+] -NICKNAME=IRIDIUM 56 [+] -TLE1=1 25170U 98010B 10191.41236766 .00000055 00000-0 12644-4 0 5650 -TLE2=2 25170 86.3969 329.3575 0002427 86.0361 274.1114 14.34215290648594 +NAME=IRIDIUM 45 [+] +NICKNAME=IRIDIUM 45 [+] +TLE1=1 25104U 97082A 10256.38830047 .00000070 00000-0 17848-4 0 1075 +TLE2=2 25104 86.3973 207.2819 0002473 85.7933 274.3549 14.34217244666510 -[35681] +[17912] VERSION=1.1 -NAME=DEIMOS-1 -NICKNAME=DEIMOS-1 -TLE1=1 35681U 09041A 10191.70278601 .00000097 00000-0 24776-4 0 627 -TLE2=2 35681 98.0956 89.3624 0001559 103.9704 256.1688 14.69370668 50830 +NAME=SL-14 R/B +NICKNAME=SL-14 R/B +TLE1=1 17912U 87038B 10257.20629380 .00000072 00000-0 61162-5 0 1779 +TLE2=2 17912 82.5009 203.3556 0022696 68.2056 292.1572 14.81530405262146 -[28059] +[28376] VERSION=1.1 -NAME=CZ-4B R/B -NICKNAME=CZ-4B R/B -TLE1=1 28059U 03049C 10191.81428207 -.00000007 00000-0 10463-4 0 9170 -TLE2=2 28059 98.5743 325.5686 0052004 30.1411 330.2767 14.51471888356041 +NAME=AURA +NICKNAME=AURA +TLE1=1 28376U 04026A 10256.83508621 .00000113 00000-0 35063-4 0 9036 +TLE2=2 28376 98.1936 198.7586 0001223 97.2986 262.8358 14.57113402327876 -[36608] +[27704] VERSION=1.1 -NAME=OFEQ 9 -NICKNAME=OFEQ 9 -TLE1=1 36608U 10031A 10191.55844731 .00010865 00000-0 17830-3 0 653 -TLE2=2 36608 141.7807 29.1256 0177788 192.6367 166.9889 15.33809065 2739 +NAME=GPS BIIR-09 (PRN 21) +NICKNAME=GPS BIIR-09 (PRN 21) +TLE1=1 27704U 03010A 10256.05180300 .00000013 00000-0 10000-3 0 1209 +TLE2=2 27704 53.4165 200.4683 0170550 220.6350 138.0639 2.00566841 54657 -[15362] +[25478] VERSION=1.1 -NAME=NOVA 3 -NICKNAME=NOVA 3 -TLE1=1 15362U 84110A 10190.69416914 .00000051 00000-0 10000-3 0 1387 -TLE2=2 15362 89.9882 50.2108 0032915 19.0547 341.1800 13.22498392242328 +NAME=ORBCOMM FM24 [+] +NICKNAME=ORBCOMM FM24 [+] +TLE1=1 25478U 98053D 10256.47984733 .00000274 00000-0 16174-3 0 9568 +TLE2=2 25478 45.0115 34.8878 0002615 119.3776 240.7307 14.29119611624796 -[27948] +[26407] VERSION=1.1 -NAME=EUROBIRD 3 -NICKNAME=EUROBIRD 3 -TLE1=1 27948U 03043A 10191.88120266 .00000158 00000-0 10000-3 0 2581 -TLE2=2 27948 0.0460 336.4802 0000448 71.0420 231.5113 1.00270523 24965 +NAME=GPS BIIR-05 (PRN 28) +NICKNAME=GPS BIIR-05 (PRN 28) +TLE1=1 26407U 00040A 10255.66501532 -.00000016 00000-0 10000-3 0 9390 +TLE2=2 26407 55.6650 81.9068 0172171 241.5120 116.7883 2.00563035 74496 -[24931] +[33315] VERSION=1.1 -NAME=EUTELSAT W75 -NICKNAME=EUTELSAT W75 -TLE1=1 24931U 97049A 10190.78979003 -.00000084 00000-0 10000-3 0 2015 -TLE2=2 24931 1.2978 78.0665 0010726 34.8736 174.2295 1.00272579 47135 +NAME=RAPIDEYE 3 +NICKNAME=RAPIDEYE 3 +TLE1=1 33315U 08040D 10257.12394710 .00000041 00000-0 12338-4 0 2707 +TLE2=2 33315 97.9485 342.8513 0013130 31.1223 329.0766 14.79904663110290 -[34779] +[36037] VERSION=1.1 -NAME=BEIDOU G2 -NICKNAME=BEIDOU G2 -TLE1=1 34779U 09018A 10191.01631324 -.00000002 00000-0 10000-3 0 3272 -TLE2=2 34779 0.1467 45.5089 0015388 177.9403 136.4261 1.00292451 4727 +NAME=PROBA-2 +NICKNAME=PROBA-2 +TLE1=1 36037U 09059B 10256.54328057 -.00000045 00000-0 00000+0 0 2622 +TLE2=2 36037 98.3094 83.6727 0013576 9.4158 350.7308 14.51997565 45777 -[24798] +[27560] VERSION=1.1 -NAME=DFH 3-2 -NICKNAME=DFH 3-2 -TLE1=1 24798U 97021A 10191.22061043 .00000073 00000-0 10000-3 0 8239 -TLE2=2 24798 6.0036 66.0556 0011577 340.2685 19.5938 1.00174774 48226 +NAME=MOZHAYETS +NICKNAME=MOZHAYETS +TLE1=1 27560U 02054B 10257.05713640 .00000007 00000-0 11755-4 0 6900 +TLE2=2 27560 97.9194 81.5415 0041949 236.0203 123.6983 14.55125133412759 -[28638] +[20479] VERSION=1.1 -NAME=APSTAR 6 -NICKNAME=APSTAR 6 -TLE1=1 28638U 05012A 10191.65262584 -.00000314 00000-0 10000-3 0 7334 -TLE2=2 28638 0.0384 79.8046 0002483 50.0633 167.5530 1.00271266 44057 +NAME=ORIZURU (DEBUT) +NICKNAME=ORIZURU (DEBUT) +TLE1=1 20479U 90013B 10257.13525863 -.00000013 00000-0 47200-4 0 6846 +TLE2=2 20479 99.0209 99.6453 0539043 216.6563 139.6514 12.83697186965271 -[28891] +[25262] VERSION=1.1 -NAME=TOPSAT -NICKNAME=TOPSAT -TLE1=1 28891U 05043B 10191.74453248 .00000042 00000-0 18156-4 0 2612 -TLE2=2 28891 98.0022 74.1776 0016477 207.5251 152.5092 14.59820269250557 +NAME=IRIDIUM 51 [S] +NICKNAME=IRIDIUM 51 [S] +TLE1=1 25262U 98018A 10256.58598357 -.00000101 00000-0 -36393-4 0 2509 +TLE2=2 25262 86.4415 270.6243 0002503 84.2140 275.9354 14.42946141656750 -[24278] +[29505] VERSION=1.1 -NAME=JAS-2 (FO-29) -NICKNAME=FO-29 -TLE1=1 24278U 96046B 10191.10416615 -.00000023 00000-0 10232-4 0 3491 -TLE2=2 24278 98.5149 17.0662 0351473 64.4467 299.2568 13.52950947686205 +NAME=SJ-6C +NICKNAME=SJ-6C +TLE1=1 29505U 06046A 10257.06726624 .00000043 00000-0 99221-5 0 3635 +TLE2=2 29505 97.6968 257.2691 0004133 28.4031 331.7398 14.90776465211703 -[28982] +[25431] VERSION=1.1 -NAME=ST5-C -NICKNAME=ST5-C -TLE1=1 28982U 06008C 10191.34798376 .00009164 13773-5 35555-3 0 4124 -TLE2=2 28982 105.6647 219.0882 2316675 96.1931 290.5643 10.75700441167146 +NAME=IRIDIUM 3 [+] +NICKNAME=IRIDIUM 3 [+] +TLE1=1 25431U 98048A 10256.35660270 .00000054 00000-0 12121-4 0 831 +TLE2=2 25431 86.3976 207.4503 0002769 93.3862 266.7647 14.34216977631756 -[27718] +[26081] VERSION=1.1 -NAME=ASIASAT 4 -NICKNAME=ASIASAT 4 -TLE1=1 27718U 03014A 10190.77687999 -.00000353 00000-0 10000-3 0 4425 -TLE2=2 27718 0.0062 41.4729 0000730 47.0770 240.9397 1.00271339 26566 +NAME=GLOBALSTAR M063 +NICKNAME=GLOBALSTAR M063 +TLE1=1 26081U 00008A 10257.19665382 -.00000086 00000-0 10000-3 0 3566 +TLE2=2 26081 52.0010 302.9947 0000192 70.0785 290.0103 12.62254492497316 -[36607] +[27600] VERSION=1.1 -NAME=SL-24 DEB -NICKNAME=SL-24 DEB -TLE1=1 36607U 10030C 10191.16348052 .00002118 00000-0 86754-4 0 185 -TLE2=2 36607 97.4553 198.1613 0023489 273.3343 86.5208 15.25193085 2906 +NAME=MICRO LABSAT +NICKNAME=MICRO LABSAT +TLE1=1 27600U 02056D 10256.67419297 -.00000075 00000-0 -13378-4 0 1506 +TLE2=2 27600 98.3298 299.8961 0010805 355.9047 4.2050 14.28897590404201 -[36287] +[32750] VERSION=1.1 -NAME=BEIDOU G1 -NICKNAME=BEIDOU G1 -TLE1=1 36287U 10001A 10191.91045465 -.00000245 00000-0 10000-3 0 1431 -TLE2=2 36287 1.6356 327.0789 0000476 323.8129 110.0910 1.00274896 1842 +NAME=SAR-LUPE 4 +NICKNAME=SAR-LUPE 4 +TLE1=1 32750U 08014A 10257.10048211 .00001170 00000-0 47338-4 0 7561 +TLE2=2 32750 98.1717 43.7690 0017380 298.5762 183.5034 15.27003051137367 -[27818] +[20918] VERSION=1.1 -NAME=COSMOS 2398 -NICKNAME=COSMOS 2398 -TLE1=1 27818U 03023A 10191.28467689 .00000045 00000-0 33023-4 0 9709 -TLE2=2 27818 82.9491 103.0856 0029918 278.2584 81.5186 13.71967310355469 +NAME=INMARSAT 2-F1 +NICKNAME=INMARSAT 2-F1 +TLE1=1 20918U 90093A 10254.63101657 .00000090 00000-0 10000-3 0 1111 +TLE2=2 20918 7.5995 51.1813 0002653 124.0194 260.5279 1.00268117 69207 -[24714] +[32790] VERSION=1.1 -NAME=NAHUEL 1A -NICKNAME=NAHUEL 1A -TLE1=1 24714U 97002B 10190.35645757 -.00000086 00000-0 10000-3 0 1079 -TLE2=2 24714 2.7085 74.1377 0007823 27.5994 221.0734 0.99758003 49224 +NAME=CANX-2 +NICKNAME=CANX-2 +TLE1=1 32790U 08021H 10256.23664213 .00000343 00000-0 50209-4 0 7711 +TLE2=2 32790 97.8862 319.8027 0015395 3.7217 356.4092 14.81683824128506 -[25546] +[25415] VERSION=1.1 -NAME=BONUM 1 -NICKNAME=BONUM 1 -TLE1=1 25546U 98068A 10191.60195826 .00000083 00000-0 10000-3 0 6062 -TLE2=2 25546 0.0625 97.5404 0002544 323.8465 139.6626 1.00270871 42681 +NAME=ORBCOMM FM19 [+] +NICKNAME=ORBCOMM FM19 [+] +TLE1=1 25415U 98046C 10256.17770157 .00001272 00000-0 56301-3 0 3942 +TLE2=2 25415 44.9980 309.5649 0001569 158.9301 201.1573 14.28076555631436 -[20873] +[29155] VERSION=1.1 -NAME=GALAXY 6 -NICKNAME=GALAXY 6 -TLE1=1 20873U 90091B 10189.53342510 -.00000262 00000-0 10000-3 0 4171 -TLE2=2 20873 7.1014 63.7384 0003288 25.2986 334.6459 0.99763181 66706 +NAME=GOES 13 +NICKNAME=GOES 13 +TLE1=1 29155U 06018A 10256.43271722 -.00000270 00000-0 10000-3 0 2693 +TLE2=2 29155 0.0884 58.1896 0003759 26.3094 348.8582 1.00266033 15802 -[15935] +[23864] VERSION=1.1 -NAME=OSCAR 30 -NICKNAME=OSCAR 30 -TLE1=1 15935U 85066A 10191.07058502 .00000028 00000-0 31260-4 0 6181 -TLE2=2 15935 90.0624 25.0436 0170495 131.8316 229.7524 13.35283970212462 +NAME=PALAPA C2 +NICKNAME=PALAPA C2 +TLE1=1 23864U 96030A 10256.60597478 -.00000217 00000-0 00000+0 0 1151 +TLE2=2 23864 0.4824 79.3588 0002930 119.6485 162.1099 1.00270756 52475 -[28629] +[25937] VERSION=1.1 -NAME=EXPRESS-AM 2 -NICKNAME=EXPRESS-AM 2 -TLE1=1 28629U 05010A 10191.85228352 -.00000133 00000-0 10000-3 0 4313 -TLE2=2 28629 0.0415 209.3843 0000544 356.9107 109.1839 1.00271305 19349 +NAME=DIRECTV 1R +NICKNAME=DIRECTV 1R +TLE1=1 25937U 99056A 10256.78619274 -.00000278 00000-0 10000-3 0 8770 +TLE2=2 25937 0.0102 211.3181 0002281 316.6192 35.2412 1.00270967 40057 -[28361] +[25078] VERSION=1.1 -NAME=GPS BIIR-12 (DASS) -NICKNAME=GPS BIIR-12 (DASS) -TLE1=1 28361U 04023A 10190.60231766 -.00000074 00000-0 10000-3 0 4341 -TLE2=2 28361 55.4411 322.9616 0068114 176.3282 183.7318 2.00563575 44305 +NAME=IRIDIUM 44 [-] +NICKNAME=IRIDIUM 44 [-] +TLE1=1 25078U 97077B 10256.30050735 .00000201 00000-0 61429-4 0 6546 +TLE2=2 25078 86.4002 328.6084 0004279 78.3996 281.7679 14.36646387668984 -[26032] +[1293] VERSION=1.1 -NAME=ARIRANG 1 (KOMPSAT-1) -NICKNAME=ARIRANG 1 (KOMPSAT-1) -TLE1=1 26032U 99070A 10191.68204738 .00000101 00000-0 26885-4 0 646 -TLE2=2 26032 97.8683 62.2435 0006517 83.7624 276.4349 14.65720030564397 +NAME=OSCAR 3 (OSCAR III) +NICKNAME=OSCAR 3 (OSCAR III) +TLE1=1 01293U 65016F 10256.59222375 .00000069 00000-0 76333-4 0 8947 +TLE2=2 01293 70.0730 271.4449 0020813 284.0294 75.8501 14.04806008323485 -[31307] +[25962] VERSION=1.1 -NAME=GALAXY 17 (G-17) -NICKNAME=GALAXY 17 (G-17) -TLE1=1 31307U 07016B 10191.47828715 -.00000170 00000-0 10000-3 0 5216 -TLE2=2 31307 0.0164 356.8535 0002821 116.8809 255.7275 1.00271854 11719 +NAME=GLOBALSTAR M034 +NICKNAME=GLOBALSTAR M034 +TLE1=1 25962U 99062B 10255.36744217 -.00000081 00000-0 10000-3 0 1421 +TLE2=2 25962 51.9919 205.4954 0001340 32.7297 327.3616 12.15627243497985 -[33064] +[25275] VERSION=1.1 -NAME=ORBCOMM FM37 [S] -NICKNAME=ORBCOMM FM37 [S] -TLE1=1 33064U 08031E 10191.68772341 -.00000136 00000-0 10020-4 0 6320 -TLE2=2 33064 48.4454 60.0096 0007378 248.2107 111.8008 14.68556526110433 +NAME=IRIDIUM 59 [+] +NICKNAME=IRIDIUM 59 [+] +TLE1=1 25275U 98019D 10256.55658396 -.00000029 00000-0 -17516-4 0 7680 +TLE2=2 25275 86.3921 239.0646 0002469 62.2174 297.9271 14.34215953652237 -[27838] +[30773] VERSION=1.1 -NAME=ORBVIEW 3 -NICKNAME=ORBVIEW 3 -TLE1=1 27838U 03030A 10191.89734884 .00002351 00000-0 55594-4 0 6481 -TLE2=2 27838 97.0058 241.4843 0002539 87.1337 18.9817 15.42780657395289 +NAME=MIDSTAR-1 +NICKNAME=MIDSTAR-1 +TLE1=1 30773U 07006B 10256.92934128 -.00000305 00000-0 00000+0 0 28 +TLE2=2 30773 46.0315 99.2461 0008757 115.4936 244.6869 15.24280335195959 -[7004] +[27954] VERSION=1.1 -NAME=SL-8 R/B -NICKNAME=SL-8 R/B -TLE1=1 07004U 73107B 10190.73187577 .00002578 00000-0 10389-3 0 3748 -TLE2=2 07004 73.9591 213.8825 0423807 345.5913 13.3456 14.69882658857201 +NAME=GALAXY 13 (HORIZONS-1) +NICKNAME=GALAXY 13 (HORIZONS-1) +TLE1=1 27954U 03044A 10256.32246108 .00000028 00000-0 10000-3 0 926 +TLE2=2 27954 0.0030 174.7250 0000060 179.8467 346.6875 1.00271168 25525 -[35865] +[25288] VERSION=1.1 -NAME=METEOR-M 1 -NICKNAME=METEOR-M 1 -TLE1=1 35865U 09049A 10191.77914140 .00000176 00000-0 10000-3 0 4593 -TLE2=2 35865 98.7553 245.4075 0002251 320.8437 39.2530 14.21830889 42079 +NAME=IRIDIUM 65 [+] +NICKNAME=IRIDIUM 65 [+] +TLE1=1 25288U 98021D 10256.40388677 -.00000163 00000-0 -65210-4 0 1220 +TLE2=2 25288 86.4025 175.7257 0002677 84.2229 275.9191 14.34219371651163 -[694] +[26063] VERSION=1.1 -NAME=ATLAS CENTAUR 2 -NICKNAME=ATLAS CENTAUR 2 -TLE1=1 00694U 63047A 10191.49343726 .00000415 00000-0 44864-4 0 3173 -TLE2=2 00694 30.3562 351.7141 0615582 124.8977 241.1032 13.95233226327716 +NAME=OPAL (OO-38) +NICKNAME=OO-38 +TLE1=1 26063U 00004C 10256.15095240 -.00000002 00000-0 19581-4 0 9004 +TLE2=2 26063 100.2033 130.9991 0037218 66.8316 293.6775 14.35905565556953 -[1361] +[31601] VERSION=1.1 -NAME=LCS 1 -NICKNAME=LCS 1 -TLE1=1 01361U 65034C 10191.51458001 .00000009 00000-0 10000-3 0 2025 -TLE2=2 01361 32.1445 317.0801 0012857 302.7857 57.1405 9.89278687633814 +NAME=OFEQ 7 +NICKNAME=OFEQ 7 +TLE1=1 31601U 07025A 10257.09312318 .00003279 00000-0 11426-3 0 6767 +TLE2=2 31601 141.7475 306.5355 0066577 181.0540 229.5278 15.21679143181542 -[23343] +[11416] VERSION=1.1 -NAME=SL-16 R/B -NICKNAME=SL-16 R/B -TLE1=1 23343U 94074B 10191.09543962 .00000176 00000-0 33854-4 0 8315 -TLE2=2 23343 98.0778 159.9190 0006027 262.5860 97.4694 14.75035703843047 +NAME=NOAA 6 [P] +NICKNAME=NOAA 6 [P] +TLE1=1 11416U 79057A 10256.25506785 .00000082 00000-0 46483-4 0 3930 +TLE2=2 11416 98.4030 262.0879 0010606 6.0546 354.0766 14.32000656626559 -[26998] +[23448] VERSION=1.1 -NAME=TIMED -NICKNAME=TIMED -TLE1=1 26998U 01055B 10191.81409673 .00000033 00000-0 82395-5 0 6192 -TLE2=2 26998 74.0748 301.3780 0001903 292.5801 67.5202 14.84186529465171 +NAME=RADUGA 32 +NICKNAME=RADUGA 32 +TLE1=1 23448U 94087A 10254.96020859 -.00000070 00000-0 10000-3 0 3042 +TLE2=2 23448 11.1933 47.2196 0004235 99.6711 260.4407 1.00265961 75215 -[24786] +[28946] VERSION=1.1 -NAME=GOES 10 -NICKNAME=GOES 10 -TLE1=1 24786U 97019A 10191.20292043 .00000080 00000-0 10000-3 0 5120 -TLE2=2 24786 4.4761 68.4398 0008319 27.6947 332.1838 0.99068703 48377 +NAME=EUROBIRD 9A +NICKNAME=EUROBIRD 9A +TLE1=1 28946U 06007B 10255.90529407 .00000042 00000-0 10000-3 0 5425 +TLE2=2 28946 0.0082 80.6239 0003507 108.5557 137.5037 1.00273256 16587 -[6073] +[22912] VERSION=1.1 -NAME=COSMOS 482 DESCENT CRAFT -NICKNAME=COSMOS 482 DESCENT CRAFT -TLE1=1 06073U 72023E 10191.77545591 .00013066 37802-5 96209-4 0 841 -TLE2=2 06073 52.0807 140.4129 2165047 107.8329 276.9271 11.26702262 58945 +NAME=METEOSAT-6 (MOP-3) +NICKNAME=METEOSAT-6 (MOP-3) +TLE1=1 22912U 93073B 10256.78892738 -.00000039 00000-0 00000+0 0 7758 +TLE2=2 22912 9.3962 54.4614 0000332 74.2121 215.4235 1.00269378 60011 -[25732] +[24808] VERSION=1.1 -NAME=CZ-4B R/B -NICKNAME=CZ-4B R/B -TLE1=1 25732U 99025C 10191.35171728 -.00000015 00000-0 13668-4 0 4338 -TLE2=2 25732 98.6936 162.2581 0038224 125.8328 234.6410 14.17210049577687 +NAME=THOR II +NICKNAME=THOR II +TLE1=1 24808U 97025A 10256.15401851 .00000015 00000-0 10000-3 0 7958 +TLE2=2 24808 2.1940 75.0453 0002415 79.0328 258.5021 1.00273682 48784 -[27399] +[6920] VERSION=1.1 -NAME=JCSAT-2A -NICKNAME=JCSAT-2A -TLE1=1 27399U 02015A 10190.45162843 -.00000158 00000-0 10000-3 0 4378 -TLE2=2 27399 0.0265 104.8658 0001924 6.1021 132.8853 1.00271187 30384 +NAME=NOAA 3 [-] +NICKNAME=NOAA 3 [-] +TLE1=1 06920U 73086A 10256.48239313 -.00000030 00000-0 10000-3 0 6319 +TLE2=2 06920 101.7006 266.7690 0006715 37.7487 322.4055 12.40308954668473 -[25287] +[25622] VERSION=1.1 -NAME=IRIDIUM 64 [+] -NICKNAME=IRIDIUM 64 [+] -TLE1=1 25287U 98021C 10191.16395503 -.00000035 00000-0 -19414-4 0 105 -TLE2=2 25287 86.3948 203.0117 0002606 80.3182 279.8298 14.34218497641799 +NAME=GLOBALSTAR M040 +NICKNAME=GLOBALSTAR M040 +TLE1=1 25622U 99004B 10255.53063253 -.00000086 00000-0 10000-3 0 2407 +TLE2=2 25622 51.9928 262.8737 0000663 12.0370 348.0509 12.61713591534878 -[25558] +[27392] VERSION=1.1 -NAME=SATMEX 5 -NICKNAME=SATMEX 5 -TLE1=1 25558U 98070A 10190.34542184 -.00000005 00000-0 10000-3 0 6561 -TLE2=2 25558 0.0348 34.6287 0002324 70.1254 189.9793 1.00273503 42667 +NAME=GRACE-2 +NICKNAME=GRACE-2 +TLE1=1 27392U 02012B 10256.16766468 .00001001 00000-0 28393-4 0 5881 +TLE2=2 27392 89.0082 302.5070 0018449 137.8691 222.3994 15.34919082474772 -[33313] +[32050] VERSION=1.1 -NAME=RAPIDEYE 5 -NICKNAME=RAPIDEYE 5 -TLE1=1 33313U 08040B 10191.85032290 .00000003 00000-0 73719-5 0 879 -TLE2=2 33313 97.9531 278.1483 0018607 158.3742 201.8244 14.79925177100637 +NAME=INSAT-4CR +NICKNAME=INSAT-4CR +TLE1=1 32050U 07037A 10252.76336463 -.00000096 00000-0 10000-3 0 9568 +TLE2=2 32050 0.0078 171.6032 0004687 321.7027 204.1867 1.00271342 11105 -[10953] +[27830] VERSION=1.1 -NAME=GOES 3 [P] -NICKNAME=GOES 3 [P] -TLE1=1 10953U 78062A 10190.46951341 -.00000091 00000-0 10000-3 0 317 -TLE2=2 10953 14.4798 356.8684 0003831 34.4127 316.5811 1.00277876 70548 +NAME=BSAT-2C +NICKNAME=BSAT-2C +TLE1=1 27830U 03028A 10256.82702714 -.00000370 00000-0 10000-3 0 1838 +TLE2=2 27830 0.0424 192.6752 0005040 307.9499 259.6642 1.00268127 26621 -[26352] +[24285] VERSION=1.1 -NAME=GOES 11 -NICKNAME=GOES 11 -TLE1=1 26352U 00022A 10191.34709594 .00000094 00000-0 10000-3 0 9105 -TLE2=2 26352 0.4315 261.7854 0004000 261.7094 114.3190 1.00273773 37299 +NAME=FAST +NICKNAME=FAST +TLE1=1 24285U 96049A 10256.29945405 .00003713 00000-0 32100-3 0 9691 +TLE2=2 24285 82.9713 190.7010 1994213 24.9257 343.5993 11.27498646569564 -[14050] +[25417] VERSION=1.1 -NAME=GOES 6 [-] -NICKNAME=GOES 6 [-] -TLE1=1 14050U 83041A 10189.60143316 .00000029 00000-0 10000-3 0 5754 -TLE2=2 14050 13.7799 15.9941 0003764 30.6206 329.4310 1.00236165157687 +NAME=ORBCOMM FM16 [+] +NICKNAME=ORBCOMM FM16 [+] +TLE1=1 25417U 98046E 10257.10705540 .00000451 00000-0 23553-3 0 4438 +TLE2=2 25417 45.0016 306.4305 0002914 187.6722 172.4072 14.28068361631560 -[28626] +[36358] VERSION=1.1 -NAME=XM-3 (RHYTHM) -NICKNAME=XM-3 (RHYTHM) -TLE1=1 28626U 05008A 10191.13190716 -.00000200 00000-0 00000+0 0 7582 -TLE2=2 28626 0.0438 269.6369 0000272 236.2617 104.4406 1.00271106 19692 +NAME=RADUGA-1M 2 +NICKNAME=RADUGA-1M 2 +TLE1=1 36358U 10002A 10256.92762251 -.00000204 00000-0 10000-3 0 1966 +TLE2=2 36358 0.0127 265.1695 0002535 318.5814 187.9801 1.00270829 2304 -[33051] +[20436] VERSION=1.1 -NAME=CHINASAT 9 -NICKNAME=CHINASAT 9 -TLE1=1 33051U 08028A 10190.89650928 -.00000241 00000-0 10000-3 0 6065 -TLE2=2 33051 0.0368 79.7482 0006839 13.5936 249.3000 1.00269889 7650 +NAME=SPOT 2 +NICKNAME=SPOT 2 +TLE1=1 20436U 90005A 10257.07623283 .00000070 00000-0 22513-4 0 5311 +TLE2=2 20436 98.6339 350.5131 0155044 341.4261 18.1317 14.62030391 71865 -[33749] +[28939] VERSION=1.1 -NAME=NSS-9 -NICKNAME=NSS-9 -TLE1=1 33749U 09008A 10190.24973398 .00000080 00000-0 00000+0 0 2539 -TLE2=2 33749 0.0087 11.1629 0001085 132.5981 56.2206 1.00274592 5181 +NAME=AKARI (ASTRO-F) +NICKNAME=AKARI (ASTRO-F) +TLE1=1 28939U 06005A 10257.02638612 .00000085 00000-0 28812-4 0 3807 +TLE2=2 28939 98.2560 261.4757 0007756 206.0712 154.0106 14.57652877242207 -[33596] +[24277] VERSION=1.1 -NAME=EXPRESS-MD1 -NICKNAME=EXPRESS-MD1 -TLE1=1 33596U 09007B 10191.85228291 -.00000134 00000-0 10000-3 0 3954 -TLE2=2 33596 0.0119 233.5699 0002427 225.6681 216.3370 1.00271382 5237 +NAME=MIDORI (ADEOS) +NICKNAME=MIDORI (ADEOS) +TLE1=1 24277U 96046A 10256.80018340 -.00000015 00000-0 10932-4 0 4525 +TLE2=2 24277 98.4247 209.4970 0001862 41.6142 318.5182 14.28624327733699 -[26382] +[25949] VERSION=1.1 -NAME=FENGYUN 2B -NICKNAME=FENGYUN 2B -TLE1=1 26382U 00032A 10189.73184168 .00000050 00000-0 10000-3 0 2894 -TLE2=2 26382 5.2741 67.6728 0002953 235.1295 124.7076 1.00072178 36736 +NAME=TELSTAR 12 (ORION 2) +NICKNAME=TELSTAR 12 (ORION 2) +TLE1=1 25949U 99059A 10256.09146690 -.00000139 00000-0 10000-3 0 8706 +TLE2=2 25949 0.0315 261.5157 0002567 237.3602 231.0459 1.00271296 39925 -[27499] +[26631] VERSION=1.1 -NAME=HOT BIRD 6 -NICKNAME=HOT BIRD 6 -TLE1=1 27499U 02038A 10189.94090319 .00000096 00000-0 10000-3 0 7311 -TLE2=2 27499 0.0569 278.8905 0002258 198.1322 161.4619 1.00273045 28870 +NAME=EROS A1 +NICKNAME=EROS A1 +TLE1=1 26631U 00079A 10257.11797823 .00002068 00000-0 10045-3 0 2911 +TLE2=2 26631 97.4362 321.5581 0008434 194.4926 251.0347 15.19536404543417 -[26609] +[28622] VERSION=1.1 -NAME=PHASE 3D (AO-40) -NICKNAME=AO-40 -TLE1=1 26609U 00072B 10189.53814780 -.00000004 00000-0 00000+0 0 4031 -TLE2=2 26609 9.5415 324.4504 7971662 327.0903 2.1817 1.25585038 44489 +NAME=HIMAWARI 6 (MTSAT-1R) +NICKNAME=HIMAWARI 6 (MTSAT-1R) +TLE1=1 28622U 05006A 10252.15069775 -.00000299 00000-0 10000-3 0 4148 +TLE2=2 28622 0.0419 314.7719 0002315 2.2691 225.3638 1.00270716 20251 -[25152] +[26824] VERSION=1.1 -NAME=BRASILSAT B3 -NICKNAME=BRASILSAT B3 -TLE1=1 25152U 98006A 10191.16252339 -.00000243 00000-0 10000-3 0 1964 -TLE2=2 25152 0.0485 192.7037 0001839 4.4621 74.2806 1.00268679 45590 +NAME=INTELSAT 901 (IS-901) +NICKNAME=INTELSAT 901 (IS-901) +TLE1=1 26824U 01024A 10254.95430402 -.00000160 00000-0 10000-3 0 6111 +TLE2=2 26824 0.0268 134.4889 0002847 42.0732 139.8235 1.00271103 33941 -[25986] +[26610] VERSION=1.1 -NAME=ORBCOMM FM34 [+] -NICKNAME=ORBCOMM FM34 [+] -TLE1=1 25986U 99065G 10191.24280122 .00000034 00000-0 67802-4 0 8670 -TLE2=2 25986 45.0394 146.5940 0005895 274.2036 85.8107 14.28967566552787 +NAME=STRV 1C +NICKNAME=STRV 1C +TLE1=1 26610U 00072C 10255.18372948 .00000053 00000-0 00000+0 0 1099 +TLE2=2 26610 6.3291 126.3165 7333281 10.7362 359.0524 2.03458159 73025 -[26719] +[36592] VERSION=1.1 -NAME=EUROBIRD 1 -NICKNAME=EUROBIRD 1 -TLE1=1 26719U 01011A 10190.86818260 .00000156 00000-0 10000-3 0 7453 -TLE2=2 26719 0.0654 351.0672 0003211 120.1695 157.4937 1.00269584 34218 +NAME=BADR-5 +NICKNAME=BADR-5 +TLE1=1 36592U 10025A 10252.78234767 .00000126 00000-0 10000-3 0 508 +TLE2=2 36592 0.0120 183.7944 0003196 339.8567 132.7386 1.00274804 1160 -[12458] +[24713] VERSION=1.1 -NAME=NOVA I -NICKNAME=NOVA I -TLE1=1 12458U 81044A 10191.26171281 .00000050 00000-0 10000-3 0 694 -TLE2=2 12458 90.0723 118.9388 0015038 146.2429 213.9662 13.22719024407142 +NAME=AMC-2 (GE-2) +NICKNAME=AMC-2 (GE-2) +TLE1=1 24713U 97002A 10252.42107433 -.00000252 00000-0 10000-3 0 770 +TLE2=2 24713 0.0432 285.4670 0001784 253.8688 241.6471 1.00269959 668 -[10457] +[21701] VERSION=1.1 -NAME=TRANSAT -NICKNAME=TRANSAT -TLE1=1 10457U 77106A 10190.62449276 .00000072 00000-0 10000-3 0 511 -TLE2=2 10457 89.6936 236.5456 0023278 232.7670 127.1354 13.48281842608176 +NAME=UARS +NICKNAME=UARS +TLE1=1 21701U 91063B 10256.89530133 .00013202 00000-0 13386-3 0 720 +TLE2=2 21701 56.9701 164.4280 0057412 350.3558 9.6397 15.63616288 49962 -[24819] +[32953] VERSION=1.1 -NAME=INMARSAT 3-F4 -NICKNAME=INMARSAT 3-F4 -TLE1=1 24819U 97027A 10191.40557656 -.00000282 00000-0 10000-3 0 1808 -TLE2=2 24819 0.5881 73.8317 0004896 36.7623 269.6618 1.00273160 48067 +NAME=YUBILEINY (RS-30) +NICKNAME=YUBILEINY (RS-30) +TLE1=1 32953U 08025A 10257.15042460 .00000010 00000-0 00000+0 0 423 +TLE2=2 32953 82.5069 334.3639 0017524 268.4899 91.4177 12.43007789104791 -[34839] +[25418] VERSION=1.1 -NAME=YAOGAN 6 -NICKNAME=YAOGAN 6 -TLE1=1 34839U 09021A 10191.83535513 .00000482 00000-0 26722-4 0 3906 -TLE2=2 34839 97.5934 268.1369 0002399 134.7768 1.2227 15.18541879 67477 +NAME=ORBCOMM FM15 [+] +NICKNAME=ORBCOMM FM15 [+] +TLE1=1 25418U 98046F 10256.55664714 .00000011 00000-0 59624-4 0 4930 +TLE2=2 25418 45.0008 309.2212 0003576 167.5086 192.5858 14.28063358631482 -[27825] +[27847] VERSION=1.1 -NAME=THURAYA-2 -NICKNAME=THURAYA-2 -TLE1=1 27825U 03026A 10190.60569102 .00000143 00000-0 10000-3 0 8042 -TLE2=2 27825 2.8161 355.0168 0004610 113.5940 80.8967 1.00272325 25980 +NAME=CANX-1 +NICKNAME=CANX-1 +TLE1=1 27847U 03031H 10256.01133676 .00000006 00000-0 23161-4 0 8505 +TLE2=2 27847 98.7026 264.5431 0008489 257.9409 102.0805 14.21029252373605 -[33379] +[7338] VERSION=1.1 -NAME=COSMOS 2443 (725) -NICKNAME=COSMOS 2443 (725) -TLE1=1 33379U 08046B 10190.93213259 .00000045 00000-0 10000-3 0 5021 -TLE2=2 33379 64.8024 150.3477 0020391 188.7738 208.7451 2.13102490 13918 +NAME=SL-8 R/B +NICKNAME=SL-8 R/B +TLE1=1 07338U 74044B 10257.18746900 .00006957 00000-0 12388-3 0 2759 +TLE2=2 07338 82.8837 6.3927 0193007 257.5068 100.4500 15.31820691868917 -[32253] +[24931] VERSION=1.1 -NAME=INTELSAT 11 (IS-11) -NICKNAME=INTELSAT 11 (IS-11) -TLE1=1 32253U 07044B 10190.94042183 -.00000263 00000-0 00000+0 0 3975 -TLE2=2 32253 0.0015 115.0437 0003253 356.7337 111.5213 1.00270303 10158 +NAME=EUTELSAT W75 +NICKNAME=EUTELSAT W75 +TLE1=1 24931U 97049A 10254.87375034 -.00000108 00000-0 10000-3 0 2387 +TLE2=2 24931 1.4482 77.2292 0010181 69.0701 234.2422 1.00271226 47778 -[20776] +[694] VERSION=1.1 -NAME=SKYNET 4C -NICKNAME=SKYNET 4C -TLE1=1 20776U 90079A 10190.94853751 -.00000031 00000-0 10000-3 0 1159 -TLE2=2 20776 10.6325 43.3131 0003004 78.4927 145.9820 1.00247439 72570 +NAME=ATLAS CENTAUR 2 +NICKNAME=ATLAS CENTAUR 2 +TLE1=1 00694U 63047A 10256.38587438 .00000292 00000-0 25621-4 0 3738 +TLE2=2 00694 30.3652 358.5067 0616029 321.7863 34.0571 13.95299039336785 -[26038] +[36401] VERSION=1.1 -NAME=GALAXY 11 (G-11) -NICKNAME=GALAXY 11 (G-11) -TLE1=1 26038U 99071A 10190.98083753 .00000161 00000-0 10000-3 0 9182 -TLE2=2 26038 0.0415 169.3827 0000405 43.8031 100.5144 1.00274084 38737 +NAME=COSMOS 2461 (735) +NICKNAME=COSMOS 2461 (735) +TLE1=1 36401U 10007B 10256.50492677 -.00000011 00000-0 10000-3 0 1692 +TLE2=2 36401 64.7679 147.9682 0004853 97.2700 70.5140 2.13102917 4161 -[28654] +[25158] VERSION=1.1 -NAME=NOAA 18 -NICKNAME=NOAA 18 -TLE1=1 28654U 05018A 10191.41126904 .00000286 00000-0 18274-3 0 4017 -TLE2=2 28654 98.9499 137.6085 0014285 352.0345 8.0604 14.11370769264714 +NAME=ORBCOMM FM03 [-] +NICKNAME=ORBCOMM FM03 [-] +TLE1=1 25158U 98007B 10257.10648348 .00000199 00000-0 13668-3 0 2735 +TLE2=2 25158 107.9614 313.7713 0053274 227.2917 132.3766 14.25622044654202 -[26631] +[24842] VERSION=1.1 -NAME=EROS A1 -NICKNAME=EROS A1 -TLE1=1 26631U 00079A 10191.79361075 .00001257 00000-0 62787-4 0 871 -TLE2=2 26631 97.4439 257.1860 0010576 75.8087 44.7237 15.19261290533496 +NAME=IRIDIUM 911 [-] +NICKNAME=IRIDIUM 911 [-] +TLE1=1 24842U 97030G 10256.46360734 .00000159 00000-0 41318-4 0 8610 +TLE2=2 24842 86.4463 304.6740 0015711 7.5242 352.6190 14.43266863696664 -[14780] +[25880] VERSION=1.1 -NAME=LANDSAT 5 -NICKNAME=LANDSAT 5 -TLE1=1 14780U 84021A 10191.79553713 -.00000015 00000-0 66456-5 0 9604 -TLE2=2 14780 98.1979 259.3196 0003120 6.0381 354.0841 14.57115883401973 +NAME=TELKOM 1 +NICKNAME=TELKOM 1 +TLE1=1 25880U 99042A 10256.93957837 -.00000364 00000-0 10000-3 0 9798 +TLE2=2 25880 0.0283 276.3962 0001618 285.8800 236.7525 1.00268614 40686 -[11574] +[28981] VERSION=1.1 -NAME=SL-8 R/B -NICKNAME=SL-8 R/B -TLE1=1 11574U 79089B 10191.51063345 -.00000004 00000-0 69597-5 0 6218 -TLE2=2 11574 74.0641 211.9472 0015319 41.0824 319.1479 14.39639863612427 +NAME=ST5-B +NICKNAME=ST5-B +TLE1=1 28981U 06008B 10257.08721752 .00013496 16798-5 43344-3 0 4770 +TLE2=2 28981 105.6112 294.9475 2291503 2.8586 358.3346 10.83299409174714 -[26610] +[24792] VERSION=1.1 -NAME=STRV 1C -NICKNAME=STRV 1C -TLE1=1 26610U 00072C 10189.32888951 -.00000006 00000-0 00000+0 0 859 -TLE2=2 26610 6.1129 149.1683 7348333 326.4335 3.5289 2.03459579 71688 +NAME=IRIDIUM 8 [+] +NICKNAME=IRIDIUM 8 [+] +TLE1=1 24792U 97020A 10256.54737443 -.00000075 00000-0 -33922-4 0 1879 +TLE2=2 24792 86.3889 270.4291 0002412 87.1690 272.9788 14.34217929699361 -[36499] +[19573] VERSION=1.1 -NAME=ECHOSTAR 14 -NICKNAME=ECHOSTAR 14 -TLE1=1 36499U 10010A 10190.43764712 .00000008 00000-0 00000+0 0 1289 -TLE2=2 36499 0.0060 332.9028 0002793 129.8505 223.1608 1.00272595 1157 +NAME=COSMOS 1975 +NICKNAME=COSMOS 1975 +TLE1=1 19573U 88093A 10255.99098719 .00000036 00000-0 81449-6 0 9708 +TLE2=2 19573 82.5242 197.5863 0018478 15.9342 344.2459 14.95575059189718 -[23757] +[23185] VERSION=1.1 -NAME=RXTE (XTE) -NICKNAME=RXTE (XTE) -TLE1=1 23757U 95074A 10190.96050468 .00001073 00000-0 21464-4 0 1677 -TLE2=2 23757 22.9785 150.6154 0008494 167.4442 192.6274 15.28112021805146 +NAME=APSTAR 1 +NICKNAME=APSTAR 1 +TLE1=1 23185U 94043A 10257.12890381 -.00000287 00000-0 10000-3 0 5501 +TLE2=2 23185 5.4714 66.6483 0000607 87.0199 27.7579 1.00270287 59134 -[25040] +[24834] VERSION=1.1 -NAME=IRIDIUM 41 [+] -NICKNAME=IRIDIUM 41 [+] -TLE1=1 25040U 97069B 10191.39674345 .00000038 00000-0 64102-5 0 760 -TLE2=2 25040 86.3946 0.8839 0002306 81.0242 279.1243 14.34218086663140 +NAME=FENGYUN 2A +NICKNAME=FENGYUN 2A +TLE1=1 24834U 97029A 10255.97751050 -.00000071 00000-0 10000-3 0 5297 +TLE2=2 24834 9.4865 57.4683 0095639 84.3247 276.8400 0.96050106 48116 -[32394] +[26410] VERSION=1.1 -NAME=COSMOS 2435 (722) -NICKNAME=COSMOS 2435 (722) -TLE1=1 32394U 07065B 10190.89439940 -.00000008 00000-0 00000+0 0 4753 -TLE2=2 32394 65.2230 30.2020 0004324 79.9824 95.2105 2.13103285 19681 +NAME=CLUSTER II-FM6 +NICKNAME=CLUSTER II-FM6 +TLE1=1 26410U 00041A 10254.87500000 .00002384 00000-0 00000-0 0 5511 +TLE2=2 26410 130.8833 222.0283 8885914 50.1800 2.8843 0.44215697 6567 -[4507] +[28187] VERSION=1.1 -NAME=NNSS 19 -NICKNAME=NNSS 19 -TLE1=1 04507U 70067A 10191.84118848 .00000007 00000-0 -53629-5 0 2799 -TLE2=2 04507 89.8533 306.1859 0174311 40.4884 320.9079 13.50169026962124 +NAME=EUTELSAT W3A +NICKNAME=EUTELSAT W3A +TLE1=1 28187U 04008A 10255.90484753 .00000028 00000-0 10000-3 0 200 +TLE2=2 28187 0.0730 345.7544 0003558 181.5752 157.1710 1.00270692 23857 -[26624] +[36287] VERSION=1.1 -NAME=ANIK F1 -NICKNAME=ANIK F1 -TLE1=1 26624U 00076A 10188.35295096 -.00000061 00000-0 10000-3 0 6124 -TLE2=2 26624 0.0222 101.1251 0002541 332.8865 230.9586 1.00272890 35332 +NAME=BEIDOU G1 +NICKNAME=BEIDOU G1 +TLE1=1 36287U 10001A 10255.64413116 -.00000269 00000-0 10000-3 0 2059 +TLE2=2 36287 1.5780 330.8992 0001289 312.5008 84.5050 1.00274549 2480 -[21088] +[25977] VERSION=1.1 -NAME=SL-8 R/B -NICKNAME=SL-8 R/B -TLE1=1 21088U 91006B 10191.28064178 .00000018 00000-0 25055-5 0 7576 -TLE2=2 21088 82.9413 103.4424 0021528 208.6031 151.3946 13.76745132976903 +NAME=HELIOS 1B +NICKNAME=HELIOS 1B +TLE1=1 25977U 99064A 10256.14290338 .00000126 00000-0 25237-4 0 1020 +TLE2=2 25977 98.3363 277.8371 0001269 357.0299 3.0879 14.77853372578826 -[31124] +[25432] VERSION=1.1 -NAME=SAUDICOMSAT 5 -NICKNAME=SAUDICOMSAT 5 -TLE1=1 31124U 07012H 10191.50663250 .00000401 00000-0 89121-4 0 9877 -TLE2=2 31124 97.9473 246.8147 0054818 111.3935 249.3127 14.61105183172326 +NAME=IRIDIUM 76 [+] +NICKNAME=IRIDIUM 76 [+] +TLE1=1 25432U 98048B 10256.37561783 .00000153 00000-0 47546-4 0 124 +TLE2=2 25432 86.3969 207.2756 0001923 94.2442 265.8985 14.34217512631742 -[33499] +[25758] VERSION=1.1 -NAME=KKS-1 -NICKNAME=KKS-1 -TLE1=1 33499U 09002H 10191.32857652 -.00000025 00000-0 39812-5 0 1571 -TLE2=2 33499 98.0622 301.2655 0010198 159.8854 200.2742 14.70815423 78353 +NAME=IRS-P4 (OCEANSAT 1) +NICKNAME=IRS-P4 (OCEANSAT 1) +TLE1=1 25758U 99029C 10256.02674199 -.00000106 00000-0 -15828-4 0 5564 +TLE2=2 25758 98.2695 348.5356 0000993 350.0596 9.5766 14.50833395598524 -[32294] +[20261] VERSION=1.1 -NAME=SKYNET 5B -NICKNAME=SKYNET 5B -TLE1=1 32294U 07056B 10190.93578215 .00000105 00000-0 10000-3 0 5007 -TLE2=2 32294 0.0601 347.2581 0003426 119.9679 210.1685 1.00274326 9867 +NAME=INTERCOSMOS 24 +NICKNAME=INTERCOSMOS 24 +TLE1=1 20261U 89080A 10257.20763621 .00000301 00000-0 84705-4 0 2623 +TLE2=2 20261 82.5915 166.1040 1216017 17.3320 346.5726 12.53518608956467 -[25114] +[25163] VERSION=1.1 -NAME=ORBCOMM FM11 [+] -NICKNAME=ORBCOMM FM11 [+] -TLE1=1 25114U 97084C 10191.36686037 -.00000186 00000-0 -15858-4 0 2319 -TLE2=2 25114 45.0200 328.8741 0007966 197.8142 162.2426 14.34413381655987 +NAME=GLOBALSTAR M004 +NICKNAME=GLOBALSTAR M004 +TLE1=1 25163U 98008B 10257.15594544 -.00000086 00000-0 10000-3 0 7159 +TLE2=2 25163 52.0016 294.2590 0003115 213.1045 146.9630 12.63163615580556 -[35868] +[26766] VERSION=1.1 -NAME=TATIANA 2 -NICKNAME=TATIANA 2 -TLE1=1 35868U 09049D 10191.72309091 .00000177 00000-0 10000-3 0 4720 -TLE2=2 35868 98.7560 245.4722 0003986 300.6024 59.4731 14.22112980 42076 +NAME=INTELSAT 10 (IS-10) +NICKNAME=INTELSAT 10 (IS-10) +TLE1=1 26766U 01019A 10255.93299874 -.00000044 00000-0 00000+0 0 6379 +TLE2=2 26766 0.0018 226.2905 0000643 172.3806 357.5034 1.00271962 34219 -[23765] +[37148] VERSION=1.1 -NAME=AFRICASAT-1 (MEASAT-1) -NICKNAME=AFRICASAT-1 (MEASAT-1) -TLE1=1 23765U 96002B 10191.84782575 .00000133 00000-0 10000-3 0 282 -TLE2=2 23765 2.5616 74.3817 0001088 70.6473 134.8206 1.00273532 53060 +NAME=SL-12 DEB +NICKNAME=SL-12 DEB +TLE1=1 37148U 10041M 10245.35002809 -.00002037 64396-5 00000+0 0 17 +TLE2=2 37148 64.9662 29.0261 0306702 54.2333 308.6921 15.68525842 01 -[32260] +[25978] VERSION=1.1 -NAME=GPS IIR-17M (DASS) -NICKNAME=GPS IIR-17M (DASS) -TLE1=1 32260U 07047A 10190.80909718 -.00000074 00000-0 00000+0 0 6778 -TLE2=2 32260 54.6269 321.4810 0025011 345.9544 13.9764 2.00552064 20094 +NAME=CLEMENTINE +NICKNAME=CLEMENTINE +TLE1=1 25978U 99064B 10256.74084974 .00000436 00000-0 56762-4 0 596 +TLE2=2 25978 98.1119 345.3369 0011611 91.1731 269.0832 14.85733676583250 -[10967] +[29640] VERSION=1.1 -NAME=SEASAT 1 -NICKNAME=SEASAT 1 -TLE1=1 10967U 78064A 10190.72122752 -.00000062 00000-0 22623-4 0 1616 -TLE2=2 10967 108.0175 51.6959 0001952 289.2787 70.8143 14.42210666681046 +NAME=FENGYUN 2D +NICKNAME=FENGYUN 2D +TLE1=1 29640U 06053A 10256.66621938 -.00000216 00000-0 10000-3 0 9916 +TLE2=2 29640 0.8639 87.4090 0002529 314.0769 277.0791 1.00275003 13842 -[25479] +[28393] VERSION=1.1 -NAME=ORBCOMM FM25 [+] -NICKNAME=ORBCOMM FM25 [+] -TLE1=1 25479U 98053E 10190.87296481 .00000373 00000-0 20030-3 0 1980 -TLE2=2 25479 45.0121 340.7876 0004821 126.4370 233.6916 14.29089132615400 +NAME=AMAZONAS +NICKNAME=AMAZONAS +TLE1=1 28393U 04031A 10256.38546058 -.00000303 00000-0 10000-3 0 8109 +TLE2=2 28393 0.0409 8.2485 0003211 100.4189 321.3678 1.00272965 22418 -[26549] +[26082] VERSION=1.1 -NAME=SAUDISAT 1B -NICKNAME=SO-42 -TLE1=1 26549U 00057E 10191.78049030 -.00000098 00000-0 65370-5 0 6688 -TLE2=2 26549 64.5584 18.8638 0045341 217.9671 141.8195 14.79558838528354 +NAME=GLOBALSTAR M062 +NICKNAME=GLOBALSTAR M062 +TLE1=1 26082U 00008B 10256.75945108 -.00000085 00000-0 10000-3 0 2495 +TLE2=2 26082 52.0038 103.9325 0000630 101.5189 258.5743 12.46515153488552 -[36112] +[26071] VERSION=1.1 -NAME=COSMOS 2457 (733) -NICKNAME=COSMOS 2457 (733) -TLE1=1 36112U 09070B 10191.83162100 .00000018 00000-0 00000+0 0 1824 -TLE2=2 36112 64.6836 270.7192 0015101 155.6039 226.4686 2.13101785 4447 +NAME=HISPASAT 1C +NICKNAME=HISPASAT 1C +TLE1=1 26071U 00007A 10255.93149926 -.00000236 00000-0 10000-3 0 4473 +TLE2=2 26071 0.0492 11.1073 0003869 122.3852 163.6799 1.00272326 38921 -[28892] +[25039] VERSION=1.1 -NAME=UWE-1 -NICKNAME=UWE-1 -TLE1=1 28892U 05043C 10191.12708978 .00000059 00000-0 21742-4 0 6750 -TLE2=2 28892 98.0089 74.0980 0016467 210.6603 149.3643 14.59884038250440 +NAME=IRIDIUM 43 [+] +NICKNAME=IRIDIUM 43 [+] +TLE1=1 25039U 97069A 10256.28786520 .00000274 00000-0 90726-4 0 1647 +TLE2=2 25039 86.4004 333.8842 0002387 82.1942 277.9519 14.34217338672449 -[25884] +[27852] VERSION=1.1 -NAME=GLOBALSTAR M027 -NICKNAME=GLOBALSTAR M027 -TLE1=1 25884U 99043B 10191.56795186 -.00000086 00000-0 10000-3 0 2353 -TLE2=2 25884 52.0080 55.2468 0000958 44.0194 316.0749 12.62258074502686 +NAME=ECHOSTAR 12 (RAINBOW 1) +NICKNAME=ECHOSTAR 12 (RAINBOW 1) +TLE1=1 27852U 03033A 10256.38545987 -.00000302 00000-0 10000-3 0 2124 +TLE2=2 27852 0.0337 268.1879 0000989 218.8637 302.6374 1.00272053 26273 -[28903] +[28378] VERSION=1.1 -NAME=SPACEWAY 2 -NICKNAME=SPACEWAY 2 -TLE1=1 28903U 05046B 10190.30857757 -.00000118 00000-0 10000-3 0 8084 -TLE2=2 28903 0.0168 162.8135 0001358 16.1744 120.0919 1.00271098 17115 +NAME=ANIK F2 +NICKNAME=ANIK F2 +TLE1=1 28378U 04027A 10256.45565050 -.00000070 00000-0 10000-3 0 9605 +TLE2=2 28378 0.0342 3.8873 0000847 178.7015 222.6968 1.00272126 22646 -[28509] +[31598] VERSION=1.1 -NAME=COSMOS 2413 (712) -NICKNAME=COSMOS 2413 (712) -TLE1=1 28509U 04053B 10190.76297929 .00000020 00000-0 10000-3 0 5406 -TLE2=2 28509 63.6228 267.6502 0006772 166.7115 339.5496 2.13098256 43079 +NAME=COSMO-SKYMED 1 +NICKNAME=COSMO-SKYMED 1 +TLE1=1 31598U 07023A 10257.40354886 -.00000296 00000-0 -30646-4 0 6529 +TLE2=2 31598 97.8644 83.3590 0001415 88.8293 271.3101 14.82166506176900 -[4793] +[24798] VERSION=1.1 -NAME=NOAA 1 [-] -NICKNAME=NOAA 1 [-] -TLE1=1 04793U 70106A 10191.39110878 -.00000031 00000-0 10000-3 0 5733 -TLE2=2 04793 102.0928 194.3811 0032321 59.0690 301.3551 12.53939761811570 +NAME=DFH 3-2 +NICKNAME=DFH 3-2 +TLE1=1 24798U 97021A 10255.09860288 .00000132 00000-0 10000-3 0 8431 +TLE2=2 24798 6.1506 65.2462 0009991 353.7916 6.3810 1.00201312 48861 -[25158] +[25307] VERSION=1.1 -NAME=ORBCOMM FM03 [-] -NICKNAME=ORBCOMM FM03 [-] -TLE1=1 25158U 98007B 10191.63868418 .00000055 00000-0 77259-4 0 2178 -TLE2=2 25158 107.9631 181.2142 0052147 337.0388 22.8396 14.25592865644876 +NAME=GLOBALSTAR M006 +NICKNAME=GLOBALSTAR M006 +TLE1=1 25307U 98023B 10256.29860209 -.00000086 00000-0 10000-3 0 4296 +TLE2=2 25307 52.0002 350.5144 0001825 142.7756 217.3236 12.62267897571443 -[25477] +[36582] VERSION=1.1 -NAME=ORBCOMM FM23 [+] -NICKNAME=ORBCOMM FM23 [+] -TLE1=1 25477U 98053C 10191.75777380 -.00000147 00000-0 -30641-5 0 3263 -TLE2=2 25477 45.0125 337.0422 0003536 116.2719 243.8450 14.29093885615556 +NAME=COMSATBW-2 +NICKNAME=COMSATBW-2 +TLE1=1 36582U 10021B 10256.86169613 .00000067 00000-0 10000-3 0 743 +TLE2=2 36582 0.0099 197.3684 0001650 303.6095 175.1416 1.00269881 1270 -[32791] +[27939] VERSION=1.1 -NAME=SEEDS II (CO-66) -NICKNAME=SEEDS II (CO-66) -TLE1=1 32791U 08021J 10191.08402540 .00000286 00000-0 43054-4 0 7127 -TLE2=2 32791 97.8955 255.5390 0015148 207.1416 152.9020 14.81685368118847 +NAME=MOZHAYETS 4 (RS-22) +NICKNAME=RS-22 +TLE1=1 27939U 03042A 10257.14586643 .00000081 00000-0 24226-4 0 5424 +TLE2=2 27939 97.8787 118.7997 0014287 135.1487 225.0878 14.63451045371962 -[20638] +[26390] VERSION=1.1 -NAME=ROSAT -NICKNAME=ROSAT -TLE1=1 20638U 90049A 10190.88309250 .00005965 00000-0 64436-4 0 237 -TLE2=2 20638 52.9929 338.9391 0003961 134.3193 225.8146 15.65262084120400 +NAME=SIRIUS-1 +NICKNAME=SIRIUS-1 +TLE1=1 26390U 00035A 10255.90206765 .00000023 00000-0 10000-3 0 7555 +TLE2=2 26390 61.1057 251.3857 2689181 269.5315 59.8598 1.00274128 37389 -[28981] +[36032] VERSION=1.1 -NAME=ST5-B -NICKNAME=ST5-B -TLE1=1 28981U 06008B 10190.82603348 .00010775 14208-5 35913-3 0 4165 -TLE2=2 28981 105.6303 226.3455 2298494 84.3003 301.3387 10.81403372167548 +NAME=NSS-12 +NICKNAME=NSS-12 +TLE1=1 36032U 09058A 10256.79988748 .00000051 00000-0 10000-3 0 1767 +TLE2=2 36032 0.0230 253.2223 0001794 273.4777 170.9312 1.00273408 3234 -[27707] +[35931] VERSION=1.1 -NAME=MOLNIYA 1-92 -NICKNAME=MOLNIYA 1-92 -TLE1=1 27707U 03011A 10190.90035506 .00000664 00000-0 10000-3 0 6196 -TLE2=2 27707 64.7811 164.0806 7008172 257.2298 314.7011 2.00614494 53271 +NAME=OCEANSAT 2 +NICKNAME=OCEANSAT 2 +TLE1=1 35931U 09051A 10256.89849822 .00006033 00000-0 15388-2 0 6716 +TLE2=2 35931 98.2810 352.6624 0001196 270.3910 89.6609 14.50892821 51563 -[22724] +[13969] VERSION=1.1 -NAME=INSAT-2B -NICKNAME=INSAT-2B -TLE1=1 22724U 93048B 10190.20353205 .00000096 00000-0 10000-3 0 6763 -TLE2=2 22724 8.8263 58.7180 0015588 44.7716 315.3203 0.99960520 62387 +NAME=TDRS 1 +NICKNAME=TDRS 1 +TLE1=1 13969U 83026B 10254.59325449 -.00000269 00000-0 10000-3 0 1725 +TLE2=2 13969 13.4041 7.7034 0019975 110.8360 249.3716 0.98746177 73511 -[24971] +[26561] VERSION=1.1 -NAME=IRS-1D -NICKNAME=IRS-1D -TLE1=1 24971U 97057A 10191.72690051 .00000071 00000-0 40185-4 0 5618 -TLE2=2 24971 98.1984 213.0797 0053228 214.1269 145.6477 14.33001775668474 +NAME=HETE-2 +NICKNAME=HETE-2 +TLE1=1 26561U 00061A 10257.15690819 .00001199 00000-0 33299-4 0 5784 +TLE2=2 26561 1.9461 102.4791 0023892 230.2341 129.5842 14.96349208543218 -[25173] +[25126] VERSION=1.1 -NAME=IRIDIUM 53 [+] -NICKNAME=IRIDIUM 53 [+] -TLE1=1 25173U 98010E 10191.42505324 .00000067 00000-0 16820-4 0 572 -TLE2=2 25173 86.3961 329.2810 0002391 82.9944 277.1518 14.34215341648602 +NAME=HGS-1 (ASIASAT 3) +NICKNAME=HGS-1 (ASIASAT 3) +TLE1=1 25126U 97086A 10255.77003999 .00000093 00000-0 10000-3 0 4095 +TLE2=2 25126 2.7099 99.8058 0042486 231.6730 128.3991 1.00274854 47421 -[25961] +[6909] VERSION=1.1 -NAME=GLOBALSTAR M039 -NICKNAME=GLOBALSTAR M039 -TLE1=1 25961U 99062A 10191.52126136 -.00000086 00000-0 10000-3 0 5240 -TLE2=2 25961 51.9961 321.8801 0002193 116.0432 244.0664 12.62262732491273 +NAME=NNSS O-20 +NICKNAME=NNSS O-20 +TLE1=1 06909U 73081A 10257.13996200 .00000096 00000-0 89635-4 0 7794 +TLE2=2 06909 89.8663 351.5110 0157606 189.8612 169.9445 13.69803072 41206 -[27605] +[13068] VERSION=1.1 -NAME=RUBIN-2 & SAFIR-M -NICKNAME=RUBIN-2 & SAFIR-M -TLE1=1 27605U 02058A 10190.95235138 -.00000071 00000-0 10242-4 0 2302 -TLE2=2 27605 64.5590 272.6842 0034776 67.5099 292.9684 14.72476837406037 +NAME=SL-3 R/B +NICKNAME=SL-3 R/B +TLE1=1 13068U 82013B 10257.16358234 -.00000081 00000-0 -81632-5 0 3270 +TLE2=2 13068 81.2079 145.7163 0025624 142.1979 218.1041 15.00476361552604 -[27438] +[26093] VERSION=1.1 -NAME=INTELSAT 905 (IS-905) -NICKNAME=INTELSAT 905 (IS-905) -TLE1=1 27438U 02027A 10190.92121120 -.00000178 00000-0 10000-3 0 1841 -TLE2=2 27438 0.0416 255.8114 0002984 225.6339 113.4159 1.00270804 29700 +NAME=PICOSAT 5 +NICKNAME=PICOSAT 5 +TLE1=1 26093U 00004L 10256.29592418 .00000197 00000-0 73328-4 0 7417 +TLE2=2 26093 100.1789 179.7300 0032365 301.3071 58.4949 14.45190241557499 -[26619] +[26095] VERSION=1.1 -NAME=EO-1 -NICKNAME=EO-1 -TLE1=1 26619U 00075A 10191.68285702 -.00000557 00000-0 -10146-3 0 3185 -TLE2=2 26619 98.1439 258.4933 0010678 164.4847 195.6660 14.62122175513036 +NAME=SUPERBIRD-B2 +NICKNAME=SUPERBIRD-B2 +TLE1=1 26095U 00012A 10256.64145789 -.00000113 00000-0 10000-3 0 9500 +TLE2=2 26095 0.0133 199.6515 0001837 319.9775 225.7931 1.00270404 38779 -[25413] +[11060] VERSION=1.1 -NAME=ORBCOMM FM17 [+] -NICKNAME=ORBCOMM FM17 [+] -TLE1=1 25413U 98046A 10191.22503731 -.00000142 00000-0 -13826-5 0 3524 -TLE2=2 25413 44.9971 253.1670 0002721 187.3951 172.6869 14.27636292622147 +NAME=TIROS N [P] +NICKNAME=TIROS N [P] +TLE1=1 11060U 78096A 10256.43298557 -.00000004 00000-0 20609-4 0 5740 +TLE2=2 11060 98.9858 235.6822 0010650 161.7013 198.4549 14.17516808863161 -[31577] +[28899] VERSION=1.1 -NAME=SINOSAT 3 -NICKNAME=SINOSAT 3 -TLE1=1 31577U 07021A 10191.57212557 -.00000350 00000-0 10000-3 0 8980 -TLE2=2 31577 0.0688 248.4961 0001853 192.9040 177.8795 1.00268325 11411 +NAME=INMARSAT 4-F2 +NICKNAME=INMARSAT 4-F2 +TLE1=1 28899U 05044A 10254.04222821 .00000118 00000-0 10000-3 0 3619 +TLE2=2 28899 2.2161 325.0317 0002662 214.5922 210.6181 1.00273383 17781 -[28790] +[36508] VERSION=1.1 -NAME=GALAXY 14 (G-14) -NICKNAME=GALAXY 14 (G-14) -TLE1=1 28790U 05030A 10188.56876535 .00000049 00000-0 10000-3 0 9477 -TLE2=2 28790 0.0170 21.9131 0002446 80.5022 262.7721 1.00273788 17928 +NAME=CRYOSAT 2 +NICKNAME=CRYOSAT 2 +TLE1=1 36508U 10013A 10255.73504180 .00000003 00000-0 00000+0 0 1420 +TLE2=2 36508 92.0278 324.9140 0012621 100.0253 260.2390 14.52174287 22803 -[35635] +[902] VERSION=1.1 -NAME=COSMOS 2454 -NICKNAME=COSMOS 2454 -TLE1=1 35635U 09039A 10191.75527626 .00000138 00000-0 10000-3 0 5470 -TLE2=2 35635 82.9568 118.0055 0019503 351.8459 8.2380 13.89394415 49231 +NAME=CALSPHERE 2 +NICKNAME=CALSPHERE 2 +TLE1=1 00902U 64063E 10255.93421144 .00000075 00000-0 10000-3 0 4026 +TLE2=2 00902 90.1575 337.2776 0019447 19.6615 340.5278 13.52479553 78567 -[18187] +[16882] VERSION=1.1 -NAME=COSMOS 1867 -NICKNAME=COSMOS 1867 -TLE1=1 18187U 87060A 10191.76838948 -.00000057 00000-0 16434-4 0 9277 -TLE2=2 18187 65.0109 117.6735 0019448 274.8897 84.9968 14.30866945201507 +NAME=SL-14 R/B +NICKNAME=SL-14 R/B +TLE1=1 16882U 86055B 10256.78944091 .00000084 00000-0 76836-5 0 2850 +TLE2=2 16882 82.5211 21.6290 0018475 252.3783 107.5425 14.81662244302198 -[28912] +[25492] VERSION=1.1 -NAME=METEOSAT-9 (MSG-2) -NICKNAME=METEOSAT-9 (MSG-2) -TLE1=1 28912U 05049B 10190.88900612 .00000001 00000-0 10000-3 0 7000 -TLE2=2 28912 0.5005 78.6326 0001776 113.5845 55.2538 1.00276653 16739 +NAME=SIRIUS 3 +NICKNAME=SIRIUS 3 +TLE1=1 25492U 98056B 10256.15452800 .00000013 00000-0 10000-3 0 7209 +TLE2=2 25492 1.5660 76.8671 0001847 79.7493 255.9621 1.00271855 43811 -[26243] +[36745] VERSION=1.1 -NAME=SESAT 1 -NICKNAME=SESAT 1 -TLE1=1 26243U 00019A 10189.94338034 .00000113 00000-0 10000-3 0 7661 -TLE2=2 26243 0.0696 9.3501 0001907 195.6819 77.3777 1.00272825 37447 +NAME=ARABSAT-5A +NICKNAME=ARABSAT-5A +TLE1=1 36745U 10032B 10256.87581063 .00000133 00000-0 10000-3 0 489 +TLE2=2 36745 0.0341 11.3970 0004154 186.3626 140.7129 1.00272491 967 -[27844] +[33380] VERSION=1.1 -NAME=CUTE-1 (CO-55) -NICKNAME=CO-55 -TLE1=1 27844U 03031E 10191.26555062 .00000047 00000-0 41901-4 0 8860 -TLE2=2 27844 98.7088 199.9071 0010750 101.3712 258.8682 14.20716946364362 +NAME=COSMOS 2444 (726) +NICKNAME=COSMOS 2444 (726) +TLE1=1 33380U 08046C 10256.44190265 -.00000010 00000-0 10000-3 0 5509 +TLE2=2 33380 64.8078 148.1821 0028409 328.8683 240.8845 2.13102920 15296 -[16909] +[22907] VERSION=1.1 -NAME=JAS-1 (FO-12) -NICKNAME=FO-12 -TLE1=1 16909U 86061B 10190.66486931 -.00000083 00000-0 10000-3 0 7501 -TLE2=2 16909 50.0164 50.6925 0011616 112.1904 248.0157 12.44453915 87227 +NAME=GORIZONT 29 +NICKNAME=GORIZONT 29 +TLE1=1 22907U 93072A 10256.35283967 -.00000257 00000-0 10000-3 0 7906 +TLE2=2 22907 11.6968 43.2989 0012465 219.4630 140.4980 1.00123409 61565 -[32277] +[24870] VERSION=1.1 -NAME=COSMOS 2431 (718) -NICKNAME=COSMOS 2431 (718) -TLE1=1 32277U 07052C 10191.13099971 .00000045 00000-0 00000+0 0 7251 -TLE2=2 32277 64.8958 150.7266 0018613 199.5059 170.1430 2.13102286 21135 +NAME=IRIDIUM 17 [-] +NICKNAME=IRIDIUM 17 [-] +TLE1=1 24870U 97034B 10256.34019234 .00000128 00000-0 38566-4 0 1999 +TLE2=2 24870 86.4004 333.5054 0002475 73.0682 287.0795 14.34502793690081 -[28890] +[32060] VERSION=1.1 -NAME=BEIJING 1 -NICKNAME=BEIJING 1 -TLE1=1 28890U 05043A 10191.71860856 .00000067 00000-0 23200-4 0 4182 -TLE2=2 28890 98.0023 75.1049 0014987 203.8148 156.2384 14.60103668250609 +NAME=WORLDVIEW-1 (WV-1) +NICKNAME=WORLDVIEW-1 (WV-1) +TLE1=1 32060U 07041A 10257.11033573 .00001060 00000-0 46057-4 0 3415 +TLE2=2 32060 97.3919 334.6321 0001988 60.9909 30.0859 15.24450730166247 -[21576] +[26998] VERSION=1.1 -NAME=ORBCOMM-X [-] -NICKNAME=ORBCOMM-X [-] -TLE1=1 21576U 91050C 10191.47472417 .00000034 00000-0 24800-4 0 3601 -TLE2=2 21576 98.5174 145.6129 0003236 328.7839 31.3164 14.40018698996428 +NAME=TIMED +NICKNAME=TIMED +TLE1=1 26998U 01055B 10257.12949679 .00000099 00000-0 16086-4 0 6739 +TLE2=2 26998 74.0744 172.1809 0001671 189.5814 170.5322 14.84206215474863 -[25106] +[25693] VERSION=1.1 -NAME=IRIDIUM 47 [+] -NICKNAME=IRIDIUM 47 [+] -TLE1=1 25106U 97082C 10191.23718747 .00000107 00000-0 31288-4 0 255 -TLE2=2 25106 86.3923 234.4566 0002555 83.3612 276.7869 14.34219636657177 +NAME=UOSAT 12 (UO-36) +NICKNAME=UO-36 +TLE1=1 25693U 99021A 10257.11667225 -.00000043 00000-0 13880-4 0 3021 +TLE2=2 25693 64.5584 161.2055 0042450 298.9272 60.7532 14.78818552614961 -[23915] +[25860] VERSION=1.1 -NAME=INTELSAT 709 (IS-709) -NICKNAME=INTELSAT 709 (IS-709) -TLE1=1 23915U 96035A 10190.92321296 .00000092 00000-0 10000-3 0 1658 -TLE2=2 23915 0.0100 218.7692 0001946 279.0342 177.1444 1.00273234 51540 +NAME=OKEAN-O +NICKNAME=OKEAN-O +TLE1=1 25860U 99039A 10257.09327528 .00000062 00000-0 16907-4 0 987 +TLE2=2 25860 97.8432 226.8199 0001542 103.9155 256.2237 14.73661370599995 -[24969] +[32729] VERSION=1.1 -NAME=IRIDIUM 34 [+] -NICKNAME=IRIDIUM 34 [+] -TLE1=1 24969U 97056E 10191.27577564 .00000125 00000-0 37401-4 0 776 -TLE2=2 24969 86.3963 297.7765 0002468 82.0130 278.1353 14.34217050669348 +NAME=DIRECTV 11 +NICKNAME=DIRECTV 11 +TLE1=1 32729U 08013A 10257.20092597 -.00000146 00000-0 10000-3 0 4940 +TLE2=2 32729 0.0215 36.6810 0000159 239.6429 49.8473 1.00271149 9220 -[21111] +[28238] VERSION=1.1 -NAME=COSMOS 2133 -NICKNAME=COSMOS 2133 -TLE1=1 21111U 91010A 10189.11148455 .00000000 00000-0 10000-3 0 2790 -TLE2=2 21111 12.0005 37.9577 0008013 9.7893 350.2447 1.00258837 71054 +NAME=DIRECTV 7S +NICKNAME=DIRECTV 7S +TLE1=1 28238U 04016A 10257.22764495 -.00000020 00000-0 10000-3 0 1504 +TLE2=2 28238 0.0008 191.1520 0002336 336.9825 147.8269 1.00271840 23377 -[17590] +[25050] VERSION=1.1 -NAME=SL-16 R/B -NICKNAME=SL-16 R/B -TLE1=1 17590U 87027B 10191.22690354 .00000263 00000-0 15620-3 0 5870 -TLE2=2 17590 71.0026 84.7687 0006333 218.8892 141.1768 14.16488810205278 +NAME=INDOSTAR 1 +NICKNAME=INDOSTAR 1 +TLE1=1 25050U 97071B 10256.75850829 -.00000362 00000-0 10000-3 0 2937 +TLE2=2 25050 4.6524 68.5541 0003549 125.0915 179.3790 1.00271360 47049 -[25395] +[26930] VERSION=1.1 -NAME=FASAT B -NICKNAME=FASAT B -TLE1=1 25395U 98043B 10191.09512465 .00000051 00000-0 39440-4 0 7855 -TLE2=2 25395 98.3019 206.6537 0003223 131.4934 228.6519 14.24394792623661 +NAME=PICOSAT 9 +NICKNAME=PICOSAT 9 +TLE1=1 26930U 01043B 10257.17149898 -.00000033 00000-0 19557-4 0 5332 +TLE2=2 26930 67.0025 309.5994 0002476 224.9942 135.0960 14.30078668467657 -[32373] +[22178] VERSION=1.1 -NAME=RADUGA-1M 1 -NICKNAME=RADUGA-1M 1 -TLE1=1 32373U 07058A 10191.62790580 -.00000035 00000-0 10000-3 0 7404 -TLE2=2 32373 0.0210 89.8709 0003021 24.1610 110.4323 1.00271935 10366 +NAME=MOLNIYA 3-42 +NICKNAME=MOLNIYA 3-42 +TLE1=1 22178U 92067A 10254.69299392 .00000066 00000-0 -30289-2 0 8520 +TLE2=2 22178 61.9248 128.4232 7318758 268.3259 14.9775 2.00599730131236 -[25112] +[28368] VERSION=1.1 -NAME=ORBCOMM FM08 [+] -NICKNAME=ORBCOMM FM08 [+] -TLE1=1 25112U 97084A 10191.61888210 .00000182 00000-0 11356-3 0 5687 -TLE2=2 25112 45.0189 327.2302 0009803 222.9576 137.0498 14.34417000656027 +NAME=DEMETER +NICKNAME=DEMETER +TLE1=1 28368U 04025C 10257.10584205 .00000201 00000-0 41364-4 0 297 +TLE2=2 28368 97.9551 317.4976 0001232 91.2329 268.9032 14.70212892332415 -[29655] +[25852] VERSION=1.1 -NAME=GENESAT-1 -NICKNAME=GENESAT-1 -TLE1=1 29655U 06058C 10191.51546666 .00207154 24067-4 35205-3 0 1618 -TLE2=2 29655 40.0167 235.4997 0007989 123.4664 236.6951 16.01704843203725 +NAME=GLOBALSTAR M032 +NICKNAME=GLOBALSTAR M032 +TLE1=1 25852U 99037B 10256.90982759 -.00000086 00000-0 10000-3 0 2838 +TLE2=2 25852 52.0000 124.1050 0001629 101.0022 259.1026 12.62272372515705 -[32478] +[25469] VERSION=1.1 -NAME=EXPRESS-AM 33 -NICKNAME=EXPRESS-AM 33 -TLE1=1 32478U 08003A 10191.61066291 -.00000276 00000-0 10000-3 0 6524 -TLE2=2 32478 0.0335 215.1563 0001929 345.3239 44.2499 1.00269603 9277 +NAME=IRIDIUM 80 [+] +NICKNAME=IRIDIUM 80 [+] +TLE1=1 25469U 98051C 10256.31958286 .00000226... [truncated message content] |
From: <cs...@us...> - 2010-09-04 11:06:45
|
Revision: 649 http://gpredict.svn.sourceforge.net/gpredict/?rev=649&view=rev Author: csete Date: 2010-09-04 11:06:39 +0000 (Sat, 04 Sep 2010) Log Message: ----------- Applied patch 3059022 from Charles Suprin AA1VS fixing crash if module file is empty on empty (bugs 3057771 and 3058753). Modified Paths: -------------- trunk/ChangeLog trunk/NEWS trunk/src/gtk-sat-module.c Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-08-21 08:50:48 UTC (rev 648) +++ trunk/ChangeLog 2010-09-04 11:06:39 UTC (rev 649) @@ -1,5 +1,12 @@ 2010-08-21 Alexandru Csete <oz9aec at gmail.com> + * src/gtk-sat-module.c: + Applied patch 3059022 from Charles Suprin AA1VS fixing crash if module file + is empty on empty (bugs 3057771 and 3058753). + + +2010-08-21 Alexandru Csete <oz9aec at gmail.com> + * src/gtk-sat-selector.c: Applied patch 3050047 from Patrick Strasser OE6PSE to improve searching in the satellite selector. Modified: trunk/NEWS =================================================================== --- trunk/NEWS 2010-08-21 08:50:48 UTC (rev 648) +++ trunk/NEWS 2010-09-04 11:06:39 UTC (rev 649) @@ -18,6 +18,7 @@ - Fixed bug 2674626: Process 100% CPU load with one kepler element. - Fixed bug 2792349: Segfault on certain satellites (Geo). - Fixed bug 3050068: Unable to update TLE from local files. +- Fixed bugs 3057771 and 3058753: Crash if module file is empty. - Applied patch 2876485: Fix a memory leak in the rotator controller (Thanks to Charles Suprin AA1VS). - Applied patch 2877878: Change Flag to Lock in tle-update (thanks to Charles Suprin AA1VS). - Applied patch 2877918: Fixes segfault in TLE updater (thanks to Charles Suprin AA1VS). @@ -41,6 +42,7 @@ - Applied patch 3009725: Delete Explicit Call to gtk_set_locale (Thanks to Charles Suprin AA1VS). - Applied patch 3009727: Free satellite hash references (Thanks to Charles Suprin AA1VS). - Applied patch 3050047: Improve sat search and prediction of upcoming passes (Thanks to Patrick Strasser OE6PSE) +- Applied patch 3059022: Fix gpredict crashed with NULL pointer exception (Thanks to Charles Suprin AA1VS). - Slightly improved UI for the single-satellite view. - Command line options for cleaning user's TLE and transponder data, see --help for list. - Satellite Map: Added shadow to satellite marker and label to enhance visual appearance Modified: trunk/src/gtk-sat-module.c =================================================================== --- trunk/src/gtk-sat-module.c 2010-08-21 08:50:48 UTC (rev 648) +++ trunk/src/gtk-sat-module.c 2010-09-04 11:06:39 UTC (rev 649) @@ -270,6 +270,15 @@ /* load configuration; note that this will also set the module name */ gtk_sat_module_read_cfg_data (GTK_SAT_MODULE (widget), cfgfile); + /*check that we loaded some reasonable data*/ + if (GTK_SAT_MODULE(widget)->cfgdata==NULL){ + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s: Module %s has problems."), + __FUNCTION__, cfgfile); + + return NULL; + } + /* module state */ if ((g_key_file_has_key (GTK_SAT_MODULE (widget)->cfgdata, MOD_CFG_GLOBAL_SECTION, @@ -484,7 +493,7 @@ G_KEY_FILE_KEEP_COMMENTS, &error)) { g_key_file_free (module->cfgdata); - + module->cfgdata=NULL; sat_log_log (SAT_LOG_LEVEL_ERROR, _("%s: Could not load config data from %s (%s)."), __FUNCTION__, cfgfile, error->message); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cs...@us...> - 2010-08-21 08:50:54
|
Revision: 648 http://gpredict.svn.sourceforge.net/gpredict/?rev=648&view=rev Author: csete Date: 2010-08-21 08:50:48 +0000 (Sat, 21 Aug 2010) Log Message: ----------- Fixed bug 3050068: Unable to update TLE from local files. Modified Paths: -------------- trunk/ChangeLog trunk/NEWS trunk/src/tle-update.c Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-08-21 06:55:00 UTC (rev 647) +++ trunk/ChangeLog 2010-08-21 08:50:48 UTC (rev 648) @@ -8,6 +8,9 @@ Applied patch 3050047 from Patrick Strasser OE6PSE to include current pass in the list of future passes. + * src/tle-update.c: + Fixed bug 3050068: Unable to update TLE from local files. + 2010-07-12 Alexandru Csete <oz9aec at gmail.com> Modified: trunk/NEWS =================================================================== --- trunk/NEWS 2010-08-21 06:55:00 UTC (rev 647) +++ trunk/NEWS 2010-08-21 08:50:48 UTC (rev 648) @@ -16,7 +16,8 @@ - Fixed bug 2918672: Trailing whitespace and newline in satellite names. - Fixed bug 2914679: Unable to save Future passes. - Fixed bug 2674626: Process 100% CPU load with one kepler element. -- Fixed bug 2792349: Segfault on certain satellites (Geo) +- Fixed bug 2792349: Segfault on certain satellites (Geo). +- Fixed bug 3050068: Unable to update TLE from local files. - Applied patch 2876485: Fix a memory leak in the rotator controller (Thanks to Charles Suprin AA1VS). - Applied patch 2877878: Change Flag to Lock in tle-update (thanks to Charles Suprin AA1VS). - Applied patch 2877918: Fixes segfault in TLE updater (thanks to Charles Suprin AA1VS). Modified: trunk/src/tle-update.c =================================================================== --- trunk/src/tle-update.c 2010-08-21 06:55:00 UTC (rev 647) +++ trunk/src/tle-update.c 2010-08-21 08:50:48 UTC (rev 648) @@ -55,7 +55,9 @@ /* private function prototypes */ static size_t my_write_func (void *ptr, size_t size, size_t nmemb, FILE *stream); static gint read_fresh_tle (const gchar *dir, const gchar *fnam, GHashTable *data); +static gboolean is_tle_file (const gchar *dir, const gchar *fnam); + static void update_tle_in_file (const gchar *ldname, const gchar *fname, GHashTable *data, @@ -159,28 +161,32 @@ } else { - /* read fresh tle files into memory */ + /* scan directory for tle files */ while ((fnam = g_dir_read_name (cache_dir)) != NULL) { - /* status message */ - if (!silent && (label1 != NULL)) { - text = g_strdup_printf (_("Reading data from %s"), fnam); - gtk_label_set_text (GTK_LABEL (label1), text); - g_free (text); - - - /* Force the drawing queue to be processed otherwise there will - not be any visual feedback, ie. frozen GUI - - see Gtk+ FAQ http://www.gtk.org/faq/#AEN602 - */ - while (g_main_context_iteration (NULL, FALSE)); - - /* give user a chance to follow progress */ - g_usleep (G_USEC_PER_SEC / 100); + /* check that we got a TLE file */ + if (is_tle_file(dir, fnam)) { + + /* status message */ + if (!silent && (label1 != NULL)) { + text = g_strdup_printf (_("Reading data from %s"), fnam); + gtk_label_set_text (GTK_LABEL (label1), text); + g_free (text); + + + /* Force the drawing queue to be processed otherwise there will + not be any visual feedback, ie. frozen GUI + - see Gtk+ FAQ http://www.gtk.org/faq/#AEN602 + */ + while (g_main_context_iteration (NULL, FALSE)); + + /* give user a chance to follow progress */ + g_usleep (G_USEC_PER_SEC / 100); + } + + /* now, do read the fresh data */ + num = read_fresh_tle (dir, fnam, data); } - - /* now, do read the fresh data */ - num = read_fresh_tle (dir, fnam, data); if (num < 1) { sat_log_log (SAT_LOG_LEVEL_ERROR, @@ -712,12 +718,44 @@ } +/** \brief Check whether file is TLE file. + * \param dir The directory. + * \param fnam The file name. + * + * This function checks whether the file with path dir/fnam is a potential + * TLE file. Checks performed: + * - It is a real file + * - suffix is .txt or .tle + */ +static gboolean is_tle_file (const gchar *dir, const gchar *fnam) +{ + gchar *path; + gboolean fileIsOk = FALSE; + + + path = g_strconcat (dir, G_DIR_SEPARATOR_S, fnam, NULL); + + if (g_file_test (path, G_FILE_TEST_IS_REGULAR) && + (g_str_has_suffix(fnam, ".tle") || g_str_has_suffix(fnam, ".txt"))) + { + fileIsOk = TRUE; + } + + g_free (path); + + return fileIsOk; +} + /** \brief Read fresh TLE data into hash table. * \param dir The directory to read from. * \param fnam The name of the file to read from. * \param fresh_data Hash table where the data should be stored. * \return The number of satellites successfully read. + * + * This function will read fresh TLE data from local files into memory. + * If there is a saetllite category (.cat file) with the same name as the + * input file it will also update the satellites in that category. */ static gint read_fresh_tle (const gchar *dir, const gchar *fnam, GHashTable *data) { @@ -736,6 +774,7 @@ gchar *catname, *catpath, *buff, **buffv; FILE *catfile; gchar category[80]; + gboolean catsync = FALSE; /* whether .cat file should be synced */ @@ -757,95 +796,97 @@ if (catfile!=NULL) { b = fgets (category, 80, catfile); fclose (catfile); + catsync = TRUE; } else { - /* FIXME not sure what goes here AA1VS */ - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%s: Failed to open %s"), - __FILE__, __FUNCTION__, catpath); - return (retcode); + /* There is no category with this name (could be update from custom file) */ + sat_log_log (SAT_LOG_LEVEL_MSG, + _("%s:%s: There is no category called %s"), + __FILE__, __FUNCTION__, fnam); } /* reopen a new catfile and write category name */ - catfile = g_fopen (catpath, "w"); - if (catfile!=NULL) { - - fputs (category, catfile); - + if (catsync) { + catfile = g_fopen (catpath, "w"); + if (catfile != NULL) { + fputs (category, catfile); + } + else { + catsync = FALSE; + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s:%s: Could not reopne .cat file while reading TLE from %s"), + __FILE__, __FUNCTION__, fnam); + } + /* .cat file now contains the category name; satellite catnums will be added during update in the while loop */ + } + - /* read 3 lines at a time */ - while (fgets (tle_str[0], 80, fp)) { - /* read second and third lines */ - b = fgets (tle_str[1], 80, fp); - b = fgets (tle_str[2], 80, fp); + /* read 3 lines at a time */ + while (fgets (tle_str[0], 80, fp)) { + /* read second and third lines */ + b = fgets (tle_str[1], 80, fp); + b = fgets (tle_str[2], 80, fp); - tle_str[1][69] = '\0'; - tle_str[2][69] = '\0'; + tle_str[1][69] = '\0'; + tle_str[2][69] = '\0'; - /* copy catnum and convert to integer */ - for (i = 2; i < 7; i++) { - catstr[i-2] = tle_str[1][i]; - } - catstr[5] = '\0'; - catnr = (guint) g_ascii_strtod (catstr, NULL); + /* copy catnum and convert to integer */ + for (i = 2; i < 7; i++) { + catstr[i-2] = tle_str[1][i]; + } + catstr[5] = '\0'; + catnr = (guint) g_ascii_strtod (catstr, NULL); - if (Get_Next_Tle_Set (tle_str, &tle) != 1) { - /* TLE data not good */ - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%s: Invalid data for %d"), - __FILE__, __FUNCTION__, catnr); - } - else { - /* DATA OK, phew... */ - /* sat_log_log (SAT_LOG_LEVEL_DEBUG, */ - /* _("%s: Good data for %d"), */ - /* __FUNCTION__, */ - /* catnr); */ + if (Get_Next_Tle_Set (tle_str, &tle) != 1) { + /* TLE data not good */ + sat_log_log (SAT_LOG_LEVEL_ERROR, + _("%s:%s: Invalid data for %d"), + __FILE__, __FUNCTION__, catnr); + } + else { + if (catsync) { /* store catalog number in catfile */ buff = g_strdup_printf ("%d\n", catnr); fputs (buff, catfile); g_free (buff); + } - /* add data to hash table */ - key = g_try_new0 (guint, 1); - *key = catnr; + /* add data to hash table */ + key = g_try_new0 (guint, 1); + *key = catnr; - /* check if satellite already in hash table */ - if (g_hash_table_lookup (data, key) == NULL) { + /* check if satellite already in hash table */ + if (g_hash_table_lookup (data, key) == NULL) { - /* create new_tle structure */ - ntle = g_try_new (new_tle_t, 1); - ntle->catnum = catnr; - ntle->epoch = tle.epoch; - ntle->satname = g_strdup (g_strchomp(tle_str[0])); - ntle->line1 = g_strdup (tle_str[1]); - ntle->line2 = g_strdup (tle_str[2]); - ntle->srcfile = g_strdup (fnam); - ntle->isnew = TRUE; /* flag will be reset when using data */ + /* create new_tle structure */ + ntle = g_try_new (new_tle_t, 1); + ntle->catnum = catnr; + ntle->epoch = tle.epoch; + ntle->satname = g_strdup (g_strchomp(tle_str[0])); + ntle->line1 = g_strdup (tle_str[1]); + ntle->line2 = g_strdup (tle_str[2]); + ntle->srcfile = g_strdup (fnam); + ntle->isnew = TRUE; /* flag will be reset when using data */ - g_hash_table_insert (data, key, ntle); - retcode++; - } - else { - g_free (key); - } + g_hash_table_insert (data, key, ntle); + retcode++; } - + else { + g_free (key); + } } + } + + if (catsync) { /* close category file */ fclose (catfile); } - else { - sat_log_log (SAT_LOG_LEVEL_ERROR, - _("%s:%s: Failed to open %s"), - __FILE__, __FUNCTION__, catpath); - } g_free (catpath); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cs...@us...> - 2010-08-21 06:55:06
|
Revision: 647 http://gpredict.svn.sourceforge.net/gpredict/?rev=647&view=rev Author: csete Date: 2010-08-21 06:55:00 +0000 (Sat, 21 Aug 2010) Log Message: ----------- Applied patch 3050047: Improve sat search and prediction of upcoming passes (Thanks to Patrick Strasser OE6PSE). Modified Paths: -------------- trunk/ChangeLog trunk/NEWS trunk/src/gtk-sat-selector.c trunk/src/predict-tools.c Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-07-12 21:19:22 UTC (rev 646) +++ trunk/ChangeLog 2010-08-21 06:55:00 UTC (rev 647) @@ -1,5 +1,16 @@ -2010-07-12 alexandru Csete >oz9aec at gmail.com> +2010-08-21 Alexandru Csete <oz9aec at gmail.com> + * src/gtk-sat-selector.c: + Applied patch 3050047 from Patrick Strasser OE6PSE to improve searching + in the satellite selector. + + * src/predict-tools.c: + Applied patch 3050047 from Patrick Strasser OE6PSE to include current + pass in the list of future passes. + + +2010-07-12 Alexandru Csete <oz9aec at gmail.com> + * src/mod-mgr.c: Allow docked modules to be reordered by dragging the tabs. Modified: trunk/NEWS =================================================================== --- trunk/NEWS 2010-07-12 21:19:22 UTC (rev 646) +++ trunk/NEWS 2010-08-21 06:55:00 UTC (rev 647) @@ -39,6 +39,7 @@ - Applied patch 3005548: Cut and Paste Error In print_pass.h (Thanks to Charles Suprin AA1VS). - Applied patch 3009725: Delete Explicit Call to gtk_set_locale (Thanks to Charles Suprin AA1VS). - Applied patch 3009727: Free satellite hash references (Thanks to Charles Suprin AA1VS). +- Applied patch 3050047: Improve sat search and prediction of upcoming passes (Thanks to Patrick Strasser OE6PSE) - Slightly improved UI for the single-satellite view. - Command line options for cleaning user's TLE and transponder data, see --help for list. - Satellite Map: Added shadow to satellite marker and label to enhance visual appearance Modified: trunk/src/gtk-sat-selector.c =================================================================== --- trunk/src/gtk-sat-selector.c 2010-07-12 21:19:22 UTC (rev 646) +++ trunk/src/gtk-sat-selector.c 2010-08-21 06:55:00 UTC (rev 647) @@ -28,6 +28,7 @@ /** \brief Satellite selector. * */ +#include "string.h" #include <gtk/gtk.h> #include <glib/gi18n.h> #ifdef HAVE_CONFIG_H @@ -39,13 +40,13 @@ #include "compat.h" #include "sat-cfg.h" #include "gtk-sat-selector.h" +#include "gtk-sat-tree.h" - static void gtk_sat_selector_class_init (GtkSatSelectorClass *class); static void gtk_sat_selector_init (GtkSatSelector *selector); static void gtk_sat_selector_destroy (GtkObject *object); @@ -83,7 +84,37 @@ /** \brief GtkSatSelector specific signals. */ static guint gtksatsel_signals[LAST_SIGNAL] = { 0 }; +gboolean gtk_sat_selector_search_equal_func (GtkTreeModel *model, + gint column, + const gchar *key, + GtkTreeIter *iter, + gpointer search_data) +{ + gchar *name = NULL; + gchar *match; + gchar *NULLSTR = "NULL"; + gtk_tree_model_get(model, iter, GTK_SAT_TREE_COL_NAME, &name, -1); + /* sat_log_log(SAT_LOG_LEVEL_MSG, "%s: key %s, name %s", */ + /* __FUNCTION__, */ + /* key, */ + /* (name==NULL) ? NULLSTR : name); */ + if (name == NULL){ + sat_log_log(SAT_LOG_LEVEL_MSG, "%s:%s: name is NULL", __FILE__, __FUNCTION__); + return TRUE; + } + match = strstr(name, key); + + if (match == NULL) { + //sat_log_log(SAT_LOG_LEVEL_BUG, "%s: no match", __FUNCTION__); + return TRUE; + } + else { + //sat_log_log(SAT_LOG_LEVEL_BUG, "%s: MATCH at %s", __FUNCTION__, match); + return FALSE; + } +} + GType gtk_sat_selector_get_type () { static GType gtk_sat_selector_type = 0; @@ -293,6 +324,10 @@ /* this enables automatic search */ gtk_tree_view_set_search_entry (GTK_TREE_VIEW (GTK_SAT_SELECTOR (widget)->tree), GTK_ENTRY (GTK_SAT_SELECTOR (widget)->search)); + gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW (GTK_SAT_SELECTOR (widget)->tree), + gtk_sat_selector_search_equal_func, + NULL, + NULL); gtk_table_attach (GTK_TABLE (table), GTK_SAT_SELECTOR (widget)->search, 1, 4, 0, 1, GTK_SHRINK, GTK_SHRINK, 0, 0); Modified: trunk/src/predict-tools.c =================================================================== --- trunk/src/predict-tools.c 2010-07-12 21:19:22 UTC (rev 646) +++ trunk/src/predict-tools.c 2010-08-21 06:55:00 UTC (rev 647) @@ -445,7 +445,20 @@ */ while (!done) { + /* Find los of next pass or of current pass */ + los = find_los (sat, qth, t0, maxdt); // See if a pass is ongoing aos = find_aos (sat, qth, t0, maxdt); + /* sat_log_log(SAT_LOG_LEVEL_MSG, "%s:%s:%d: found aos %f and los %f for t0=%f", */ + /* __FILE__, */ + /* __FUNCTION__, */ + /* __LINE__, */ + /* aos, */ + /* los, */ + /* t0); */ + if (aos > los) { + // los is from an currently happening pass, find previous aos + aos = find_prev_aos(sat, qth, t0); + } /* aos = 0.0 means no aos */ if (aos == 0.0) { @@ -459,7 +472,7 @@ done = TRUE; } else { - los = find_los (sat, qth, aos + 0.001, maxdt); // +1.5 min later + //los = find_los (sat, qth, aos + 0.001, maxdt); // +1.5 min later dt = los - aos; /* get time step, which will give us the max number of entries */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cs...@us...> - 2010-07-12 21:19:28
|
Revision: 646 http://gpredict.svn.sourceforge.net/gpredict/?rev=646&view=rev Author: csete Date: 2010-07-12 21:19:22 +0000 (Mon, 12 Jul 2010) Log Message: ----------- Added satellite tooltips in map view showing current SSP Lat, Lon, Az, El and time to AOS/LOS. Modified Paths: -------------- trunk/ChangeLog trunk/NEWS trunk/src/gtk-sat-map.c Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-07-12 19:46:48 UTC (rev 645) +++ trunk/ChangeLog 2010-07-12 21:19:22 UTC (rev 646) @@ -21,7 +21,11 @@ * src/gtk-polar-view.c: Added satellite tooltips showing current Az, El and time to LOS. + * src/gtk-sat-map.c: + Added satellite tooltips in map view showing current SSP Lat, Lon, Az, El + and time to AOS/LOS. + 2010-07-11 Alexandru Csete <oz9aec at gmail.com> * data/satdata: Modified: trunk/NEWS =================================================================== --- trunk/NEWS 2010-07-12 19:46:48 UTC (rev 645) +++ trunk/NEWS 2010-07-12 21:19:22 UTC (rev 646) @@ -7,6 +7,7 @@ - Sky at a glance is now more interactive. Show pass summary when mouse hovers over pass and click on pass shows the details. - Added satellite tooltips in polar view showing current Az, El and time to LOS. +- Added satellite tooltips in map view showing current SSP Lat, Lon, Az, El and time to AOS/LOS. * Feature request 2866570: Set operating mode via CAT. * Feature request 2873824: Flip Passes. * Feature request 2778735: Visual indicator for RX/TX/TRX. Modified: trunk/src/gtk-sat-map.c =================================================================== --- trunk/src/gtk-sat-map.c 2010-07-12 19:46:48 UTC (rev 645) +++ trunk/src/gtk-sat-map.c 2010-07-12 21:19:22 UTC (rev 646) @@ -102,6 +102,7 @@ static void update_selected (GtkSatMap *satmap, sat_t *sat); static void draw_grid_lines (GtkSatMap *satmap, GooCanvasItemModel *root); static void redraw_grid_lines (GtkSatMap *satmap); +static gchar *aoslos_time_to_str (GtkSatMap *satmap, sat_t *sat); static GtkVBoxClass *parent_class = NULL; static GooCanvasPoints *points1; @@ -252,6 +253,7 @@ /* create the canvas */ GTK_SAT_MAP (satmap)->canvas = goo_canvas_new (); + g_object_set (G_OBJECT (GTK_SAT_MAP (satmap)->canvas), "has-tooltip", TRUE, NULL); /* safely load a background map */ load_map_file (GTK_SAT_MAP (satmap)); @@ -1656,6 +1658,7 @@ gint *catnum; guint32 col,covcol,shadowcol; gfloat x,y; + gchar *tooltip; /* get satellite and SSP */ catnum = g_new0 (gint, 1); @@ -1696,7 +1699,17 @@ MOD_CFG_MAP_SHADOW_ALPHA, SAT_CFG_INT_MAP_SHADOW_ALPHA); + /* create tooltip */ + tooltip = g_strdup_printf("<big><b>%s</b>\n</big>"\ + "<tt>Lon: %5.1f\302\260\n" \ + "Lat: %5.1f\302\260\n" \ + " Az: %5.1f\302\260\n" \ + " El: %5.1f\302\260</tt>", + sat->nickname, + sat->ssplon, sat->ssplat, + sat->az, sat->el); + /* create satellite marker and label + shadows. We create shadows first */ obj->shadowm = goo_canvas_rect_model_new (root, x - MARKER_SIZE_HALF + 1, @@ -1713,6 +1726,7 @@ 2 * MARKER_SIZE_HALF, "fill-color-rgba", col, "stroke-color-rgba", col, + "tooltip", tooltip, NULL); obj->shadowl = goo_canvas_text_model_new (root, sat->nickname, @@ -1730,8 +1744,10 @@ GTK_ANCHOR_NORTH, "font", "Sans 8", "fill-color-rgba", col, + "tooltip", tooltip, NULL); + g_free (tooltip); g_object_set_data (G_OBJECT (obj->marker), "catnum", GINT_TO_POINTER (*catnum)); g_object_set_data (G_OBJECT (obj->label), "catnum", GINT_TO_POINTER (*catnum)); @@ -1799,6 +1815,8 @@ GooCanvasItemModel *root; gint idx; guint32 col,covcol; + gchar *tooltip; + gchar *aosstr; //gdouble sspla,ssplo; @@ -1835,6 +1853,23 @@ //sat->ssplon = ssplo; //sat->ssplat = sspla; + /* we update tooltips every time */ + aosstr = aoslos_time_to_str(satmap, sat); + tooltip = g_strdup_printf("<big><b>%s</b>\n</big>"\ + "<tt>Lon: %5.1f\302\260\n" \ + "Lat: %5.1f\302\260\n" \ + " Az: %5.1f\302\260\n" \ + " El: %5.1f\302\260\n" \ + "%s</tt>", + sat->nickname, + sat->ssplon, sat->ssplat, + sat->az, sat->el, + aosstr); + g_object_set (obj->marker, "tooltip", tooltip, NULL); + g_object_set (obj->label, "tooltip", tooltip, NULL); + g_free (tooltip); + g_free (aosstr); + lonlat_to_xy (satmap, sat->ssplon, sat->ssplat, &x, &y); /* update only if satellite has moved at least @@ -2312,3 +2347,42 @@ GTK_SAT_MAP (satmap)->ncat = 0; } + + +/** \brief Convert AOS or LOS timestamp to human readable countdown string */ +static gchar *aoslos_time_to_str (GtkSatMap *satmap, sat_t *sat) +{ + guint h,m,s; + gdouble number, now; + gchar *text = NULL; + + + now = satmap->tstamp;//get_current_daynum (); + if (sat->el > 0.0) { + number = sat->los - now; + } + else { + number = sat->aos - now; + } + + /* convert julian date to seconds */ + s = (guint) (number * 86400); + + /* extract hours */ + h = (guint) floor (s/3600); + s -= 3600*h; + + /* extract minutes */ + m = (guint) floor (s/60); + s -= 60*m; + + + if (sat->el > 0.0) { + text = g_strdup_printf (_("LOS in %d minutes"), m+60*h); + } + else { + text = g_strdup_printf (_("AOS in %d minutes"), m+60*h); + } + + return text; +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cs...@us...> - 2010-07-12 19:46:54
|
Revision: 645 http://gpredict.svn.sourceforge.net/gpredict/?rev=645&view=rev Author: csete Date: 2010-07-12 19:46:48 +0000 (Mon, 12 Jul 2010) Log Message: ----------- Added satellite tooltips in polar view showing current Az, El and time to LOS. Modified Paths: -------------- trunk/ChangeLog trunk/NEWS trunk/src/gtk-polar-view.c Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-07-12 14:32:25 UTC (rev 644) +++ trunk/ChangeLog 2010-07-12 19:46:48 UTC (rev 645) @@ -18,7 +18,10 @@ * src/sat-cfg.c: Changed default value of SKY_AT_GLANCE/COLOUR_07 to be darker. + * src/gtk-polar-view.c: + Added satellite tooltips showing current Az, El and time to LOS. + 2010-07-11 Alexandru Csete <oz9aec at gmail.com> * data/satdata: Modified: trunk/NEWS =================================================================== --- trunk/NEWS 2010-07-12 14:32:25 UTC (rev 644) +++ trunk/NEWS 2010-07-12 19:46:48 UTC (rev 645) @@ -6,6 +6,7 @@ Closes feature request 2821408. - Sky at a glance is now more interactive. Show pass summary when mouse hovers over pass and click on pass shows the details. +- Added satellite tooltips in polar view showing current Az, El and time to LOS. * Feature request 2866570: Set operating mode via CAT. * Feature request 2873824: Flip Passes. * Feature request 2778735: Visual indicator for RX/TX/TRX. Modified: trunk/src/gtk-polar-view.c =================================================================== --- trunk/src/gtk-polar-view.c 2010-07-12 14:32:25 UTC (rev 644) +++ trunk/src/gtk-polar-view.c 2010-07-12 19:46:48 UTC (rev 645) @@ -88,6 +88,7 @@ static void clear_selection (gpointer key, gpointer val, gpointer data); static GooCanvasItemModel* create_canvas_model (GtkPolarView *polv); static void get_canvas_bg_color (GtkPolarView *polv, GdkColor *color); +static gchar *los_time_to_str (GtkPolarView *polv, sat_t *sat); static GtkVBoxClass *parent_class = NULL; @@ -237,12 +238,13 @@ /* create the canvas */ GTK_POLAR_VIEW (polv)->canvas = goo_canvas_new (); + g_object_set (G_OBJECT (GTK_POLAR_VIEW (polv)->canvas), "has-tooltip", TRUE, NULL); get_canvas_bg_color (GTK_POLAR_VIEW (polv), &bg_color); gtk_widget_modify_base (GTK_POLAR_VIEW (polv)->canvas, GTK_STATE_NORMAL, &bg_color); gtk_widget_set_size_request (GTK_POLAR_VIEW (polv)->canvas, POLV_DEFAULT_SIZE, POLV_DEFAULT_SIZE); goo_canvas_set_bounds (GOO_CANVAS (GTK_POLAR_VIEW (polv)->canvas), 0, 0, - POLV_DEFAULT_SIZE, POLV_DEFAULT_SIZE); + POLV_DEFAULT_SIZE, POLV_DEFAULT_SIZE); /* connect size-request signal */ @@ -792,6 +794,8 @@ gint idx,i; gdouble now;// = get_current_daynum (); gchar *text; + gchar *losstr; + gchar *tooltip; guint32 colour; @@ -870,78 +874,48 @@ /* if sat is already on canvas */ if (obj != NULL) { - /* update sat */ + + /* update LOS count down */ + if (sat->los > 0.0) { + losstr = los_time_to_str(polv, sat); + } + else { + losstr = g_strdup_printf (_("%s\nAlways in range"), sat->nickname); + } + + /* update tooltip */ + tooltip = g_strdup_printf("<big><b>%s</b>\n</big>"\ + "<tt>Az: %5.1f\302\260\n" \ + "El: %5.1f\302\260\n" \ + "%s</tt>", + sat->nickname, + sat->az, sat->el, + losstr); + g_object_set (obj->marker, "x", x - MARKER_SIZE_HALF, "y", y - MARKER_SIZE_HALF, + "tooltip", tooltip, NULL); g_object_set (obj->label, "x", x, "y", y+2, + "tooltip", tooltip, NULL); + g_free (tooltip); + /* update selection info if satellite is selected */ if (obj->selected) { - guint h,m,s; - gchar *ch,*cm,*cs; - gdouble number, now; - - if (sat->los > 0.0) { - now = polv->tstamp;//get_current_daynum (); - number = sat->los - now; - - /* convert julian date to seconds */ - s = (guint) (number * 86400); - - /* extract hours */ - h = (guint) floor (s/3600); - s -= 3600*h; - - /* leading zero */ - if ((h > 0) && (h < 10)) - ch = g_strdup ("0"); - else - ch = g_strdup (""); - - /* extract minutes */ - m = (guint) floor (s/60); - s -= 60*m; - - /* leading zero */ - if (m < 10) - cm = g_strdup ("0"); - else - cm = g_strdup (""); - - /* leading zero */ - if (s < 10) - cs = g_strdup (":0"); - else - cs = g_strdup (":"); - - if (h > 0) { - text = g_strdup_printf (_("%s\nLOS in %s%d:%s%d%s%d"), - sat->nickname, ch, h, cm, m, cs, s); - } - else { - text = g_strdup_printf (_("%s\nLOS in %s%d%s%d"), - sat->nickname, cm, m, cs, s); - } - g_free (ch); - g_free (cm); - g_free (cs); - } - else { - text = g_strdup_printf (_("%s\nAlways in range"), sat->nickname); - } + text = g_strdup_printf ("%s\n%s",sat->nickname, losstr); g_object_set (polv->sel, "text", text, NULL); - g_free (text); } - g_free (catnum); + g_free (losstr); + g_free (catnum); // FIXME: why free here, what about else? } else { /* add sat to canvas */ @@ -957,6 +931,14 @@ MOD_CFG_POLAR_SAT_COL, SAT_CFG_INT_POLAR_SAT_COL); + /* create tooltip */ + tooltip = g_strdup_printf("<big><b>%s</b>\n</big>"\ + "<tt>Az: %5.1f\302\260\n" \ + "El: %5.1f\302\260\n" \ + "</tt>", + sat->nickname, + sat->az, sat->el); + obj->marker = goo_canvas_rect_model_new (root, x - MARKER_SIZE_HALF, y - MARKER_SIZE_HALF, @@ -964,6 +946,7 @@ 2*MARKER_SIZE_HALF, "fill-color-rgba", colour, "stroke-color-rgba", colour, + "tooltip", tooltip, NULL); obj->label = goo_canvas_text_model_new (root, sat->nickname, x, @@ -972,7 +955,10 @@ GTK_ANCHOR_NORTH, "font", "Sans 8", "fill-color-rgba", colour, + "tooltip", tooltip, NULL); + + g_free (tooltip); goo_canvas_item_model_raise (obj->marker, NULL); goo_canvas_item_model_raise (obj->label, NULL); @@ -1604,3 +1590,59 @@ GTK_POLAR_VIEW (polv)->naos = 0.0; GTK_POLAR_VIEW (polv)->ncat = 0; } + + + +/** \brief Convert LOS timestamp to human readable countdown string */ +static gchar *los_time_to_str (GtkPolarView *polv, sat_t *sat) +{ + guint h,m,s; + gchar *ch,*cm,*cs; + gdouble number, now; + gchar *text = NULL; + + + now = polv->tstamp;//get_current_daynum (); + number = sat->los - now; + + /* convert julian date to seconds */ + s = (guint) (number * 86400); + + /* extract hours */ + h = (guint) floor (s/3600); + s -= 3600*h; + + /* leading zero */ + if ((h > 0) && (h < 10)) + ch = g_strdup ("0"); + else + ch = g_strdup (""); + + /* extract minutes */ + m = (guint) floor (s/60); + s -= 60*m; + + /* leading zero */ + if (m < 10) + cm = g_strdup ("0"); + else + cm = g_strdup (""); + + /* leading zero */ + if (s < 10) + cs = g_strdup (":0"); + else + cs = g_strdup (":"); + + if (h > 0) { + text = g_strdup_printf (_("LOS in %s%d:%s%d%s%d"), ch, h, cm, m, cs, s); + } + else { + text = g_strdup_printf (_("LOS in %s%d%s%d"), cm, m, cs, s); + } + g_free (ch); + g_free (cm); + g_free (cs); + + return text; +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cs...@us...> - 2010-07-12 14:32:32
|
Revision: 644 http://gpredict.svn.sourceforge.net/gpredict/?rev=644&view=rev Author: csete Date: 2010-07-12 14:32:25 +0000 (Mon, 12 Jul 2010) Log Message: ----------- Updated. Modified Paths: -------------- trunk/ChangeLog Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-07-12 14:31:54 UTC (rev 643) +++ trunk/ChangeLog 2010-07-12 14:32:25 UTC (rev 644) @@ -12,8 +12,13 @@ * src/gtk-sky-glance.c: Implemented pass summary pop-up when mouse hovers over a pass. Works like tooltips. + Turn off anitialias for rectangles to make them look sharper. + Increase transparency of fill color. + * src/sat-cfg.c: + Changed default value of SKY_AT_GLANCE/COLOUR_07 to be darker. + 2010-07-11 Alexandru Csete <oz9aec at gmail.com> * data/satdata: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cs...@us...> - 2010-07-12 14:32:00
|
Revision: 643 http://gpredict.svn.sourceforge.net/gpredict/?rev=643&view=rev Author: csete Date: 2010-07-12 14:31:54 +0000 (Mon, 12 Jul 2010) Log Message: ----------- Turn off anitialias for rectangles to make them look sharper. Increase transparency of fill color. Modified Paths: -------------- trunk/src/gtk-sky-glance.c Modified: trunk/src/gtk-sky-glance.c =================================================================== --- trunk/src/gtk-sky-glance.c 2010-07-12 14:01:00 UTC (rev 642) +++ trunk/src/gtk-sky-glance.c 2010-07-12 14:31:54 UTC (rev 643) @@ -804,8 +804,7 @@ * \return Always TRUE to prevent further propagation of the event. * * This function is used to be notified when the mouse enters over a satellite - * pass box. When this happens the user is presented with brief info about the - * satellite pass and a suggestion to click on the box for more info. + * pass box. We could use it to highlihght the pass under the mouse. */ static gboolean on_mouse_enter (GooCanvasItem *item, GooCanvasItem *target_item, @@ -824,7 +823,6 @@ return TRUE; } - //g_print("Mouse enter: %s AOS:\n"); return TRUE; @@ -839,14 +837,14 @@ * \return Always TRUE to prevent further propagation of the event. * * This function is used to be notified when the mouse leaves a satellite - * pass box. When this happens the information about the pass is cleared. + * pass box. */ static gboolean on_mouse_leave (GooCanvasItem *item, GooCanvasItem *target_item, GdkEventCrossing *event, gpointer data) { - g_print("Mouse leave\n"); + //g_print("Mouse leave\n"); return TRUE; } @@ -955,7 +953,7 @@ *bcol = (tmp * 0x100) | 0xFF; /* fill colour is slightly transparent */ - *fcol = (tmp * 0x100) | 0xF0; + *fcol = (tmp * 0x100) | 0xA0; } @@ -1049,6 +1047,8 @@ skypass->box = goo_canvas_rect_model_new (root, 10, 10, 20, 20, /* dummy coordinates */ "stroke-color-rgba", bcol, "fill-color-rgba", fcol, + "line-width", 1.0, + "antialias", CAIRO_ANTIALIAS_NONE, "tooltip", tooltip, NULL); g_free (tooltip); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cs...@us...> - 2010-07-12 14:01:06
|
Revision: 642 http://gpredict.svn.sourceforge.net/gpredict/?rev=642&view=rev Author: csete Date: 2010-07-12 14:01:00 +0000 (Mon, 12 Jul 2010) Log Message: ----------- Changed default value of SKY_AT_GLANCE/COLOUR_07 to be darker. Modified Paths: -------------- trunk/src/sat-cfg.c Modified: trunk/src/sat-cfg.c =================================================================== --- trunk/src/sat-cfg.c 2010-07-12 13:39:19 UTC (rev 641) +++ trunk/src/sat-cfg.c 2010-07-12 14:01:00 UTC (rev 642) @@ -192,7 +192,7 @@ { "SKY_AT_GLANCE", "COLOUR_04", 0xd06b38}, { "SKY_AT_GLANCE", "COLOUR_05", 0xcf477a}, { "SKY_AT_GLANCE", "COLOUR_06", 0xbf041f}, - { "SKY_AT_GLANCE", "COLOUR_07", 0x04bf20}, + { "SKY_AT_GLANCE", "COLOUR_07", 0x688522}, { "SKY_AT_GLANCE", "COLOUR_08", 0x0420bf}, { "SKY_AT_GLANCE", "COLOUR_09", 0xa304bf}, { "SKY_AT_GLANCE", "COLOUR_10", 0x04bdbf}, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |