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