Release 2.2.3: By John A. Magliacane (15-Apr-2006): * PREDICT now handles -u, -t, and -q command-line options (hopefully) better than before. When these options are used and no default TLE and QTH files are found under the user's home directory, PREDICT is no longer placed into "new user" mode. This should ease the use of PREDICT in non-interactive applications (in automated scripts, etc.) where a $HOME environment is lacking or not desired. Only if a user has no QTH and TLE files under their home directory, and has passed no -q and -t arguments to PREDICT will that user now be considered a "new user". * New command-line options were added to PREDICT. The -east option causes PREDICT to display longitudes in degrees east rather than in degrees west. The -south option displays latitudes in degrees south rather than in degrees north. -west and -north options, which are the normal defaults, are also included for completeness. (Tnx: Takeshi-Okazaki, MTSAT-1R Chief Aeronautical Mission Engineer) * RS-232 output in PREDICT and Moontracker has been improved to prevent the transmission of extraneous bytes past the end-of-line characters. (Tnx: SP7HAA) * Since the bzero() function is being deprecated, all bzero() function calls were replaced by memset() in all affected code. * The accuracy of PREDICT's real-time clock displays have been improved. * A problem was corrected where the GET_SAT_POS socket command would return results as if the GET_SAT command were also sent to PREDICT. (Tnx: David Hutchinson, G8SQH) * PREDICT now returns a response ("Huh?") to clients that send unrecognized commands via the UDP socket interface instead of sending nothing. * The GET_DOPPLER socket command now returns Doppler shift information even if the satellite in question is below the local horizon. * A keyboard interactive socket interface demonstration program was added ("demo-i" under clients/samples). * "earthtrack" was updated to handle changes in xplanet version 1.0 and later. * A small bug in the orbital prediction [P] and visual calendar [V] modes of PREDICT was fixed. Before the fix, the sunlight/visibility symbol (*, +) displayed in these modes would sometimes list the point of LOS as a '*' when it should have been a '+' at the conclusion of a visible pass. * Array overflow conditions in predict.c's Print() and Daynum2String() functions were identified and fixed. * Several very minor coding changes were made to allow warning-free compilation under GCC 4.x.x. ---------------------------------------------------------------------------- Release 2.2.2: By John A. Magliacane (14-Mar-2003): * PREDICT's main menu was expanded to handle the additional program options. The main menu also now displays the text "Server Mode" when the program is invoked in socket server mode. * Orbital phase, eclipse depth, and squint angle data has been appended to the information returned to UDP client applications in response to the GET_SAT command. * The Moon's declination, Greenwich hour angle, and right ascension have been appended to the information returned to UDP clients in response to the GET_MOON command. * The Sun's declination, Greenwich hour angle, and right ascension have been appended to the information returned to UDP clients in response to the GET_SUN command. * PREDICT now returns orbital data in NASA Two-Line format to UDP clients in response to the GET_TLE command. * Added a new UDP socket command (GET_MODE) to return PREDICT's current tracking mode (single, multi, none) to networked clients. If PREDICT is operating in Single Satellite tracking mode, then the name of the satellite currently being tracked is returned by GET_MODE. * Fixed a bug that caused GET_SAT requests to fail after GET_DOPPLER requests were issued. (Tnx: KF6RFX) * Fixed a bug in "earthtrack" where latitude and longitude options sent to "xplanet" were reversed under certain circumstances. (Tnx: ZL2BSJ) * In Main Menu option [G] (Edit Ground Station Information), ground station latitude and longitude may now be entered in degree, minute, second (DMS) format in addition to decimal degrees. * Moon tracking code replaced with a more precise algorithm based on Meeus' method. * Added a lunar prediction mode that predicts passes of the Moon. * Added a solar prediction mode that predicts passes of the Sun. * Added "MoonTracker", a small background utility that directs an AZ/EL antenna array toward the position of the Moon. * The "vocalizer" feature was greatly improved. Sound samples are now read from ubiquitious .wav files, making it easier for users to create samples of their own, even in languages other than English. PREDICT now articulates numeric values in their entirety (ie: "three hundred forty nine") instead of articulating each digit individually ("three four nine") as was done previously. Alarms and additional announcements were added to alert a visual observer when a spacecraft is visible, when it enters into sunlight, and when it enters into eclipse. * Added "fodtrack", written by Luc Langermann, LX1GT. This utility permits AZ/EL antenna control using the Fodtrack hardware interface via the parallel port. * Several other coding changes were made. Linux-specific code was removed in an effort to allow easier compilation under FreeBSD, MacOS X, and other Unixes in general. * Program documentation was updated to reflect the changes and new features available in this version of PREDICT. ---------------------------------------------------------------------------- Release 2.2.1: By John A. Magliacane (14-Oct-2002): * Fixed a problem that caused PREDICT to display the last satellite twice in listings when less than the maximum number of satellites existed in predict.tle. * Fixed a problem that caused a Doppler shift of zero to be reported by PREDICT via the UDP interface in MultiTracking mode. * Several other minor "tweaks" were made. ---------------------------------------------------------------------------- Release 2.2.0: (a.k.a. The Columbus Day Release) By John A. Magliacane (12-Oct-2002): * PREDICT's satellite tracking algorithm was replaced by a more precise model based on a translation into 'C' of Dr. T.S. Kelso's SGP4/SDP4 FORTRAN and Pascal routines by Neoklis Kyriazis, 5B4AZ, and made available under the GNU General Public License through his "satcom-08" program. * PREDICT now imports, exports, and permits editing of TLE element set numbers, International Designators, and Bstar and nddot/6 drag terms in addition to all the remaining orbital data found in a two-line element set. * Earthtrack was modified so that when multi-tracking satellites, range circles are displayed 5 minutes prior to AOS through LOS. * Maximum allowable callsign length was increased to 15 characters to permit groundstation names to be used in place of 6 character callsigns. * Vocalizer will no longer send audio to the soundcard if the soundcard cannot be set to the proper sampling rate and word size. * The Single Tracking mode was completely redesigned to allow interactive selection of satellite transponder, provide real-time Doppler-compensated uplink and downlink frequency information, and support for a transponder database. Spacecraft antenna squint angle, propagation delay, echo, and satellite eclipse depth information are also now available. See the NEWS file for additional information. * Orbital predictions now report squint angles instead of orbit numbers if ALAT/ALON data is available in the transponder database. * A Visual BASIC Windows-based client application has been contributed by Steve Fraser, VK5ASF. Steve also contributed some small coding changes that allow PREDICT to be successfully invoked by rc.local upon startup. * Bent Bagger, OZ6BL, contributed a small change to get_response() in the client demo.c program. The modification recognizes the absence of a PREDICT server, and displays an appropriate error message. The previous method set an alarm and waited for a timeout to occur. * A bug in the configure script was fixed. * Lots of other small coding changes were made. ---------------------------------------------------------------------------- Release 2.1.6: (a.k.a. The 11th Anniversary Release) By John A. Magliacane (08-Jul-2002): * Buffering added to I/O functions in the vocalizer utility for better efficiency and less CPU load. * Fixed errors in main() (predict.c) that prevented the vocalizer utility from ever being invoked by PREDICT. * Modified the earthtrack utility for compatibility with versions of xplanet more recent than 0.82. * Serial port configuration for antenna rotator interface control is now automatically set within PREDICT to the EasyComm 2 protocol standard (9600 bps, 8N1, no handshaking) when the -a or -a1 command-line options are invoked. * -a1 command-line option added. It works like the -a option, except it sends tracking data to the specified serial port at least once per second, whether the data has changed since the last transmission or not. These "keepalives" are required for interfaces such as the ones by Suding Associates, Inc. that throttle back to manual mode if updates aren't received on a regular and frequent basis. * "gsat" by Xavier Crehueras, EB3CZS, has been updated to version 1.0.0. The new version adds Doppler control for beacon frequencies, support for a satellite frequency database, and automatic frequency selection. In addition, an azimuth/elevation graphic window is now included, and automatic rotator control via plugins is now supported. * The destination directory for PREDICT's executables may now be specified to something other than the regular default (/usr/local/bin) when ./configure is invoked. See the README file for details. * Main menu option [I] (Program Information) was changed to provide information about which files were loaded by PREDICT, if a soundcard is present, if network server mode is enabled, if rotator AutoTracking is enabled, and if so, what serial port is used, how often is data sent, etc. * The documentation was updated, and several other small coding changes were made. ---------------------------------------------------------------------------- Release 2.1.5: (a.k.a. The "Palindrome Year" Release) By John A. Magliacane (03-Jan-2002): * -n command-line switch was added by Xavier Crehueras, EB3CZS, to permit an alternate network port to be specified when running PREDICT in server mode. This flexibility permits multiple instances of PREDICT to run in server mode on a single host without interaction. Each instance of PREDICT can then operate from a different orbital database, and supply the tracking data generated to different clients. * -p command-line switch was added to permit a set of orbital predictions for a single pass to be generated by PREDICT and obtained solely through the command line. The output may be directed to a file if a name is specified through the -o switch. * The output of the -f command-line was modified to be consistent with that of the the newly added -p switch. Options to the -f switch were enhanced to permit a list of satellite positions to be generated in resolutions of one every second or one every minute. * The GET_SAT_POS socket command now provides date/time information in both ASCII and Unix Time, as well as range, orbit number, and sunlight visibility information in addition to azimuth, elevation, and sub-satellite point latitude and longitude (which are now ints instead of floats). * A new socket command called PREDICT was added to provide orbital prediction information through the socket interface. * Due to a warning given by gcc version 2.95.3, the use of tmpnam() was replaced by mkstemp() in predict.c. * Modified the "kepupdate" script to download Keplerian element data from celestrak.com using the wget command and the http protocol since celestrak.com no longer provides Keplerians via anonymous ftp. * The xpredict script was modified to include more virtual terminal selections. * Version 0.9.0 of "gsat" by Xavier Crehueras, EB3CZS, is included. Several new features, including automatic Doppler correction via plugins, is included. Details for writing and customizing plugins is provided. * Added a new "-x" command line option to "earthtrack" to allow passing extra parameters directly to xearth and xplanet (contributed by Tom Busch, WB8WOR). * The documentation was updated, and several other small coding changes were made. ---------------------------------------------------------------------------- Release 2.1.4: by John A. Magliacane (28-Jun-2001): * Fixed an array overflow problem in the Solar Illumination Prediction mode. * Pressing [R] in either the Single or Multi-Tracking mode forces PREDICT to re-read the orbital database. This can be useful if the database is updated manually or by means other than through PREDICT's update options while PREDICT is still running, and eliminates the need to re-start the program under such conditions. * Real-time tracking is no longer attempted for satellites that appear to have decayed from orbit. * Several new options were added to the -f command-line switch. If no starting or ending date/time is specified, a single line of output corresponding to the current date/time is produced. If the starting date/time is replaced by a number (n) preceded by a '+' symbol (ie. +10), output is produced starting at the current date/time, and ending at the current date/time plus 'n' seconds. * Multiple Keplerian element data files may now be used as arguments for the -u command-line switch. (predict -u file1 file2 file3) * Several network client applications were added or otherwise revised. "earthtrack" was modified to work not only with xearth, but with xplanet as well. When used with xplanet, earthtrack provides photo-realistic views of the earth from the perspective of the spacecraft being tracked by PREDICT. Very nice! An updated version of gsat (version 0.8.0) is also included, as well as a small utility to force a reload of PREDICT's orbital database through the UDP interface. * The configuration and compilation process has been modified slightly to reduce confusion during installation. Please check the README file for instructions! * An updated Linux Software Map entry was issued, and the new version of PREDICT was uploaded to: ftp://ftp.amsat.org/amsat/software/Linux/predict-2.1.4.tar.gz and ftp://ftp.metalab.unc.edu/pub/linux/apps/ham/predict-2.1.4.tar.gz ---------------------------------------------------------------------------- Release 2.1.3: (a.k.a. "The New Millennium Edition") by John A. Magliacane (06-Jan-2001): * Fixed several small math errors. One goes back to some very old (and widely used) satellite tracking code! Thanks to Jordi Mas for pointing them out and providing corrections. Thanks also to Andreas Trotschel for pointing out an error in the size of the global output[] array. * Portions of the MultiTrack() and SingleTrack() functions were re-coded for greater simplicity and to permit some new socket features to be added. * Added many new socket commands: RELOAD_TLE: forces a running version of PREDICT to re-read its orbital database on the fly. GET_SUN: returns the current azimuth and elevation headings of the Sun. GET_MOON: returns the current azimuth and elevation headings of the Moon. GET_QTH: returns the ground station's callsign, latitude, longitude, and altitude above sea level. GET_VERSION: returns PREDICT's version number. GET_TLE: returns Keplerian orbital data for a satellite based on its name or object number. GET_TIME: returns the current UTC date/time as reported by the server in the form of the number of seconds since 00:00:00 UTC on January 1, 1970 (Unix Time). GET_TIME$: returns the current UTC date/time as reported by the server in the form of Fri Dec 22 22:37:05 2000. GET_SAT_POS: returns the latitude, longitude, azimuth and elevation headings for a satellite at the time (or starting and ending times) specified. The GET_SAT command now returns the current slant-range to the satellite (in kilometers), the satellite's altitude, orbital velocity, current orbit number, and sunlight visibility information in addition to the tracking data previously provided. The "Next AOS" parameter previously returned has been changed to "Next Event Time", which corresponds to the Next AOS time if the satellite is not in range, or the LOS Time for satellites that are in range. Geostationary satellites, or satellites in orbits that do not permit passes above the ground station return a 0 for "Next Event Time". The GET_LIST command now returns ALL the satellite names in PREDICT's orbital database as a single string, and must be parsed by the client to pull out individual names. Earlier versions of PREDICT returned only one name at a time when the GET_LIST command was invoked. In addition, satellite names returned by GET_LIST are now full-length strings, and are no longer abbreviated by the program in any way. * The GET_DOPPLER command no longer echos back the name of the satellite for which the Doppler information was requested. * The socket documentation and "demo.c" program were significantly updated. * "demo.pl" written in Perl by Rich Parry, W9IF, is included to act as a template for those interested in writing client applications in Perl. * The main program documentation was re-organized around a common document written in groff, thereby providing a system man page as well as postscript, PDF, and ASCII documents having identical content. The HTML documentation was eliminated. * Added a new command-line option: -a When followed by a serial port device (eg: predict -a /dev/ttyS0), PREDICT sends real-time tracking data to the serial port specified in the form of: "AZ241.0 EL26.0\r\n" (EasyComm standard) when in the single satellite tracking mode. Updates are sent as the values for azimuth and elevation change over time. This feature is used to permit PREDICT to control an antenna rotator through an interface developed by Vicenzo Mezzalira, IW3FOL . Thanks to Vittorio Benvenuti, I3VFJ for contributing this code to PREDICT. * Added a new command-line option: -f When followed by a satellite name or object number, a date/time (in Unix Time), or a starting and ending date/time, the corresponding latitude, longitude, azimuth, and elevation headings of the satellite are returned by the program. This permits PREDICT to be invoked within other applications that need to determine the location of a satellite at a particular point in time, such as the location of where a CCD camera image was taken by a Pacsat satellite based on its timestamp. * Added a new line to the xpredict script to allow it to run under newer Linux distributions. Users need to select (uncomment) one of the lines in the script depending on their termcap settings. * Included the source code for the xforms-based graphical real-time satellite tracking display program "map" by Ivan Galysh, KD4HBO under clients/map. * Included the source code for the GTK-based graphical real-time satellite tracking display program "gsat" by Xavier Crehueras, EB3CZS under clients/gsat. * Included the source code for "earthtrack", a utility that permits the real-time display of satellite locations using the "xearth" program. It is located under clients/earthtrack. * An updated Linux Software Map entry was issued, and the new version of PREDICT was uploaded to: ftp://ftp.amsat.org/amsat/software/Linux/predict-2.1.3.tar.gz and ftp://ftp.metalab.unc.edu/pub/linux/apps/ham/predict-2.1.3.tar.gz ---------------------------------------------------------------------------- Release 2.1.2: by John A. Magliacane (17-Jun-2000): * Several small bugs in the KepCheck() and SaveTLE() functions of predict.c were identified and repaired. The problems centered on the fact that unsigned chars were used to accumulate TLE checksums. Occasionally, the checksums exceeded the capacity of an unsigned char, and rolled over through zero as a result. These variables were changed to unsigned integers. * A small problem in the AutoUpdate() function in predict.c was identified and fixed. Occasionally, Keplerian data for a satellite would not update if it had the same reference epoch as that in PREDICT's orbital database. This problem was the result of extremely small rounding errors introduced by the complier that caused intermittent logic errors when trying to compare two double precision floats for equality. This problem was solved by changing these variables from doubles to floats. * The array "filename" in the function sayfile() in vocalizer.c was increased in size from 40 to 80 bytes. Before the change, this array could overflow, causing a halt in the vocalizer routine on some machines before the proper end of the articulated message. * A #define was added to the geosat.c program to declare a value of PI for those compilers/platforms that require it being defined. * The -T option in the xpredict script was changed to -title. * An updated Linux Software Map entry was issued, and the new version of PREDICT was uploaded to: ftp://ftp.amsat.org/amsat/software/Linux/predict-2.1.2.tar.gz and ftp://ftp.metalab.unc.edu/pub/linux/apps/ham/predict-2.1.2.tar.gz ---------------------------------------------------------------------------- Release 2.1.1: by John A. Magliacane (03-Apr-2000): * A few bugs in the "installer" program were fixed. * The Keplerian "torture test" in predict.c was a bit too brutal for some element sets. The check for a '-' on position 59 of TLE line 1 was eliminated since some element sets have a '+' in that position. * An updated Linux Software Map entry was issued, and the new version of PREDICT was uploaded to: ftp://ftp.amsat.org/amsat/software/Linux/predict-2.1.1.tar.gz and ftp://ftp.metalab.unc.edu/pub/linux/apps/ham/predict-2.1.1.tar.gz ---------------------------------------------------------------------------- Release 2.1.0: by John A. Magliacane (01-Apr-2000): * A solar illumination feature was added to predict the percentage of time a satellite spends in sunlight per day. * Orbital predictions for satellites that appear to have decayed since the last Keplerian orbital update are no longer attempted by the program. * Date and time used to start orbital predictions may now be abbreviated to Day/Month/Year only (00:00:00 is assumed). * System clock/calendar is now read to millisecond precision, permitting more "lively" real-time tracking mode displays. * "vocalizer" code was changed to use a slightly different (better) approach towards initializing and sending data to the system soundcard. * Socket-based server code was contributed by Ivan Galysh, KD4HBO. It allows PREDICT to export real-time tracking data for all 24 satellites to external client programs, such as automatic antenna rotator controllers, graphical map display programs, or TX/RX tuning controllers. The server features are activated by invoking PREDICT with a -s switch. Communication between server and clients is by way of the UDP protocol. Real-time data is exported by PREDICT in both the single satellite and multi-satellite tracking modes. * The command-line parsing code was modified to prevent segmentation faults from occurring if command-line options are incorrectly issued. * Some minor coding changes were made. * An updated Linux Software Map entry was issued, and the new version of PREDICT was uploaded to: ftp://ftp.amsat.org/amsat/software/Linux/predict-2.1.0.tar.gz and ftp://ftp.metalab.unc.edu/pub/linux/apps/ham/predict-2.1.0.tar.gz ---------------------------------------------------------------------------- Release 2.0.1: by John A. Magliacane (02-Jan-2000): * Added this file. :-) * Replaced the printw() calls with addstr() calls in the Print() function. This may end the segmentation faults previously encountered when using ncurses versions earlier than 4.2. * Increased the capacity for supporting callsigns longer than 5 characters, even though I thought I had designed the program to handle 6! Through a series of "well-planned errors", callsigns longer than 5 characters caused all other QTH data entered through main menu option [G] to be set to zero. Also modified the ReadDataFiles() function to chop off the character appended to the callsign. * Drastically changed the installation program. Instead of having the installation program modify the source code for predict and vocalizer depending on the system hardware and installation directory chosen by the user, the installation program now writes all necessary information to a pair of .h files that are #included in the source code for both programs. (Why I didn't think of it earlier, I'll never know...) * Ported source code (with all the 2.0.1 modifications) to DOS using Caldera's DR-DOS 7.02 and a DJGPP 32-bit software developing environment. The vocalizer routines were intentionally left out (DOS can't multi-task). The initial DOS version has been set to 2.0.1d rather than 2.0.0 to reflect the small bug fixes it contains over the original Linux version, with the 'd' representing the fact that it's a DOS version. The DOS version contains full source code plus a pre-compiled binary for Intel CPUs as well as a protected mode driver. It was uploaded to: ftp://ftp.amsat.org/amsat/software/PC/tracking/predict2.zip * Uploaded the latest release to: ftp://ftp.amsat.org/amsat/software/Linux/predict-2.0.1.tar.gz