[Gpredict-svn] SF.net SVN: gpredict:[886] trunk
Real time satellite tracking and orbit prediction
Status: Beta
Brought to you by:
csete
|
From: <aa...@us...> - 2011-08-20 21:24:56
|
Revision: 886
http://gpredict.svn.sourceforge.net/gpredict/?rev=886&view=rev
Author: aa1vs
Date: 2011-08-20 21:24:50 +0000 (Sat, 20 Aug 2011)
Log Message:
-----------
Updates satellite name and nickname if of form YYYY-NNNAAA indicating first TLE downloaded before celestrak used given name and improves error reporting.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/tle-update.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2011-08-09 23:35:43 UTC (rev 885)
+++ trunk/ChangeLog 2011-08-20 21:24:50 UTC (rev 886)
@@ -1,3 +1,10 @@
+2011-08-20 Charles Suprin <hamaa1vs at gmail.com>
+
+ * ChangeLog
+ * src/tle-update.c
+ Updates satellite name and nickname if of form YYYY-NNNAAA indicating first TLE downloaded before celestrak used given name and improves error reporting.
+
+
2011-08-09 Charles Suprin <hamaa1vs at gmail.com>
* ChangeLog
Modified: trunk/src/tle-update.c
===================================================================
--- trunk/src/tle-update.c 2011-08-09 23:35:43 UTC (rev 885)
+++ trunk/src/tle-update.c 2011-08-20 21:24:50 UTC (rev 886)
@@ -636,6 +636,10 @@
}
fclose (outfile);
+ } else {
+ sat_log_log (SAT_LOG_LEVEL_MSG,
+ _("%s: Failed to open %s preventing update"),
+ __FUNCTION__, locfile);
}
/* update progress indicator */
if (!silent && (progress != NULL)) {
@@ -981,10 +985,11 @@
new_tle_t *ntle;
GError *error = NULL;
GKeyFile *satdata;
- gchar *tlestr1, *tlestr2, *rawtle;
+ gchar *tlestr1, *tlestr2, *rawtle, *satname, *satnickname;
gchar *cfgstr;
GIOChannel *cfgfile;
gsize length, written;
+ gboolean updateddata;
/* open input file (file containing old tle) */
@@ -1029,6 +1034,8 @@
/* get TLE data */
tlestr1 = g_key_file_get_string (satdata, "Satellite", "TLE1", NULL);
tlestr2 = g_key_file_get_string (satdata, "Satellite", "TLE2", NULL);
+ satname = g_key_file_get_string (satdata, "Satellite", "NAME", NULL);
+ satnickname = g_key_file_get_string (satdata, "Satellite", "NAME", NULL);
rawtle = g_strconcat (tlestr1, tlestr2, NULL);
if (!Good_Elements (rawtle)) {
@@ -1041,13 +1048,37 @@
g_free (tlestr1);
g_free (tlestr2);
g_free (rawtle);
-
+ updateddata = FALSE;
+ if (ntle->satname != NULL) {
+ /* when a satellite first appears in the elements it is sometimes refered to by the
+ international designator which is awkward after it is given a name */
+ if (!g_regex_match_simple ("\\d{4,}-\\d{3,}",ntle->satname,0,0)) {
+
+ if (g_regex_match_simple ("\\d{4,}-\\d{3,}",satname,0,0)) {
+ g_key_file_set_string (satdata, "Satellite", "NAME", ntle->satname);
+ updateddata = TRUE;
+ }
+
+ /* FIXME what to do about nickname Possibilities: */
+ /* clobber with name */
+ /* clobber if nickname and name were same before */
+ /* clobber if international designator */
+ if (g_regex_match_simple ("\\d{4,}-\\d{3,}",satnickname,0,0)) {
+ g_key_file_set_string (satdata, "Satellite", "NICKNAME", ntle->satname);
+ updateddata = TRUE;
+ }
+ }
+ }
if (tle.epoch < ntle->epoch) {
/* new data is newer than what we already have */
/* store new data */
g_key_file_set_string (satdata, "Satellite", "TLE1", ntle->line1);
g_key_file_set_string (satdata, "Satellite", "TLE2", ntle->line2);
+ updated = TRUE;
+ }
+
+ if (updateddata ==TRUE) {
/* convert configuration data struct to charachter string */
cfgstr = g_key_file_to_data (satdata, &length, NULL); /* this function never reports error */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|