├── .gitignore ├── .version ├── CHANGES ├── COPYING ├── CREDITS ├── HISTORY ├── Makefile ├── NEWS ├── README ├── build ├── clean ├── clients ├── WinPredictClient │ ├── README.txt │ └── frmWinPredictClient.frm ├── earthtrack │ ├── INSTALL │ ├── README │ ├── build │ ├── earthtrack-old.c │ ├── earthtrack-really-old.c │ └── earthtrack.c ├── gsat-1.1.0 │ ├── ABOUT-NLS │ ├── AUTHORS │ ├── COPYING │ ├── ChangeLog │ ├── INSTALL │ ├── Makefile │ ├── Makefile.am │ ├── Makefile.in │ ├── NEWS │ ├── Plugin_API │ ├── README │ ├── acconfig.h │ ├── aclocal.m4 │ ├── autogen.sh │ ├── config.cache │ ├── config.guess │ ├── config.h │ ├── config.h.in │ ├── config.log │ ├── config.status │ ├── config.sub │ ├── configure │ ├── configure.in │ ├── gsat.db │ ├── gsat.glade │ ├── gsat.prefs │ ├── install-sh │ ├── intl │ │ ├── ChangeLog │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── VERSION │ │ ├── bindtextdom.c │ │ ├── config.charset │ │ ├── dcgettext.c │ │ ├── dcigettext.c │ │ ├── dcngettext.c │ │ ├── dgettext.c │ │ ├── dngettext.c │ │ ├── explodename.c │ │ ├── finddomain.c │ │ ├── gettext.c │ │ ├── gettext.h │ │ ├── gettextP.h │ │ ├── hash-string.h │ │ ├── intl-compat.c │ │ ├── l10nflist.c │ │ ├── libgettext.h │ │ ├── libgnuintl.h │ │ ├── loadinfo.h │ │ ├── loadmsgcat.c │ │ ├── localcharset.c │ │ ├── locale.alias │ │ ├── localealias.c │ │ ├── ngettext.c │ │ ├── plural.c │ │ ├── plural.y │ │ ├── ref-add.sin │ │ ├── ref-del.sin │ │ └── textdomain.c │ ├── missing │ ├── mkinstalldirs │ ├── plugins │ │ ├── FT-736_plugin.txt │ │ ├── Makefile │ │ ├── radio_FT736.c │ │ ├── radio_FT817.c │ │ ├── radio_ICR10-2.c │ │ ├── radio_ICR10-old.c │ │ ├── radio_ICR10.c │ │ ├── radio_PCR100.c │ │ ├── radio_TMD700.c │ │ ├── radio_print.c │ │ ├── radio_test.c │ │ ├── rotor_pictrack.c │ │ └── rotor_print.c │ ├── po │ │ ├── ChangeLog │ │ ├── Makefile │ │ ├── Makefile.in │ │ ├── Makefile.in.in │ │ ├── POTFILES │ │ ├── POTFILES.in │ │ └── gsat.pot │ ├── src │ │ ├── .deps │ │ │ ├── callbacks.P │ │ │ ├── comms.P │ │ │ ├── db.P │ │ │ ├── interface.P │ │ │ ├── main.P │ │ │ ├── plugins.P │ │ │ ├── prefs.P │ │ │ └── support.P │ │ ├── Makefile │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── callbacks.c │ │ ├── callbacks.h │ │ ├── comms.c │ │ ├── comms.h │ │ ├── db.c │ │ ├── db.h │ │ ├── globals.h │ │ ├── graphics.h │ │ ├── interface.c │ │ ├── interface.h │ │ ├── main.c │ │ ├── plugins.c │ │ ├── plugins.h │ │ ├── prefs.c │ │ ├── prefs.h │ │ ├── support.c │ │ └── support.h │ ├── stamp-h │ └── stamp-h.in ├── kep_reload │ ├── README │ ├── build │ ├── install │ ├── kep_reload.c │ └── kepupdate ├── map │ ├── CHANGES │ ├── COPYING │ ├── README │ ├── build │ ├── map.c │ ├── map.h │ ├── map_cb.c │ ├── map_main.c │ └── world_fill.h └── samples │ ├── README │ ├── build │ ├── demo-i │ ├── demo-i.c │ ├── demo.c │ └── perl │ ├── README │ ├── demo.pl │ └── kenwood_d700.pl ├── configure ├── default ├── predict.db ├── predict.qth └── predict.tle ├── docs ├── man │ ├── docmaker │ ├── predict.1 │ └── predict.man ├── pdf │ └── predict.pdf ├── postscript │ └── predict.ps └── text │ └── predict.txt ├── installer.c ├── predict-2.2.3.lsm ├── predict.c ├── uninstall ├── utils ├── fodtrack-0.1 │ ├── LICENSE │ ├── README │ ├── fodtrack.8 │ ├── fodtrack.c │ ├── fodtrack.conf │ ├── fodtrack.conf.5 │ └── install.sh ├── geosat │ ├── INSTALL │ ├── README │ ├── build │ └── geosat.c └── moontracker │ ├── README │ ├── build │ ├── install │ └── moontracker.c ├── vocalizer ├── alarm.wav ├── approaching.wav ├── azimuth.wav ├── build ├── eclipse.wav ├── eight.wav ├── eighteen.wav ├── eighty.wav ├── elevation.wav ├── eleven.wav ├── fifteen.wav ├── fifty.wav ├── five.wav ├── forty.wav ├── four.wav ├── fourteen.wav ├── hundred.wav ├── intro.wav ├── los.wav ├── nine.wav ├── nineteen.wav ├── ninety.wav ├── one.wav ├── receding.wav ├── seven.wav ├── seventeen.wav ├── seventy.wav ├── six.wav ├── sixteen.wav ├── sixty.wav ├── sunlight.wav ├── ten.wav ├── thirteen.wav ├── thirty.wav ├── three.wav ├── twelve.wav ├── twenty.wav ├── two.wav ├── visible.wav ├── vocalizer.c └── zero.wav └── xpredict /.gitignore: -------------------------------------------------------------------------------- 1 | /installer 2 | /predict 3 | /vocalizer/vocalizer.h 4 | /predict.h 5 | -------------------------------------------------------------------------------- /.version: -------------------------------------------------------------------------------- 1 | 2.2.3 2 | -------------------------------------------------------------------------------- /CREDITS: -------------------------------------------------------------------------------- 1 | ************* 2 | * Credits * 3 | ************* 4 | 5 | SGP4/SDP4 models and sun/moon position algorithms used in this 6 | version of PREDICT were derived from "satcom-08", written by 7 | Neoklis Kyriazis, 5B4AZ, and released in 2002 under the GNU 8 | General Public License. Parts of "satcom-08" were derived 9 | through a translation into 'C' of SGP4 and SDP4 code written 10 | originally in FORTRAN and Pascal by Dr. T.S. Kelso. Dr. Kelso's 11 | code is available on his web site at http://www.celestrak.com/. 12 | 13 | Socket-based server code and the "map" client application were 14 | contributed by Ivan Galysh, KD4HBO on 10-Jan-2000. 15 | 16 | PIC/TRACK antenna rotator control code was contributed by 17 | Vittorio Benvenuti, I3VFJ on 13-Jul-2000. 18 | 19 | The "gsat" client was contributed by Xavier Crehueras, EB3CZS. 20 | 21 | The Perl client demonstration program was contributed by Rich 22 | Parry, W9IF. 23 | 24 | The WinPredictClient was contributed by Steve Fraser, VK5ASF. 25 | 26 | The concept of using "xearth" as a graphical display for PREDICT 27 | was originally conceived by Wade Hampton (that later developed 28 | into "earthtrack"). 29 | 30 | Many others have contributed code to the project, including 31 | Bent Bagger OZ6BL, Tom Busch WB8WOR, Steve Fraser VK5ASF, 32 | Xavier Crehueras, EB3CZS, Takeshi-Okazaki (Satellite Engineer 33 | for MTSAT-1R (HIMAWARI 6)), and others. 34 | 35 | Calculations for squint angle were adopted from trk-0.4.1 by Lapo 36 | Pieri, IK5NAX. 37 | 38 | PREDICT is also the product of many others who have contributed 39 | bug reports, bug fixes, helpful suggestions, and positive support. 40 | 41 | 42 | -- 43 | John A. Magliacane, KD2BD 44 | Lead Developer 45 | kd2bd@amsat.org 46 | November 2005 47 | 48 | -------------------------------------------------------------------------------- /HISTORY: -------------------------------------------------------------------------------- 1 | ====================== 2 | The History of PREDICT 3 | ====================== 4 | 5 | Work on PREDICT started on May 26, 1991 with the purpose of creating a 6 | replacement for QUIKTRAK software that ran on the Commodore 64 home 7 | computer. PREDICT was originally written in C and compiled using a 8 | "Super C" compiler. After the program was completed and found to be 9 | useful, PREDICT was then ported to several Unix machines and then to 10 | DOS using a Borland Turbo C++ compiler. The DOS version was completed 11 | in May 1994 and was the first version of PREDICT released to the public. 12 | PREDICT was later ported to the Linux operating system in 1995 and 13 | released as freeware as a pre-compiled a.out dynamically linked 14 | binary in 1996. 15 | 16 | Through years of daily use, PREDICT was found to be reliable and accurate, 17 | and only minor changes were made to the program until 1999 when major 18 | portions were re-written from scratch and many new features were added. 19 | 20 | The release of PREDICT version 2.0.0 in December 1999 represents the 21 | second major release of the program. 22 | 23 | Further details regarding the history of PREDICT are available in the 24 | July 2000 (Science and Engineering) issue of "Linux Journal" magazine. 25 | 26 | The release of PREDICT version 2.2.0 in October 2002 represents the 27 | third major release of the program. 28 | 29 | This version of PREDICT was written under Slackware Linux on a 100 MHz 30 | Pentium-based PC with 16 megabytes of RAM using the "vi" editor. 31 | 32 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Create the predict.h file with something like: 2 | # char *predictpath={"/Users/chris/Projects/hq/smd/sattrack/predict-2.2.3/"}, soundcard=0, *version={"2.2.3"}; 3 | # TODO: 4 | # - Install to /usr/local/... by default 5 | # - Punting on soundcard and vocalizer for mac 6 | 7 | default: predict 8 | 9 | predict.h: 10 | echo "char *predictpath = {\"`pwd`\"};" > predict.h 11 | echo "char soundcard = 0;" >> predict.h 12 | echo "char *version = {\"`cat .version`\"};" >> predict.h 13 | 14 | 15 | predict: predict.c predict.h 16 | cc -Wall -fomit-frame-pointer -lm -lncurses -pthread predict.c -o predict 17 | 18 | 19 | 20 | # There's a 'clean' script that I don't know enough about yet 21 | myclean: 22 | echo "Removing installer predict.h predict..." 23 | rm -f installer predict.h predict 24 | 25 | -------------------------------------------------------------------------------- /NEWS: -------------------------------------------------------------------------------- 1 | PREDICT 2.2.0 Release 2 | ===================== 3 | The major revisions in PREDICT 2.2.0 include the use of 4 | SGP4/SDP4 orbital models for improved tracking accuracy, 5 | as well as a re-written Single Satellite Tracking Mode 6 | to provide more useful real-time satellite communications 7 | data. 8 | 9 | 10 | New Orbital Models 11 | ================== 12 | The simplified orbital model used in previous versions 13 | of PREDICT provided very accurate and dependable results 14 | for the majority of users, but was not quite good enough 15 | for more demanding applications at NASA. 16 | 17 | In July 2002, a test was performed on the accuracy of the 18 | orbital model used in PREDICT. The test was performed by 19 | a software engineer working at Edwards Airforce Base in 20 | California, and involved comparing data provided by PREDICT's 21 | Calc() and PreCalc() functions to that of a radar system 22 | used to track the International Space Station. Ranging 23 | data from the radar was taken every 50 milliseconds for 24 | the duration of the pass. 25 | 26 | The error in azimuth was found to be almost zero at AOS, and 27 | increased to 0.3 degrees over the duration of the pass. The 28 | elevation was about 0.2 degrees lower than that measured by 29 | radar for the entire pass. The calculated range was approximately 30 | 7000 meters low at AOS, and approximately 7000 meters high at 31 | LOS with a crossover at TCA. 32 | 33 | 34 | New Single Satellite Tracking Mode 35 | ================================== 36 | The Single Satellite Tracking Mode has been completely revised 37 | in PREDICT version 2.2.0. PREDICT now supports a database of 38 | satellite transponder data so that the program can provide 39 | path loss and Doppler-corrected uplink and downlink frequency 40 | information in real-time. For satellites containing linear 41 | transponders, uplink and downlink frequencies may be adjusted 42 | by pressing the '<' and '>' keys to tune down across the 43 | transponder in 1 kHz steps, or the ',' and '.' keys (unshifted 44 | '<' and '>') to tune in 100 Hz steps. Switching between 45 | transponders may be accomplished by pressing the SPACE bar. 46 | 47 | Eclipse depth, an angle representing how deep a satellite is 48 | in solar eclipse, is also provided. Eclipse depth is positive 49 | when the spacecraft is in eclipse, and negative when it is in 50 | sunlight. Spacecraft antenna squint angle is provided if 51 | ALAT/ALON (spacecraft attitude coordinates) parameters are 52 | included in the transponder database file. 53 | 54 | 55 | Transponder Database 56 | ==================== 57 | When PREDICT version 2.2.0 is initially run, a default transponder 58 | database file (predict.db) is copied into the user's $HOME/.predict 59 | directory. At present, the database provides for many new features, 60 | som of which have not been completely implemented by PREDICT in 61 | this early release of the 2.2.x run. The most glaring omission 62 | is lack of a facility to edit or modify the database file. For 63 | the time being, it may be edited by hand if care is excercised. 64 | 65 | The format for the database file is as follows. Using NOAA-17 66 | as an example: 67 | 68 | NOAA-17 Name of satellite 69 | 27453 Object number (must match predict.tle) 70 | No alat/alon ALAT/ALON spacecraft attitude information 71 | APT Downlink Description of transmitter/transponder 72 | 0.0, 0.0 Uplink passband limits in MHz (0.0 = no uplink) 73 | 137.620, 137.620 Corresponding downlink passband limits (single downlink) 74 | No weekly schedule Days of the week this transponder is active 75 | No orbital schedule Orbital phase when this transponder is active 76 | HRPT Downlink Description of second transmitter/transponder 77 | 0.0, 0.0 Uplink passband limits (low end limit, high end) 78 | 1707.0, 1707.0 Corresponding downlink passband limits (single downlink) 79 | No weekly schedule Days of the week this transponder is active 80 | No orbital schedule Orbital phase when this transponder is active 81 | end End of data for this satellite 82 | 83 | OSCAR-29 contains linear (inverting) as well as digital (Pacsat) 84 | transponders: 85 | 86 | OSCAR-29 87 | 24278 88 | No alat/alon 89 | Mode JA Transponder 90 | 145.900, 146.000 91 | 435.900, 435.800 92 | No weekly schedule 93 | No orbital schedule 94 | Mode JD Channel A 95 | 145.850, 145.850 96 | 435.910, 435.910 97 | No weekly schedule 98 | No orbital schedule 99 | Mode JD Channel B 100 | 145.870, 145.870 101 | 435.910, 435.910 102 | No weekly schedule 103 | No orbital schedule 104 | Mode JD Channel C 105 | 145.910, 145.910 106 | 435.910, 435.910 107 | No weekly schedule 108 | No orbital schedule 109 | end 110 | 111 | Weekly and orbital schedules have not yet been implemented in 112 | PREDICT 2.2.0, so for the time being, entries for these parameters 113 | should begin with the word "No". ALAT/ALON should be entered as 114 | 30.0, 0.0 for alat=30.0 and alon=0.0. See $HOME/.predict/predict.db 115 | for further examples. 116 | 117 | Entries in predict.db need not be in the same order as they appear 118 | in predict.tle. Satellite names need not match either, but the 119 | object numbers in predict.db must be correct. predict.db may contain 120 | more satellite entries than those appearing in predict.tle (normally 24). 121 | PREDICT reads the entire database file, and reads only the information 122 | that applies to the satellites in the predict.tle file in use at the 123 | time. If no transponder data is available, or if a satellite contains 124 | no communication transponders, the Single Satellite tracking mode 125 | screen is modified accordingly. 126 | 127 | Future revisions of PREDICT will likely include a database editor 128 | as well as possible modifications to the format of the database. 129 | 130 | 131 | Other changes 132 | ============= 133 | PREDICT now installs into a directory whose name includes the revision 134 | number (ie: predict-2.2.0). 135 | 136 | Despite the major revisions to the tracking code, all other program 137 | functions, with the exception of the Single Satellite Tracking Mode, 138 | should act as they did in earlier versions. 139 | 140 | 141 | -- 142 | John, KD2BD 143 | October 12, 2002 144 | 145 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | ========================= 2 | PREDICT QUICK START GUIDE 3 | ========================= 4 | 5 | SYSTEM REQUIREMENTS 6 | =================== 7 | This program requires ncurses version 4.2 or higher. Earlier versions have 8 | been known to cause segmentation faults and/or odd display colors with this 9 | program. ncurses may be obtained via anonymous FTP at: 10 | 11 | prep.ai.mit.edu 12 | 13 | in the pub/gnu/ncurses subdirectory 14 | 15 | or: 16 | http://www.gnu.org/software/ncurses/ncurses.html 17 | 18 | 19 | The Linux pthreads library is also required. Both of these libraries are 20 | usually available in modern Linux distributions. 21 | 22 | 23 | UNPACKING 24 | ========= 25 | The PREDICT archive can be unpacked in any directory for which read access 26 | is provided for all system users (such as /usr/src or /usr/local/src for 27 | Slackware Linux). As root, move the tar file to such a directory and 28 | issue the command: 29 | 30 | tar xvfz predict-2.2.3.tar.gz 31 | 32 | to unpack the file. 33 | 34 | 35 | COMPILATION 36 | =========== 37 | PREDICT's compilation and installation procedure differs slightly from 38 | that of most software, but should easy enough to understand and follow. 39 | First, move (cd) into the predict directory and execute the included 40 | "configure" script by typing: 41 | 42 | ./configure 43 | 44 | as root at your command prompt. This script compiles and runs the install 45 | program that configures the source code for PREDICT. It then compiles and 46 | installs PREDICT by creating symbolic links between the executables created 47 | in the installation directory and /usr/local/bin. If a destination directory 48 | other than /usr/local/bin is desired, invoke configure with the desired 49 | directory as an argument on the command line: 50 | 51 | ./configure /usr/bin 52 | 53 | NOTE: "configure" may stall if the system soundcard is in use. Some 54 | window managers (sometimes KDE) take control of the soundcard, and prevent 55 | the configure script from opening /dev/dsp and checking its existence. 56 | 57 | 58 | FIRST TIME USE 59 | ============== 60 | First time users will be asked to enter their groundstation latitude and 61 | longitude in decimal degrees or in degree, minute, second (DMS) format. 62 | Normally, PREDICT handles longitudes in decimal degrees WEST (0-360 63 | degrees), and latitudes in decimal degrees NORTH. This behavior can be 64 | modified by passing the -east or -south command line switches to PREDICT 65 | when it is invoked. Your station's altitude in meters above mean sea 66 | level, a recent set of Keplerian orbital data for the satellites of 67 | interest, and an accurately set system clock are also required if 68 | successful real-time satellite tracking is also desired. Sources 69 | for such data include http://www.celestrak.com/, 70 | http://www.space-track.org, and http://www.amsat.org/. 71 | 72 | 73 | FOR FURTHER INFORMATION 74 | ======================= 75 | Please consult the files under the "docs" subdirectory for more 76 | directions on the use and capabilities of PREDICT. 77 | 78 | The latest news and information regarding PREDICT software is 79 | available at: http://www.qsl.net/kd2bd/predict.html. 80 | 81 | 82 | Happy Tracking! 83 | 84 | -- 85 | John, KD2BD 86 | kd2bd@amsat.org 87 | May 2006 88 | 89 | -------------------------------------------------------------------------------- /build: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Script to manually compile PREDICT 3 | # 4 | if [ -a predict.h ]; then 5 | echo -n "Building PREDICT version `cat .version`... " 6 | cc -Wall -O3 -s -fomit-frame-pointer predict.c -lm -lncurses -pthread -o predict 7 | echo "Done!" 8 | else 9 | ./configure 10 | fi 11 | -------------------------------------------------------------------------------- /clean: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Script to prepare for a clean distribution. 3 | # 4 | rm -f predict predict.h 5 | rm -f vocalizer/vocalizer.h vocalizer/vocalizer 6 | rm -f clients/samples/demo 7 | rm -f utils/moontracker/moontracker 8 | rm -f utils/geosat/geosat 9 | cd clients 10 | rm -f map/map 11 | cd gsat-1.1.0 12 | make clean 13 | cd .. 14 | rm -f earthtrack/earthtrack 15 | rm -f kep_reload/kep_reload 16 | cd .. 17 | cp -p $HOME/.predict/predict.tle default/predict.tle 18 | cp -p $HOME/.predict/predict.db default/predict.db 19 | echo "Done!" 20 | -------------------------------------------------------------------------------- /clients/WinPredictClient/README.txt: -------------------------------------------------------------------------------- 1 | This demo client is for a Windows client communicating with a Linux 2 | server running Predict. You need the VB development environment. (Note: 3 | this was developed under VB6, but other versions may handle it OK) 4 | 5 | Open a new project, and add frmWinPredictClient to it, and also set this 6 | as the Projects Startup object. You'll also need the Microsoft Winsock 7 | Control selected in Project/Components. Then click Run (or Compile if 8 | you wish). 9 | 10 | Note: the command line may be set to contain the name of the Predict host, 11 | in which case the program will not prompt for that name, but immediately 12 | try to get the satellite list. 13 | 14 | This was developed by Steve Fraser, vk5asf (sfraser AT sierra.apana.org.au) 15 | 16 | -------------------------------------------------------------------------------- /clients/earthtrack/INSTALL: -------------------------------------------------------------------------------- 1 | Building and Installating "earthtrack" 2 | ====================================== 3 | 4 | To build "earthtrack", simply invoke the "build" script as follows: 5 | 6 | ./build 7 | 8 | You do not need to be root to build "earthtrack". 9 | 10 | To run "earthtrack" globally on a multiuser system, it must be 11 | installed in a publically accessible directory within the $PATH 12 | of your users. To so this, simply invoke the "install" script 13 | from this directory as follows: 14 | 15 | ./install 16 | 17 | This must be done as root. 18 | 19 | Once the program has been installed, it may be modified and rebuilt 20 | at any time by invoking the "build" script once again. It is not 21 | necessary to re-run "install" script or su to root every time 22 | the program is modified. HOWEVER, you may wish to protect 23 | the installation directory used by this program to prevent 24 | unauthorized modification and compilation of the source 25 | code when installed on a multiuser system. 26 | 27 | If you are root, and are installing "earthtrack" for the first time, 28 | you may build and install this application with just one command by 29 | involking the "install" script as follows: 30 | 31 | ./install 32 | 33 | See the README file for more information on the use and capabilities 34 | of this program. 35 | 36 | 37 | Happy Tracking! 38 | 39 | 73, de John, KD2BD 40 | 41 | -------------------------------------------------------------------------------- /clients/earthtrack/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Script to compile earthtrack 3 | # 4 | echo -n "Compiling earthtrack... " 5 | cc -Wall -O3 -s -fomit-frame-pointer -lm earthtrack.c -o earthtrack 6 | echo "Done!" 7 | 8 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/AUTHORS: -------------------------------------------------------------------------------- 1 | Main coding: Xavier Crehueras EB3ZCS eb3czs@qsl.net 2 | Range Calculations: John Magliacane KD2BD kd2bd@yahoo.com 3 | Yaesu FT-736 plugin: Hiroshi Iwamoto JH4XSY sx7h-iwmt@asahi-net.or.jp -------------------------------------------------------------------------------- /clients/gsat-1.1.0/ChangeLog: -------------------------------------------------------------------------------- 1 | 1.1.0: Added mode selection for satellite work. Added about dialog. Added 2 | global preferences and satellite database files. Code cleanups. 3 | Added plugin for the Yaesu FT-736 contributed by Hiroshi Iwamoto JH4XSY. 4 | 5 | 1.0.1: Bug corrections: Satellite DB window doesn't open if .gsat.db file 6 | doesn't exist. Get rid of linefeed after date and time in widgets. 7 | 8 | 1.0: Added beacon doppler control. Added Satellite Frequency database and automatic 9 | frequency selection. Added azimuth/elevation graphic. Added rotor control via 10 | plugins. Removed 24 satellite limit. Some code optimization and clean up. 11 | 12 | 0.9: Added toolbar. Added connection dialog. Added preferences. Added radio 13 | doppler control via plugins. Added station visibility display. 14 | Added command execution at AOS and at LOS. 15 | 16 | 0.8: Added orbit number display. Added status bar. Added command line option to 17 | display a grid 30x30 deg. 18 | 19 | 0.7.5: Bugfix release. Fixed overlapping of labels and font size problems. 20 | Network functions rewritten and implemented network error handling. 21 | Added orbit number display. Added status bar. 22 | 23 | 0.7: QTH and callsign drawing. AOS/LOS event indication. Added command line 24 | options for UTC time or localtime display. Added command line option to 25 | specify the predict server host. 26 | 27 | 0.6: Orbit drawing. Network connection optimization. 28 | 29 | 0.5: Initial public release 30 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/Makefile.am: -------------------------------------------------------------------------------- 1 | ## Process this file with automake to produce Makefile.in 2 | 3 | SUBDIRS = intl po src 4 | 5 | install-data-local: 6 | @$(NORMAL_INSTALL) 7 | if test -d $(srcdir)/pixmaps; then \ 8 | $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/pixmaps; \ 9 | for pixmap in $(srcdir)/pixmaps/*; do \ 10 | if test -f $$pixmap; then \ 11 | $(INSTALL_DATA) $$pixmap $(DESTDIR)$(pkgdatadir)/pixmaps; \ 12 | fi \ 13 | done \ 14 | fi 15 | if test ! -d $(pkglibdir)/plugins; then \ 16 | $(mkinstalldirs) $(pkglibdir)/plugins; \ 17 | fi 18 | if test ! -f $(pkglibdir)/gsat.prefs; then \ 19 | $(INSTALL_DATA) gsat.prefs $(pkglibdir)/; \ 20 | fi 21 | if test ! -f $(pkglibdir)/gsat.db; then \ 22 | $(INSTALL_DATA) gsat.db $(pkglibdir)/; \ 23 | fi 24 | 25 | dist-hook: 26 | if test -d pixmaps; then \ 27 | mkdir $(distdir)/pixmaps; \ 28 | for pixmap in pixmaps/*; do \ 29 | if test -f $$pixmap; then \ 30 | cp -p $$pixmap $(distdir)/pixmaps; \ 31 | fi \ 32 | done \ 33 | fi 34 | 35 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/NEWS: -------------------------------------------------------------------------------- 1 | Someone said "No news are good news". -------------------------------------------------------------------------------- /clients/gsat-1.1.0/Plugin_API: -------------------------------------------------------------------------------- 1 | gsat Plugin API 2 | --------------- 3 | 4 | How to write plugins for gsat. 5 | ------------------------------ 6 | 7 | This document tries to explain how to write your own plugins for gsat. 8 | 9 | There are 2 types of plugins in gsat: the radio plugins and the rotor plugins. 10 | 11 | - Radio plugins are used to control a rig with CAT capabilities and do automatic 12 | doppler correction of frequency. Their file name must begin by radio_. 13 | 14 | - Rotor plugins are used to control a rotor in order to have the antennas 15 | pointed at the satellite being tracked. Their file name must begin by rotor_. 16 | 17 | You can write your own plugins by implementing the functions described below. 18 | Because gsat uses dynamic loading, plugins must be compiled with: 19 | 20 | gcc -fPIC -shared -o {plugin_name} {plugin_name}.c 21 | 22 | There are some examples in the plugins directory. 23 | 24 | Plugins must be installed in the /usr/local/lib/gsat/plugins directory. If you 25 | need the plugins in another directory, you must set the GSATPLUGINSDIR environment 26 | variable to point to your plugins directory. 27 | 28 | To use a plugin, select it in the preferences window and set the config string if 29 | needed. 30 | 31 | The config string is passed to the plugin_open function and can be used to 32 | configure a plugin. There is an example in the plugins directory (radio_PCR100.c). 33 | 34 | 35 | 36 | RADIO PLUGINS 37 | ------------- 38 | 39 | Functions required to implement a radio control plugin for gsat. 40 | 41 | 42 | int plugin_open_rig( char * config ) 43 | 44 | Function: 45 | Open and initialize the device 46 | 47 | Parameters: 48 | char * config: string with config parameters for the plugin 49 | 50 | Returns: 51 | int : TRUE=open ok 52 | FALSE=failed 53 | 54 | 55 | void plugin_close_rig( void ) 56 | 57 | Function: 58 | close and free resources used by the device 59 | 60 | Parameters: 61 | none 62 | 63 | Returns: 64 | none 65 | 66 | 67 | void plugin_set_uplink_frequency( double frequency ) 68 | 69 | Function: 70 | Set frequency on the device 71 | 72 | Parameters: 73 | double frequency: frequency in kilohertz 74 | 75 | Returns: 76 | none 77 | 78 | 79 | void plugin_set_downlink_frequency( double frequency ) 80 | 81 | Function: 82 | Set frequency on the device 83 | 84 | Parameters: 85 | double frequency: frequency in kilohertz 86 | 87 | Returns: 88 | none 89 | 90 | 91 | char * plugin_info( void ) 92 | 93 | Function: 94 | Get info string 95 | 96 | Parameters: 97 | none 98 | 99 | Returns: 100 | char *: pointer to a string containing the name of the device and plugin version 101 | 102 | 103 | 104 | ROTOR PLUGINS 105 | ------------- 106 | 107 | Functions required to implement a rotor control plugin for gsat. 108 | 109 | 110 | int plugin_open_rotor( char * config ); 111 | 112 | Function: 113 | Open and initialize the device 114 | 115 | Parameters: 116 | char * config: string with config parameters for the plugin 117 | 118 | Returns: 119 | int : TRUE=open ok 120 | FALSE=failed 121 | 122 | 123 | void plugin_close_rotor( void ); 124 | 125 | Function: 126 | close and free resources used by the device 127 | 128 | Parameters: 129 | none 130 | 131 | Returns: 132 | none 133 | 134 | 135 | void plugin_set_rotor( double azimuth, double elevation ); 136 | 137 | Function: 138 | Set rotor azimuth and elevation 139 | 140 | Parameters: 141 | double azimuth: azimuth in degrees 142 | double elevation: elevation in degrees 143 | 144 | Returns: 145 | none 146 | 147 | 148 | char * plugin_info( void ) 149 | 150 | Function: 151 | Get info string 152 | 153 | Parameters: 154 | none 155 | 156 | Returns: 157 | char *: pointer to a string containing the name of the device and plugin version 158 | 159 | 160 | 161 | That's all for now. 162 | 163 | If you write a new plugin, please send me a copy so I can add it to gsat. 164 | 165 | 166 | 73 de Xavi, EB3CZS -------------------------------------------------------------------------------- /clients/gsat-1.1.0/README: -------------------------------------------------------------------------------- 1 | WELCOME TO GSAT! 2 | 3 | gsat is a satellite tracking program. It is a graphical frontend to the predict orbital prediction program by John Magliacane KD2BD. 4 | 5 | To install, do the usual: 6 | 7 | ./configure 8 | ./make 9 | ./make install 10 | 11 | If this doesn't work, you can do: 12 | 13 | ./autogen.sh 14 | ./make 15 | ./make install 16 | 17 | Make sure to have predict installed and the predict service configured in the /etc/services. 18 | Define the host with the predict server by: 19 | 20 | export PREDICTHOST= 21 | 22 | 23 | where is the host name of the server. 24 | Then execute gsat by typing: 25 | 26 | gsat 27 | 28 | or by using -s option, like: 29 | 30 | gsat -s hostname 31 | 32 | where hostname is the host name of the server. 33 | If no PREDICTHOST variable or no -s option are used, localhost is assumed. 34 | 35 | From gsat version 0.9.0, you have to use the connect button to make a connection to a predict server. 36 | 37 | 38 | 39 | ABOUT PLUGINS 40 | ------------- 41 | 42 | gsat can do automatic doppler correction and rotor control via plugins. Plugins are placed in the /usr/local/lib/gsat/plugins directory by default. You can override this setting the GSATPLUGINSDIR environment variable. Plugin's name must begin by "radio_" for the radio plugins and "rotor_" for the rotor plugins. Once you have the plugins installed, you can select it in the preferences window, pass it a config string and activate it in the doppler section of the main window. 43 | There is a file called Plugin_API with the info to program a custom plugin. There are some examples in the plugins subdir. 44 | Please note that not all the plugins in the plugins directory of this package are in a working state. I'm working on some of them and it is possible that even some refuse to compile. I include them to show some examples of plugin programming. 45 | 46 | Working plugins: 47 | 48 | radio plugins 49 | ------------- 50 | radio_FT736 : Yaesu FT-736 contributed by Hiroshi Iwamoto JH4XSY 51 | radio_ICR10 : Icom IC-R10 Receiver 52 | radio_PCR100: Icom PCR-100 Receiver (libpcr100 is needed to compile this) 53 | 54 | rotor plugins 55 | ------------- 56 | rotor_pictrack: created from the pictrack code in predict. Not tested. 57 | 58 | the radio_print and rotor_print are test plugins that only print data to the shell. 59 | 60 | INSTALLING PLUGINS 61 | ------------------ 62 | 63 | Plugin installation is not yet automated. You will have to install the plugins after installing gsat. To install the plugins, change to the plugins directory, edit the Makefile and change the TARGETS line to contain only the plugins you want to install. Then do a make and make install and you are done. 64 | 65 | Happy tracking !!! 66 | 67 | Xavier Crehueras, EB3CZS 68 | eb3czs@qsl.net 69 | 70 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/acconfig.h: -------------------------------------------------------------------------------- 1 | #undef ENABLE_NLS 2 | #undef HAVE_CATGETS 3 | #undef HAVE_GETTEXT 4 | #undef HAVE_LC_MESSAGES 5 | #undef HAVE_STPCPY 6 | #undef HAVE_LIBSM 7 | #undef PACKAGE_LOCALE_DIR 8 | #undef PACKAGE_DATA_DIR 9 | #undef PACKAGE_SOURCE_DIR 10 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Run this to generate all the initial makefiles, etc. 3 | 4 | srcdir=`dirname $0` 5 | PKG_NAME="the package." 6 | 7 | DIE=0 8 | 9 | (autoconf --version) < /dev/null > /dev/null 2>&1 || { 10 | echo 11 | echo "**Error**: You must have \`autoconf' installed to." 12 | echo "Download the appropriate package for your distribution," 13 | echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/" 14 | DIE=1 15 | } 16 | 17 | (grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && { 18 | (libtool --version) < /dev/null > /dev/null 2>&1 || { 19 | echo 20 | echo "**Error**: You must have \`libtool' installed." 21 | echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz" 22 | echo "(or a newer version if it is available)" 23 | DIE=1 24 | } 25 | } 26 | 27 | grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && { 28 | grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ 29 | (gettext --version) < /dev/null > /dev/null 2>&1 || { 30 | echo 31 | echo "**Error**: You must have \`gettext' installed." 32 | echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" 33 | echo "(or a newer version if it is available)" 34 | DIE=1 35 | } 36 | } 37 | 38 | grep "^AM_GNOME_GETTEXT" $srcdir/configure.in >/dev/null && { 39 | grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ 40 | (gettext --version) < /dev/null > /dev/null 2>&1 || { 41 | echo 42 | echo "**Error**: You must have \`gettext' installed." 43 | echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" 44 | echo "(or a newer version if it is available)" 45 | DIE=1 46 | } 47 | } 48 | 49 | (automake --version) < /dev/null > /dev/null 2>&1 || { 50 | echo 51 | echo "**Error**: You must have \`automake' installed." 52 | echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" 53 | echo "(or a newer version if it is available)" 54 | DIE=1 55 | NO_AUTOMAKE=yes 56 | } 57 | 58 | 59 | # if no automake, don't bother testing for aclocal 60 | test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || { 61 | echo 62 | echo "**Error**: Missing \`aclocal'. The version of \`automake'" 63 | echo "installed doesn't appear recent enough." 64 | echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz" 65 | echo "(or a newer version if it is available)" 66 | DIE=1 67 | } 68 | 69 | if test "$DIE" -eq 1; then 70 | exit 1 71 | fi 72 | 73 | if test -z "$*"; then 74 | echo "**Warning**: I am going to run \`configure' with no arguments." 75 | echo "If you wish to pass any to it, please specify them on the" 76 | echo \`$0\'" command line." 77 | echo 78 | fi 79 | 80 | case $CC in 81 | xlc ) 82 | am_opt=--include-deps;; 83 | esac 84 | 85 | for coin in `find $srcdir -name configure.in -print` 86 | do 87 | dr=`dirname $coin` 88 | if test -f $dr/NO-AUTO-GEN; then 89 | echo skipping $dr -- flagged as no auto-gen 90 | else 91 | echo processing $dr 92 | macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin` 93 | ( cd $dr 94 | aclocalinclude="$ACLOCAL_FLAGS" 95 | for k in $macrodirs; do 96 | if test -d $k; then 97 | aclocalinclude="$aclocalinclude -I $k" 98 | ##else 99 | ## echo "**Warning**: No such directory \`$k'. Ignored." 100 | fi 101 | done 102 | if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then 103 | if grep "sed.*POTFILES" configure.in >/dev/null; then 104 | : do nothing -- we still have an old unmodified configure.in 105 | else 106 | echo "Creating $dr/aclocal.m4 ..." 107 | test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 108 | echo "Running gettextize... Ignore non-fatal messages." 109 | echo "no" | gettextize --force --copy 110 | echo "Making $dr/aclocal.m4 writable ..." 111 | test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 112 | fi 113 | fi 114 | if grep "^AM_GNOME_GETTEXT" configure.in >/dev/null; then 115 | echo "Creating $dr/aclocal.m4 ..." 116 | test -r $dr/aclocal.m4 || touch $dr/aclocal.m4 117 | echo "Running gettextize... Ignore non-fatal messages." 118 | echo "no" | gettextize --force --copy 119 | echo "Making $dr/aclocal.m4 writable ..." 120 | test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4 121 | fi 122 | if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then 123 | echo "Running libtoolize..." 124 | libtoolize --force --copy 125 | fi 126 | echo "Running aclocal $aclocalinclude ..." 127 | aclocal $aclocalinclude 128 | if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then 129 | echo "Running autoheader..." 130 | autoheader 131 | fi 132 | echo "Running automake --gnu $am_opt ..." 133 | automake --add-missing --gnu $am_opt 134 | echo "Running autoconf ..." 135 | autoconf 136 | ) 137 | fi 138 | done 139 | 140 | #conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c 141 | 142 | if test x$NOCONFIGURE = x; then 143 | echo Running $srcdir/configure $conf_flags "$@" ... 144 | $srcdir/configure $conf_flags "$@" \ 145 | && echo Now type \`make\' to compile $PKG_NAME 146 | else 147 | echo Skipping configure process. 148 | fi 149 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/config.cache: -------------------------------------------------------------------------------- 1 | # This file is a shell script that caches the results of configure 2 | # tests run on this system so they can be shared between configure 3 | # scripts and configure runs. It is not useful on other systems. 4 | # If it contains results you don't want to keep, you may remove or edit it. 5 | # 6 | # By default, configure uses ./config.cache as the cache file, 7 | # creating it if it does not exist already. You can give configure 8 | # the --cache-file=FILE option to use a different cache file; that is 9 | # what configure does when it calls configure scripts in 10 | # subdirectories, so they share the cache. 11 | # Giving --cache-file=/dev/null disables caching, for debugging configure. 12 | # config.status only pays attention to the cache file if you give it the 13 | # --recheck option to rerun configure. 14 | # 15 | ac_cv_c_const=${ac_cv_c_const=yes} 16 | ac_cv_c_inline=${ac_cv_c_inline=inline} 17 | ac_cv_func___argz_count=${ac_cv_func___argz_count=yes} 18 | ac_cv_func___argz_next=${ac_cv_func___argz_next=yes} 19 | ac_cv_func___argz_stringify=${ac_cv_func___argz_stringify=yes} 20 | ac_cv_func_alloca_works=${ac_cv_func_alloca_works=yes} 21 | ac_cv_func_dcgettext=${ac_cv_func_dcgettext=yes} 22 | ac_cv_func_feof_unlocked=${ac_cv_func_feof_unlocked=yes} 23 | ac_cv_func_fgets_unlocked=${ac_cv_func_fgets_unlocked=yes} 24 | ac_cv_func_getcwd=${ac_cv_func_getcwd=yes} 25 | ac_cv_func_getegid=${ac_cv_func_getegid=yes} 26 | ac_cv_func_geteuid=${ac_cv_func_geteuid=yes} 27 | ac_cv_func_getgid=${ac_cv_func_getgid=yes} 28 | ac_cv_func_getpagesize=${ac_cv_func_getpagesize=yes} 29 | ac_cv_func_getuid=${ac_cv_func_getuid=yes} 30 | ac_cv_func_mempcpy=${ac_cv_func_mempcpy=yes} 31 | ac_cv_func_mmap_fixed_mapped=${ac_cv_func_mmap_fixed_mapped=yes} 32 | ac_cv_func_munmap=${ac_cv_func_munmap=yes} 33 | ac_cv_func_putenv=${ac_cv_func_putenv=yes} 34 | ac_cv_func_setenv=${ac_cv_func_setenv=yes} 35 | ac_cv_func_setlocale=${ac_cv_func_setlocale=yes} 36 | ac_cv_func_stpcpy=${ac_cv_func_stpcpy=yes} 37 | ac_cv_func_strcasecmp=${ac_cv_func_strcasecmp=yes} 38 | ac_cv_func_strchr=${ac_cv_func_strchr=yes} 39 | ac_cv_func_strdup=${ac_cv_func_strdup=yes} 40 | ac_cv_func_strtoul=${ac_cv_func_strtoul=yes} 41 | ac_cv_func_tsearch=${ac_cv_func_tsearch=yes} 42 | ac_cv_gnu_library_2_1=${ac_cv_gnu_library_2_1=yes} 43 | ac_cv_header_alloca_h=${ac_cv_header_alloca_h=yes} 44 | ac_cv_header_argz_h=${ac_cv_header_argz_h=yes} 45 | ac_cv_header_libintl_h=${ac_cv_header_libintl_h=yes} 46 | ac_cv_header_limits_h=${ac_cv_header_limits_h=yes} 47 | ac_cv_header_locale_h=${ac_cv_header_locale_h=yes} 48 | ac_cv_header_malloc_h=${ac_cv_header_malloc_h=yes} 49 | ac_cv_header_nl_types_h=${ac_cv_header_nl_types_h=yes} 50 | ac_cv_header_stdc=${ac_cv_header_stdc=yes} 51 | ac_cv_header_stddef_h=${ac_cv_header_stddef_h=yes} 52 | ac_cv_header_stdlib_h=${ac_cv_header_stdlib_h=yes} 53 | ac_cv_header_string_h=${ac_cv_header_string_h=yes} 54 | ac_cv_header_sys_param_h=${ac_cv_header_sys_param_h=yes} 55 | ac_cv_header_unistd_h=${ac_cv_header_unistd_h=yes} 56 | ac_cv_lib_cposix_strerror=${ac_cv_lib_cposix_strerror=no} 57 | ac_cv_path_GMSGFMT=${ac_cv_path_GMSGFMT=/usr/bin/msgfmt} 58 | ac_cv_path_GTK_CONFIG=${ac_cv_path_GTK_CONFIG=/usr/bin/gtk-config} 59 | ac_cv_path_MSGFMT=${ac_cv_path_MSGFMT=/usr/bin/msgfmt} 60 | ac_cv_path_XGETTEXT=${ac_cv_path_XGETTEXT=/usr/bin/xgettext} 61 | ac_cv_path_install=${ac_cv_path_install='/usr/bin/ginstall -c'} 62 | ac_cv_prog_CC=${ac_cv_prog_CC=gcc} 63 | ac_cv_prog_CPP=${ac_cv_prog_CPP='gcc -E'} 64 | ac_cv_prog_INTLBISON=${ac_cv_prog_INTLBISON=bison} 65 | ac_cv_prog_RANLIB=${ac_cv_prog_RANLIB=ranlib} 66 | ac_cv_prog_cc_cross=${ac_cv_prog_cc_cross=no} 67 | ac_cv_prog_cc_g=${ac_cv_prog_cc_g=yes} 68 | ac_cv_prog_cc_works=${ac_cv_prog_cc_works=yes} 69 | ac_cv_prog_gcc=${ac_cv_prog_gcc=yes} 70 | ac_cv_prog_make_make_set=${ac_cv_prog_make_make_set=yes} 71 | ac_cv_type_off_t=${ac_cv_type_off_t=yes} 72 | ac_cv_type_size_t=${ac_cv_type_size_t=yes} 73 | am_cv_func_iconv=${am_cv_func_iconv=yes} 74 | am_cv_langinfo_codeset=${am_cv_langinfo_codeset=yes} 75 | am_cv_lib_iconv=${am_cv_lib_iconv=no} 76 | am_cv_prog_cc_stdc=${am_cv_prog_cc_stdc=} 77 | am_cv_proto_iconv=${am_cv_proto_iconv='extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);'} 78 | am_cv_proto_iconv_arg1=${am_cv_proto_iconv_arg1=} 79 | am_cv_val_LC_MESSAGES=${am_cv_val_LC_MESSAGES=yes} 80 | gt_cv_func_gnugettext1_libc=${gt_cv_func_gnugettext1_libc=yes} 81 | nls_cv_force_use_gnu_gettext=${nls_cv_force_use_gnu_gettext=no} 82 | nls_cv_header_intl=${nls_cv_header_intl=} 83 | nls_cv_header_libgt=${nls_cv_header_libgt=} 84 | nls_cv_use_gnu_gettext=${nls_cv_use_gnu_gettext=no} 85 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/config.h: -------------------------------------------------------------------------------- 1 | /* config.h. Generated automatically by configure. */ 2 | /* config.h.in. Generated automatically from configure.in by autoheader 2.13. */ 3 | 4 | /* Define if using alloca.c. */ 5 | /* #undef C_ALLOCA */ 6 | 7 | /* Define to empty if the keyword does not work. */ 8 | /* #undef const */ 9 | 10 | /* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. 11 | This function is required for alloca.c support on those systems. */ 12 | /* #undef CRAY_STACKSEG_END */ 13 | 14 | /* Define if you have alloca, as a function or macro. */ 15 | #define HAVE_ALLOCA 1 16 | 17 | /* Define if you have and it should be used (not on Ultrix). */ 18 | #define HAVE_ALLOCA_H 1 19 | 20 | /* Define if you have a working `mmap' system call. */ 21 | #define HAVE_MMAP 1 22 | 23 | /* Define as __inline if that's what the C compiler calls it. */ 24 | /* #undef inline */ 25 | 26 | /* Define to `long' if doesn't define. */ 27 | /* #undef off_t */ 28 | 29 | /* Define to `unsigned' if doesn't define. */ 30 | /* #undef size_t */ 31 | 32 | /* If using the C implementation of alloca, define if you know the 33 | direction of stack growth for your system; otherwise it will be 34 | automatically deduced at run-time. 35 | STACK_DIRECTION > 0 => grows toward higher addresses 36 | STACK_DIRECTION < 0 => grows toward lower addresses 37 | STACK_DIRECTION = 0 => direction of growth unknown 38 | */ 39 | /* #undef STACK_DIRECTION */ 40 | 41 | /* Define if you have the ANSI C header files. */ 42 | #define STDC_HEADERS 1 43 | 44 | #define ENABLE_NLS 1 45 | /* #undef HAVE_CATGETS */ 46 | #define HAVE_GETTEXT 1 47 | #define HAVE_LC_MESSAGES 1 48 | #define HAVE_STPCPY 1 49 | /* #undef HAVE_LIBSM */ 50 | #define PACKAGE_LOCALE_DIR "/usr/local/share/locale" 51 | #define PACKAGE_DATA_DIR "/usr/local/share/gsat" 52 | #define PACKAGE_SOURCE_DIR "/usr/src/predict-2.2.3/clients/gsat-1.1.0" 53 | 54 | /* Define if you have the __argz_count function. */ 55 | #define HAVE___ARGZ_COUNT 1 56 | 57 | /* Define if you have the __argz_next function. */ 58 | #define HAVE___ARGZ_NEXT 1 59 | 60 | /* Define if you have the __argz_stringify function. */ 61 | #define HAVE___ARGZ_STRINGIFY 1 62 | 63 | /* Define if you have the dcgettext function. */ 64 | #define HAVE_DCGETTEXT 1 65 | 66 | /* Define if you have the feof_unlocked function. */ 67 | #define HAVE_FEOF_UNLOCKED 1 68 | 69 | /* Define if you have the fgets_unlocked function. */ 70 | #define HAVE_FGETS_UNLOCKED 1 71 | 72 | /* Define if you have the getcwd function. */ 73 | #define HAVE_GETCWD 1 74 | 75 | /* Define if you have the getegid function. */ 76 | #define HAVE_GETEGID 1 77 | 78 | /* Define if you have the geteuid function. */ 79 | #define HAVE_GETEUID 1 80 | 81 | /* Define if you have the getgid function. */ 82 | #define HAVE_GETGID 1 83 | 84 | /* Define if you have the getpagesize function. */ 85 | #define HAVE_GETPAGESIZE 1 86 | 87 | /* Define if you have the getuid function. */ 88 | #define HAVE_GETUID 1 89 | 90 | /* Define if you have the mempcpy function. */ 91 | #define HAVE_MEMPCPY 1 92 | 93 | /* Define if you have the munmap function. */ 94 | #define HAVE_MUNMAP 1 95 | 96 | /* Define if you have the putenv function. */ 97 | #define HAVE_PUTENV 1 98 | 99 | /* Define if you have the setenv function. */ 100 | #define HAVE_SETENV 1 101 | 102 | /* Define if you have the setlocale function. */ 103 | #define HAVE_SETLOCALE 1 104 | 105 | /* Define if you have the stpcpy function. */ 106 | #define HAVE_STPCPY 1 107 | 108 | /* Define if you have the strcasecmp function. */ 109 | #define HAVE_STRCASECMP 1 110 | 111 | /* Define if you have the strchr function. */ 112 | #define HAVE_STRCHR 1 113 | 114 | /* Define if you have the strdup function. */ 115 | #define HAVE_STRDUP 1 116 | 117 | /* Define if you have the strtoul function. */ 118 | #define HAVE_STRTOUL 1 119 | 120 | /* Define if you have the tsearch function. */ 121 | #define HAVE_TSEARCH 1 122 | 123 | /* Define if you have the header file. */ 124 | #define HAVE_ARGZ_H 1 125 | 126 | /* Define if you have the header file. */ 127 | #define HAVE_LIMITS_H 1 128 | 129 | /* Define if you have the header file. */ 130 | #define HAVE_LOCALE_H 1 131 | 132 | /* Define if you have the header file. */ 133 | #define HAVE_MALLOC_H 1 134 | 135 | /* Define if you have the header file. */ 136 | #define HAVE_NL_TYPES_H 1 137 | 138 | /* Define if you have the header file. */ 139 | #define HAVE_STDDEF_H 1 140 | 141 | /* Define if you have the header file. */ 142 | #define HAVE_STDLIB_H 1 143 | 144 | /* Define if you have the header file. */ 145 | #define HAVE_STRING_H 1 146 | 147 | /* Define if you have the header file. */ 148 | #define HAVE_SYS_PARAM_H 1 149 | 150 | /* Define if you have the header file. */ 151 | #define HAVE_UNISTD_H 1 152 | 153 | /* Name of package */ 154 | #define PACKAGE "gsat" 155 | 156 | /* Version number of package */ 157 | #define VERSION "0.1" 158 | 159 | /* Define if you have the iconv() function. */ 160 | #define HAVE_ICONV 1 161 | 162 | /* Define as const if the declaration of iconv() needs const. */ 163 | #define ICONV_CONST 164 | 165 | /* Define if you have and nl_langinfo(CODESET). */ 166 | #define HAVE_LANGINFO_CODESET 1 167 | 168 | /* Define if your file defines LC_MESSAGES. */ 169 | #define HAVE_LC_MESSAGES 1 170 | 171 | /* Define to 1 if translation of program messages to the user's native language 172 | is requested. */ 173 | #define ENABLE_NLS 1 174 | 175 | /* Define if the GNU gettext() function is already present or preinstalled. */ 176 | #define HAVE_GETTEXT 1 177 | 178 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/config.h.in: -------------------------------------------------------------------------------- 1 | /* config.h.in. Generated automatically from configure.in by autoheader 2.13. */ 2 | 3 | /* Define if using alloca.c. */ 4 | #undef C_ALLOCA 5 | 6 | /* Define to empty if the keyword does not work. */ 7 | #undef const 8 | 9 | /* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. 10 | This function is required for alloca.c support on those systems. */ 11 | #undef CRAY_STACKSEG_END 12 | 13 | /* Define if you have alloca, as a function or macro. */ 14 | #undef HAVE_ALLOCA 15 | 16 | /* Define if you have and it should be used (not on Ultrix). */ 17 | #undef HAVE_ALLOCA_H 18 | 19 | /* Define if you have a working `mmap' system call. */ 20 | #undef HAVE_MMAP 21 | 22 | /* Define as __inline if that's what the C compiler calls it. */ 23 | #undef inline 24 | 25 | /* Define to `long' if doesn't define. */ 26 | #undef off_t 27 | 28 | /* Define to `unsigned' if doesn't define. */ 29 | #undef size_t 30 | 31 | /* If using the C implementation of alloca, define if you know the 32 | direction of stack growth for your system; otherwise it will be 33 | automatically deduced at run-time. 34 | STACK_DIRECTION > 0 => grows toward higher addresses 35 | STACK_DIRECTION < 0 => grows toward lower addresses 36 | STACK_DIRECTION = 0 => direction of growth unknown 37 | */ 38 | #undef STACK_DIRECTION 39 | 40 | /* Define if you have the ANSI C header files. */ 41 | #undef STDC_HEADERS 42 | 43 | #undef ENABLE_NLS 44 | #undef HAVE_CATGETS 45 | #undef HAVE_GETTEXT 46 | #undef HAVE_LC_MESSAGES 47 | #undef HAVE_STPCPY 48 | #undef HAVE_LIBSM 49 | #undef PACKAGE_LOCALE_DIR 50 | #undef PACKAGE_DATA_DIR 51 | #undef PACKAGE_SOURCE_DIR 52 | 53 | /* Define if you have the __argz_count function. */ 54 | #undef HAVE___ARGZ_COUNT 55 | 56 | /* Define if you have the __argz_next function. */ 57 | #undef HAVE___ARGZ_NEXT 58 | 59 | /* Define if you have the __argz_stringify function. */ 60 | #undef HAVE___ARGZ_STRINGIFY 61 | 62 | /* Define if you have the dcgettext function. */ 63 | #undef HAVE_DCGETTEXT 64 | 65 | /* Define if you have the feof_unlocked function. */ 66 | #undef HAVE_FEOF_UNLOCKED 67 | 68 | /* Define if you have the fgets_unlocked function. */ 69 | #undef HAVE_FGETS_UNLOCKED 70 | 71 | /* Define if you have the getcwd function. */ 72 | #undef HAVE_GETCWD 73 | 74 | /* Define if you have the getegid function. */ 75 | #undef HAVE_GETEGID 76 | 77 | /* Define if you have the geteuid function. */ 78 | #undef HAVE_GETEUID 79 | 80 | /* Define if you have the getgid function. */ 81 | #undef HAVE_GETGID 82 | 83 | /* Define if you have the getpagesize function. */ 84 | #undef HAVE_GETPAGESIZE 85 | 86 | /* Define if you have the getuid function. */ 87 | #undef HAVE_GETUID 88 | 89 | /* Define if you have the mempcpy function. */ 90 | #undef HAVE_MEMPCPY 91 | 92 | /* Define if you have the munmap function. */ 93 | #undef HAVE_MUNMAP 94 | 95 | /* Define if you have the putenv function. */ 96 | #undef HAVE_PUTENV 97 | 98 | /* Define if you have the setenv function. */ 99 | #undef HAVE_SETENV 100 | 101 | /* Define if you have the setlocale function. */ 102 | #undef HAVE_SETLOCALE 103 | 104 | /* Define if you have the stpcpy function. */ 105 | #undef HAVE_STPCPY 106 | 107 | /* Define if you have the strcasecmp function. */ 108 | #undef HAVE_STRCASECMP 109 | 110 | /* Define if you have the strchr function. */ 111 | #undef HAVE_STRCHR 112 | 113 | /* Define if you have the strdup function. */ 114 | #undef HAVE_STRDUP 115 | 116 | /* Define if you have the strtoul function. */ 117 | #undef HAVE_STRTOUL 118 | 119 | /* Define if you have the tsearch function. */ 120 | #undef HAVE_TSEARCH 121 | 122 | /* Define if you have the header file. */ 123 | #undef HAVE_ARGZ_H 124 | 125 | /* Define if you have the header file. */ 126 | #undef HAVE_LIMITS_H 127 | 128 | /* Define if you have the header file. */ 129 | #undef HAVE_LOCALE_H 130 | 131 | /* Define if you have the header file. */ 132 | #undef HAVE_MALLOC_H 133 | 134 | /* Define if you have the header file. */ 135 | #undef HAVE_NL_TYPES_H 136 | 137 | /* Define if you have the header file. */ 138 | #undef HAVE_STDDEF_H 139 | 140 | /* Define if you have the header file. */ 141 | #undef HAVE_STDLIB_H 142 | 143 | /* Define if you have the header file. */ 144 | #undef HAVE_STRING_H 145 | 146 | /* Define if you have the header file. */ 147 | #undef HAVE_SYS_PARAM_H 148 | 149 | /* Define if you have the header file. */ 150 | #undef HAVE_UNISTD_H 151 | 152 | /* Name of package */ 153 | #undef PACKAGE 154 | 155 | /* Version number of package */ 156 | #undef VERSION 157 | 158 | /* Define if you have the iconv() function. */ 159 | #undef HAVE_ICONV 160 | 161 | /* Define as const if the declaration of iconv() needs const. */ 162 | #undef ICONV_CONST 163 | 164 | /* Define if you have and nl_langinfo(CODESET). */ 165 | #undef HAVE_LANGINFO_CODESET 166 | 167 | /* Define if your file defines LC_MESSAGES. */ 168 | #undef HAVE_LC_MESSAGES 169 | 170 | /* Define to 1 if translation of program messages to the user's native language 171 | is requested. */ 172 | #undef ENABLE_NLS 173 | 174 | /* Define if the GNU gettext() function is already present or preinstalled. */ 175 | #undef HAVE_GETTEXT 176 | 177 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/config.log: -------------------------------------------------------------------------------- 1 | This file contains any messages produced by compilers while 2 | running configure, to aid debugging if configure makes a mistake. 3 | 4 | configure:568: checking for a BSD compatible install 5 | configure:621: checking whether build environment is sane 6 | configure:678: checking whether make sets ${MAKE} 7 | configure:724: checking for working aclocal 8 | configure:737: checking for working autoconf 9 | configure:750: checking for working automake 10 | configure:763: checking for working autoheader 11 | configure:776: checking for working makeinfo 12 | configure:795: checking for strerror in -lcposix 13 | configure:839: checking for gcc 14 | configure:952: checking whether the C compiler (gcc ) works 15 | configure:968: gcc -o conftest conftest.c 1>&5 16 | configure:994: checking whether the C compiler (gcc ) is a cross-compiler 17 | configure:999: checking whether we are using GNU C 18 | configure:1027: checking whether gcc accepts -g 19 | configure:1062: checking for gcc option to accept ANSI C 20 | configure:1139: checking how to run the C preprocessor 21 | configure:1219: checking for ANSI C header files 22 | configure:1373: checking for gtk-config 23 | configure:1408: checking for GTK - version >= 1.2.0 24 | configure:1509: gcc -o conftest -g -O2 -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include conftest.c -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXext -lX11 -lm 1>&5 25 | configure:1600: checking host system type 26 | configure:1623: checking for ranlib 27 | configure:1651: checking for working const 28 | configure:1726: checking for inline 29 | configure:1766: checking for off_t 30 | configure:1799: checking for size_t 31 | configure:1834: checking for working alloca.h 32 | configure:1867: checking for alloca 33 | configure:2069: checking for unistd.h 34 | configure:2108: checking for getpagesize 35 | configure:2161: checking for working mmap 36 | configure:2333: checking whether we are using the GNU C Library 2.1 or newer 37 | configure:2374: checking for argz.h 38 | configure:2374: checking for limits.h 39 | configure:2374: checking for locale.h 40 | configure:2374: checking for nl_types.h 41 | configure:2374: checking for malloc.h 42 | configure:2374: checking for stddef.h 43 | configure:2374: checking for stdlib.h 44 | configure:2374: checking for string.h 45 | configure:2374: checking for unistd.h 46 | configure:2374: checking for sys/param.h 47 | configure:2415: checking for feof_unlocked 48 | configure:2415: checking for fgets_unlocked 49 | configure:2415: checking for getcwd 50 | configure:2415: checking for getegid 51 | configure:2415: checking for geteuid 52 | configure:2415: checking for getgid 53 | configure:2415: checking for getuid 54 | configure:2415: checking for mempcpy 55 | configure:2415: checking for munmap 56 | configure:2415: checking for putenv 57 | configure:2415: checking for setenv 58 | configure:2415: checking for setlocale 59 | configure:2415: checking for stpcpy 60 | configure:2415: checking for strchr 61 | configure:2415: checking for strcasecmp 62 | configure:2415: checking for strdup 63 | configure:2415: checking for strtoul 64 | configure:2415: checking for tsearch 65 | configure:2415: checking for __argz_count 66 | configure:2415: checking for __argz_stringify 67 | configure:2415: checking for __argz_next 68 | configure:2483: checking for iconv 69 | configure:2544: checking for iconv declaration 70 | configure:2598: checking for nl_langinfo and CODESET 71 | configure:2633: checking for LC_MESSAGES 72 | configure:2666: checking whether NLS is requested 73 | configure:2688: checking whether included gettext is requested 74 | configure:2708: checking for libintl.h 75 | configure:2735: checking for GNU gettext in libc 76 | configure:2814: checking for dcgettext 77 | configure:2871: checking for msgfmt 78 | configure:2905: checking for gmsgfmt 79 | configure:2942: checking for xgettext 80 | configure:3133: checking for bison 81 | configure:3166: checking version of bison 82 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/configure.in: -------------------------------------------------------------------------------- 1 | dnl Process this file with autoconf to produce a configure script. 2 | 3 | AC_INIT(configure.in) 4 | AM_INIT_AUTOMAKE(gsat, 0.1) 5 | AM_CONFIG_HEADER(config.h) 6 | 7 | AC_ISC_POSIX 8 | AC_PROG_CC 9 | AM_PROG_CC_STDC 10 | AC_HEADER_STDC 11 | 12 | AM_PATH_GTK(1.2.0, , 13 | AC_MSG_ERROR(Cannot find GTK: Is gtk-config in path?)) 14 | 15 | dnl Add the languages which your application supports here. 16 | ALL_LINGUAS="" 17 | AM_GNU_GETTEXT 18 | 19 | dnl Set PACKAGE_LOCALE_DIR in config.h. 20 | if test "x${prefix}" = "xNONE"; then 21 | AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${ac_default_prefix}/${DATADIRNAME}/locale") 22 | else 23 | AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${prefix}/${DATADIRNAME}/locale") 24 | fi 25 | 26 | dnl Set PACKAGE_DATA_DIR in config.h. 27 | if test "x${datadir}" = 'x${prefix}/share'; then 28 | if test "x${prefix}" = "xNONE"; then 29 | AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${ac_default_prefix}/share/${PACKAGE}") 30 | else 31 | AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${prefix}/share/${PACKAGE}") 32 | fi 33 | else 34 | AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${datadir}/${PACKAGE}") 35 | fi 36 | 37 | dnl Set PACKAGE_SOURCE_DIR in config.h. 38 | packagesrcdir=`cd $srcdir && pwd` 39 | AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, "${packagesrcdir}") 40 | 41 | dnl Use -Wall if we have gcc. 42 | changequote(,)dnl 43 | if test "x$GCC" = "xyes"; then 44 | case " $CFLAGS " in 45 | *[\ \ ]-Wall[\ \ ]*) ;; 46 | *) CFLAGS="$CFLAGS -Wall" ;; 47 | esac 48 | fi 49 | changequote([,])dnl 50 | 51 | AC_OUTPUT([ 52 | Makefile 53 | src/Makefile 54 | intl/Makefile 55 | po/Makefile.in 56 | ]) 57 | 58 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/gsat.db: -------------------------------------------------------------------------------- 1 | AO-10:J:435030:145975:145810 2 | AO-16:J:145900:437026:437025 3 | AO-27:J:145850:436795: 4 | AO-40:LS:1269000:2401300:2401323 5 | AO-40:VS:145900:2401300:2401323 6 | AO-40:US:435500:2401300:2401323 7 | AO-49:PACKET:435275:145825: 8 | AO-7:B:432125:145975:145972 9 | AO-7:A:145800:29400:29502 10 | DO-17:J::145825: 11 | FO-20:JA:145900:435800:435795 12 | FO-29:JD:145850:435910:435910 13 | FO-29:JA:145900:435800:435795 14 | GO-32:J:145850:435325:435225 15 | IDEFIX:J::435278:145839 16 | IO-26:1K2:145875:435812: 17 | ISS:PACKET:145990:145800:143625 18 | ISS:VOICE:145200:145800:143625 19 | KO-23:J:145850:435175: 20 | KO-25:J:145870:436500: 21 | LO-19:J:145840:437152.8:437125 22 | MET-2/21:J:137500:137400:137770 23 | MET-3/5:J::137400:137770 24 | MO-46:9K6:145850:437325: 25 | MOZHAYETS:J::435319:145828 26 | NOAA-12:APT::137500:137770 27 | NOAA-14:APT::137620:137770 28 | NOAA-15:APT::137500:137770 29 | NOAA-16:APT::137620:137770 30 | NOAA-17:APT::137620:137770 31 | OKEAN-0:APT::137400:137770 32 | OKEAN-4:APT::137400:137220 33 | OO-38:J:437100:437100:437100 34 | PCSAT:APRS:145825:145825:144390 35 | PO-28:J:145975:435277.7: 36 | RS-12/13:J:145910:29408.1:29500 37 | RS-15:A:145858:29354:29352 38 | RS-20:BEACON::145828:435319 39 | RS-21:J::145825:435335 40 | SAPPHIRE:J:437100:437100:437100 41 | SO-33:J:::437910 42 | SO-41:J:145850:436775: 43 | SO-43:J:::145820 44 | SO-50:J:145850:436800: 45 | STARSHINE 3:J::145825:145825 46 | TO-31:J:145925:436925: 47 | UO-11:AFSK::145826:2401500 48 | UO-14:J:145975:435070: 49 | UO-22:9K6:145900:435120: 50 | UO-36:J::437025: 51 | WO-18:J::437104: 52 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/gsat.prefs: -------------------------------------------------------------------------------- 1 | 101111 2 | play /usr/share/xfce/sounds/alert01.wav >/dev/null 2>&1 & 3 | play /usr/share/xfce/sounds/ping01.wav >/dev/null 2>&1 & 4 | None 5 | D/dev/ttyS0:S19200 6 | None 7 | 8 | None 9 | D/dev/ttyS0:S19200 10 | None 11 | test 12 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/ChangeLog: -------------------------------------------------------------------------------- 1 | 2001-09-13 GNU 2 | 3 | * Version 0.10.40 released. 4 | 5 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/VERSION: -------------------------------------------------------------------------------- 1 | GNU gettext library from gettext-0.10.40 2 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/dcgettext.c: -------------------------------------------------------------------------------- 1 | /* Implementation of the dcgettext(3) function. 2 | Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. 3 | 4 | This program is free software; you can redistribute it and/or modify it 5 | under the terms of the GNU Library General Public License as published 6 | by the Free Software Foundation; either version 2, or (at your option) 7 | any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Library General Public License for more details. 13 | 14 | You should have received a copy of the GNU Library General Public 15 | License along with this program; if not, write to the Free Software 16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 17 | USA. */ 18 | 19 | #ifdef HAVE_CONFIG_H 20 | # include 21 | #endif 22 | 23 | #include "gettextP.h" 24 | #ifdef _LIBC 25 | # include 26 | #else 27 | # include "libgnuintl.h" 28 | #endif 29 | 30 | /* @@ end of prolog @@ */ 31 | 32 | /* Names for the libintl functions are a problem. They must not clash 33 | with existing names and they should follow ANSI C. But this source 34 | code is also used in GNU C Library where the names have a __ 35 | prefix. So we have to make a difference here. */ 36 | #ifdef _LIBC 37 | # define DCGETTEXT __dcgettext 38 | # define DCIGETTEXT __dcigettext 39 | #else 40 | # define DCGETTEXT dcgettext__ 41 | # define DCIGETTEXT dcigettext__ 42 | #endif 43 | 44 | /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY 45 | locale. */ 46 | char * 47 | DCGETTEXT (domainname, msgid, category) 48 | const char *domainname; 49 | const char *msgid; 50 | int category; 51 | { 52 | return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category); 53 | } 54 | 55 | #ifdef _LIBC 56 | /* Alias for function name in GNU C Library. */ 57 | weak_alias (__dcgettext, dcgettext); 58 | #endif 59 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/dcngettext.c: -------------------------------------------------------------------------------- 1 | /* Implementation of the dcngettext(3) function. 2 | Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc. 3 | 4 | This program is free software; you can redistribute it and/or modify it 5 | under the terms of the GNU Library General Public License as published 6 | by the Free Software Foundation; either version 2, or (at your option) 7 | any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Library General Public License for more details. 13 | 14 | You should have received a copy of the GNU Library General Public 15 | License along with this program; if not, write to the Free Software 16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 17 | USA. */ 18 | 19 | #ifdef HAVE_CONFIG_H 20 | # include 21 | #endif 22 | 23 | #include "gettextP.h" 24 | #ifdef _LIBC 25 | # include 26 | #else 27 | # include "libgnuintl.h" 28 | #endif 29 | 30 | /* @@ end of prolog @@ */ 31 | 32 | /* Names for the libintl functions are a problem. They must not clash 33 | with existing names and they should follow ANSI C. But this source 34 | code is also used in GNU C Library where the names have a __ 35 | prefix. So we have to make a difference here. */ 36 | #ifdef _LIBC 37 | # define DCNGETTEXT __dcngettext 38 | # define DCIGETTEXT __dcigettext 39 | #else 40 | # define DCNGETTEXT dcngettext__ 41 | # define DCIGETTEXT dcigettext__ 42 | #endif 43 | 44 | /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY 45 | locale. */ 46 | char * 47 | DCNGETTEXT (domainname, msgid1, msgid2, n, category) 48 | const char *domainname; 49 | const char *msgid1; 50 | const char *msgid2; 51 | unsigned long int n; 52 | int category; 53 | { 54 | return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category); 55 | } 56 | 57 | #ifdef _LIBC 58 | /* Alias for function name in GNU C Library. */ 59 | weak_alias (__dcngettext, dcngettext); 60 | #endif 61 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/dgettext.c: -------------------------------------------------------------------------------- 1 | /* Implementation of the dgettext(3) function. 2 | Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc. 3 | 4 | This program is free software; you can redistribute it and/or modify it 5 | under the terms of the GNU Library General Public License as published 6 | by the Free Software Foundation; either version 2, or (at your option) 7 | any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Library General Public License for more details. 13 | 14 | You should have received a copy of the GNU Library General Public 15 | License along with this program; if not, write to the Free Software 16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 17 | USA. */ 18 | 19 | #ifdef HAVE_CONFIG_H 20 | # include 21 | #endif 22 | 23 | #include 24 | 25 | #include "gettextP.h" 26 | #ifdef _LIBC 27 | # include 28 | #else 29 | # include "libgnuintl.h" 30 | #endif 31 | 32 | /* @@ end of prolog @@ */ 33 | 34 | /* Names for the libintl functions are a problem. They must not clash 35 | with existing names and they should follow ANSI C. But this source 36 | code is also used in GNU C Library where the names have a __ 37 | prefix. So we have to make a difference here. */ 38 | #ifdef _LIBC 39 | # define DGETTEXT __dgettext 40 | # define DCGETTEXT __dcgettext 41 | #else 42 | # define DGETTEXT dgettext__ 43 | # define DCGETTEXT dcgettext__ 44 | #endif 45 | 46 | /* Look up MSGID in the DOMAINNAME message catalog of the current 47 | LC_MESSAGES locale. */ 48 | char * 49 | DGETTEXT (domainname, msgid) 50 | const char *domainname; 51 | const char *msgid; 52 | { 53 | return DCGETTEXT (domainname, msgid, LC_MESSAGES); 54 | } 55 | 56 | #ifdef _LIBC 57 | /* Alias for function name in GNU C Library. */ 58 | weak_alias (__dgettext, dgettext); 59 | #endif 60 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/dngettext.c: -------------------------------------------------------------------------------- 1 | /* Implementation of the dngettext(3) function. 2 | Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc. 3 | 4 | This program is free software; you can redistribute it and/or modify it 5 | under the terms of the GNU Library General Public License as published 6 | by the Free Software Foundation; either version 2, or (at your option) 7 | any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Library General Public License for more details. 13 | 14 | You should have received a copy of the GNU Library General Public 15 | License along with this program; if not, write to the Free Software 16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 17 | USA. */ 18 | 19 | #ifdef HAVE_CONFIG_H 20 | # include 21 | #endif 22 | 23 | #include 24 | 25 | #include "gettextP.h" 26 | #ifdef _LIBC 27 | # include 28 | #else 29 | # include "libgnuintl.h" 30 | #endif 31 | 32 | /* @@ end of prolog @@ */ 33 | 34 | /* Names for the libintl functions are a problem. They must not clash 35 | with existing names and they should follow ANSI C. But this source 36 | code is also used in GNU C Library where the names have a __ 37 | prefix. So we have to make a difference here. */ 38 | #ifdef _LIBC 39 | # define DNGETTEXT __dngettext 40 | # define DCNGETTEXT __dcngettext 41 | #else 42 | # define DNGETTEXT dngettext__ 43 | # define DCNGETTEXT dcngettext__ 44 | #endif 45 | 46 | /* Look up MSGID in the DOMAINNAME message catalog of the current 47 | LC_MESSAGES locale and skip message according to the plural form. */ 48 | char * 49 | DNGETTEXT (domainname, msgid1, msgid2, n) 50 | const char *domainname; 51 | const char *msgid1; 52 | const char *msgid2; 53 | unsigned long int n; 54 | { 55 | return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES); 56 | } 57 | 58 | #ifdef _LIBC 59 | /* Alias for function name in GNU C Library. */ 60 | weak_alias (__dngettext, dngettext); 61 | #endif 62 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/explodename.c: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. 2 | Contributed by Ulrich Drepper , 1995. 3 | 4 | This program is free software; you can redistribute it and/or modify it 5 | under the terms of the GNU Library General Public License as published 6 | by the Free Software Foundation; either version 2, or (at your option) 7 | any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Library General Public License for more details. 13 | 14 | You should have received a copy of the GNU Library General Public 15 | License along with this program; if not, write to the Free Software 16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 17 | USA. */ 18 | 19 | #ifdef HAVE_CONFIG_H 20 | # include 21 | #endif 22 | 23 | #include 24 | #include 25 | #include 26 | 27 | #include "loadinfo.h" 28 | 29 | /* On some strange systems still no definition of NULL is found. Sigh! */ 30 | #ifndef NULL 31 | # if defined __STDC__ && __STDC__ 32 | # define NULL ((void *) 0) 33 | # else 34 | # define NULL 0 35 | # endif 36 | #endif 37 | 38 | /* @@ end of prolog @@ */ 39 | 40 | char * 41 | _nl_find_language (name) 42 | const char *name; 43 | { 44 | while (name[0] != '\0' && name[0] != '_' && name[0] != '@' 45 | && name[0] != '+' && name[0] != ',') 46 | ++name; 47 | 48 | return (char *) name; 49 | } 50 | 51 | 52 | int 53 | _nl_explode_name (name, language, modifier, territory, codeset, 54 | normalized_codeset, special, sponsor, revision) 55 | char *name; 56 | const char **language; 57 | const char **modifier; 58 | const char **territory; 59 | const char **codeset; 60 | const char **normalized_codeset; 61 | const char **special; 62 | const char **sponsor; 63 | const char **revision; 64 | { 65 | enum { undecided, xpg, cen } syntax; 66 | char *cp; 67 | int mask; 68 | 69 | *modifier = NULL; 70 | *territory = NULL; 71 | *codeset = NULL; 72 | *normalized_codeset = NULL; 73 | *special = NULL; 74 | *sponsor = NULL; 75 | *revision = NULL; 76 | 77 | /* Now we determine the single parts of the locale name. First 78 | look for the language. Termination symbols are `_' and `@' if 79 | we use XPG4 style, and `_', `+', and `,' if we use CEN syntax. */ 80 | mask = 0; 81 | syntax = undecided; 82 | *language = cp = name; 83 | cp = _nl_find_language (*language); 84 | 85 | if (*language == cp) 86 | /* This does not make sense: language has to be specified. Use 87 | this entry as it is without exploding. Perhaps it is an alias. */ 88 | cp = strchr (*language, '\0'); 89 | else if (cp[0] == '_') 90 | { 91 | /* Next is the territory. */ 92 | cp[0] = '\0'; 93 | *territory = ++cp; 94 | 95 | while (cp[0] != '\0' && cp[0] != '.' && cp[0] != '@' 96 | && cp[0] != '+' && cp[0] != ',' && cp[0] != '_') 97 | ++cp; 98 | 99 | mask |= TERRITORY; 100 | 101 | if (cp[0] == '.') 102 | { 103 | /* Next is the codeset. */ 104 | syntax = xpg; 105 | cp[0] = '\0'; 106 | *codeset = ++cp; 107 | 108 | while (cp[0] != '\0' && cp[0] != '@') 109 | ++cp; 110 | 111 | mask |= XPG_CODESET; 112 | 113 | if (*codeset != cp && (*codeset)[0] != '\0') 114 | { 115 | *normalized_codeset = _nl_normalize_codeset (*codeset, 116 | cp - *codeset); 117 | if (strcmp (*codeset, *normalized_codeset) == 0) 118 | free ((char *) *normalized_codeset); 119 | else 120 | mask |= XPG_NORM_CODESET; 121 | } 122 | } 123 | } 124 | 125 | if (cp[0] == '@' || (syntax != xpg && cp[0] == '+')) 126 | { 127 | /* Next is the modifier. */ 128 | syntax = cp[0] == '@' ? xpg : cen; 129 | cp[0] = '\0'; 130 | *modifier = ++cp; 131 | 132 | while (syntax == cen && cp[0] != '\0' && cp[0] != '+' 133 | && cp[0] != ',' && cp[0] != '_') 134 | ++cp; 135 | 136 | mask |= XPG_MODIFIER | CEN_AUDIENCE; 137 | } 138 | 139 | if (syntax != xpg && (cp[0] == '+' || cp[0] == ',' || cp[0] == '_')) 140 | { 141 | syntax = cen; 142 | 143 | if (cp[0] == '+') 144 | { 145 | /* Next is special application (CEN syntax). */ 146 | cp[0] = '\0'; 147 | *special = ++cp; 148 | 149 | while (cp[0] != '\0' && cp[0] != ',' && cp[0] != '_') 150 | ++cp; 151 | 152 | mask |= CEN_SPECIAL; 153 | } 154 | 155 | if (cp[0] == ',') 156 | { 157 | /* Next is sponsor (CEN syntax). */ 158 | cp[0] = '\0'; 159 | *sponsor = ++cp; 160 | 161 | while (cp[0] != '\0' && cp[0] != '_') 162 | ++cp; 163 | 164 | mask |= CEN_SPONSOR; 165 | } 166 | 167 | if (cp[0] == '_') 168 | { 169 | /* Next is revision (CEN syntax). */ 170 | cp[0] = '\0'; 171 | *revision = ++cp; 172 | 173 | mask |= CEN_REVISION; 174 | } 175 | } 176 | 177 | /* For CEN syntax values it might be important to have the 178 | separator character in the file name, not for XPG syntax. */ 179 | if (syntax == xpg) 180 | { 181 | if (*territory != NULL && (*territory)[0] == '\0') 182 | mask &= ~TERRITORY; 183 | 184 | if (*codeset != NULL && (*codeset)[0] == '\0') 185 | mask &= ~XPG_CODESET; 186 | 187 | if (*modifier != NULL && (*modifier)[0] == '\0') 188 | mask &= ~XPG_MODIFIER; 189 | } 190 | 191 | return mask; 192 | } 193 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/gettext.c: -------------------------------------------------------------------------------- 1 | /* Implementation of gettext(3) function. 2 | Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc. 3 | 4 | This program is free software; you can redistribute it and/or modify it 5 | under the terms of the GNU Library General Public License as published 6 | by the Free Software Foundation; either version 2, or (at your option) 7 | any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Library General Public License for more details. 13 | 14 | You should have received a copy of the GNU Library General Public 15 | License along with this program; if not, write to the Free Software 16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 17 | USA. */ 18 | 19 | #ifdef HAVE_CONFIG_H 20 | # include 21 | #endif 22 | 23 | #ifdef _LIBC 24 | # define __need_NULL 25 | # include 26 | #else 27 | # include /* Just for NULL. */ 28 | #endif 29 | 30 | #include "gettextP.h" 31 | #ifdef _LIBC 32 | # include 33 | #else 34 | # include "libgnuintl.h" 35 | #endif 36 | 37 | /* @@ end of prolog @@ */ 38 | 39 | /* Names for the libintl functions are a problem. They must not clash 40 | with existing names and they should follow ANSI C. But this source 41 | code is also used in GNU C Library where the names have a __ 42 | prefix. So we have to make a difference here. */ 43 | #ifdef _LIBC 44 | # define GETTEXT __gettext 45 | # define DCGETTEXT __dcgettext 46 | #else 47 | # define GETTEXT gettext__ 48 | # define DCGETTEXT dcgettext__ 49 | #endif 50 | 51 | /* Look up MSGID in the current default message catalog for the current 52 | LC_MESSAGES locale. If not found, returns MSGID itself (the default 53 | text). */ 54 | char * 55 | GETTEXT (msgid) 56 | const char *msgid; 57 | { 58 | return DCGETTEXT (NULL, msgid, LC_MESSAGES); 59 | } 60 | 61 | #ifdef _LIBC 62 | /* Alias for function name in GNU C Library. */ 63 | weak_alias (__gettext, gettext); 64 | #endif 65 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/gettext.h: -------------------------------------------------------------------------------- 1 | /* Description of GNU message catalog format: general file layout. 2 | Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc. 3 | 4 | This program is free software; you can redistribute it and/or modify it 5 | under the terms of the GNU Library General Public License as published 6 | by the Free Software Foundation; either version 2, or (at your option) 7 | any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Library General Public License for more details. 13 | 14 | You should have received a copy of the GNU Library General Public 15 | License along with this program; if not, write to the Free Software 16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 17 | USA. */ 18 | 19 | #ifndef _GETTEXT_H 20 | #define _GETTEXT_H 1 21 | 22 | #if HAVE_LIMITS_H || _LIBC 23 | # include 24 | #endif 25 | 26 | /* @@ end of prolog @@ */ 27 | 28 | /* The magic number of the GNU message catalog format. */ 29 | #define _MAGIC 0x950412de 30 | #define _MAGIC_SWAPPED 0xde120495 31 | 32 | /* Revision number of the currently used .mo (binary) file format. */ 33 | #define MO_REVISION_NUMBER 0 34 | 35 | /* The following contortions are an attempt to use the C preprocessor 36 | to determine an unsigned integral type that is 32 bits wide. An 37 | alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but 38 | as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work 39 | when cross-compiling. */ 40 | 41 | #if __STDC__ 42 | # define UINT_MAX_32_BITS 4294967295U 43 | #else 44 | # define UINT_MAX_32_BITS 0xFFFFFFFF 45 | #endif 46 | 47 | /* If UINT_MAX isn't defined, assume it's a 32-bit type. 48 | This should be valid for all systems GNU cares about because 49 | that doesn't include 16-bit systems, and only modern systems 50 | (that certainly have ) have 64+-bit integral types. */ 51 | 52 | #ifndef UINT_MAX 53 | # define UINT_MAX UINT_MAX_32_BITS 54 | #endif 55 | 56 | #if UINT_MAX == UINT_MAX_32_BITS 57 | typedef unsigned nls_uint32; 58 | #else 59 | # if USHRT_MAX == UINT_MAX_32_BITS 60 | typedef unsigned short nls_uint32; 61 | # else 62 | # if ULONG_MAX == UINT_MAX_32_BITS 63 | typedef unsigned long nls_uint32; 64 | # else 65 | /* The following line is intended to throw an error. Using #error is 66 | not portable enough. */ 67 | "Cannot determine unsigned 32-bit data type." 68 | # endif 69 | # endif 70 | #endif 71 | 72 | 73 | /* Header for binary .mo file format. */ 74 | struct mo_file_header 75 | { 76 | /* The magic number. */ 77 | nls_uint32 magic; 78 | /* The revision number of the file format. */ 79 | nls_uint32 revision; 80 | /* The number of strings pairs. */ 81 | nls_uint32 nstrings; 82 | /* Offset of table with start offsets of original strings. */ 83 | nls_uint32 orig_tab_offset; 84 | /* Offset of table with start offsets of translation strings. */ 85 | nls_uint32 trans_tab_offset; 86 | /* Size of hashing table. */ 87 | nls_uint32 hash_tab_size; 88 | /* Offset of first hashing entry. */ 89 | nls_uint32 hash_tab_offset; 90 | }; 91 | 92 | struct string_desc 93 | { 94 | /* Length of addressed string. */ 95 | nls_uint32 length; 96 | /* Offset of string in file. */ 97 | nls_uint32 offset; 98 | }; 99 | 100 | /* @@ begin of epilog @@ */ 101 | 102 | #endif /* gettext.h */ 103 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/hash-string.h: -------------------------------------------------------------------------------- 1 | /* Description of GNU message catalog format: string hashing function. 2 | Copyright (C) 1995, 1997, 1998, 2000, 2001 Free Software Foundation, Inc. 3 | 4 | This program is free software; you can redistribute it and/or modify it 5 | under the terms of the GNU Library General Public License as published 6 | by the Free Software Foundation; either version 2, or (at your option) 7 | any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Library General Public License for more details. 13 | 14 | You should have received a copy of the GNU Library General Public 15 | License along with this program; if not, write to the Free Software 16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 17 | USA. */ 18 | 19 | /* @@ end of prolog @@ */ 20 | 21 | #ifndef PARAMS 22 | # if __STDC__ 23 | # define PARAMS(Args) Args 24 | # else 25 | # define PARAMS(Args) () 26 | # endif 27 | #endif 28 | 29 | /* We assume to have `unsigned long int' value with at least 32 bits. */ 30 | #define HASHWORDBITS 32 31 | 32 | 33 | /* Defines the so called `hashpjw' function by P.J. Weinberger 34 | [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools, 35 | 1986, 1987 Bell Telephone Laboratories, Inc.] */ 36 | static unsigned long int hash_string PARAMS ((const char *__str_param)); 37 | 38 | static inline unsigned long int 39 | hash_string (str_param) 40 | const char *str_param; 41 | { 42 | unsigned long int hval, g; 43 | const char *str = str_param; 44 | 45 | /* Compute the hash value for the given string. */ 46 | hval = 0; 47 | while (*str != '\0') 48 | { 49 | hval <<= 4; 50 | hval += (unsigned long int) *str++; 51 | g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4)); 52 | if (g != 0) 53 | { 54 | hval ^= g >> (HASHWORDBITS - 8); 55 | hval ^= g; 56 | } 57 | } 58 | return hval; 59 | } 60 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/intl-compat.c: -------------------------------------------------------------------------------- 1 | /* intl-compat.c - Stub functions to call gettext functions from GNU gettext 2 | Library. 3 | Copyright (C) 1995, 2000, 2001 Software Foundation, Inc. 4 | 5 | This program is free software; you can redistribute it and/or modify it 6 | under the terms of the GNU Library General Public License as published 7 | by the Free Software Foundation; either version 2, or (at your option) 8 | any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Library General Public License for more details. 14 | 15 | You should have received a copy of the GNU Library General Public 16 | License along with this program; if not, write to the Free Software 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 18 | USA. */ 19 | 20 | #ifdef HAVE_CONFIG_H 21 | # include 22 | #endif 23 | 24 | #include "libgnuintl.h" 25 | #include "gettextP.h" 26 | 27 | /* @@ end of prolog @@ */ 28 | 29 | /* This file redirects the gettext functions (without prefix or suffix) to 30 | those defined in the included GNU gettext library (with "__" suffix). 31 | It is compiled into libintl when the included GNU gettext library is 32 | configured --with-included-gettext. 33 | 34 | This redirection works also in the case that the system C library or 35 | the system libintl library contain gettext/textdomain/... functions. 36 | If it didn't, we would need to add preprocessor level redirections to 37 | libgnuintl.h of the following form: 38 | 39 | # define gettext gettext__ 40 | # define dgettext dgettext__ 41 | # define dcgettext dcgettext__ 42 | # define ngettext ngettext__ 43 | # define dngettext dngettext__ 44 | # define dcngettext dcngettext__ 45 | # define textdomain textdomain__ 46 | # define bindtextdomain bindtextdomain__ 47 | # define bind_textdomain_codeset bind_textdomain_codeset__ 48 | 49 | How does this redirection work? There are two cases. 50 | A. When libintl.a is linked into an executable, it works because 51 | functions defined in the executable always override functions in 52 | the shared libraries. 53 | B. When libintl.so is used, it works because 54 | 1. those systems defining gettext/textdomain/... in the C library 55 | (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer) are 56 | ELF systems and define these symbols as weak, thus explicitly 57 | letting other shared libraries override it. 58 | 2. those systems defining gettext/textdomain/... in a standalone 59 | libintl.so library (namely, Solaris 2.3 and newer) have this 60 | shared library in /usr/lib, and the linker will search /usr/lib 61 | *after* the directory where the GNU gettext library is installed. 62 | 63 | A third case, namely when libintl.a is linked into a shared library 64 | whose name is not libintl.so, is not supported. In this case, on 65 | Solaris, when -lintl precedes the linker option for the shared library 66 | containing GNU gettext, the system's gettext would indeed override 67 | the GNU gettext. Anyone doing this kind of stuff must be clever enough 68 | to 1. compile libintl.a with -fPIC, 2. remove -lintl from his linker 69 | command line. */ 70 | 71 | 72 | #undef gettext 73 | #undef dgettext 74 | #undef dcgettext 75 | #undef ngettext 76 | #undef dngettext 77 | #undef dcngettext 78 | #undef textdomain 79 | #undef bindtextdomain 80 | #undef bind_textdomain_codeset 81 | 82 | 83 | char * 84 | gettext (msgid) 85 | const char *msgid; 86 | { 87 | return gettext__ (msgid); 88 | } 89 | 90 | 91 | char * 92 | dgettext (domainname, msgid) 93 | const char *domainname; 94 | const char *msgid; 95 | { 96 | return dgettext__ (domainname, msgid); 97 | } 98 | 99 | 100 | char * 101 | dcgettext (domainname, msgid, category) 102 | const char *domainname; 103 | const char *msgid; 104 | int category; 105 | { 106 | return dcgettext__ (domainname, msgid, category); 107 | } 108 | 109 | 110 | char * 111 | ngettext (msgid1, msgid2, n) 112 | const char *msgid1; 113 | const char *msgid2; 114 | unsigned long int n; 115 | { 116 | return ngettext__ (msgid1, msgid2, n); 117 | } 118 | 119 | 120 | char * 121 | dngettext (domainname, msgid1, msgid2, n) 122 | const char *domainname; 123 | const char *msgid1; 124 | const char *msgid2; 125 | unsigned long int n; 126 | { 127 | return dngettext__ (domainname, msgid1, msgid2, n); 128 | } 129 | 130 | 131 | char * 132 | dcngettext (domainname, msgid1, msgid2, n, category) 133 | const char *domainname; 134 | const char *msgid1; 135 | const char *msgid2; 136 | unsigned long int n; 137 | int category; 138 | { 139 | return dcngettext__ (domainname, msgid1, msgid2, n, category); 140 | } 141 | 142 | 143 | char * 144 | textdomain (domainname) 145 | const char *domainname; 146 | { 147 | return textdomain__ (domainname); 148 | } 149 | 150 | 151 | char * 152 | bindtextdomain (domainname, dirname) 153 | const char *domainname; 154 | const char *dirname; 155 | { 156 | return bindtextdomain__ (domainname, dirname); 157 | } 158 | 159 | 160 | char * 161 | bind_textdomain_codeset (domainname, codeset) 162 | const char *domainname; 163 | const char *codeset; 164 | { 165 | return bind_textdomain_codeset__ (domainname, codeset); 166 | } 167 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/libgettext.h: -------------------------------------------------------------------------------- 1 | /* Convenience header for conditional use of GNU . 2 | Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. 3 | 4 | This program is free software; you can redistribute it and/or modify it 5 | under the terms of the GNU Library General Public License as published 6 | by the Free Software Foundation; either version 2, or (at your option) 7 | any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Library General Public License for more details. 13 | 14 | You should have received a copy of the GNU Library General Public 15 | License along with this program; if not, write to the Free Software 16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 17 | USA. */ 18 | 19 | #ifndef _LIBGETTEXT_H 20 | #define _LIBGETTEXT_H 1 21 | 22 | /* NLS can be disabled through the configure --disable-nls option. */ 23 | #if ENABLE_NLS 24 | 25 | /* Get declarations of GNU message catalog functions. */ 26 | # include 27 | 28 | #else 29 | 30 | # define gettext(Msgid) (Msgid) 31 | # define dgettext(Domainname, Msgid) (Msgid) 32 | # define dcgettext(Domainname, Msgid, Category) (Msgid) 33 | # define ngettext(Msgid1, Msgid2, N) \ 34 | ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2)) 35 | # define dngettext(Domainname, Msgid1, Msgid2, N) \ 36 | ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2)) 37 | # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ 38 | ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2)) 39 | # define textdomain(Domainname) ((char *) (Domainname)) 40 | # define bindtextdomain(Domainname, Dirname) ((char *) (Dirname)) 41 | # define bind_textdomain_codeset(Domainname, Codeset) ((char *) (Codeset)) 42 | 43 | #endif 44 | 45 | /* For automatical extraction of messages sometimes no real 46 | translation is needed. Instead the string itself is the result. */ 47 | #define gettext_noop(Str) (Str) 48 | 49 | #endif /* _LIBGETTEXT_H */ 50 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/libgnuintl.h: -------------------------------------------------------------------------------- 1 | /* Message catalogs for internationalization. 2 | Copyright (C) 1995-1997, 2000, 2001 Free Software Foundation, Inc. 3 | 4 | This program is free software; you can redistribute it and/or modify it 5 | under the terms of the GNU Library General Public License as published 6 | by the Free Software Foundation; either version 2, or (at your option) 7 | any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Library General Public License for more details. 13 | 14 | You should have received a copy of the GNU Library General Public 15 | License along with this program; if not, write to the Free Software 16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 17 | USA. */ 18 | 19 | #ifndef _LIBINTL_H 20 | #define _LIBINTL_H 1 21 | 22 | #include 23 | 24 | /* The LC_MESSAGES locale category is the category used by the functions 25 | gettext() and dgettext(). It is specified in POSIX, but not in ANSI C. 26 | On systems that don't define it, use an arbitrary value instead. 27 | On Solaris, defines __LOCALE_H then includes (i.e. 28 | this file!) and then only defines LC_MESSAGES. To avoid a redefinition 29 | warning, don't define LC_MESSAGES in this case. */ 30 | #if !defined LC_MESSAGES && !defined __LOCALE_H 31 | # define LC_MESSAGES 1729 32 | #endif 33 | 34 | /* We define an additional symbol to signal that we use the GNU 35 | implementation of gettext. */ 36 | #define __USE_GNU_GETTEXT 1 37 | 38 | /* Resolve a platform specific conflict on DJGPP. GNU gettext takes 39 | precedence over _conio_gettext. */ 40 | #ifdef __DJGPP__ 41 | # undef gettext 42 | # define gettext gettext 43 | #endif 44 | 45 | #ifndef PARAMS 46 | # if __STDC__ || defined __cplusplus 47 | # define PARAMS(args) args 48 | # else 49 | # define PARAMS(args) () 50 | # endif 51 | #endif 52 | 53 | #ifdef __cplusplus 54 | extern "C" { 55 | #endif 56 | 57 | /* Look up MSGID in the current default message catalog for the current 58 | LC_MESSAGES locale. If not found, returns MSGID itself (the default 59 | text). */ 60 | extern char *gettext PARAMS ((const char *__msgid)); 61 | 62 | /* Look up MSGID in the DOMAINNAME message catalog for the current 63 | LC_MESSAGES locale. */ 64 | extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid)); 65 | 66 | /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY 67 | locale. */ 68 | extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid, 69 | int __category)); 70 | 71 | 72 | /* Similar to `gettext' but select the plural form corresponding to the 73 | number N. */ 74 | extern char *ngettext PARAMS ((const char *__msgid1, const char *__msgid2, 75 | unsigned long int __n)); 76 | 77 | /* Similar to `dgettext' but select the plural form corresponding to the 78 | number N. */ 79 | extern char *dngettext PARAMS ((const char *__domainname, const char *__msgid1, 80 | const char *__msgid2, unsigned long int __n)); 81 | 82 | /* Similar to `dcgettext' but select the plural form corresponding to the 83 | number N. */ 84 | extern char *dcngettext PARAMS ((const char *__domainname, const char *__msgid1, 85 | const char *__msgid2, unsigned long int __n, 86 | int __category)); 87 | 88 | 89 | /* Set the current default message catalog to DOMAINNAME. 90 | If DOMAINNAME is null, return the current default. 91 | If DOMAINNAME is "", reset to the default of "messages". */ 92 | extern char *textdomain PARAMS ((const char *__domainname)); 93 | 94 | /* Specify that the DOMAINNAME message catalog will be found 95 | in DIRNAME rather than in the system locale data base. */ 96 | extern char *bindtextdomain PARAMS ((const char *__domainname, 97 | const char *__dirname)); 98 | 99 | /* Specify the character encoding in which the messages from the 100 | DOMAINNAME message catalog will be returned. */ 101 | extern char *bind_textdomain_codeset PARAMS ((const char *__domainname, 102 | const char *__codeset)); 103 | 104 | 105 | /* Optimized version of the functions above. */ 106 | #if defined __OPTIMIZED 107 | /* These are macros, but could also be inline functions. */ 108 | 109 | # define gettext(msgid) \ 110 | dgettext (NULL, msgid) 111 | 112 | # define dgettext(domainname, msgid) \ 113 | dcgettext (domainname, msgid, LC_MESSAGES) 114 | 115 | # define ngettext(msgid1, msgid2, n) \ 116 | dngettext (NULL, msgid1, msgid2, n) 117 | 118 | # define dngettext(domainname, msgid1, msgid2, n) \ 119 | dcngettext (domainname, msgid1, msgid2, n, LC_MESSAGES) 120 | 121 | #endif /* Optimizing. */ 122 | 123 | 124 | #ifdef __cplusplus 125 | } 126 | #endif 127 | 128 | #endif /* libintl.h */ 129 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/loadinfo.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1996-1999, 2000, 2001 Free Software Foundation, Inc. 2 | This file is part of the GNU C Library. 3 | Contributed by Ulrich Drepper , 1996. 4 | 5 | This program is free software; you can redistribute it and/or modify it 6 | under the terms of the GNU Library General Public License as published 7 | by the Free Software Foundation; either version 2, or (at your option) 8 | any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | Library General Public License for more details. 14 | 15 | You should have received a copy of the GNU Library General Public 16 | License along with this program; if not, write to the Free Software 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 18 | USA. */ 19 | 20 | #ifndef _LOADINFO_H 21 | #define _LOADINFO_H 1 22 | 23 | #ifndef PARAMS 24 | # if __STDC__ 25 | # define PARAMS(args) args 26 | # else 27 | # define PARAMS(args) () 28 | # endif 29 | #endif 30 | 31 | #ifndef internal_function 32 | # define internal_function 33 | #endif 34 | 35 | /* Tell the compiler when a conditional or integer expression is 36 | almost always true or almost always false. */ 37 | #ifndef HAVE_BUILTIN_EXPECT 38 | # define __builtin_expect(expr, val) (expr) 39 | #endif 40 | 41 | /* Separator in PATH like lists of pathnames. */ 42 | #if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ 43 | /* Win32, OS/2, DOS */ 44 | # define PATH_SEPARATOR ';' 45 | #else 46 | /* Unix */ 47 | # define PATH_SEPARATOR ':' 48 | #endif 49 | 50 | /* Encoding of locale name parts. */ 51 | #define CEN_REVISION 1 52 | #define CEN_SPONSOR 2 53 | #define CEN_SPECIAL 4 54 | #define XPG_NORM_CODESET 8 55 | #define XPG_CODESET 16 56 | #define TERRITORY 32 57 | #define CEN_AUDIENCE 64 58 | #define XPG_MODIFIER 128 59 | 60 | #define CEN_SPECIFIC (CEN_REVISION|CEN_SPONSOR|CEN_SPECIAL|CEN_AUDIENCE) 61 | #define XPG_SPECIFIC (XPG_CODESET|XPG_NORM_CODESET|XPG_MODIFIER) 62 | 63 | 64 | struct loaded_l10nfile 65 | { 66 | const char *filename; 67 | int decided; 68 | 69 | const void *data; 70 | 71 | struct loaded_l10nfile *next; 72 | struct loaded_l10nfile *successor[1]; 73 | }; 74 | 75 | 76 | /* Normalize codeset name. There is no standard for the codeset 77 | names. Normalization allows the user to use any of the common 78 | names. The return value is dynamically allocated and has to be 79 | freed by the caller. */ 80 | extern const char *_nl_normalize_codeset PARAMS ((const char *codeset, 81 | size_t name_len)); 82 | 83 | extern struct loaded_l10nfile * 84 | _nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list, 85 | const char *dirlist, size_t dirlist_len, int mask, 86 | const char *language, const char *territory, 87 | const char *codeset, 88 | const char *normalized_codeset, 89 | const char *modifier, const char *special, 90 | const char *sponsor, const char *revision, 91 | const char *filename, int do_allocate)); 92 | 93 | 94 | extern const char *_nl_expand_alias PARAMS ((const char *name)); 95 | 96 | /* normalized_codeset is dynamically allocated and has to be freed by 97 | the caller. */ 98 | extern int _nl_explode_name PARAMS ((char *name, const char **language, 99 | const char **modifier, 100 | const char **territory, 101 | const char **codeset, 102 | const char **normalized_codeset, 103 | const char **special, 104 | const char **sponsor, 105 | const char **revision)); 106 | 107 | extern char *_nl_find_language PARAMS ((const char *name)); 108 | 109 | #endif /* loadinfo.h */ 110 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/locale.alias: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/clients/gsat-1.1.0/intl/locale.alias -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/ngettext.c: -------------------------------------------------------------------------------- 1 | /* Implementation of ngettext(3) function. 2 | Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc. 3 | 4 | This program is free software; you can redistribute it and/or modify it 5 | under the terms of the GNU Library General Public License as published 6 | by the Free Software Foundation; either version 2, or (at your option) 7 | any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Library General Public License for more details. 13 | 14 | You should have received a copy of the GNU Library General Public 15 | License along with this program; if not, write to the Free Software 16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 17 | USA. */ 18 | 19 | #ifdef HAVE_CONFIG_H 20 | # include 21 | #endif 22 | 23 | #ifdef _LIBC 24 | # define __need_NULL 25 | # include 26 | #else 27 | # include /* Just for NULL. */ 28 | #endif 29 | 30 | #include "gettextP.h" 31 | #ifdef _LIBC 32 | # include 33 | #else 34 | # include "libgnuintl.h" 35 | #endif 36 | 37 | #include 38 | 39 | /* @@ end of prolog @@ */ 40 | 41 | /* Names for the libintl functions are a problem. They must not clash 42 | with existing names and they should follow ANSI C. But this source 43 | code is also used in GNU C Library where the names have a __ 44 | prefix. So we have to make a difference here. */ 45 | #ifdef _LIBC 46 | # define NGETTEXT __ngettext 47 | # define DCNGETTEXT __dcngettext 48 | #else 49 | # define NGETTEXT ngettext__ 50 | # define DCNGETTEXT dcngettext__ 51 | #endif 52 | 53 | /* Look up MSGID in the current default message catalog for the current 54 | LC_MESSAGES locale. If not found, returns MSGID itself (the default 55 | text). */ 56 | char * 57 | NGETTEXT (msgid1, msgid2, n) 58 | const char *msgid1; 59 | const char *msgid2; 60 | unsigned long int n; 61 | { 62 | return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES); 63 | } 64 | 65 | #ifdef _LIBC 66 | /* Alias for function name in GNU C Library. */ 67 | weak_alias (__ngettext, ngettext); 68 | #endif 69 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/ref-add.sin: -------------------------------------------------------------------------------- 1 | # Add this package to a list of references stored in a text file. 2 | # 3 | # Copyright (C) 2000 Free Software Foundation, Inc. 4 | # 5 | # This program is free software; you can redistribute it and/or modify it 6 | # under the terms of the GNU Library General Public License as published 7 | # by the Free Software Foundation; either version 2, or (at your option) 8 | # any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | # Library General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Library General Public 16 | # License along with this program; if not, write to the Free Software 17 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 18 | # USA. 19 | # 20 | # Written by Bruno Haible . 21 | # 22 | /^# Packages using this file: / { 23 | s/# Packages using this file:// 24 | ta 25 | :a 26 | s/ @PACKAGE@ / @PACKAGE@ / 27 | tb 28 | s/ $/ @PACKAGE@ / 29 | :b 30 | s/^/# Packages using this file:/ 31 | } 32 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/ref-del.sin: -------------------------------------------------------------------------------- 1 | # Remove this package from a list of references stored in a text file. 2 | # 3 | # Copyright (C) 2000 Free Software Foundation, Inc. 4 | # 5 | # This program is free software; you can redistribute it and/or modify it 6 | # under the terms of the GNU Library General Public License as published 7 | # by the Free Software Foundation; either version 2, or (at your option) 8 | # any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | # Library General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU Library General Public 16 | # License along with this program; if not, write to the Free Software 17 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 18 | # USA. 19 | # 20 | # Written by Bruno Haible . 21 | # 22 | /^# Packages using this file: / { 23 | s/# Packages using this file:// 24 | s/ @PACKAGE@ / / 25 | s/^/# Packages using this file:/ 26 | } 27 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/intl/textdomain.c: -------------------------------------------------------------------------------- 1 | /* Implementation of the textdomain(3) function. 2 | Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. 3 | 4 | This program is free software; you can redistribute it and/or modify it 5 | under the terms of the GNU Library General Public License as published 6 | by the Free Software Foundation; either version 2, or (at your option) 7 | any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | Library General Public License for more details. 13 | 14 | You should have received a copy of the GNU Library General Public 15 | License along with this program; if not, write to the Free Software 16 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 17 | USA. */ 18 | 19 | #ifdef HAVE_CONFIG_H 20 | # include 21 | #endif 22 | 23 | #include 24 | #include 25 | 26 | #ifdef _LIBC 27 | # include 28 | #else 29 | # include "libgnuintl.h" 30 | #endif 31 | #include "gettextP.h" 32 | 33 | #ifdef _LIBC 34 | /* We have to handle multi-threaded applications. */ 35 | # include 36 | #else 37 | /* Provide dummy implementation if this is outside glibc. */ 38 | # define __libc_rwlock_define(CLASS, NAME) 39 | # define __libc_rwlock_wrlock(NAME) 40 | # define __libc_rwlock_unlock(NAME) 41 | #endif 42 | 43 | /* The internal variables in the standalone libintl.a must have different 44 | names than the internal variables in GNU libc, otherwise programs 45 | using libintl.a cannot be linked statically. */ 46 | #if !defined _LIBC 47 | # define _nl_default_default_domain _nl_default_default_domain__ 48 | # define _nl_current_default_domain _nl_current_default_domain__ 49 | #endif 50 | 51 | /* @@ end of prolog @@ */ 52 | 53 | /* Name of the default text domain. */ 54 | extern const char _nl_default_default_domain[]; 55 | 56 | /* Default text domain in which entries for gettext(3) are to be found. */ 57 | extern const char *_nl_current_default_domain; 58 | 59 | 60 | /* Names for the libintl functions are a problem. They must not clash 61 | with existing names and they should follow ANSI C. But this source 62 | code is also used in GNU C Library where the names have a __ 63 | prefix. So we have to make a difference here. */ 64 | #ifdef _LIBC 65 | # define TEXTDOMAIN __textdomain 66 | # ifndef strdup 67 | # define strdup(str) __strdup (str) 68 | # endif 69 | #else 70 | # define TEXTDOMAIN textdomain__ 71 | #endif 72 | 73 | /* Lock variable to protect the global data in the gettext implementation. */ 74 | __libc_rwlock_define (extern, _nl_state_lock) 75 | 76 | /* Set the current default message catalog to DOMAINNAME. 77 | If DOMAINNAME is null, return the current default. 78 | If DOMAINNAME is "", reset to the default of "messages". */ 79 | char * 80 | TEXTDOMAIN (domainname) 81 | const char *domainname; 82 | { 83 | char *new_domain; 84 | char *old_domain; 85 | 86 | /* A NULL pointer requests the current setting. */ 87 | if (domainname == NULL) 88 | return (char *) _nl_current_default_domain; 89 | 90 | __libc_rwlock_wrlock (_nl_state_lock); 91 | 92 | old_domain = (char *) _nl_current_default_domain; 93 | 94 | /* If domain name is the null string set to default domain "messages". */ 95 | if (domainname[0] == '\0' 96 | || strcmp (domainname, _nl_default_default_domain) == 0) 97 | { 98 | _nl_current_default_domain = _nl_default_default_domain; 99 | new_domain = (char *) _nl_current_default_domain; 100 | } 101 | else if (strcmp (domainname, old_domain) == 0) 102 | /* This can happen and people will use it to signal that some 103 | environment variable changed. */ 104 | new_domain = old_domain; 105 | else 106 | { 107 | /* If the following malloc fails `_nl_current_default_domain' 108 | will be NULL. This value will be returned and so signals we 109 | are out of core. */ 110 | #if defined _LIBC || defined HAVE_STRDUP 111 | new_domain = strdup (domainname); 112 | #else 113 | size_t len = strlen (domainname) + 1; 114 | new_domain = (char *) malloc (len); 115 | if (new_domain != NULL) 116 | memcpy (new_domain, domainname, len); 117 | #endif 118 | 119 | if (new_domain != NULL) 120 | _nl_current_default_domain = new_domain; 121 | } 122 | 123 | /* We use this possibility to signal a change of the loaded catalogs 124 | since this is most likely the case and there is no other easy we 125 | to do it. Do it only when the call was successful. */ 126 | if (new_domain != NULL) 127 | { 128 | ++_nl_msg_cat_cntr; 129 | 130 | if (old_domain != new_domain && old_domain != _nl_default_default_domain) 131 | free (old_domain); 132 | } 133 | 134 | __libc_rwlock_unlock (_nl_state_lock); 135 | 136 | return new_domain; 137 | } 138 | 139 | #ifdef _LIBC 140 | /* Alias for function name in GNU C Library. */ 141 | weak_alias (__textdomain, textdomain); 142 | #endif 143 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/mkinstalldirs: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # mkinstalldirs --- make directory hierarchy 3 | # Author: Noah Friedman 4 | # Created: 1993-05-16 5 | # Public domain 6 | 7 | # $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ 8 | 9 | errstatus=0 10 | 11 | for file 12 | do 13 | set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` 14 | shift 15 | 16 | pathcomp= 17 | for d 18 | do 19 | pathcomp="$pathcomp$d" 20 | case "$pathcomp" in 21 | -* ) pathcomp=./$pathcomp ;; 22 | esac 23 | 24 | if test ! -d "$pathcomp"; then 25 | echo "mkdir $pathcomp" 26 | 27 | mkdir "$pathcomp" || lasterr=$? 28 | 29 | if test ! -d "$pathcomp"; then 30 | errstatus=$lasterr 31 | fi 32 | fi 33 | 34 | pathcomp="$pathcomp/" 35 | done 36 | done 37 | 38 | exit $errstatus 39 | 40 | # mkinstalldirs ends here 41 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/plugins/FT-736_plugin.txt: -------------------------------------------------------------------------------- 1 | How to setup FT-736 plugin for gsat. 2 | ------------------------------------- 3 | 4 | You can set the 3 parameters in gsat preferences -> Radio Control -> 5 | Plugin Config. : CAT I/F port, Up/Down band, Up/Down mode. 6 | Each parameter is separated by colon(":"). 7 | 8 | 1.CAT I/F device 9 | 10 | You can specify the CAT I/F device with key word "D"+device name. 11 | If no parameter was given, /dev/ttyS0 will be selected. 12 | 13 | example) D/dev/ttyR2 14 | 15 | 2. Up/Down band 16 | 17 | You must set Up/Down band with key word "S"+options. The options is 2 letters, 18 | consist from an abbreviation of Up/Down frequency. The first letter means 19 | UPlink, the second letter means Downlink. 20 | In this time, we can use only 'U' and 'V'. 'U' means 435MHz, 'V ' means 145MHz. 21 | If no parameter was given, '435MHz uplink/145MHz downlink' will be selected. 22 | 23 | example) SUV 24 | 25 | 3. Up/Down modes 26 | 27 | You must set Up/Down mode from 'SSB', 'FM', 'CW'. If no parameter was given, 28 | 'CW' will be selected. 29 | 30 | example) QCW 31 | 32 | 33 | 73's 34 | de Hiroshi Iwamoto JH4XSY jh4xsy@jarl.com 35 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/plugins/Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # gsat plugins Makefile 3 | # 4 | # Edit the TARGETS line to contain only the plugins you need 5 | # 6 | 7 | TARGETS=radio_FT736 radio_ICR10 radio_TMD700 radio_PCR100 radio_print radio_test rotor_print rotor_pictrack 8 | 9 | PLUGINDIR=/usr/local/lib/gsat/plugins 10 | 11 | all: $(TARGETS) 12 | 13 | radio_FT736: 14 | gcc -fPIC -shared radio_FT736.c -o radio_FT736 15 | 16 | radio_ICR10: 17 | gcc -fPIC -shared radio_ICR10.c -o radio_ICR10 18 | 19 | radio_TMD700: 20 | gcc -fPIC -shared radio_TMD700.c -o radio_TMD700 -lm -lD700 21 | 22 | radio_PCR100: 23 | gcc -fPIC -shared radio_PCR100.c -o radio_PCR100 -lpcr100 24 | 25 | radio_print: 26 | gcc -fPIC -shared radio_print.c -o radio_print 27 | 28 | radio_test: 29 | gcc -fPIC -shared radio_test.c -o radio_test 30 | 31 | rotor_print: 32 | gcc -fPIC -shared rotor_print.c -o rotor_print 33 | 34 | rotor_pictrack: 35 | gcc -fPIC -shared rotor_pictrack.c -o rotor_pictrack 36 | 37 | clean: 38 | rm *.o *~ $(TARGETS) 39 | 40 | install: 41 | cp $(TARGETS) $(PLUGINDIR) 42 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/plugins/radio_ICR10-2.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Icom R-10 receiver plugin for gsat 3 | * 4 | * Copyright (C) 2001 by Xavier Crehueras, EB3CZS 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 | * 20 | * Look at the README for more information on the program. 21 | */ 22 | 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | 36 | /* #define DEBUG 1 */ 37 | 38 | char * plugin_info( void ); 39 | int plugin_open_rig( char * config ); 40 | void plugin_close_rig( void ); 41 | void plugin_set_downlink_frequency( double frequency ); 42 | void plugin_set_uplink_frequency( double frequency ); 43 | 44 | int port; 45 | 46 | void clearDTR( int fd ) 47 | { 48 | int lineData; 49 | 50 | ioctl(fd, TIOCMGET, &lineData); 51 | lineData &= ~TIOCM_DTR; 52 | ioctl(fd, TIOCMSET, &lineData); 53 | } 54 | 55 | void setDTR( int fd ) 56 | { 57 | int lineData; 58 | 59 | ioctl(fd, TIOCMGET, &lineData); 60 | lineData |= TIOCM_DTR; 61 | ioctl(fd, TIOCMSET, &lineData); 62 | } 63 | 64 | char * plugin_info( void ) 65 | { 66 | return "Icom R10 Receiver V0.9"; 67 | } 68 | 69 | int plugin_open_rig( char * config ) 70 | { 71 | struct termios ios; 72 | tcflag_t bauds; 73 | char *tty; 74 | char *ptr; 75 | 76 | if( config != NULL ) 77 | tty=config; 78 | else 79 | tty="/dev/ttyS0"; 80 | 81 | #ifdef DEBUG 82 | fprintf(stderr,"ICR10: trying to open rig on %s with config: %s.\n",tty,config); 83 | #endif 84 | 85 | /* Open the tty and configure it */ 86 | 87 | if ((port = open(tty, O_RDWR | O_NOCTTY)) == -1) { 88 | perror("open"); 89 | return 0; 90 | } 91 | 92 | if (!isatty(port)) { 93 | close(port); 94 | fprintf(stderr, "ICR10: %s: not a tty\n", tty); 95 | return 0; 96 | } 97 | 98 | memset(&ios, 0, sizeof(ios)); 99 | 100 | cfsetispeed(&ios, B9600); 101 | cfsetospeed(&ios, B9600); 102 | 103 | ios.c_cflag |= (CLOCAL | CREAD); 104 | ios.c_cflag &= ~HUPCL ; 105 | ios.c_cflag &= ~PARENB ; 106 | ios.c_cflag &= ~CSTOPB ; 107 | ios.c_cflag &= ~CSIZE; 108 | ios.c_cflag |= CS8; 109 | 110 | /* ICANON : enable canonical input disable all echo functionality, 111 | and don't send signals to calling program */ 112 | ios.c_lflag |= ICANON; 113 | ios.c_lflag &= ~(ECHO | ECHOCTL); 114 | 115 | /* ignore bytes with parity errors */ 116 | ios.c_iflag |= IGNPAR; 117 | 118 | /* Raw output. */ 119 | ios.c_oflag &= ~OPOST; 120 | 121 | if (tcsetattr(port, TCSANOW, &ios) == -1) { 122 | perror("tcsetattr"); 123 | return 0; 124 | } 125 | 126 | setDTR( port ); 127 | 128 | #ifdef DEBUG 129 | fprintf(stderr,"ICR10: open rig succeed.\n"); 130 | #endif 131 | 132 | return 1; 133 | } 134 | 135 | void plugin_close_rig( void ) 136 | { 137 | if( port ) { 138 | clearDTR( port ); 139 | close(port); 140 | } 141 | port = 0; 142 | 143 | #ifdef DEBUG 144 | fprintf(stderr,"ICR10: close rig succeed.\n"); 145 | #endif 146 | } 147 | 148 | void send_freq_to_ICR10( double frequency ) 149 | { 150 | fd_set fds; 151 | int count; 152 | struct timeval tv; 153 | unsigned char command[12]; 154 | char ghz,hmhz,dmhz,mhz,hkhz,dkhz,khz,hhz; 155 | 156 | frequency=frequency*10.0; 157 | 158 | ghz =(frequency-fmod(frequency,10000000))/10000000; 159 | frequency=fmod(frequency,10000000); 160 | hmhz=(frequency-fmod(frequency,1000000))/1000000; 161 | frequency=fmod(frequency,1000000); 162 | dmhz=(frequency-fmod(frequency,100000))/100000; 163 | frequency=fmod(frequency,100000); 164 | mhz =(frequency-fmod(frequency,10000))/10000; 165 | frequency=fmod(frequency,10000); 166 | hkhz=(frequency-fmod(frequency,1000))/1000; 167 | frequency=fmod(frequency,1000); 168 | dkhz=(frequency-fmod(frequency,100))/100; 169 | frequency=fmod(frequency,100); 170 | khz =(frequency-fmod(frequency,10))/10; 171 | frequency=fmod(frequency,10); 172 | hhz =frequency; 173 | 174 | command[0]=0xfe; 175 | command[1]=0xfe; 176 | command[2]=0x52; 177 | command[3]=0xe0; 178 | command[4]=0x05; 179 | command[5]=0x00; 180 | command[6]=(khz<<4)|hhz; 181 | command[7]=(hkhz<<4)|dkhz; 182 | command[8]=(dmhz<<4)|mhz; 183 | command[9]=(ghz<<4)|hmhz; 184 | command[10]=0xfd; 185 | command[11]=0x00; 186 | 187 | /* Send it */ 188 | #ifdef DEBUG 189 | fprintf( stderr, "ICR10: Sending command ... "); 190 | {int i; 191 | for(i=0;i<11;i++) fprintf(stderr," %02X",command[i]); 192 | fprintf(stderr,"\n"); 193 | } 194 | #endif 195 | 196 | FD_ZERO(&fds); 197 | FD_SET(port, &fds); 198 | tv.tv_sec = 5; 199 | tv.tv_usec = 0; 200 | 201 | if (select(port+1, NULL, &fds, NULL, &tv)) { 202 | if ((count = write(port, command, 11)) == -1) { 203 | perror("write"); 204 | return; 205 | } 206 | } 207 | else { 208 | fprintf( stderr,"ICR10: Timeout sending command !!!\n"); 209 | perror("select"); 210 | return; 211 | } 212 | } 213 | 214 | void plugin_set_downlink_frequency( double frequency ) 215 | { 216 | send_freq_to_ICR10( frequency ); 217 | } 218 | 219 | void plugin_set_uplink_frequency( double frequency ) 220 | { 221 | send_freq_to_ICR10( frequency ); 222 | } 223 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/plugins/radio_ICR10-old.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Icom R-10 receiver plugin for gsat 3 | * 4 | * Copyright (C) 2001 by Xavier Crehueras, EB3CZS 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 | * 20 | * Look at the README for more information on the program. 21 | */ 22 | 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | 36 | /* #define DEBUG 1 */ 37 | 38 | char * plugin_info( void ); 39 | int plugin_open_rig( char * config ); 40 | void plugin_close_rig( void ); 41 | void plugin_set_downlink_frequency( double frequency ); 42 | void plugin_set_uplink_frequency( double frequency ); 43 | 44 | int port; 45 | 46 | void clearDTR( int fd ) 47 | { 48 | int lineData; 49 | 50 | ioctl(fd, TIOCMGET, &lineData); 51 | lineData &= ~TIOCM_DTR; 52 | ioctl(fd, TIOCMSET, &lineData); 53 | } 54 | 55 | void setDTR( int fd ) 56 | { 57 | int lineData; 58 | 59 | ioctl(fd, TIOCMGET, &lineData); 60 | lineData |= TIOCM_DTR; 61 | ioctl(fd, TIOCMSET, &lineData); 62 | } 63 | 64 | char * plugin_info( void ) 65 | { 66 | return "Icom R10 Receiver V1.0"; 67 | } 68 | 69 | int plugin_open_rig( char * config ) 70 | { 71 | struct termios ios; 72 | tcflag_t bauds; 73 | char * tty; 74 | 75 | if( config != NULL ) 76 | tty=config; 77 | else 78 | tty="/dev/ttyS0"; 79 | 80 | #ifdef DEBUG 81 | fprintf(stderr,"ICR10: trying to open rig on tty: %s with config: %s.\n",tty,config); 82 | #endif 83 | 84 | /* Open the tty and configure it */ 85 | 86 | if ((port = open(tty, O_RDWR | O_NOCTTY)) == -1) { 87 | perror("open"); 88 | return 0; 89 | } 90 | 91 | if (!isatty(port)) { 92 | close(port); 93 | fprintf(stderr, "ICR10: %s: not a tty\n", tty); 94 | return 0; 95 | } 96 | 97 | memset(&ios, 0, sizeof(ios)); 98 | 99 | cfsetispeed(&ios, B9600); 100 | cfsetospeed(&ios, B9600); 101 | 102 | ios.c_cflag |= (CLOCAL | CREAD); 103 | ios.c_cflag &= ~HUPCL ; 104 | ios.c_cflag &= ~PARENB ; 105 | ios.c_cflag &= ~CSTOPB ; 106 | ios.c_cflag &= ~CSIZE; 107 | ios.c_cflag |= CS8; 108 | 109 | /* ICANON : enable canonical input disable all echo functionality, 110 | and don't send signals to calling program */ 111 | ios.c_lflag |= ICANON; 112 | ios.c_lflag &= ~(ECHO | ECHOCTL); 113 | 114 | /* ignore bytes with parity errors */ 115 | ios.c_iflag |= IGNPAR; 116 | 117 | /* Raw output. */ 118 | ios.c_oflag &= ~OPOST; 119 | 120 | if (tcsetattr(port, TCSANOW, &ios) == -1) { 121 | perror("tcsetattr"); 122 | return 0; 123 | } 124 | 125 | setDTR( port ); 126 | 127 | #ifdef DEBUG 128 | fprintf(stderr,"ICR10: open rig succeed.\n"); 129 | #endif 130 | 131 | return 1; 132 | } 133 | 134 | void plugin_close_rig( void ) 135 | { 136 | if( port ) { 137 | clearDTR( port ); 138 | close(port); 139 | } 140 | port = 0; 141 | 142 | #ifdef DEBUG 143 | fprintf(stderr,"ICR10: close rig succeed.\n"); 144 | #endif 145 | } 146 | 147 | void send_freq_to_ICR10( double frequency ) 148 | { 149 | fd_set fds; 150 | int count; 151 | struct timeval tv; 152 | unsigned char command[12]; 153 | char ghz,hmhz,dmhz,mhz,hkhz,dkhz,khz,hhz; 154 | 155 | frequency=frequency*10.0; 156 | 157 | ghz =(frequency-fmod(frequency,10000000))/10000000; 158 | frequency=fmod(frequency,10000000); 159 | hmhz=(frequency-fmod(frequency,1000000))/1000000; 160 | frequency=fmod(frequency,1000000); 161 | dmhz=(frequency-fmod(frequency,100000))/100000; 162 | frequency=fmod(frequency,100000); 163 | mhz =(frequency-fmod(frequency,10000))/10000; 164 | frequency=fmod(frequency,10000); 165 | hkhz=(frequency-fmod(frequency,1000))/1000; 166 | frequency=fmod(frequency,1000); 167 | dkhz=(frequency-fmod(frequency,100))/100; 168 | frequency=fmod(frequency,100); 169 | khz =(frequency-fmod(frequency,10))/10; 170 | frequency=fmod(frequency,10); 171 | hhz =frequency; 172 | 173 | command[0]=0xfe; 174 | command[1]=0xfe; 175 | command[2]=0x52; 176 | command[3]=0xe0; 177 | command[4]=0x05; 178 | command[5]=0x00; 179 | command[6]=(khz<<4)|hhz; 180 | command[7]=(hkhz<<4)|dkhz; 181 | command[8]=(dmhz<<4)|mhz; 182 | command[9]=(ghz<<4)|hmhz; 183 | command[10]=0xfd; 184 | command[11]=0x00; 185 | 186 | /* Send it */ 187 | #ifdef DEBUG 188 | fprintf( stderr, "ICR10: Sending command ... "); 189 | {int i; 190 | for(i=0;i<11;i++) fprintf(stderr," %02X",command[i]); 191 | fprintf(stderr,"\n"); 192 | } 193 | #endif 194 | 195 | FD_ZERO(&fds); 196 | FD_SET(port, &fds); 197 | tv.tv_sec = 5; 198 | tv.tv_usec = 0; 199 | 200 | if (select(port+1, NULL, &fds, NULL, &tv)) { 201 | if ((count = write(port, command, 11)) == -1) { 202 | perror("write"); 203 | return; 204 | } 205 | } 206 | else { 207 | fprintf( stderr,"ICR10: Timeout sending command !!!\n"); 208 | perror("select"); 209 | return; 210 | } 211 | } 212 | 213 | void plugin_set_downlink_frequency( double frequency ) 214 | { 215 | send_freq_to_ICR10( frequency ); 216 | } 217 | 218 | void plugin_set_uplink_frequency( double frequency ) 219 | { 220 | send_freq_to_ICR10( frequency ); 221 | } 222 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/plugins/radio_PCR100.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Icom PCR100 receiver plugin for gsat 3 | * 4 | * Copyright (C) 2001 by Xavier Crehueras, EB3CZS 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 | * 20 | * Look at the README for more information on the program. 21 | */ 22 | 23 | #include 24 | #include 25 | 26 | #include "libpcr100.h" 27 | 28 | /* #define DEBUG 1 */ 29 | 30 | char * plugin_info( void ); 31 | int plugin_open_rig( char * config ); 32 | void plugin_close_rig( void ); 33 | void plugin_set_downlink_frequency( double frequency ); 34 | void plugin_set_uplink_frequency( double frequency ); 35 | 36 | PCRinfo rig; 37 | 38 | char * plugin_info( void ) 39 | { 40 | return "Icom PCR100 receiver V1.0"; 41 | } 42 | 43 | int plugin_open_rig( char * config ) 44 | { 45 | char dummy[10]; 46 | char *ptr; 47 | char tty[10]; 48 | char mode[4]; 49 | char filter[5]; 50 | ushort volume; 51 | ushort squelch; 52 | int n; 53 | 54 | #ifdef DEBUG 55 | printf("Opening Icom PCR100 plugin.\n"); 56 | #endif 57 | 58 | ptr=config; 59 | if( config[0] != '\0' ) { 60 | while( *ptr != '\0' ) { 61 | switch( *ptr ) { 62 | case 'D': 63 | ptr++; 64 | n=0; 65 | while( *ptr != '\0' && *ptr != ':' && n<9 ) { 66 | tty[n++]=*ptr++; 67 | } 68 | tty[n]='\0'; 69 | break; 70 | case 'M': 71 | ptr++; 72 | n=0; 73 | while( *ptr != '\0' && *ptr != ':' && n<3 ) { 74 | mode[n++]=*ptr++; 75 | } 76 | mode[n]='\0'; 77 | break; 78 | case 'V': 79 | ptr++; 80 | n=0; 81 | while( *ptr != '\0' && *ptr != ':' && n<9 ) { 82 | dummy[n++]=*ptr++; 83 | } 84 | dummy[n]='\0'; 85 | volume=atoi(dummy); 86 | break; 87 | case 'S': 88 | ptr++; 89 | n=0; 90 | while( *ptr != '\0' && *ptr != ':' && n<9 ) { 91 | dummy[n++]=*ptr++; 92 | } 93 | dummy[n]='\0'; 94 | squelch=atoi(dummy); 95 | break; 96 | case 'F': 97 | ptr++; 98 | n=0; 99 | while( *ptr != '\0' && *ptr != ':' && n<4 ) { 100 | filter[n++]=*ptr++; 101 | } 102 | filter[n]='\0'; 103 | break; 104 | case ':': 105 | ptr++; 106 | break; 107 | } 108 | } 109 | } 110 | else { 111 | strcpy(tty,"/dev/ttyS0"); 112 | strcpy(mode,"FM"); 113 | strcpy(filter,"15K"); 114 | volume=160; 115 | squelch=100; 116 | } 117 | 118 | #ifdef DEBUG 119 | printf("Config: %s\n", config); 120 | printf("tty: %s mode: %s filter: %s volume: %d squelch: %d\n", 121 | tty, mode, filter, volume, squelch); 122 | #endif 123 | 124 | pcr_OpenPCR( &rig, tty, 9600 ); 125 | pcr_PowerOn( &rig ); 126 | pcr_SetMode( &rig, mode ); 127 | pcr_SetFilter( &rig, filter ); 128 | pcr_SetVolume( &rig, volume ); 129 | pcr_SetSquelch( &rig, squelch ); 130 | 131 | return 1; 132 | } 133 | 134 | void plugin_close_rig( void ) 135 | { 136 | #ifdef DEBUG 137 | printf("Closing Icom PCR100 plugin.\n"); 138 | #endif 139 | 140 | pcr_PowerOff( &rig ); 141 | pcr_ClosePCR( &rig ); 142 | } 143 | 144 | void plugin_set_downlink_frequency( double frequency ) 145 | { 146 | pcr_SetFrequency( &rig, (ulong)(frequency*1000) ); 147 | } 148 | 149 | void plugin_set_uplink_frequency( double frequency ) 150 | { 151 | pcr_SetFrequency( &rig, (ulong)(frequency*1000) ); 152 | } 153 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/plugins/radio_TMD700.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Kenwood TM-D700 transceiver plugin for gsat 3 | * 4 | * Copyright (C) 2001 by Xavier Crehueras, EB3CZS 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 | * 20 | * Look at the README for more information on the program. 21 | */ 22 | 23 | 24 | #include 25 | #include 26 | 27 | #include "libD700.h" 28 | 29 | #define TRUE 1 30 | #define FALSE 0 31 | 32 | #define DEBUG 1 33 | 34 | char * plugin_info( void ); 35 | int plugin_open_rig( char * config ); 36 | void plugin_close_rig( void ); 37 | void plugin_set_downlink_frequency( double frequency ); 38 | void plugin_set_uplink_frequency( double frequency ); 39 | 40 | D700rig rig; 41 | 42 | char * plugin_info( void ) 43 | { 44 | return "Kenwood TM-D700 V0.2"; 45 | } 46 | 47 | int plugin_open_rig( char * config ) 48 | { 49 | #ifdef DEBUG 50 | fprintf(stderr,"Opening Kenwood TM-D700 plugin.\n"); 51 | #endif 52 | 53 | if(d700_OpenD700( &rig, "/dev/ttyS0", 9600 )==1) { 54 | fprintf(stderr,"TMD700: Error opening rig.\n"); 55 | return FALSE; 56 | } 57 | } 58 | 59 | void plugin_close_rig( void ) 60 | { 61 | #ifdef DEBUG 62 | fprintf(stderr,"Closing Kenwood TM-D700 plugin.\n"); 63 | #endif 64 | 65 | d700_CloseD700( &rig ); 66 | } 67 | 68 | void plugin_set_downlink_frequency( double frequency ) 69 | { 70 | double freq; 71 | 72 | printf("TMD700: Set Frequency\n"); 73 | freq=frequency-fmod(frequency,5); 74 | if(fmod(frequency,5)>2.5) 75 | freq+=5; 76 | 77 | /* d700_FrequencyUp( &rig ); */ 78 | /* d700_SetControlBand( &rig, BAND_A ); */ 79 | /* d700_SetFrequencyandStep( &rig, freq*1000, 0 ); */ 80 | d700_SetFrequency( &rig, BAND_A, freq*1000 ); 81 | } 82 | 83 | void plugin_set_uplink_frequency( double frequency ) 84 | { 85 | double freq; 86 | 87 | freq=frequency-fmod(frequency,5); 88 | if(fmod(frequency,5)>2.5) 89 | freq+=5; 90 | 91 | #ifdef DEBUG 92 | fprintf(stderr,"TMD700: Frequency: %f -> %f\n",frequency, freq); 93 | #endif 94 | 95 | d700_SetControlBand( &rig, BAND_B ); 96 | d700_SetFrequencyandStep( &rig, freq*1000, 0 ); 97 | } 98 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/plugins/radio_print.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Print Frequency demo plugin for gsat 3 | * 4 | * (c)2001 by Xavier Crehueras, EB3CZS 5 | */ 6 | 7 | #include 8 | 9 | char * plugin_info( void ); 10 | int plugin_open_rig( char * config ); 11 | void plugin_close_rig( void ); 12 | void plugin_set_downlink_frequency( double frequency ); 13 | void plugin_set_uplink_frequency( double frequency ); 14 | 15 | char * plugin_info( void ) 16 | { 17 | return "PrintFrequency V1.0"; 18 | } 19 | 20 | int plugin_open_rig( char * config ) 21 | { 22 | printf("PrintFrequency plugin opened.\n"); 23 | 24 | return 1; 25 | } 26 | 27 | void plugin_close_rig( void ) 28 | { 29 | printf("PrintFrequency plugin closed.\n"); 30 | } 31 | 32 | void plugin_set_downlink_frequency( double frequency ) 33 | { 34 | printf("Downlink Frequency: %f kHz\n", frequency); 35 | } 36 | 37 | void plugin_set_uplink_frequency( double frequency ) 38 | { 39 | printf("Uplink Frequency: %f kHz\n", frequency); 40 | } 41 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/plugins/radio_test.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | char * plugin_info( void ); 5 | int plugin_open_rig( char * config ); 6 | void plugin_close_rig( void ); 7 | void plugin_set_downlink_frequency( double frequency ); 8 | void plugin_set_uplink_frequency( double frequency ); 9 | 10 | char * plugin_info( void ) 11 | { 12 | return "Test V0.1"; 13 | } 14 | 15 | int plugin_open_rig( char * config ) 16 | { 17 | printf("Test plugin opened.\n"); 18 | 19 | return 1; 20 | } 21 | 22 | void plugin_close_rig( void ) 23 | { 24 | printf("Test plugin closed.\n"); 25 | } 26 | 27 | void plugin_set_downlink_frequency( double frequency ) 28 | { 29 | double freq; 30 | 31 | freq=frequency-fmod(frequency,5); 32 | if(fmod(frequency,5)>2.5) 33 | freq+=5; 34 | 35 | printf("Downlink Frequency: %f kHz -> %f kHz\n", frequency, freq); 36 | } 37 | 38 | void plugin_set_uplink_frequency( double frequency ) 39 | { 40 | double freq; 41 | 42 | freq=frequency-fmod(frequency,5); 43 | if(fmod(frequency,5)>2.5) 44 | freq+=5; 45 | 46 | printf("Uplink Frequency: %f kHz -> %f kHz\n", frequency, freq); 47 | } 48 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/plugins/rotor_pictrack.c: -------------------------------------------------------------------------------- 1 | /* 2 | * PicTrack rotor plugin for gsat 3 | * 4 | * (c)2001 by Xavier Crehueras, EB3CZS 5 | */ 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | char * plugin_info( void ); 14 | int plugin_open_rotor( char * config ); 15 | void plugin_close_rotor( void ); 16 | void plugin_set_rotor( double azimuth, double elevation ); 17 | 18 | int antfd; 19 | 20 | char * plugin_info( void ) 21 | { 22 | return "PicTrack V1.0"; 23 | } 24 | 25 | int plugin_open_rotor( char * config ) 26 | { 27 | antfd=open(config, O_RDWR | O_NOCTTY | O_NDELAY); 28 | 29 | if (antfd!=-1) 30 | fcntl(antfd, F_SETFL, 0); 31 | else { 32 | fprintf(stderr,"Unable To Open Antenna Port\n"); 33 | return 0; 34 | } 35 | 36 | return 1; 37 | } 38 | 39 | void plugin_close_rotor( void ) 40 | { 41 | close(antfd); 42 | } 43 | 44 | void plugin_set_rotor( double azimuth, double elevation ) 45 | { 46 | /* This function sends Azimuth and Elevation data 47 | to an antenna tracker connected to the serial port */ 48 | 49 | int n; 50 | char message[30]="\n"; 51 | 52 | sprintf(message, "AZ%3.1f EL%3.1f \x0D\x0A", azimuth,elevation); 53 | n=write(antfd,message,30); 54 | 55 | if (n<0) 56 | fprintf(stderr, "Error Writing To Antenna Port\n"); 57 | 58 | return; 59 | } 60 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/plugins/rotor_print.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Print Azimuth/Elevation demo rotor plugin for gsat 3 | * 4 | * (c)2001 by Xavier Crehueras, EB3CZS 5 | */ 6 | 7 | #include 8 | 9 | char * plugin_info( void ); 10 | int plugin_open_rotor( char * config ); 11 | void plugin_close_rotor( void ); 12 | void plugin_set_rotor( double azimuth, double elevation ); 13 | 14 | char * plugin_info( void ) 15 | { 16 | return "PrintAzimuth/Elevation V1.0"; 17 | } 18 | 19 | int plugin_open_rotor( char * config ) 20 | { 21 | printf("PrintAzimuth/Elevation plugin opened.\n"); 22 | 23 | return 1; 24 | } 25 | 26 | void plugin_close_rotor( void ) 27 | { 28 | printf("PrintAzimuth/Elevation plugin closed.\n"); 29 | } 30 | 31 | void plugin_set_rotor( double azimuth, double elevation ) 32 | { 33 | printf("Azimuth: %f deg - Elevation: %f deg\n", azimuth, elevation); 34 | } 35 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/po/ChangeLog: -------------------------------------------------------------------------------- 1 | 2003-06-12 gettextize 2 | 3 | * Makefile.in.in: Upgrade to gettext-0.10.40. 4 | * cat-id-tbl.c: Remove file. 5 | * stamp-cat-id: Remove file. 6 | 7 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/po/Makefile.in: -------------------------------------------------------------------------------- 1 | # Generated automatically from Makefile.in.in by configure. 2 | # Makefile for program source directory in GNU NLS utilities package. 3 | # Copyright (C) 1995-1997, 2000, 2001 by Ulrich Drepper 4 | # 5 | # This file file be copied and used freely without restrictions. It can 6 | # be used in projects which are not available under the GNU General Public License 7 | # but which still want to provide support for the GNU gettext functionality. 8 | # Please note that the actual code is *not* freely available. 9 | 10 | PACKAGE = gsat 11 | VERSION = 0.1 12 | 13 | # These two variables depend on the location of this directory. 14 | subdir = po 15 | top_builddir = .. 16 | 17 | SHELL = /bin/sh 18 | 19 | 20 | srcdir = . 21 | top_srcdir = .. 22 | 23 | prefix = /usr/local 24 | exec_prefix = ${prefix} 25 | datadir = ${prefix}/share 26 | localedir = $(datadir)/locale 27 | gettextsrcdir = $(datadir)/gettext/po 28 | 29 | INSTALL = /usr/bin/ginstall -c 30 | INSTALL_DATA = ${INSTALL} -m 644 31 | MKINSTALLDIRS = ./mkinstalldirs 32 | mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac` 33 | 34 | CC = gcc 35 | GMSGFMT = /usr/bin/msgfmt 36 | MSGFMT = /usr/bin/msgfmt 37 | XGETTEXT = /usr/bin/xgettext 38 | MSGMERGE = msgmerge 39 | 40 | DEFS = -DHAVE_CONFIG_H 41 | CFLAGS = -g -O2 -Wall 42 | CPPFLAGS = 43 | 44 | INCLUDES = -I.. -I$(top_srcdir)/intl 45 | 46 | COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) 47 | 48 | POFILES = 49 | GMOFILES = 50 | DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \ 51 | $(POFILES) $(GMOFILES) 52 | 53 | POTFILES = \ 54 | 55 | CATALOGS = 56 | 57 | .SUFFIXES: 58 | .SUFFIXES: .c .o .po .pox .gmo .mo 59 | 60 | .c.o: 61 | $(COMPILE) $< 62 | 63 | .po.pox: 64 | $(MAKE) $(PACKAGE).pot 65 | $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox 66 | 67 | .po.mo: 68 | $(MSGFMT) -o $@ $< 69 | 70 | .po.gmo: 71 | file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ 72 | && rm -f $$file && $(GMSGFMT) --statistics -o $$file $< 73 | 74 | 75 | all: all-yes 76 | 77 | all-yes: $(CATALOGS) 78 | all-no: 79 | 80 | # Note: Target 'all' must not depend on target '$(srcdir)/$(PACKAGE).pot', 81 | # otherwise packages like GCC can not be built if only parts of the source 82 | # have been downloaded. 83 | 84 | $(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in 85 | $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \ 86 | --add-comments --keyword=_ --keyword=N_ \ 87 | --files-from=$(srcdir)/POTFILES.in \ 88 | && test ! -f $(PACKAGE).po \ 89 | || ( rm -f $(srcdir)/$(PACKAGE).pot \ 90 | && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot ) 91 | 92 | 93 | install: install-exec install-data 94 | install-exec: 95 | install-data: install-data-yes 96 | if test "$(PACKAGE)" = "gettext"; then \ 97 | $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ 98 | $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ 99 | $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ 100 | else \ 101 | : ; \ 102 | fi 103 | install-data-no: all 104 | install-data-yes: all 105 | $(mkinstalldirs) $(DESTDIR)$(datadir) 106 | @catalogs='$(CATALOGS)'; \ 107 | for cat in $$catalogs; do \ 108 | cat=`basename $$cat`; \ 109 | lang=`echo $$cat | sed 's/\.gmo$$//'`; \ 110 | dir=$(localedir)/$$lang/LC_MESSAGES; \ 111 | $(mkinstalldirs) $(DESTDIR)$$dir; \ 112 | if test -r $$cat; then \ 113 | $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ 114 | echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \ 115 | else \ 116 | $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ 117 | echo "installing $(srcdir)/$$cat as" \ 118 | "$(DESTDIR)$$dir/$(PACKAGE).mo"; \ 119 | fi; \ 120 | done 121 | 122 | # Define this as empty until I found a useful application. 123 | installcheck: 124 | 125 | uninstall: 126 | catalogs='$(CATALOGS)'; \ 127 | for cat in $$catalogs; do \ 128 | cat=`basename $$cat`; \ 129 | lang=`echo $$cat | sed 's/\.gmo$$//'`; \ 130 | rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ 131 | done 132 | if test "$(PACKAGE)" = "gettext"; then \ 133 | rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ 134 | else \ 135 | : ; \ 136 | fi 137 | 138 | check: all 139 | 140 | dvi info tags TAGS ID: 141 | 142 | mostlyclean: 143 | rm -f core core.* *.pox $(PACKAGE).po *.new.po 144 | rm -fr *.o 145 | 146 | clean: mostlyclean 147 | 148 | distclean: clean 149 | rm -f Makefile Makefile.in POTFILES *.mo 150 | 151 | maintainer-clean: distclean 152 | @echo "This command is intended for maintainers to use;" 153 | @echo "it deletes files that may require special tools to rebuild." 154 | rm -f $(GMOFILES) 155 | 156 | distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) 157 | dist distdir: 158 | $(MAKE) update-po 159 | @$(MAKE) dist2 160 | # This is a separate target because 'update-po' must be executed before. 161 | dist2: $(DISTFILES) 162 | dists="$(DISTFILES)"; \ 163 | for file in $$dists; do \ 164 | if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ 165 | cp -p $$dir/$$file $(distdir); \ 166 | done 167 | 168 | update-po: Makefile 169 | $(MAKE) $(PACKAGE).pot 170 | if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \ 171 | cd $(srcdir); \ 172 | catalogs='$(GMOFILES)'; \ 173 | for cat in $$catalogs; do \ 174 | cat=`basename $$cat`; \ 175 | lang=`echo $$cat | sed 's/\.gmo$$//'`; \ 176 | echo "$$lang:"; \ 177 | if $(MSGMERGE) $$lang.po $(PACKAGE).pot -o $$lang.new.po; then \ 178 | mv -f $$lang.new.po $$lang.po; \ 179 | else \ 180 | echo "msgmerge for $$cat failed!"; \ 181 | rm -f $$lang.new.po; \ 182 | fi; \ 183 | done 184 | $(MAKE) update-gmo 185 | 186 | update-gmo: Makefile $(GMOFILES) 187 | @: 188 | 189 | Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in 190 | cd $(top_builddir) \ 191 | && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ 192 | $(SHELL) ./config.status 193 | 194 | # Tell versions [3.59,3.63) of GNU make not to export all variables. 195 | # Otherwise a system limit (for SysV at least) may be exceeded. 196 | .NOEXPORT: 197 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/po/Makefile.in.in: -------------------------------------------------------------------------------- 1 | # Makefile for program source directory in GNU NLS utilities package. 2 | # Copyright (C) 1995-1997, 2000, 2001 by Ulrich Drepper 3 | # 4 | # This file file be copied and used freely without restrictions. It can 5 | # be used in projects which are not available under the GNU General Public License 6 | # but which still want to provide support for the GNU gettext functionality. 7 | # Please note that the actual code is *not* freely available. 8 | 9 | PACKAGE = @PACKAGE@ 10 | VERSION = @VERSION@ 11 | 12 | # These two variables depend on the location of this directory. 13 | subdir = po 14 | top_builddir = .. 15 | 16 | SHELL = /bin/sh 17 | @SET_MAKE@ 18 | 19 | srcdir = @srcdir@ 20 | top_srcdir = @top_srcdir@ 21 | VPATH = @srcdir@ 22 | 23 | prefix = @prefix@ 24 | exec_prefix = @exec_prefix@ 25 | datadir = @datadir@ 26 | localedir = $(datadir)/locale 27 | gettextsrcdir = $(datadir)/gettext/po 28 | 29 | INSTALL = @INSTALL@ 30 | INSTALL_DATA = @INSTALL_DATA@ 31 | MKINSTALLDIRS = @MKINSTALLDIRS@ 32 | mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac` 33 | 34 | CC = @CC@ 35 | GMSGFMT = @GMSGFMT@ 36 | MSGFMT = @MSGFMT@ 37 | XGETTEXT = @XGETTEXT@ 38 | MSGMERGE = msgmerge 39 | 40 | DEFS = @DEFS@ 41 | CFLAGS = @CFLAGS@ 42 | CPPFLAGS = @CPPFLAGS@ 43 | 44 | INCLUDES = -I.. -I$(top_srcdir)/intl 45 | 46 | COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) 47 | 48 | POFILES = @POFILES@ 49 | GMOFILES = @GMOFILES@ 50 | DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \ 51 | $(POFILES) $(GMOFILES) 52 | 53 | POTFILES = \ 54 | 55 | CATALOGS = @CATALOGS@ 56 | 57 | .SUFFIXES: 58 | .SUFFIXES: .c .o .po .pox .gmo .mo 59 | 60 | .c.o: 61 | $(COMPILE) $< 62 | 63 | .po.pox: 64 | $(MAKE) $(PACKAGE).pot 65 | $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox 66 | 67 | .po.mo: 68 | $(MSGFMT) -o $@ $< 69 | 70 | .po.gmo: 71 | file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ 72 | && rm -f $$file && $(GMSGFMT) --statistics -o $$file $< 73 | 74 | 75 | all: all-@USE_NLS@ 76 | 77 | all-yes: $(CATALOGS) 78 | all-no: 79 | 80 | # Note: Target 'all' must not depend on target '$(srcdir)/$(PACKAGE).pot', 81 | # otherwise packages like GCC can not be built if only parts of the source 82 | # have been downloaded. 83 | 84 | $(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in 85 | $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \ 86 | --add-comments --keyword=_ --keyword=N_ \ 87 | --files-from=$(srcdir)/POTFILES.in \ 88 | && test ! -f $(PACKAGE).po \ 89 | || ( rm -f $(srcdir)/$(PACKAGE).pot \ 90 | && mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot ) 91 | 92 | 93 | install: install-exec install-data 94 | install-exec: 95 | install-data: install-data-@USE_NLS@ 96 | if test "$(PACKAGE)" = "gettext"; then \ 97 | $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ 98 | $(INSTALL_DATA) $(srcdir)/Makefile.in.in \ 99 | $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ 100 | else \ 101 | : ; \ 102 | fi 103 | install-data-no: all 104 | install-data-yes: all 105 | $(mkinstalldirs) $(DESTDIR)$(datadir) 106 | @catalogs='$(CATALOGS)'; \ 107 | for cat in $$catalogs; do \ 108 | cat=`basename $$cat`; \ 109 | lang=`echo $$cat | sed 's/\.gmo$$//'`; \ 110 | dir=$(localedir)/$$lang/LC_MESSAGES; \ 111 | $(mkinstalldirs) $(DESTDIR)$$dir; \ 112 | if test -r $$cat; then \ 113 | $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ 114 | echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \ 115 | else \ 116 | $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ 117 | echo "installing $(srcdir)/$$cat as" \ 118 | "$(DESTDIR)$$dir/$(PACKAGE).mo"; \ 119 | fi; \ 120 | done 121 | 122 | # Define this as empty until I found a useful application. 123 | installcheck: 124 | 125 | uninstall: 126 | catalogs='$(CATALOGS)'; \ 127 | for cat in $$catalogs; do \ 128 | cat=`basename $$cat`; \ 129 | lang=`echo $$cat | sed 's/\.gmo$$//'`; \ 130 | rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ 131 | done 132 | if test "$(PACKAGE)" = "gettext"; then \ 133 | rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \ 134 | else \ 135 | : ; \ 136 | fi 137 | 138 | check: all 139 | 140 | dvi info tags TAGS ID: 141 | 142 | mostlyclean: 143 | rm -f core core.* *.pox $(PACKAGE).po *.new.po 144 | rm -fr *.o 145 | 146 | clean: mostlyclean 147 | 148 | distclean: clean 149 | rm -f Makefile Makefile.in POTFILES *.mo 150 | 151 | maintainer-clean: distclean 152 | @echo "This command is intended for maintainers to use;" 153 | @echo "it deletes files that may require special tools to rebuild." 154 | rm -f $(GMOFILES) 155 | 156 | distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) 157 | dist distdir: 158 | $(MAKE) update-po 159 | @$(MAKE) dist2 160 | # This is a separate target because 'update-po' must be executed before. 161 | dist2: $(DISTFILES) 162 | dists="$(DISTFILES)"; \ 163 | for file in $$dists; do \ 164 | if test -f $$file; then dir=.; else dir=$(srcdir); fi; \ 165 | cp -p $$dir/$$file $(distdir); \ 166 | done 167 | 168 | update-po: Makefile 169 | $(MAKE) $(PACKAGE).pot 170 | if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \ 171 | cd $(srcdir); \ 172 | catalogs='$(GMOFILES)'; \ 173 | for cat in $$catalogs; do \ 174 | cat=`basename $$cat`; \ 175 | lang=`echo $$cat | sed 's/\.gmo$$//'`; \ 176 | echo "$$lang:"; \ 177 | if $(MSGMERGE) $$lang.po $(PACKAGE).pot -o $$lang.new.po; then \ 178 | mv -f $$lang.new.po $$lang.po; \ 179 | else \ 180 | echo "msgmerge for $$cat failed!"; \ 181 | rm -f $$lang.new.po; \ 182 | fi; \ 183 | done 184 | $(MAKE) update-gmo 185 | 186 | update-gmo: Makefile $(GMOFILES) 187 | @: 188 | 189 | Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in 190 | cd $(top_builddir) \ 191 | && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ 192 | $(SHELL) ./config.status 193 | 194 | # Tell versions [3.59,3.63) of GNU make not to export all variables. 195 | # Otherwise a system limit (for SysV at least) may be exceeded. 196 | .NOEXPORT: 197 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/po/POTFILES: -------------------------------------------------------------------------------- 1 | ../src/main.c \ 2 | ../src/interface.c \ 3 | ../src/callbacks.c \ 4 | ../src/support.c 5 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/po/POTFILES.in: -------------------------------------------------------------------------------- 1 | # List of source files containing translatable strings. 2 | 3 | src/main.c 4 | src/interface.c 5 | src/callbacks.c 6 | src/support.c 7 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/src/Makefile.am: -------------------------------------------------------------------------------- 1 | ## Process this file with automake to produce Makefile.in 2 | 3 | INCLUDES = \ 4 | -I$(top_srcdir)/intl \ 5 | @GTK_CFLAGS@ 6 | 7 | bin_PROGRAMS = gsat 8 | 9 | gsat_SOURCES = \ 10 | main.c \ 11 | support.c support.h \ 12 | interface.c interface.h \ 13 | callbacks.c callbacks.h \ 14 | comms.c comms.h \ 15 | plugins.c plugins.h \ 16 | db.c db.h \ 17 | prefs.c prefs.h 18 | 19 | gsat_LDADD = @GTK_LIBS@ $(INTLLIBS) 20 | 21 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/src/comms.h: -------------------------------------------------------------------------------- 1 | /* Prototypes for the communications functions */ 2 | 3 | int connectsock(char *host, char *service, char *protocol); 4 | int send_command(int sock, char *command); 5 | int get_response(int sock, char *buf); 6 | gint timeout_callback( gpointer data ); 7 | void error_dialog(gchar *message); 8 | void show_status( const gchar * statusmsg ); 9 | int connect_server( void ); 10 | void clear_map( void ); 11 | void draw_grid( void ); 12 | void plot_QTH( float qthlat, float qthlong, char *callsign ); 13 | void clear_widgets( void ); 14 | void disconnect_server( void ); 15 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/src/db.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gsat - a realtime satellite tracking graphical frontend to predict 3 | * 4 | * Copyright (C) 2001 by Xavier Crehueras, EB3CZS 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 | * 20 | * Look at the README for more information on the program. 21 | */ 22 | 23 | /* Satellite database functions */ 24 | 25 | void lookup_sat_db( void ); 26 | void save_sat_db( void ); 27 | void copy_sat_db( char *filename ); 28 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/src/globals.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gsat - a realtime satellite tracking graphical frontend to predict 3 | * 4 | * Copyright (C) 2001 by Xavier Crehueras, EB3CZS 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 | * 20 | * Look at the README for more information on the program. 21 | */ 22 | 23 | /* Global definitions */ 24 | 25 | #define GSATVERSION "1.1.0" 26 | #define WINTITLE(VERS) "gsat #VERS: Real-Time Satellite Tracking Display" 27 | 28 | #ifndef GSATLIBDIR 29 | #define GSATLIBDIR "/usr/local/lib/gsat" 30 | #endif 31 | 32 | #define MAXPLUGINS 20 33 | #define DEFAULTPLUGINSDIR GSATLIBDIR"/plugins/" 34 | 35 | /* Buffer size for network reads */ 36 | #define NETBUFSIZE 1024 37 | 38 | /* Network timeout */ 39 | #define NETTIMEOUT 10 40 | 41 | /* Network maximum number of timeouts */ 42 | #define MAXTIMEOUTS 3 43 | 44 | /* Size of world map */ 45 | #define MAPSIZEX 700 46 | #define MAPSIZEY 350 47 | 48 | /* Maximum number of dots for drawing orbits */ 49 | #define MAXDOTS 2800 50 | 51 | /* Size of az/el graphic */ 52 | #define AZELSIZEX 250 53 | #define AZELSIZEY 250 54 | 55 | /* Maximum number of dots for drawing az/el graphic */ 56 | #define AZELMAXDOTS AZELSIZEX*2 57 | 58 | int errno; 59 | 60 | /* Network parameters */ 61 | char *predicthost; 62 | char *predictport; 63 | int netsocket; 64 | 65 | /* Main Widgets */ 66 | GtkWidget * mainwindow; 67 | GtkWidget * dialog_connect; 68 | GtkWidget * dialog_preferences; 69 | GtkWidget * dialog_azel_graph; 70 | GtkWidget * dialog_dbedit; 71 | GtkWidget * dialog_about; 72 | 73 | /* Main control parameters */ 74 | int connected; 75 | int timeUTC; 76 | int drawgrid; 77 | int satfootprint; 78 | int qthfootprint; 79 | int drawtrack; 80 | int autofreq; 81 | int azelgraph; 82 | int enableupdoppler; 83 | int enabledowndoppler; 84 | char predictversion[10]; 85 | GList *satlist; 86 | char statusmsg[256]; 87 | float lastel; 88 | gint selectedrow; 89 | GList *modelist; 90 | GList *uplinklist; 91 | GList *downlinklist; 92 | GList *beaconlist; 93 | 94 | /* Graphics parameters */ 95 | GdkPixmap *drawmap; 96 | GdkPixmap *sourcemap; 97 | GdkPoint dots[MAXDOTS]; 98 | gint ndots; 99 | GdkFont *drawfont; 100 | GdkColor yellowclr, redclr, purpleclr, cyanclr, blueclr; 101 | GdkGC *yellow_gc, *red_gc, *purple_gc, *cyan_gc, *blue_gc; 102 | GdkPixmap *drawazel; 103 | GdkPixmap *sourceazel; 104 | GdkPoint azeldots[AZELMAXDOTS]; 105 | gint nazeldots; 106 | 107 | /* Program flags */ 108 | int doprediction; 109 | int newsat; 110 | 111 | /* Plugin interface functions */ 112 | char * (*plugin_info_uplink)( void ); 113 | int (*plugin_open_rig_uplink)( char * config ); 114 | void (*plugin_close_rig_uplink)( void ); 115 | void (*plugin_set_uplink_frequency)( double frequency ); 116 | char * (*plugin_info_downlink)( void ); 117 | int (*plugin_open_rig_downlink)( char * config ); 118 | void (*plugin_close_rig_downlink)( void ); 119 | void (*plugin_set_downlink_frequency)( double frequency ); 120 | char * (*plugin_info_beacon)( void ); 121 | int (*plugin_open_rig_beacon)( char * config ); 122 | void (*plugin_close_rig_beacon)( void ); 123 | void (*plugin_set_beacon_frequency)( double frequency ); 124 | char * (*plugin_info_rotor)( void ); 125 | int (*plugin_open_rotor)( char * config ); 126 | void (*plugin_close_rotor)( void ); 127 | void (*plugin_set_rotor)( double azimuth, double elevation ); 128 | 129 | /* Plugin control parameters */ 130 | int uppluginenable; 131 | int enableupdoppler; 132 | char * uppluginconfig; 133 | void * upplugin_handle; 134 | 135 | int downpluginenable; 136 | int enabledowndoppler; 137 | char * downpluginconfig; 138 | void * downplugin_handle; 139 | 140 | int beaconpluginenable; 141 | int enablebeacondoppler; 142 | char * beaconpluginconfig; 143 | void * beaconplugin_handle; 144 | 145 | int rotorpluginenable; 146 | int enablerotor; 147 | char * rotorpluginconfig; 148 | void * rotorplugin_handle; 149 | 150 | GList *pluginlist; 151 | char pluginfiles[MAXPLUGINS][30]; 152 | char plugindescriptions[MAXPLUGINS][30]; 153 | char pluginsdir[256]; 154 | 155 | GList *rotorpluginlist; 156 | char rotorpluginfiles[MAXPLUGINS][30]; 157 | char rotorplugindescriptions[MAXPLUGINS][30]; 158 | 159 | /* Preferences */ 160 | char prefs_grid[1]; 161 | char prefs_utctime[1]; 162 | char prefs_satfootprint[1]; 163 | char prefs_qthfootprint[1]; 164 | char prefs_track[1]; 165 | char prefs_autofreq[1]; 166 | char prefs_aos_command[1024]; 167 | char prefs_los_command[1024]; 168 | char prefs_up_plugin[256]; 169 | char prefs_up_plugin_config[256]; 170 | char prefs_down_plugin[256]; 171 | char prefs_down_plugin_config[256]; 172 | char prefs_beacon_plugin[256]; 173 | char prefs_beacon_plugin_config[256]; 174 | char prefs_rotor_plugin[256]; 175 | char prefs_rotor_plugin_config[256]; 176 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/src/interface.h: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT THIS FILE - it is generated by Glade. 3 | */ 4 | 5 | GtkWidget* create_mainwindow (void); 6 | GtkWidget* create_dialog_preferences (void); 7 | GtkWidget* create_dialog_connect (void); 8 | GtkWidget* create_dialog_azel_graph (void); 9 | GtkWidget* create_dialog_dbedit (void); 10 | GtkWidget* create_dialog_about (void); 11 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/src/plugins.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gsat - a realtime satellite tracking graphical frontend to predict 3 | * 4 | * Copyright (C) 2001 by Xavier Crehueras, EB3CZS 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 | * 20 | * Look at the README for more information on the program. 21 | */ 22 | 23 | /* Plugin functions */ 24 | 25 | void close_uplink_plugin( void ); 26 | int open_uplink_plugin( char * plugin ); 27 | void close_downlink_plugin( void ); 28 | int open_downlink_plugin( char * plugin ); 29 | void close_beacon_plugin( void ); 30 | int open_beacon_plugin( char * plugin ); 31 | int check_radio_plugin_file( const void * plugdir ); 32 | void search_radio_plugins( void ); 33 | void close_rotor_plugin( void ); 34 | int open_rotor_plugin( char * plugin ); 35 | int check_rotor_plugin_file( const void * plugdir ); 36 | void search_rotor_plugins( void ); 37 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/src/prefs.h: -------------------------------------------------------------------------------- 1 | /* 2 | * gsat - a realtime satellite tracking graphical frontend to predict 3 | * 4 | * Copyright (C) 2001 by Xavier Crehueras, EB3CZS 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 | * 20 | * Look at the README for more information on the program. 21 | */ 22 | 23 | /* User preferences functions */ 24 | 25 | void open_preferences( void ); 26 | void save_preferences( void ); 27 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/src/support.c: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT THIS FILE - it is generated by Glade. 3 | */ 4 | 5 | #ifdef HAVE_CONFIG_H 6 | # include 7 | #endif 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #include 15 | 16 | #include "support.h" 17 | 18 | /* This is an internally used function to check if a pixmap file exists. */ 19 | static gchar* check_file_exists (const gchar *directory, 20 | const gchar *filename); 21 | 22 | /* This is an internally used function to create pixmaps. */ 23 | static GtkWidget* create_dummy_pixmap (GtkWidget *widget); 24 | 25 | GtkWidget* 26 | lookup_widget (GtkWidget *widget, 27 | const gchar *widget_name) 28 | { 29 | GtkWidget *parent, *found_widget; 30 | 31 | for (;;) 32 | { 33 | if (GTK_IS_MENU (widget)) 34 | parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); 35 | else 36 | parent = widget->parent; 37 | if (parent == NULL) 38 | break; 39 | widget = parent; 40 | } 41 | 42 | found_widget = (GtkWidget*) gtk_object_get_data (GTK_OBJECT (widget), 43 | widget_name); 44 | if (!found_widget) 45 | g_warning ("Widget not found: %s", widget_name); 46 | return found_widget; 47 | } 48 | 49 | /* This is a dummy pixmap we use when a pixmap can't be found. */ 50 | static char *dummy_pixmap_xpm[] = { 51 | /* columns rows colors chars-per-pixel */ 52 | "1 1 1 1", 53 | " c None", 54 | /* pixels */ 55 | " " 56 | }; 57 | 58 | /* This is an internally used function to create pixmaps. */ 59 | static GtkWidget* 60 | create_dummy_pixmap (GtkWidget *widget) 61 | { 62 | GdkColormap *colormap; 63 | GdkPixmap *gdkpixmap; 64 | GdkBitmap *mask; 65 | GtkWidget *pixmap; 66 | 67 | colormap = gtk_widget_get_colormap (widget); 68 | gdkpixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &mask, 69 | NULL, dummy_pixmap_xpm); 70 | if (gdkpixmap == NULL) 71 | g_error ("Couldn't create replacement pixmap."); 72 | pixmap = gtk_pixmap_new (gdkpixmap, mask); 73 | gdk_pixmap_unref (gdkpixmap); 74 | gdk_bitmap_unref (mask); 75 | return pixmap; 76 | } 77 | 78 | static GList *pixmaps_directories = NULL; 79 | 80 | /* Use this function to set the directory containing installed pixmaps. */ 81 | void 82 | add_pixmap_directory (const gchar *directory) 83 | { 84 | pixmaps_directories = g_list_prepend (pixmaps_directories, 85 | g_strdup (directory)); 86 | } 87 | 88 | /* This is an internally used function to create pixmaps. */ 89 | GtkWidget* 90 | create_pixmap (GtkWidget *widget, 91 | const gchar *filename) 92 | { 93 | gchar *found_filename = NULL; 94 | GdkColormap *colormap; 95 | GdkPixmap *gdkpixmap; 96 | GdkBitmap *mask; 97 | GtkWidget *pixmap; 98 | GList *elem; 99 | 100 | if (!filename || !filename[0]) 101 | return create_dummy_pixmap (widget); 102 | 103 | /* We first try any pixmaps directories set by the application. */ 104 | elem = pixmaps_directories; 105 | while (elem) 106 | { 107 | found_filename = check_file_exists ((gchar*)elem->data, filename); 108 | if (found_filename) 109 | break; 110 | elem = elem->next; 111 | } 112 | 113 | /* If we haven't found the pixmap, try the source directory. */ 114 | if (!found_filename) 115 | { 116 | found_filename = check_file_exists ("../pixmaps", filename); 117 | } 118 | 119 | if (!found_filename) 120 | { 121 | g_warning (_("Couldn't find pixmap file: %s"), filename); 122 | return create_dummy_pixmap (widget); 123 | } 124 | 125 | colormap = gtk_widget_get_colormap (widget); 126 | gdkpixmap = gdk_pixmap_colormap_create_from_xpm (NULL, colormap, &mask, 127 | NULL, found_filename); 128 | if (gdkpixmap == NULL) 129 | { 130 | g_warning (_("Error loading pixmap file: %s"), found_filename); 131 | g_free (found_filename); 132 | return create_dummy_pixmap (widget); 133 | } 134 | g_free (found_filename); 135 | pixmap = gtk_pixmap_new (gdkpixmap, mask); 136 | gdk_pixmap_unref (gdkpixmap); 137 | gdk_bitmap_unref (mask); 138 | return pixmap; 139 | } 140 | 141 | /* This is an internally used function to check if a pixmap file exists. */ 142 | static gchar* 143 | check_file_exists (const gchar *directory, 144 | const gchar *filename) 145 | { 146 | gchar *full_filename; 147 | struct stat s; 148 | gint status; 149 | 150 | full_filename = (gchar*) g_malloc (strlen (directory) + 1 151 | + strlen (filename) + 1); 152 | strcpy (full_filename, directory); 153 | strcat (full_filename, G_DIR_SEPARATOR_S); 154 | strcat (full_filename, filename); 155 | 156 | status = stat (full_filename, &s); 157 | if (status == 0 && S_ISREG (s.st_mode)) 158 | return full_filename; 159 | g_free (full_filename); 160 | return NULL; 161 | } 162 | 163 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/src/support.h: -------------------------------------------------------------------------------- 1 | /* 2 | * DO NOT EDIT THIS FILE - it is generated by Glade. 3 | */ 4 | 5 | #ifdef HAVE_CONFIG_H 6 | # include 7 | #endif 8 | 9 | #include 10 | 11 | /* 12 | * Standard gettext macros. 13 | */ 14 | #ifdef ENABLE_NLS 15 | # include 16 | # undef _ 17 | # define _(String) dgettext (PACKAGE, String) 18 | # ifdef gettext_noop 19 | # define N_(String) gettext_noop (String) 20 | # else 21 | # define N_(String) (String) 22 | # endif 23 | #else 24 | # define textdomain(String) (String) 25 | # define gettext(String) (String) 26 | # define dgettext(Domain,Message) (Message) 27 | # define dcgettext(Domain,Message,Type) (Message) 28 | # define bindtextdomain(Domain,Directory) (Domain) 29 | # define _(String) (String) 30 | # define N_(String) (String) 31 | #endif 32 | 33 | 34 | /* 35 | * Public Functions. 36 | */ 37 | 38 | /* 39 | * This function returns a widget in a component created by Glade. 40 | * Call it with the toplevel widget in the component (i.e. a window/dialog), 41 | * or alternatively any widget in the component, and the name of the widget 42 | * you want returned. 43 | */ 44 | GtkWidget* lookup_widget (GtkWidget *widget, 45 | const gchar *widget_name); 46 | 47 | /* get_widget() is deprecated. Use lookup_widget instead. */ 48 | #define get_widget lookup_widget 49 | 50 | /* Use this function to set the directory containing installed pixmaps. */ 51 | void add_pixmap_directory (const gchar *directory); 52 | 53 | 54 | /* 55 | * Private Functions. 56 | */ 57 | 58 | /* This is used to create the pixmaps in the interface. */ 59 | GtkWidget* create_pixmap (GtkWidget *widget, 60 | const gchar *filename); 61 | 62 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/stamp-h: -------------------------------------------------------------------------------- 1 | timestamp 2 | -------------------------------------------------------------------------------- /clients/gsat-1.1.0/stamp-h.in: -------------------------------------------------------------------------------- 1 | timestamp 2 | -------------------------------------------------------------------------------- /clients/kep_reload/README: -------------------------------------------------------------------------------- 1 | "kep_reload" is a simple utility that forces an immediate reload 2 | of PREDICT's Keplerian database through a socket connection while 3 | PREDICT is running in server mode. It is especially useful in 4 | environments where PREDICT runs continuously, and periodic Keplerian 5 | element updates are made outside of PREDICT, such as through scripts 6 | run through a crontab. 7 | 8 | The "kepupdate" script found in this directory is an example of a 9 | Keplerian element update script that can be run on an automated 10 | basis through a crontab. It is designed to be placed in your 11 | home directory under a subdirectory called "cronjobs". It downloads 12 | Keplerian orbital data from www.celestrak.com using the HTTP protocol. 13 | (The "wget" utility, available from the Free Software Foundation, is 14 | required, and is included in many Linux distrubutions.) 15 | 16 | Type crontab -e to edit your crontab. Simply add the following entry: 17 | 18 | 0 8 * * * kepupdate 19 | 20 | and your orbital database will update each morning at 8:00 AM 21 | (provided you have a network connection at that time). 22 | 23 | See the crontab man page for more information on editing your crontab. 24 | 25 | -------------------------------------------------------------------------------- /clients/kep_reload/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Script to compile kep_reload 3 | # 4 | echo -n "Compiling kep_reload... " 5 | cc -Wall -O3 -s -fomit-frame-pointer kep_reload.c -o kep_reload 6 | echo "Done!" 7 | 8 | -------------------------------------------------------------------------------- /clients/kep_reload/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Script to install kep_reload 3 | # 4 | if [ ! -x $PWD/kep_reload ]; then 5 | $PWD/build 6 | fi 7 | 8 | whoami=`whoami` 9 | 10 | if [ $whoami != "root" ]; then 11 | echo "Sorry, $whoami. You need to be 'root' to install this program. :-(" 12 | echo "Please su to root and re-run the 'install' script again." 13 | else 14 | rm -f /usr/local/bin/kep_reload 15 | ln -s $PWD/kep_reload /usr/local/bin/kep_reload 16 | fi 17 | 18 | -------------------------------------------------------------------------------- /clients/kep_reload/kep_reload.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * * 3 | * kep_reload.c: Simple socket-based utility to * 4 | * force a reload of PREDICT's TLE database * 5 | * * 6 | * Syntax: kep_reload name_of_server (default is "localhost") * 7 | * Written by: John A. Magliacane, KD2BD on Friday 06-Apr-2001 * 8 | * Original socket code by Ivan Galysh, KD4HBO * 9 | * Last modified on: 10-Sep-2005 * 10 | * * 11 | ***************************************************************************** 12 | * * 13 | * This program is free software; you can redistribute it and/or modify it * 14 | * under the terms of the GNU General Public License as published by the * 15 | * Free Software Foundation; either version 2 of the License or any later * 16 | * version. * 17 | * * 18 | * This program is distributed in the hope that it will useful, but WITHOUT * 19 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * 20 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * 21 | * for more details. * 22 | * * 23 | *****************************************************************************/ 24 | 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | #include 37 | 38 | char string[625]; 39 | 40 | int connectsock(char *host, char *service, char *protocol) 41 | { 42 | /* This function is used to connect to the server. "host" is the 43 | name of the computer on which PREDICT is running in server mode. 44 | "service" is the name of the socket port. "protocol" is the 45 | socket protocol. It should be set to UDP. */ 46 | 47 | struct hostent *phe; 48 | struct servent *pse; 49 | struct protoent *ppe; 50 | struct sockaddr_in sin; 51 | 52 | int s, type; 53 | 54 | memset((char *)&sin, 0, sizeof(struct sockaddr_in)); 55 | sin.sin_family=AF_INET; 56 | 57 | if ((pse=getservbyname(service,protocol))) 58 | sin.sin_port=pse->s_port; 59 | 60 | else if ((sin.sin_port=htons((unsigned short)atoi(service)))==0) 61 | { 62 | printf("Can't get services\n"); 63 | return -1; 64 | } 65 | 66 | if ((phe=gethostbyname(host))) 67 | bcopy(phe->h_addr,(char *)&sin.sin_addr,phe->h_length); 68 | 69 | else if ((sin.sin_addr.s_addr=inet_addr(host))==INADDR_NONE) 70 | { 71 | printf("Can't get host: %c%s%c.\n",34,host,34); 72 | return -1; 73 | } 74 | 75 | if ((ppe=getprotobyname(protocol))==0) 76 | return -1; 77 | 78 | if (strcmp(protocol,"udp")==0) 79 | type=SOCK_DGRAM; 80 | else 81 | type=SOCK_STREAM; 82 | 83 | s=socket(PF_INET,type,ppe->p_proto); 84 | 85 | if (s<0) 86 | { 87 | printf("Can't get socket.\n"); 88 | return -1; 89 | } 90 | 91 | if (connect(s,(struct sockaddr *)&sin,sizeof(sin))<0) 92 | { 93 | printf("Can't connect to socket.\n"); 94 | return -1; 95 | } 96 | 97 | return s; 98 | } 99 | 100 | void get_response(int sock, char *buf) 101 | { 102 | /* This function gets a response from the 103 | server in the form of a character string. */ 104 | 105 | int n; 106 | 107 | n=read(sock,buf,625); 108 | 109 | if (n<0) 110 | { 111 | if (errno==EINTR) 112 | return; 113 | 114 | if (errno==ECONNREFUSED) 115 | { 116 | fprintf(stderr, "Connection refused - server not running\n"); 117 | exit(1); 118 | } 119 | } 120 | 121 | buf[n]='\0'; 122 | } 123 | 124 | char *send_command(host, command) 125 | char *host, *command; 126 | { 127 | int sk; 128 | 129 | /* This function sends "command" to PREDICT running on 130 | machine "host", and returns the result of the command 131 | as a pointer to a character string. */ 132 | 133 | /* Open a network socket */ 134 | sk=connectsock(host,"predict","udp"); 135 | 136 | if (sk<0) 137 | exit(-1); 138 | 139 | /* Build a command buffer */ 140 | sprintf(string,"%s\n",command); 141 | 142 | /* Send the command to the server */ 143 | write(sk,command,strlen(string)); 144 | 145 | /* clear string[] so it can be re-used for the response */ 146 | string[0]=0; 147 | 148 | /* Get the response */ 149 | get_response(sk,string); 150 | 151 | /* Close the connection */ 152 | close(sk); 153 | 154 | return string; 155 | } 156 | 157 | int main(argc,argv) 158 | int argc; 159 | char *argv[]; 160 | { 161 | int x; 162 | 163 | if (argc==1) 164 | send_command("localhost", "RELOAD_TLE"); 165 | else 166 | for (x=1; x, that makes use of the socket-based 3 | interface in PREDICT to obtain real-time satellite tracking data. "map" 4 | requires the XForms libraries to compile and run. The entire XForms 5 | distribution plus the latest XForms news and information is available at: 6 | 7 | http://world.std.com/~xforms 8 | 9 | -------------------------------------------------------------------------------- /clients/map/build: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Script to compile and install 'map' 3 | # 4 | echo "Compiling 'map'. If a compilation error occurs, please" 5 | echo "edit the 'build' script according to the location of your" 6 | echo "X11 and xforms libraries." 7 | echo 8 | # 9 | # Select one of the following lines depending on your specific directory 10 | # and include file paths. The first line works fine under Slackware. 11 | # 12 | cc -Wall -O3 -s -o map map.c map_cb.c map_main.c -L/usr/X11R6/lib -lforms -lX11 -lm 13 | #cc -Wall -O3 -s -o map map.c map_cb.c map_main.c -lforms -lX11 -lm 14 | echo "Done!" 15 | whoami=`whoami` 16 | if [ ! -x /usr/local/bin/map ]; then 17 | if [ $whoami != "root" ]; then 18 | echo "Sorry, $whoami. You need to be 'root' to install this program. :-(" 19 | echo "Please su to root and re-run this script again." 20 | else 21 | ln -s $PWD/map /usr/local/bin/map 22 | fi 23 | fi 24 | 25 | -------------------------------------------------------------------------------- /clients/map/map.h: -------------------------------------------------------------------------------- 1 | /** Header file generated with fdesign on Mon Jan 31 23:02:21 2000.**/ 2 | 3 | #ifndef FD_map_h_ 4 | #define FD_map_h_ 5 | 6 | /** Callbacks, globals and object handlers **/ 7 | extern void j(FL_OBJECT *, long); 8 | extern void l(FL_OBJECT *, long); 9 | 10 | 11 | /**** Forms and Objects ****/ 12 | typedef struct { 13 | FL_FORM *map; 14 | void *vdata; 15 | char *cdata; 16 | long ldata; 17 | FL_OBJECT *t; 18 | FL_OBJECT *g; 19 | FL_OBJECT *a; 20 | FL_OBJECT *b; 21 | FL_OBJECT *c; 22 | FL_OBJECT *f; 23 | FL_OBJECT *h; 24 | FL_OBJECT *k; 25 | FL_OBJECT *s; 26 | } FD_map; 27 | 28 | extern FD_map * create_form_map(void); 29 | FD_map *fdmap; 30 | char servername[32]; 31 | char satnum[32]; 32 | int oldx,oldy; 33 | long time_offset; 34 | FL_POINT xa[360]; 35 | #endif /* FD_map_h_ */ 36 | -------------------------------------------------------------------------------- /clients/map/map_main.c: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | * MAP: A satellite tracking/orbital display program * 3 | * Copyright Ivan J. Galysh, KD4HBO 2000 * 4 | * Project started: 18-Dec-99 * 5 | * Last update: 02-Jan-01 * 6 | ***************************************************************************** 7 | * * 8 | * This program is free software; you can redistribute it and/or modify it * 9 | * under the terms of the GNU General Public License as published by the * 10 | * Free Software Foundation; either version 2 of the License or any later * 11 | * version. * 12 | * * 13 | * This program is distributed in the hope that it will useful, but WITHOUT * 14 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * 15 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * 16 | * for more details. * 17 | * * 18 | *****************************************************************************/ 19 | #include "forms.h" 20 | #include "map.h" 21 | #include 22 | 23 | extern int connectsock(); 24 | extern void handler(); 25 | extern void get_response(); 26 | 27 | char pathname[128]; 28 | 29 | int main(int argc, char *argv[]) 30 | { 31 | int i, skt, x, y, z; 32 | char cmd[16], bufr[625], satnamelist[26][26]; 33 | const char *ptrsat; 34 | FD_map *fd_map; 35 | struct timeb tptr; 36 | 37 | if (argc==1) 38 | { 39 | printf("\n%c*** ERROR! System name missing! (map system_name)\n\n",7); 40 | exit(-1); 41 | } 42 | 43 | for (i=0; i<360; i++) 44 | { 45 | xa[i].x=0; 46 | xa[i].y=0; 47 | } 48 | 49 | x=ftime(&tptr); 50 | time_offset=tptr.timezone; 51 | 52 | fl_initialize(&argc, argv, 0, 0, 0); 53 | fd_map=create_form_map(); 54 | strcpy(servername,argv[1]); 55 | skt=connectsock(servername,"predict","udp"); 56 | 57 | if (skt<0) 58 | exit(-1); 59 | 60 | write(skt,"GET_LIST",9); 61 | get_response(skt,bufr); 62 | close(skt); 63 | 64 | /* Parse response */ 65 | 66 | for (x=0, y=0, z=0; yk,i,satnamelist[i-1]); 84 | 85 | ptrsat=fl_get_choice_item_text(fd_map->k,1); 86 | strcpy(satnum,ptrsat); 87 | 88 | /* fill-in form initialization code */ 89 | fdmap=fd_map; 90 | 91 | /* show the first form */ 92 | fl_show_form(fd_map->map,FL_PLACE_CENTERFREE,FL_FULLBORDER,"map: Real-Time Satellite Tracking Display"); 93 | fl_do_forms(); 94 | 95 | return 0; 96 | } 97 | -------------------------------------------------------------------------------- /clients/samples/build: -------------------------------------------------------------------------------- 1 | cc -Wall -O3 -s demo.c -o demo 2 | cc -Wall -O3 -s demo-i.c -o demo-i 3 | 4 | -------------------------------------------------------------------------------- /clients/samples/demo-i: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/clients/samples/demo-i -------------------------------------------------------------------------------- /clients/samples/perl/README: -------------------------------------------------------------------------------- 1 | "demo.pl" is a Perl script written by Rich Parry, W9IF. Although written 2 | to be compliant with earlier versions of PREDICT, it still extracts 3 | useful tracking data from PREDICT, and can serve as a template for 4 | writing your own PREDICT clients in Perl. 5 | 6 | "kenwood_d700.pl" is a Perl script written by Andrew Rich, VK4TEC 7 | in August 2005, that tunes a Kenwood D700 transceiver attached to 8 | /dev/ttyS0 in compensation for Doppler shift. 9 | 10 | -------------------------------------------------------------------------------- /clients/samples/perl/demo.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | 3 | ############################################################################# 4 | # # 5 | # This program is a template that can used for building client programs # 6 | # for PREDICT. This program works by sending a data request to the server # 7 | # (the machine on which PREDICT is running in server mode), and retrieves # 8 | # the response from the server. # 9 | # # 10 | # This program takes two arguments. If none are supplied, a default host # 11 | # and satellite are assigned. The first argument is the hostname of # 12 | # the server, and the second is the satellite name. For example: # 13 | # # 14 | # demo localhost OSCAR-10 # 15 | # # 16 | # If the satellite name contains spaces, enclose the name in "quotes". # 17 | # # 18 | ############################################################################# 19 | # # 20 | # This program was written by Rich Parry, W9IF on September 18, 2000. # 21 | # This program is free software; you can redistribute it and/or modify it # 22 | # under the terms of the GNU General Public License as published by the # 23 | # Free Software Foundation; either version 2 of the License or any later # 24 | # version. # 25 | # # 26 | # This program is distributed in the hope that it will useful, but WITHOUT # 27 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # 28 | # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # 29 | # for more details. # 30 | # # 31 | ############################################################################# 32 | 33 | use strict; 34 | use Socket; 35 | 36 | my $port = 1210; 37 | my ($predict_server, $satellite); 38 | 39 | # Use defaults if no command line arguments given 40 | if ($#ARGV eq 1) { 41 | $predict_server = $ARGV[0]; 42 | $satellite = $ARGV[1]; 43 | } 44 | else { 45 | print "WARNING: Use syntax \"demo.pl hostname satellite\" (i.e., demo.pl localhost FO-20)\n"; 46 | print "Substituting default arguments\n"; 47 | $predict_server = "localhost"; 48 | $satellite = "OSCAR-10"; 49 | } 50 | 51 | # Setup for UDP socket commumnication 52 | my ($d1, $d2, $d3, $d4, $rawserver) = gethostbyname($predict_server); 53 | my $serveraddr = pack("Sna4x8", 2, $port, $rawserver); 54 | my $prototype = getprotobyname('udp'); 55 | socket(SOCKET,2,SOCK_DGRAM,$prototype) || die("No Socket\n"); 56 | $| = 1; # no buffering 57 | 58 | # Setup timeout routine 59 | $SIG{ALRM} = \&time_out; 60 | alarm(10); # Force exit if no response from server 61 | 62 | # Send request to predict 63 | send(SOCKET, "GET_SAT $satellite\0" , 0 , $serveraddr) or die("UDP send failed $!\n"); 64 | 65 | # Get response from predict 66 | my $server_response = ''; # required by recv function 67 | recv(SOCKET, $server_response, 100, 0) or die "UDP recv failed $!\n"; 68 | 69 | # Extract individual responses 70 | my ($name, $lon, $lat, $az, $el, $aos_seconds, $foot) = split /\n/, $server_response; 71 | my $aos_time_date = gmtime($aos_seconds); 72 | 73 | # Output response 74 | print "\nPREDICT returned the following string in response to GET_SAT $satellite:\n\n$server_response\n"; 75 | print "Values are as follows:\nName: $name\nLong: $lon\nLat: $lat\nAz: $az\nEl: $el\nNext AOS: $aos_seconds = $aos_time_date UTC\nFoorprint: $foot\n\n"; 76 | 77 | close(SOCKET); 78 | 79 | 80 | sub time_out { 81 | die "Server not responding for satellite $satellite\n"; 82 | } 83 | -------------------------------------------------------------------------------- /clients/samples/perl/kenwood_d700.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | # 3 | # Talk to PREDICT satellite tracking and tune Kenwood D700 Radio 4 | # 5 | # Andrew Rich VK4TEC Aug 2005 6 | # 7 | use Socket; 8 | use Net::Telnet; 9 | use Math::Round; 10 | $frequency = "437975"; 11 | my $port = 1210; 12 | my ($predict_server, $satellite); 13 | if ($#ARGV eq 1) 14 | { 15 | $predict_server = $ARGV[0]; 16 | $satellite = $ARGV[1]; 17 | } 18 | else 19 | { 20 | print "WARNING: Use syntax \"kenwood_d700.pl hostname satellite\" 21 | (i.e., kenwood_d700 localhost ISS)\n"; 22 | print "Substituting default arguments\n"; 23 | $predict_server = "localhost"; 24 | $satellite = "ISS"; 25 | } 26 | my ($d1, $d2, $d3, $d4, $rawserver) = gethostbyname($predict_server); 27 | my $serveraddr = pack("Sna4x8", 2, $port, $rawserver); 28 | my $prototype = getprotobyname('udp'); 29 | socket(SOCKET,2,SOCK_DGRAM,$prototype) || die("No Socket\n"); 30 | $| = 1; # no buffering 31 | $SIG{ALRM} = \&time_out; 32 | alarm(10); # Force exit if no response from server 33 | send(SOCKET, "GET_DOPPLER $satellite\0" , 0 , $serveraddr) or die("UDP send 34 | failed $!\n"); 35 | my $server_response = ''; # required by recv function 36 | recv(SOCKET, $server_response, 100, 0) or die "UDP recv failed $!\n"; 37 | $shift = (($server_response * 4.375) / 1000 ); 38 | $newfreq = (int($frequency + $shift)); 39 | $rounded = nearest(5,$newfreq) ; 40 | $date = `date +%d/%m/%y" "%H:%M:%S`; 41 | chop $date; 42 | print "DATE: $date \n"; 43 | print "SATT: $satellite \n"; 44 | print "BASE: $frequency \n"; 45 | print "HOST: $predict_server \n"; 46 | print "PORT: $port \n"; 47 | print "TUNE: $rounded \n"; 48 | print "DOPP: $shift \n\n"; 49 | open (comport, "> /dev/ttyS0"); 50 | print comport "FQ 00".$rounded."000,0\n"; 51 | close(comport); 52 | close(SOCKET); 53 | sub time_out 54 | { 55 | die "Server not responding for satellite $satellite\n"; 56 | } 57 | -------------------------------------------------------------------------------- /configure: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Script to configure, compile, and install PREDICT. 4 | # Give an argument to this script if you wish to override 5 | # the default installation directory of /usr/local/bin. 6 | # ie: ./configure /usr/bin 7 | # 8 | whoiam=`whoami` 9 | if [ $whoiam != "root" ]; then 10 | echo "Sorry $whoiam. You need to be 'root' to install PREDICT. :-(" 11 | else 12 | echo -n "One moment please... " 13 | oldterm=$TERM 14 | export TERM=linux 15 | cc -Wall -s installer.c -lncurses -o installer 16 | if [ -a installer ]; then 17 | if [ $# == "0" ]; then 18 | ./installer 19 | else 20 | ./installer $1 21 | fi 22 | else 23 | echo "Compilation failed. Are you sure you have a C compiler (gcc) installed?" 24 | fi 25 | export TERM=$oldterm 26 | fi 27 | -------------------------------------------------------------------------------- /default/predict.qth: -------------------------------------------------------------------------------- 1 | W1AW 2 | 41.716905 3 | 72.727083 4 | 25 5 | -------------------------------------------------------------------------------- /default/predict.tle: -------------------------------------------------------------------------------- 1 | OSCAR-7 2 | 1 07530U 74089B 06134.50821529 -.00000028 00000-0 10000-3 0 5798 3 | 2 07530 101.5721 178.2758 0011929 313.0415 46.9659 12.53571933441165 4 | OSCAR-11 5 | 1 14781U 84021B 06134.09628152 .00000024 00000-0 10583-4 0 676 6 | 2 14781 98.2067 143.5902 0009848 21.1786 338.9827 14.79420503190727 7 | PACSAT 8 | 1 20439U 90005D 06134.53413373 .00000025 00000-0 24617-4 0 7455 9 | 2 20439 98.1875 146.3697 0010202 298.9390 61.0785 14.31720908851500 10 | LUSAT 11 | 1 20442U 90005G 06134.43023793 .00000034 00000-0 27673-4 0 6826 12 | 2 20442 98.1917 155.7162 0011341 299.2881 60.7170 14.31964173851627 13 | ITAMSAT 14 | 1 22826U 93061D 06134.11736399 .00000045 00000-0 33603-4 0 890 15 | 2 22826 98.2758 118.8388 0009404 6.7373 353.3931 14.29415978658568 16 | OSCAR-27 17 | 1 22825U 93061C 06134.49181646 .00000017 00000-0 22806-4 0 3995 18 | 2 22825 98.2811 117.9786 0008650 8.4587 351.6746 14.29172110658548 19 | OSCAR-29 20 | 1 24278U 96046B 06134.07853292 .00000007 00000-0 41729-4 0 2287 21 | 2 24278 98.5122 143.3246 0351532 38.3123 324.2425 13.52921354480935 22 | OSCAR-32 23 | 1 25397U 98043D 06134.65213366 -.00000103 00000-0 -26912-4 0 133 24 | 2 25397 98.4683 192.9828 0001024 1.6438 358.4757 14.23103791407476 25 | OSCAR-50 26 | 1 27607U 02058C 06134.31227523 -.00000007 00000-0 20781-4 0 188 27 | 2 27607 64.5589 215.9118 0047056 159.2561 201.0446 14.71135792182445 28 | OSCAR-51 29 | 1 28375U 04025K 06135.15268665 .00000037 00000-0 24385-4 0 5307 30 | 2 28375 98.1676 188.6920 0084122 308.4098 50.9557 14.40517579 98402 31 | CUTE-1 32 | 1 27844U 03031E 06134.21005121 .00000118 00000-0 75434-4 0 7599 33 | 2 27844 98.7197 142.9294 0010061 156.4976 203.6677 14.20434897148832 34 | RS-15 35 | 1 23439U 94085A 06133.86972436 -.00000039 00000-0 10597-3 0 9522 36 | 2 23439 64.8176 292.7267 0167670 259.8247 98.3730 11.27551454468670 37 | RS-20 38 | 1 27560U 02054B 06134.26701036 .00000029 00000-0 17007-4 0 722 39 | 2 27560 98.0742 9.4037 0044042 124.5224 236.0135 14.54814627182451 40 | RS-22 41 | 1 27939U 03042A 06134.74631795 .00000210 00000-0 50048-4 0 9012 42 | 2 27939 98.0912 24.6939 0014771 89.5692 270.7196 14.63003465140417 43 | PCSAT 44 | 1 26931U 01043C 06134.83499006 -.00000112 00000-0 -11513-4 0 3032 45 | 2 26931 67.0508 93.5855 0007299 261.8385 98.1891 14.29437285241169 46 | HAMSAT 47 | 1 28650U 05017B 06134.20750783 .00000106 00000-0 20283-4 0 3237 48 | 2 28650 97.8718 207.8438 0028342 110.8384 249.5853 14.81109917 55354 49 | OSCAR-57 50 | 1 27848U 03031J 06134.04029244 .00000098 00000-0 66369-4 0 7242 51 | 2 27848 98.7192 142.1312 0009742 159.6608 200.4949 14.20262686148792 52 | OSCAR-58 53 | 1 28895U 05043F 06134.38699404 .00000041 00000-0 18460-4 0 4321 54 | 2 28895 98.1702 33.2129 0016755 276.9784 82.9458 14.59402083 28921 55 | NOAA-14 56 | 1 23455U 94089A 06134.32605279 -.00000033 00000-0 66498-5 0 1174 57 | 2 23455 99.0397 192.2321 0010010 143.3377 216.8479 14.13657419586285 58 | NOAA-15 59 | 1 25338U 98030A 06134.45096712 .00000149 00000-0 82500-4 0 5101 60 | 2 25338 98.5149 137.7634 0011620 110.9592 249.2843 14.24578739415919 61 | NOAA-17 62 | 1 27453U 02032A 06134.29847588 .00000281 00000-0 14156-3 0 9006 63 | 2 27453 98.6221 207.1671 0012016 169.5829 190.5591 14.23777448201959 64 | UARS 65 | 1 21701U 91063B 06134.44506509 .00008004 00000-0 15009-3 0 7681 66 | 2 21701 56.9762 237.8599 0108513 142.4879 218.3713 15.43474693804096 67 | HUBBLE 68 | 1 20580U 90037B 06133.76423844 .00000565 00000-0 31255-4 0 6088 69 | 2 20580 28.4675 274.2876 0003895 181.2859 178.7716 15.00033901679926 70 | ISS 71 | 1 25544U 98067A 06135.21157407 .00015639 00000-0 10525-3 0 9374 72 | 2 25544 51.6372 357.2488 0009395 201.6355 305.7920 15.75323050427966 73 | 74 | -------------------------------------------------------------------------------- /docs/man/docmaker: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # This script builds the man page, pdf, postscript, html, 3 | # and text documentation from the groff source "predict.man". 4 | echo -n "Creating postscript file... " 5 | groff -T ps -man predict.man > ../postscript/predict.ps 6 | echo 7 | echo -n "Creating man page... " 8 | groff -T ascii -man predict.man > predict.1 9 | echo 10 | echo -n "Creating text file... " 11 | ul -t dumb predict.1 > ../text/predict.txt 12 | echo 13 | #echo -n "Creating HTML file... " 14 | #groff -T html -man predict.man > ../html/predict.html 15 | #echo 16 | echo -n "Creating pdf file... " 17 | ps2pdf ../postscript/predict.ps ../pdf/predict.pdf 18 | echo 19 | echo "Done!" 20 | -------------------------------------------------------------------------------- /docs/pdf/predict.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/docs/pdf/predict.pdf -------------------------------------------------------------------------------- /predict-2.2.3.lsm: -------------------------------------------------------------------------------- 1 | Begin4 2 | Title: PREDICT 3 | Version: 2.2.3 4 | Entered-date: 2006-05-15 5 | Description: PREDICT is an easy to use, ncurses-based satellite 6 | tracking/orbital prediction program developed for the 7 | Linux operating system. PREDICT permits users to track 8 | satellites in real-time, or make orbital predictions in 9 | advance of their arrival. A unique voice mode allows 10 | azimuth and elevation bearings of a satellite to be 11 | articulated via a soundcard to aid a ground-based 12 | observer in locating and identifying satellites through 13 | optical means. PREDICT also provides live bearings of 14 | the Sun and Moon, as well as solar illumination conditions 15 | onboard satellites. Doppler shift and path loss information 16 | is also provided for analyzing radio communication paths 17 | between satellites and earth-based ground stations. 18 | PREDICT supports the PIC/TRACK automatic antenna tracking 19 | system, and includes a UDP socket-based interface that 20 | allows the program to provide real-time tracking data to 21 | any number of client applications running either locally 22 | or remotely via a network connection. Several socket-based 23 | graphical satellite tracking display applications are 24 | included in this release of PREDICT. PREDICT requires 25 | ncurses version 4.2 or higher and the pthreads library 26 | for successful compilation. 27 | Keywords: Satellite tracking, orbital prediction, amateur radio, 28 | astronomy, OSCAR satellites, Space Shuttle, ISS 29 | Author: kd2bd@amsat.org (John A. Magliacane) 30 | galysh@juno.nrl.navy.mil (Ivan Galysh) - (socket code) 31 | benscosm@iol.it (Vittorio Benvenuti) - (PIC/TRACK code) 32 | Maintained-by: kd2bd@amsat.org (John A. Magliacane) 33 | Primary-site: ftp.amsat.org /amsat/software/Linux/predict-2.2.3.tar.gz 34 | Alternate-site: ftp.ibiblio.org /pub/linux/apps/ham/predict-2.2.3.tar.gz 35 | Original-site: http://www.qsl.net/kd2bd/predict.html 36 | Platforms: Linux/Unix 37 | Copying-policy: GPL 38 | End 39 | 40 | -------------------------------------------------------------------------------- /uninstall: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Script to uninstall PREDICT by breaking symlinks 3 | # between the installation and destination directories 4 | # 5 | rm -f /usr/local/bin/predict /usr/local/bin/xpredict /usr/local/bin/kep_update /usr/local/bin/earthtrack /usr/local/bin/earthtrack2 /usr/local/bin/geosat /usr/local/bin/map /usr/local/man/man1/predict.1 6 | -------------------------------------------------------------------------------- /utils/fodtrack-0.1/README: -------------------------------------------------------------------------------- 1 | How to install fodtrack: 2 | 3 | Login as root. 4 | 5 | cd to the directory where you did extract the files. 6 | 7 | call the install.sh script by invoking './install.sh'. This will compile and 8 | install the tool. For the documentation use the supplied manpages. 9 | 10 | ---> man fodtrack / man fodtrack.conf 11 | 12 | If any problem occurs - you find any bug - feel free to mail me at luc@1409.org 13 | -------------------------------------------------------------------------------- /utils/fodtrack-0.1/fodtrack.8: -------------------------------------------------------------------------------- 1 | .TH "fodtrack" "8" "0.1" "Luc Langehegermann" "LX2GT Sat tools" 2 | .SH "NAME" 3 | .LP 4 | fodtrack \- Driver for the fodtrack rotor interface 5 | .SH "SYNTAX" 6 | .LP 7 | fodtrack 8 | .SH "DESCRIPTION" 9 | .LP 10 | This program simulates an Easycom rotor interface. It read its configuration parameters from the file \fB/etc/fodtrack.conf\fR. It reads the headings in the form of \fBAZ10.0 EL45.0\fR and outputs it to an parallel port. When started it displays a small status text, creates the file \fB/tmp/fodtrackdevice\fR \- which contains the pseudo device used \- and goes into the background. 11 | 12 | .SH "FILES" 13 | .LP 14 | \fI/etc/fodtrack.conf\fP 15 | .br 16 | \fI/tmp/fodtrackdevice\fP 17 | .SH "EXAMPLES" 18 | .LP 19 | To run this program type: 20 | .LP 21 | fodtrack 22 | .LP 23 | After that you can start predict with \fBpredict \-a `cat /tmp/fodtrackdevice`\fR and you will be able to turn your antennas in predict single track using your fodtrack device 24 | .SH "AUTHORS" 25 | .LP 26 | Luc Langehegermann 27 | .SH "SEE ALSO" 28 | .LP 29 | fodtrack.conf(5) 30 | -------------------------------------------------------------------------------- /utils/fodtrack-0.1/fodtrack.c: -------------------------------------------------------------------------------- 1 | /* 2 | * fodtrack.c - fodtrack 'driver' for predict 3 | */ 4 | 5 | #define __USE_GNU 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | #define false 0 20 | #define true 1 21 | 22 | #define PSEUDODEVICEFILE "/tmp/fodtrackdevice" 23 | #define CONFIGFILE "/etc/fodtrack.conf" 24 | 25 | static int fodtrackfd; 26 | static int azimuthcorrection; 27 | static int elevationcorrection; 28 | static int maxazimuth; 29 | static char fodtrackdev[200]; 30 | 31 | /* 32 | * this function fills the global configuration variables 33 | * with the data from the config file 34 | */ 35 | 36 | void readconfig() { 37 | char buffer[255]; 38 | FILE* f=NULL; 39 | printf("Reading configuration data from file %s.\n", CONFIGFILE); 40 | f=fopen(CONFIGFILE, "r"); 41 | if (!f) { 42 | fprintf(stderr, "Unable to open configuration file - exiting.\n"); 43 | exit(-1); 44 | } 45 | /* file reading loop */ 46 | 47 | while(fgets(buffer, 255, f)) { 48 | if(!strncmp(buffer, "PARDEV", 6)) 49 | sscanf(buffer, "PARDEV=%s\n", fodtrackdev); 50 | if(!strncmp(buffer, "MAXAZIMUTH", 10)) 51 | sscanf(buffer, "MAXAZIMUTH=%i\n", &maxazimuth); 52 | if(!strncmp(buffer, "ELEVATIONCORRECTION", 17)) 53 | sscanf(buffer, "ELEVATIONCORRECTION=%i\n", &elevationcorrection); 54 | if(!strncmp(buffer, "AZIMUTHCORRECTION", 17)) 55 | sscanf(buffer, "AZIMUTHCORRECTION=%i\n", &azimuthcorrection); 56 | } 57 | fclose(f); 58 | } 59 | 60 | 61 | /* 62 | * functions to control the rotator 63 | */ 64 | 65 | /** Opens the parallel port. returns true on success and false on error */ 66 | int openfodtrack(const char* device) 67 | { 68 | fodtrackfd=-1; 69 | fodtrackfd=open(device, O_RDWR); 70 | if(fodtrackfd==-1) { 71 | perror("Parport open"); 72 | return false; 73 | } 74 | if(ioctl (fodtrackfd, PPCLAIM)) { 75 | perror("Parport claim"); 76 | return false; 77 | } 78 | return true; 79 | } 80 | 81 | /** outputs an direction to the interface */ 82 | void setDirection(int angle, int direction){ 83 | char outputvalue; 84 | char outputstatus; 85 | if (fodtrackfd==-1) return; 86 | if (direction) 87 | outputvalue=(char)(angle/(float)maxazimuth*255.0); 88 | else 89 | outputvalue=(char)(angle/180.0*255.0); 90 | // set the data bits 91 | ioctl(fodtrackfd, PPWDATA, &outputvalue); 92 | // autofd=true --> azimuth otherwhise elevation 93 | if(direction) 94 | outputstatus = PARPORT_CONTROL_AUTOFD; 95 | else 96 | outputstatus=0; 97 | ioctl(fodtrackfd, PPWCONTROL, &outputstatus); 98 | // and now the strobe impulse 99 | usleep(1); 100 | if(direction) 101 | outputstatus = PARPORT_CONTROL_AUTOFD | PARPORT_CONTROL_STROBE; 102 | else 103 | outputstatus = PARPORT_CONTROL_STROBE; 104 | ioctl(fodtrackfd, PPWCONTROL, &outputstatus); 105 | usleep(1); 106 | if (direction) 107 | outputstatus= PARPORT_CONTROL_AUTOFD; 108 | else 109 | outputstatus=0; 110 | ioctl(fodtrackfd, PPWCONTROL, &outputstatus); 111 | } 112 | 113 | /** sets the elevation */ 114 | void setElevation(int angle){ 115 | int i; 116 | i = angle + elevationcorrection; 117 | if (i<0) i=0; 118 | if (i>180) i=180; 119 | setDirection(i, false); 120 | } 121 | 122 | /** Sets Azimuth */ 123 | void setAzimuth(int angle){ 124 | int i; 125 | i = angle + azimuthcorrection; 126 | if (i>360) i=i-360; 127 | if (i<0) i=i+360; 128 | setDirection(i, true); 129 | } 130 | 131 | /* 132 | * main functions 133 | */ 134 | 135 | int main() { 136 | char buffer[200]; 137 | int devfilefd, fd, i; 138 | float elevation, azimuth; 139 | 140 | readconfig(); 141 | 142 | /* open the pseudo terminal device */ 143 | fd=getpt(); 144 | if (fd<0) { 145 | fprintf(stderr, "Unable to open serial line!\n"); 146 | return -1; 147 | } 148 | unlockpt(fd); 149 | 150 | /* write the device file */ 151 | 152 | devfilefd = open(PSEUDODEVICEFILE, O_WRONLY|O_CREAT, 0666); 153 | write(devfilefd, (char*)ptsname(fd), strlen((char*)ptsname(fd))); 154 | close(devfilefd); 155 | 156 | 157 | /* open the fodtrack device */ 158 | 159 | openfodtrack(fodtrackdev); 160 | 161 | /* print informations about the devices */ 162 | 163 | printf("Using %s as pseudo terminal device.\n", ptsname(fd)); 164 | printf("Using %s as port for the fodtrack device.\n", fodtrackdev); 165 | 166 | /* going for the background */ 167 | 168 | daemon(0,0); 169 | 170 | 171 | /* Main loop - reads from the device, and sets the antenna on the output */ 172 | 173 | for(;;) { 174 | usleep(100); 175 | i=read(fd, buffer, 199); 176 | if(i>0) { 177 | sscanf(buffer, "AZ%f EL%f", &azimuth, &elevation); 178 | /*printf("New Data:\nElevation: %f\nAzimuth: %f\n\n", elevation, azimuth);*/ 179 | setElevation(elevation); 180 | setAzimuth(azimuth); 181 | } 182 | } 183 | } 184 | -------------------------------------------------------------------------------- /utils/fodtrack-0.1/fodtrack.conf: -------------------------------------------------------------------------------- 1 | # 2 | # fodtrack.conf - configuration file for the fodtrack driver 3 | # 4 | # 5 | # The parallel device for the fodtrack device 6 | # 7 | PARDEV=/dev/parport1 8 | # 9 | # Maximum Azimuth of the rotator 10 | # 11 | MAXAZIMUTH=450 12 | # 13 | # Correction of the Elevation angle 14 | # 15 | ELEVATIONCORRECTION=0 16 | # 17 | # Correction of the Azimuth angle 18 | # 19 | AZIMUTHCORRECTION=0 20 | # 21 | # END 22 | # 23 | -------------------------------------------------------------------------------- /utils/fodtrack-0.1/fodtrack.conf.5: -------------------------------------------------------------------------------- 1 | .TH "fodtrack.conf" "5" "0.1" "Luc Langehegermann" "LX2GT Sat Tools" 2 | .SH "NAME" 3 | .LP 4 | \fB/etc/fodtrack.conf\fR \- Configuration file for fodtrack rotor driver 5 | .SH "DESCRIPTION" 6 | .LP 7 | The fodtrack program uses a configuration file called 8 | \fBfodtrack.conf\fR. This configuration file must be located in the /etc directory, and is used to configure the driver. 9 | .SH "PARAMETERS" 10 | .TP 11 | \fBPARDEV=\fR 12 | Parallel port device 13 | .TP 14 | \fBMAXAZIMUTH=\fR 15 | Maximal angle the hozizontal rotor is able to turn. 16 | .TP 17 | \fBELEVATIONCORRECTION=\fR 18 | Correction applied to the elevation angle 19 | .TP 20 | \fBAZIMUTHCORRECTION=\fR 21 | Correction applied to the azimuth angle 22 | .SH "FILES" 23 | .LP 24 | /etc/fodtrack.conf 25 | .SH "SEE ALSO" 26 | .LP 27 | fodtrack(5) 28 | -------------------------------------------------------------------------------- /utils/fodtrack-0.1/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # install.sh - small script for installing fodtrack 4 | # 5 | # test if we are root 6 | # 7 | whoami=`whoami` 8 | if [ $whoami != "root" ]; then 9 | echo "Sorry $whoami, you need to be root to install this program" 10 | exit 11 | fi 12 | 13 | echo Compiling fodtrack... 14 | 15 | gcc -O2 fodtrack.c -o fodtrack 16 | 17 | echo Installing fodtrack... 18 | 19 | cp fodtrack /usr/local/bin 20 | rm fodtrack 21 | cp fodtrack.conf /etc 22 | mkdir -p /usr/local/man/man8 23 | cp fodtrack.8 /usr/local/man/man8 24 | mkdir -p /usr/local/man/man5 25 | cp fodtrack.conf.5 /usr/local/man/man5 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /utils/geosat/INSTALL: -------------------------------------------------------------------------------- 1 | Building and Installating "geosat" 2 | ================================== 3 | 4 | To build "geosat", simply invoke the "build" script as follows: 5 | 6 | ./build 7 | 8 | You do not need to be root to build "geosat". 9 | 10 | To run "geosat" globally on a multiuser system, it must be 11 | installed in a publically accessible directory within the $PATH 12 | of your users. To so this, simply invoke the "install" script 13 | from this directory as follows: 14 | 15 | ./install 16 | 17 | This must be done as root. 18 | 19 | Once the program has been installed, it may be modified and rebuilt 20 | at any time by invoking the "build" script once again. It is not 21 | necessary to re-run "install" script or su to root every time 22 | the program is modified. HOWEVER, you may wish to protect 23 | the installation directory used by this program to prevent 24 | unauthorized modification and compilation of the source 25 | code when installed on a multiuser system. 26 | 27 | If you are root, and are installing "geosat" for the first time, 28 | you may build and install this application with just one command by 29 | involking the "install" script as follows: 30 | 31 | ./install 32 | 33 | See the README file for more information on the use and capabilities 34 | of this program. 35 | 36 | 37 | Happy Tracking! 38 | 39 | 73, de John, KD2BD 40 | 41 | -------------------------------------------------------------------------------- /utils/geosat/README: -------------------------------------------------------------------------------- 1 | This directory contains the source code for "geosat.c", a simple 2 | program for determining the "look angles" for geostationary satellites 3 | based on their longitude. Groundstation location information for this 4 | program is obtained from PREDICT's data files. 5 | 6 | See the INSTALL file for installation instructions. 7 | 8 | -------------------------------------------------------------------------------- /utils/geosat/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Script to compile geosat 3 | # 4 | echo -n "Compiling geosat... " 5 | cc -Wall -O3 -s -fomit-frame-pointer -lm geosat.c -o geosat 6 | echo "Done!" 7 | 8 | -------------------------------------------------------------------------------- /utils/geosat/geosat.c: -------------------------------------------------------------------------------- 1 | /*****************************************/ 2 | /** Geostationary Satellite Locator **/ 3 | /** KD2BD Software **/ 4 | /** (c) 1992, 1999 **/ 5 | /*****************************************/ 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | #ifndef PI 12 | #define PI 3.141592653589793 13 | #endif 14 | 15 | double sgn(x) 16 | double x; 17 | { 18 | double value=0.0; 19 | 20 | if (x>0.0) 21 | value=1.0; 22 | 23 | if (x<0.0) 24 | value=-1.0; 25 | 26 | return value; 27 | } 28 | 29 | int main() 30 | { 31 | double l, g, dr, c, dc, ds, j, az, el, cd; 32 | char qthfile[50], input[7]; 33 | FILE *fd; 34 | 35 | sprintf(qthfile,"%s/.predict/predict.qth",getenv("HOME")); 36 | 37 | /* Read user's lat and long from ~/.predict/predict.qth file */ 38 | 39 | fd=fopen(qthfile,"r"); 40 | 41 | if (fd!=NULL) 42 | { 43 | fscanf(fd,"%s",input); 44 | fscanf(fd,"%lf",&l); 45 | fscanf(fd,"%lf",&g); 46 | fclose(fd); 47 | } 48 | 49 | else 50 | { 51 | printf("%c\n*** ERROR! \"%s\" not found! Program aborted!\n",7,qthfile); 52 | exit(-1); 53 | } 54 | 55 | input[0]=0; 56 | 57 | dr=PI/180.0; 58 | 59 | l=l*dr; 60 | g=g*dr; 61 | 62 | printf("\nEnter Longitude of Satellite in Degrees West: "); 63 | fgets(input,5,stdin); 64 | 65 | while (input[0]!='\n') 66 | { 67 | sscanf(input,"%lf",&cd); 68 | 69 | c=cd*dr; 70 | dc=cos(l)*cos(c-g); 71 | ds=sqrt(1.0-(dc*dc)); 72 | 73 | j=-sin(l)*dc/(cos(l)*ds); 74 | 75 | if (fabs(j)>0.9999) 76 | j=sgn(j)*0.9999; 77 | 78 | az=90.0-atan(j/sqrt(1.0-j*j))/dr; 79 | 80 | if (((c>g) && (c<(PI+g))) || ((c>(2.0*PI+g)))) 81 | az=360.0-az; 82 | 83 | el=atan((42171.0*dc-6371.0)/(42171.0*ds))/dr; 84 | 85 | printf("\nAzimuth : %6.2f degrees\n",az); 86 | printf("Elevation : %6.2f degrees\n\n",el); 87 | 88 | printf("\nEnter Longitude of Satellite in Degrees West: "); 89 | fgets(input,5,stdin); 90 | } 91 | 92 | exit(0); 93 | } 94 | -------------------------------------------------------------------------------- /utils/moontracker/README: -------------------------------------------------------------------------------- 1 | MoonTracker 1.0 by KD2BD 2 | ======================== 3 | MoonTracker is intended to support moonbounce (EME) communications by 4 | calculating the position of the Moon, and sending appropriate control 5 | signals to an AZ/EL antenna rotator. Once invoked, MoonTracker spawns 6 | itself into the background, and continues to run until terminated by 7 | a kill signal. If the Moon is not above the horizon when MoonTracker 8 | is invoked, MoonTracker goes to sleep until the predicted time of 9 | Moon rise. 10 | 11 | MoonTracker reads ground station location information from PREDICT's 12 | predict.qth file. Much like PREDICT, MoonTracker recognizes several 13 | command-line options that specify the serial port to be used by the 14 | program. Simply invoking MoonTracker without any arguments displays 15 | a list of recognized options: 16 | 17 | 18 | --==[ MoonTracker v1.0 by KD2BD (c) 2002 ]==-- 19 | 20 | ...Available options... 21 | 22 | -a serial port (/dev/ttyS0) -- sends data as it changes 23 | -a1 serial port (/dev/ttyS0) -- sends data at one-second intervals 24 | -q alternate qth file (site.qth) 25 | 26 | 27 | Use the fodtrack utility to operate MoonTracker with a FODTRACK rotator 28 | control system. MoonTracker may be safely terminated using the killall 29 | commmand (killall moontracker). 30 | 31 | Happy EMEing! 32 | 33 | 34 | 73, de John, KD2BD 35 | March 2003 36 | 37 | -------------------------------------------------------------------------------- /utils/moontracker/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Script to compile moontracker 3 | # 4 | echo -n "Compiling moontracker... " 5 | cc -Wall -O3 -s -fomit-frame-pointer -lm moontracker.c -o moontracker 6 | echo "Done!" 7 | 8 | -------------------------------------------------------------------------------- /utils/moontracker/install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Script to install moontracker 3 | # 4 | if [ ! -x $PWD/moontracker ]; then 5 | $PWD/build 6 | fi 7 | whoami=`whoami` 8 | if [ ! -x /usr/local/bin/moontracker ]; then 9 | if [ $whoami != "root" ]; then 10 | echo "Sorry, $whoami. You need to be 'root' to install this program. :-(" 11 | echo "Please su to root and re-run the 'install' script again." 12 | else 13 | ln -s $PWD/moontracker /usr/local/bin/moontracker 14 | fi 15 | fi 16 | 17 | -------------------------------------------------------------------------------- /vocalizer/alarm.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/alarm.wav -------------------------------------------------------------------------------- /vocalizer/approaching.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/approaching.wav -------------------------------------------------------------------------------- /vocalizer/azimuth.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/azimuth.wav -------------------------------------------------------------------------------- /vocalizer/build: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Script for manually compiling vocalizer.c 3 | # 4 | echo -n "Compiling vocalizer... " 5 | cc -Wall -O3 -s -fomit-frame-pointer vocalizer.c -o vocalizer 6 | echo "Done!" 7 | -------------------------------------------------------------------------------- /vocalizer/eclipse.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/eclipse.wav -------------------------------------------------------------------------------- /vocalizer/eight.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/eight.wav -------------------------------------------------------------------------------- /vocalizer/eighteen.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/eighteen.wav -------------------------------------------------------------------------------- /vocalizer/eighty.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/eighty.wav -------------------------------------------------------------------------------- /vocalizer/elevation.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/elevation.wav -------------------------------------------------------------------------------- /vocalizer/eleven.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/eleven.wav -------------------------------------------------------------------------------- /vocalizer/fifteen.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/fifteen.wav -------------------------------------------------------------------------------- /vocalizer/fifty.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/fifty.wav -------------------------------------------------------------------------------- /vocalizer/five.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/five.wav -------------------------------------------------------------------------------- /vocalizer/forty.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/forty.wav -------------------------------------------------------------------------------- /vocalizer/four.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/four.wav -------------------------------------------------------------------------------- /vocalizer/fourteen.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/fourteen.wav -------------------------------------------------------------------------------- /vocalizer/hundred.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/hundred.wav -------------------------------------------------------------------------------- /vocalizer/intro.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/intro.wav -------------------------------------------------------------------------------- /vocalizer/los.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/los.wav -------------------------------------------------------------------------------- /vocalizer/nine.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/nine.wav -------------------------------------------------------------------------------- /vocalizer/nineteen.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/nineteen.wav -------------------------------------------------------------------------------- /vocalizer/ninety.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/ninety.wav -------------------------------------------------------------------------------- /vocalizer/one.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/one.wav -------------------------------------------------------------------------------- /vocalizer/receding.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/receding.wav -------------------------------------------------------------------------------- /vocalizer/seven.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/seven.wav -------------------------------------------------------------------------------- /vocalizer/seventeen.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/seventeen.wav -------------------------------------------------------------------------------- /vocalizer/seventy.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/seventy.wav -------------------------------------------------------------------------------- /vocalizer/six.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/six.wav -------------------------------------------------------------------------------- /vocalizer/sixteen.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/sixteen.wav -------------------------------------------------------------------------------- /vocalizer/sixty.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/sixty.wav -------------------------------------------------------------------------------- /vocalizer/sunlight.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/sunlight.wav -------------------------------------------------------------------------------- /vocalizer/ten.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/ten.wav -------------------------------------------------------------------------------- /vocalizer/thirteen.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/thirteen.wav -------------------------------------------------------------------------------- /vocalizer/thirty.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/thirty.wav -------------------------------------------------------------------------------- /vocalizer/three.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/three.wav -------------------------------------------------------------------------------- /vocalizer/twelve.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/twelve.wav -------------------------------------------------------------------------------- /vocalizer/twenty.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/twenty.wav -------------------------------------------------------------------------------- /vocalizer/two.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/two.wav -------------------------------------------------------------------------------- /vocalizer/visible.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/visible.wav -------------------------------------------------------------------------------- /vocalizer/zero.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/koansys/predict/f5e3eb70763433782b2da51adaaaf4f713fdcd34/vocalizer/zero.wav -------------------------------------------------------------------------------- /xpredict: -------------------------------------------------------------------------------- 1 | # Uncomment the line that works best for you. 2 | # The first four lines work great under Slackware 8.0. 3 | # Generally, rxvt requires less memory than other terminals. 4 | # The last line is for KDE users. 5 | # 6 | rxvt -geometry 80x25 -font 10x20 -rv -title PREDICT -e predict $* 7 | #xterm -geometry 80x25 -fn 10x20 -rv -title PREDICT -e predict $* 8 | #Eterm -g 80x25 -F 10x20 -n PREDICT -x -e predict $1 $2 $3 $4 9 | #gnome-terminal --geometry 80x25 --disable-sound -t PREDICT -e predict $* 10 | #rxvt -geometry 80x25 -font 10x20 -rv -tn linux -title PREDICT -e predict $* 11 | #rxvt -geometry 80x25 -font 10x20 -rv -tn color_xterm -title PREDICT -e predict $* 12 | #kvt -vt_geometry 80x25 -linux -T PREDICT -e predict $* 13 | --------------------------------------------------------------------------------