├── .gitignore ├── .indent.pro ├── .travis.yml ├── AUTHORS ├── COPYING ├── ChangeLog ├── Makefile.am ├── NEWS ├── README ├── autogen.sh ├── configure.ac ├── contributing.md ├── data ├── .gitignore ├── Amateur.mod ├── Makefile.am ├── desktop │ ├── Makefile.am │ └── gpredict.desktop.in ├── locations.dat ├── metainfo │ ├── Makefile.am │ └── dk.oz9aec.Gpredict.metainfo.xml ├── sample.qth └── satdata │ ├── Makefile.am │ ├── amateur.cat │ ├── cubesat.cat │ ├── galileo.cat │ ├── glo-ops.cat │ ├── gps-ops.cat │ ├── iridium-NEXT.cat │ ├── iridium.cat │ ├── molniya.cat │ ├── noaa.cat │ ├── satellites.dat │ ├── science.cat │ ├── scripts │ ├── add-amsat.py │ └── convert-celestrak.py │ ├── visual.cat │ └── weather.cat ├── doc ├── .gitignore ├── Makefile.am ├── man │ ├── .gitignore │ ├── Makefile.am │ └── gpredict.1.in ├── notes │ ├── configuration.txt │ ├── ft-847.txt │ ├── ic-910.txt │ ├── ic-9100.txt │ ├── ic-9700.txt │ └── time_keeping.txt └── um │ └── gpredict-user-manual.odt ├── git-version-gen ├── icons ├── .gitignore ├── Makefile.am └── gpredict.svg ├── pixmaps ├── .gitignore ├── Makefile.am ├── icons │ ├── .gitignore │ ├── Makefile.am │ ├── gpredict-antenna-small.png │ ├── gpredict-antenna.png │ ├── gpredict-azel-small.png │ ├── gpredict-calendar.png │ ├── gpredict-clock-small.png │ ├── gpredict-clock.png │ ├── gpredict-crash.png │ ├── gpredict-icon.png │ ├── gpredict-layout-00.png │ ├── gpredict-layout-01.png │ ├── gpredict-layout-02.png │ ├── gpredict-layout-03.png │ ├── gpredict-layout-04.png │ ├── gpredict-layout-05.png │ ├── gpredict-layout-06.png │ ├── gpredict-layout-07.png │ ├── gpredict-layout-08.png │ ├── gpredict-layout-99.png │ ├── gpredict-leds.png │ ├── gpredict-mod-attach.png │ ├── gpredict-mod-close.png │ ├── gpredict-mod-config.png │ ├── gpredict-mod-detach.png │ ├── gpredict-mod-popup.png │ ├── gpredict-notebook.png │ ├── gpredict-oscilloscope-small.png │ ├── gpredict-oscilloscope.png │ ├── gpredict-planner-small.png │ ├── gpredict-planner.png │ ├── gpredict-polar-small.png │ ├── gpredict-sat-list.png │ ├── gpredict-sat-pref.png │ ├── gpredict-shuttle-small.png │ └── gpredict-shuttle.png ├── logos │ ├── Makefile.am │ ├── gpredict_horizontal_color.png │ ├── gpredict_horizontal_color.svg │ ├── gpredict_horizontal_white.png │ ├── gpredict_horizontal_white.svg │ ├── gpredict_icon_color.png │ ├── gpredict_icon_color.svg │ ├── gpredict_icon_white.png │ ├── gpredict_icon_white.svg │ ├── gpredict_vertical_color.png │ ├── gpredict_vertical_color.svg │ ├── gpredict_vertical_white.png │ └── gpredict_vertical_white.svg └── maps │ ├── .gitignore │ ├── Makefile.am │ ├── earth_800.png │ ├── nasa-bmng-01_1024.jpg │ ├── nasa-bmng-01_2048.jpg │ ├── nasa-bmng-03_1024.jpg │ ├── nasa-bmng-03_2048.jpg │ ├── nasa-bmng-05_1024.jpg │ ├── nasa-bmng-05_2048.jpg │ ├── nasa-bmng-07_1024.jpg │ ├── nasa-bmng-07_2048.jpg │ ├── nasa-bmng-08_1024.jpg │ ├── nasa-bmng-08_2048.jpg │ ├── nasa-topo_1024.jpg │ ├── nasa-topo_1600.jpg │ ├── nasa-topo_2048.jpg │ └── nasa-topo_800.png ├── po ├── .gitignore ├── ChangeLog ├── POTFILES.in ├── cs.po ├── da.po ├── de.po ├── el.po ├── en_GB.po ├── en_US.po ├── es.po ├── fi.po ├── fr.po ├── id.po ├── it.po ├── lt.po ├── ru.po ├── th.po └── uk.po ├── snap └── snapcraft.yaml ├── src ├── .gitignore ├── Makefile.am ├── about.c ├── about.h ├── compat.c ├── compat.h ├── config-keys.h ├── first-time.c ├── first-time.h ├── gpredict-help.c ├── gpredict-help.h ├── gpredict-utils.c ├── gpredict-utils.h ├── gtk-azel-plot.c ├── gtk-azel-plot.h ├── gtk-event-list-popup.c ├── gtk-event-list-popup.h ├── gtk-event-list.c ├── gtk-event-list.h ├── gtk-freq-knob.c ├── gtk-freq-knob.h ├── gtk-polar-plot.c ├── gtk-polar-plot.h ├── gtk-polar-view-popup.c ├── gtk-polar-view-popup.h ├── gtk-polar-view.c ├── gtk-polar-view.h ├── gtk-rig-ctrl.c ├── gtk-rig-ctrl.h ├── gtk-rot-ctrl.c ├── gtk-rot-ctrl.h ├── gtk-rot-knob.c ├── gtk-rot-knob.h ├── gtk-sat-data.c ├── gtk-sat-data.h ├── gtk-sat-list-popup.c ├── gtk-sat-list-popup.h ├── gtk-sat-list.c ├── gtk-sat-list.h ├── gtk-sat-map-ground-track.c ├── gtk-sat-map-ground-track.h ├── gtk-sat-map-popup.c ├── gtk-sat-map-popup.h ├── gtk-sat-map.c ├── gtk-sat-map.h ├── gtk-sat-module-popup.c ├── gtk-sat-module-popup.h ├── gtk-sat-module-tmg.c ├── gtk-sat-module-tmg.h ├── gtk-sat-module.c ├── gtk-sat-module.h ├── gtk-sat-popup-common.c ├── gtk-sat-popup-common.h ├── gtk-sat-selector.c ├── gtk-sat-selector.h ├── gtk-sat-tree.c ├── gtk-sat-tree.h ├── gtk-single-sat.c ├── gtk-single-sat.h ├── gtk-sky-glance.c ├── gtk-sky-glance.h ├── gui.c ├── gui.h ├── loc-tree.c ├── loc-tree.h ├── locator.c ├── locator.h ├── main.c ├── map-selector.c ├── map-selector.h ├── map-tools.c ├── map-tools.h ├── menubar.c ├── menubar.h ├── mod-cfg-get-param.c ├── mod-cfg-get-param.h ├── mod-cfg.c ├── mod-cfg.h ├── mod-mgr.c ├── mod-mgr.h ├── nxjson │ ├── nxjson.c │ └── nxjson.h ├── orbit-tools.c ├── orbit-tools.h ├── pass-popup-menu.c ├── pass-popup-menu.h ├── pass-to-txt.c ├── pass-to-txt.h ├── predict-tools.c ├── predict-tools.h ├── print-pass.c ├── print-pass.h ├── qth-data.c ├── qth-data.h ├── qth-editor.c ├── qth-editor.h ├── radio-conf.c ├── radio-conf.h ├── rotor-conf.c ├── rotor-conf.h ├── sat-cfg.c ├── sat-cfg.h ├── sat-info.c ├── sat-info.h ├── sat-log-browser.c ├── sat-log-browser.h ├── sat-log.c ├── sat-log.h ├── sat-monitor.c ├── sat-monitor.h ├── sat-pass-dialogs.c ├── sat-pass-dialogs.h ├── sat-pref-conditions.c ├── sat-pref-conditions.h ├── sat-pref-debug.c ├── sat-pref-debug.h ├── sat-pref-formats.c ├── sat-pref-formats.h ├── sat-pref-general.c ├── sat-pref-general.h ├── sat-pref-interfaces.c ├── sat-pref-interfaces.h ├── sat-pref-layout.c ├── sat-pref-layout.h ├── sat-pref-list-view.c ├── sat-pref-list-view.h ├── sat-pref-map-view.c ├── sat-pref-map-view.h ├── sat-pref-modules.c ├── sat-pref-modules.h ├── sat-pref-multi-pass.c ├── sat-pref-multi-pass.h ├── sat-pref-polar-view.c ├── sat-pref-polar-view.h ├── sat-pref-predict.c ├── sat-pref-predict.h ├── sat-pref-qth-data.h ├── sat-pref-qth-editor.c ├── sat-pref-qth-editor.h ├── sat-pref-qth.c ├── sat-pref-qth.h ├── sat-pref-refresh.c ├── sat-pref-refresh.h ├── sat-pref-rig-data.h ├── sat-pref-rig-editor.c ├── sat-pref-rig-editor.h ├── sat-pref-rig.c ├── sat-pref-rig.h ├── sat-pref-rot-data.h ├── sat-pref-rot-editor.c ├── sat-pref-rot-editor.h ├── sat-pref-rot.c ├── sat-pref-rot.h ├── sat-pref-single-pass.c ├── sat-pref-single-pass.h ├── sat-pref-single-sat.c ├── sat-pref-single-sat.h ├── sat-pref-sky-at-glance.c ├── sat-pref-sky-at-glance.h ├── sat-pref-tle.c ├── sat-pref-tle.h ├── sat-pref.c ├── sat-pref.h ├── sat-vis.c ├── sat-vis.h ├── save-pass.c ├── save-pass.h ├── sgpsdp │ ├── 1_COPYING │ ├── 2_README │ ├── Makefile.am │ ├── README │ ├── TR │ │ ├── Makefile.am │ │ ├── README │ │ ├── test-001-01.res │ │ └── test-002-01.res │ ├── sgp4sdp4.c │ ├── sgp4sdp4.h │ ├── sgp_in.c │ ├── sgp_math.c │ ├── sgp_obs.c │ ├── sgp_time.c │ ├── solar.c │ ├── test-001.c │ ├── test-001.tle │ ├── test-002.c │ └── test-002.tle ├── strnatcmp.c ├── strnatcmp.h ├── time-tools.c ├── time-tools.h ├── tle-tools.c ├── tle-tools.h ├── tle-update.c ├── tle-update.h ├── trsp-conf.c ├── trsp-conf.h ├── trsp-update.c └── trsp-update.h └── win32 ├── Makefile ├── README ├── build-config.h ├── config.mk ├── gpredict.rc ├── icons └── gpredict-icon.ico ├── loaders.cache ├── resource.h ├── win32-fetch.c └── win32-fetch.h /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .version 3 | .dirstamp 4 | Makefile 5 | Makefile.in 6 | build-config.h 7 | build-config.h.in 8 | compile 9 | configure 10 | config.guess 11 | config.h 12 | config.h.in 13 | config.log 14 | config.status 15 | config.sub 16 | config.cache 17 | cov-int/ 18 | depcomp 19 | aclocal.m4 20 | autom4te.cache 21 | INSTALL 22 | install-sh 23 | intltool-extract 24 | intltool-extract.in 25 | intltool-merge 26 | intltool-merge.in 27 | intltool-update 28 | intltool-update.in 29 | ltmain.sh 30 | missing 31 | stamp-h.in 32 | stamp-h 33 | stamp-h1 34 | mkinstalldirs 35 | libtool 36 | m4/ 37 | GTAGS 38 | GRTAGS 39 | GPATH 40 | -------------------------------------------------------------------------------- /.indent.pro: -------------------------------------------------------------------------------- 1 | -kr -i4 --no-tabs --line-length120 -di16 2 | --braces-after-if-line --brace-indent0 --dont-cuddle-else --cuddle-do-while 3 | --blank-lines-after-declarations --blank-lines-after-procedures 4 | --break-after-boolean-operator 5 | --no-space-after-casts 6 | --else-endif-column0 7 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | dist: xenial 2 | 3 | language: c 4 | 5 | compiler: 6 | - gcc 7 | - clang 8 | 9 | before_install: 10 | - sudo apt-get update -qq 11 | - sudo apt-get install -y libtool intltool autoconf automake libcurl4-openssl-dev 12 | - sudo apt-get install -y pkg-config libglib2.0-dev libgtk-3-dev libgoocanvas-2.0-dev 13 | 14 | script: 15 | - ./autogen.sh 16 | - make 17 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | 2 | Gpredict is designed and developed by Alexandru Csete OZ9AEC, with 3 | significant contributions from many individuals. 4 | 5 | Contributors (in alphabetical order): 6 | 7 | - A. Maitland Bottoms, AA4HS 8 | - Alan Moffet, KE7IJZ 9 | - Andreas Puschendorf, DL7OAP 10 | - Baris Dinc, TA7W 11 | - Charles Suprin, AA1VS 12 | - Christoph Berg, DF7CB 13 | - Dale Mellor 14 | - Daniel Estevez, EA4GPZ 15 | - Dave Hines 16 | - David Cureton 17 | - David VK5DG 18 | - Fabian P. Schmidt 19 | - Gisle Vanem 20 | - Henry Hallam 21 | - Ilias Daradimos 22 | - Jan Simon, DL2ZXA 23 | - Jason Uher 24 | - Joachim Euchner 25 | - John Magliacane, KD2BD 26 | - Libre Space Foundation 27 | - Lloyd Brown 28 | - LongnoseRob, JI1MNC 29 | - Marcel Cimander 30 | - Mario Haustein 31 | - Martin Pool 32 | - Matthew Alberti, KM4EXS 33 | - Mikhail Bychek 34 | - Michael Black 35 | - Michael Tatarinov 36 | - Mirko Caserta 37 | - Nate Bargmann, N0NB 38 | - Neoklis Kyriazis, 5B4AZ 39 | - Nicholas DeCicco, 40 | - Patrick Dohmen, DL4PD 41 | - Patrick Strasser, OE6PSE 42 | - Paul Schulz, VK5FPAW 43 | - Phil Ashby, 2E0IPX 44 | - S. R. Sampson 45 | - Satoshi Yasuda, 7M3TJZ 46 | - Stefan Lobas 47 | - Stephane Fillod 48 | - Tim Brooks 49 | - Tom Jones 50 | - T.S. Kelso 51 | - Valentin Yakovenkov 52 | - William J Beksi, KC2EXL 53 | - Xavier Crehueras, EB3CZS 54 | - Yaroslav Stavnichiy 55 | - Yasushi SHOJI 56 | 57 | 58 | Imagery: 59 | Most of the maps originate from NASA Visible Earth 60 | http://visibleearth.nasa.gov/ 61 | 62 | If you notice that sopmebody's work has been used without giving proper 63 | credits, contact Alexandru Csete (callsign at gmail) or the project at 64 | https://github.com/csete/gpredict. 65 | -------------------------------------------------------------------------------- /ChangeLog: -------------------------------------------------------------------------------- 1 | ChangeLog is no longer maintained. Please see the NEWS file. 2 | 3 | -------------------------------------------------------------------------------- /Makefile.am: -------------------------------------------------------------------------------- 1 | ACLOCAL_AMFLAGS = -I m4 2 | SUBDIRS = src doc icons pixmaps data po 3 | 4 | BUILT_SOURCES = $(top_srcdir)/.version 5 | $(top_srcdir)/.version: 6 | echo $(VERSION) > $@-t && mv $@-t $@ 7 | dist-hook: 8 | echo $(VERSION) > $(distdir)/.tarball-version 9 | 10 | install-data-local: 11 | @$(NORMAL_INSTALL) 12 | $(INSTALL_DATA) $(top_srcdir)/AUTHORS $(DESTDIR)$(pkgdatadir) 13 | $(INSTALL_DATA) $(top_srcdir)/NEWS $(DESTDIR)$(pkgdatadir) 14 | $(INSTALL_DATA) $(top_srcdir)/README $(DESTDIR)$(pkgdatadir) 15 | $(INSTALL_DATA) $(top_srcdir)/COPYING $(DESTDIR)$(pkgdatadir) 16 | 17 | EXTRA_DIST = \ 18 | autogen.sh \ 19 | git-version-gen \ 20 | intltool-extract.in \ 21 | intltool-merge.in \ 22 | intltool-update.in \ 23 | snap/snapcraft.yaml \ 24 | win32/config.mk \ 25 | win32/goocanvasprivate.h \ 26 | win32/gpredict.rc \ 27 | win32/Makefile \ 28 | win32/icons/gpredict-icon.ico 29 | -------------------------------------------------------------------------------- /autogen.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # 3 | # Copyright (c) 2002 Daniel Elstner , 4 | # 2003 Murray Cumming 5 | # 6 | # This program is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License VERSION 2 as 8 | # published by the Free Software Foundation. You are not allowed to 9 | # use any other version of the license; unless you got the explicit 10 | # permission from the author to do so. 11 | # 12 | # This program is distributed in the hope that it will be useful, 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | # GNU General Public License for more details. 16 | # 17 | # You should have received a copy of the GNU General Public License 18 | # along with this program; if not, write to the Free Software 19 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 | 21 | 22 | # This is meant to be a well-documented, good example of an autogen.sh script 23 | # Please email gnome-devel-list@gnome.org if you think it isn't. 24 | 25 | 26 | dir=`echo "$0" | sed 's,[^/]*$,,'` 27 | test "x${dir}" = "x" && dir='.' 28 | 29 | if test "x`cd "${dir}" 2>/dev/null && pwd`" != "x`pwd`" 30 | then 31 | echo "This script must be executed directly from the source directory." 32 | exit 1 33 | fi 34 | 35 | # This might not be necessary with newer autotools: 36 | rm -f config.cache 37 | 38 | # We use glib-gettextize, which apparently does not add the intl directory 39 | # (containing a local copy of libintl code), and therefore has a slightly different Makefile. 40 | echo "- glib-gettextize." && \ 41 | glib-gettextize --copy --force && \ 42 | echo "- libtoolize." && \ 43 | libtoolize --force && \ 44 | echo "- intltoolize." && \ 45 | intltoolize --copy --force && \ 46 | echo "- aclocal" && \ 47 | aclocal && \ 48 | echo "- autoheader" && \ 49 | autoheader && \ 50 | echo "- autoconf." && \ 51 | autoconf && \ 52 | echo "- automake." && \ 53 | automake --add-missing --gnu && \ 54 | echo && \ 55 | ./configure "$@" && exit 0 56 | 57 | exit 1 58 | 59 | -------------------------------------------------------------------------------- /contributing.md: -------------------------------------------------------------------------------- 1 | # Gpredict Contribution Guidelines # 2 | 3 | ## Introduction ## 4 | 5 | Thank you for considering contributing to Gpredict. Below you can find some 6 | brief guidelines for how to make your first contribution. 7 | 8 | The most important thing to understand is that Gpredict is "old" software with 9 | the first release dating back to 2001. As a consequence, it contains a lot of 10 | legacy code and design choices that do not live up to what one would expect 11 | from modern desktop software. Therefore, the primary focus for the time being 12 | is fixing bugs and rewriting the parts that are causing poor user experience 13 | or difficulties in maintaining the software. 14 | 15 | Contributions that add new features or functionality not currently on the 16 | roadmap have very low priority. The roadmap consists mostly of, in prioritized 17 | order: 18 | 19 | 1. Issues included in a [milestone](https://github.com/csete/gpredict/milestones) 20 | 2. Issues tagged with the labels 21 | [bug](https://github.com/csete/gpredict/labels/bug), 22 | [enhancement](https://github.com/csete/gpredict/labels/enhancement), 23 | [feature](https://github.com/csete/gpredict/labels/feature), 24 | [documents](https://github.com/csete/gpredict/labels/feature), and 25 | [help wanted](https://github.com/csete/gpredict/labels/help%20wanted) 26 | 27 | ## How Can You Help? ## 28 | 29 | The areas where I need most help with at the moment are: 30 | 31 | 1. Testing and [reporting bugs](#reporting-bugs) 32 | 2. [Fixing bugs](#fixing-bugs) 33 | 3. [Providing user support](#providing-user-support) 34 | 4. [Packaging](#packaging) 35 | 5. [Website](#website) 36 | 37 | ## Reporting Bugs ## 38 | 39 | If you have found a new bug in Gpredict, please report it using the 40 | [Gpredict issue tracker](https://github.com/csete/gpredict/issues) on GitHub. 41 | Please make sure to provide all the information that is necessary to reproduce 42 | the bug, including but not limited to: 43 | 44 | 1. Your operating system. 45 | 2. Which version of Gpredict and how it was installed. 46 | 3. Steps required to trigger the bug. 47 | 48 | ## Fixing Bugs ## 49 | 50 | Bugfixes are always welcome and are a very good way for making your first 51 | contribution and they make a good first impression. However, before submitting 52 | a pull request, please ensure that: 53 | 54 | * Your changes are as small as possible and fix only one bug. 55 | * Your changes are well tested. 56 | * Your commits are atomic, i.e. complete and functional. 57 | * Write [good commit messages](https://chris.beams.io/posts/git-commit/) and 58 | make sure to reference the issue you are fixing. 59 | * Avoid submitting merge commits; rebase your working branch instead. 60 | * If you have a series of commits where one commit fixes a previous one, squash them. 61 | * The pull request should cover only one topic, otherwise the review will be 62 | difficult and confusing. 63 | 64 | Furthermore, until we get a formal coding style guide, please try to follow the coding 65 | style used in the surrounding code. 66 | 67 | ## Providing User Support ## 68 | 69 | We have a very nice [user support forum](https://community.libre.space/c/gpredict/) 70 | hosted by Libre Space Foundation. Please help others who need technical support. 71 | 72 | ## Packaging ## 73 | 74 | I am doing my best to make Gpredict available on as many platforms as possible. 75 | While I can write platform independent code, I could definitely use some help 76 | with packaging and testing Gpredict on Windows and Mac OS X. 77 | 78 | ## Website ## 79 | 80 | I think that the [existing website](http://gpredict.oz9aec.net/) makes it very 81 | clear that I need help with creating a new website. Please let me know if you 82 | wish to help. 83 | 84 | Thanks for reading this far 🙂 85 | 86 | Alex, OZ9AEC 87 | -------------------------------------------------------------------------------- /data/.gitignore: -------------------------------------------------------------------------------- 1 | Makefile 2 | Makefile.in 3 | desktop/gpredict.desktop 4 | -------------------------------------------------------------------------------- /data/Amateur.mod: -------------------------------------------------------------------------------- 1 | [GLOBAL] 2 | SATELLITES=24278;25544;27607;39444;40967;43017; 3 | -------------------------------------------------------------------------------- /data/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = satdata desktop metainfo 2 | 3 | gpredict_datdir = $(pkgdatadir)/data 4 | 5 | gpredict_dat_DATA = locations.dat sample.qth Amateur.mod 6 | 7 | EXTRA_DIST = $(gpredict_dat_DATA) 8 | 9 | -------------------------------------------------------------------------------- /data/desktop/Makefile.am: -------------------------------------------------------------------------------- 1 | desktop_in_files = gpredict.desktop.in 2 | desktopdir = $(datadir)/applications 3 | desktop_DATA = $(desktop_in_files:.desktop.in=.desktop) 4 | 5 | @INTLTOOL_DESKTOP_RULE@ 6 | 7 | EXTRA_DIST = $(desktop_in_files) $(desktop_DATA) 8 | 9 | DISTCLEANFILES = gpredict.desktop 10 | 11 | UPDATE_DESKTOP = \ 12 | if which update-desktop-database>/dev/null 2>&1 ; then \ 13 | update-desktop-database; \ 14 | fi 15 | 16 | install-data-hook: 17 | if UPDATE_CACHES 18 | $(UPDATE_DESKTOP) 19 | else 20 | @true 21 | endif 22 | 23 | uninstall-hook: 24 | if UPDATE_CACHES 25 | $(UPDATE_DESKTOP) 26 | else 27 | @true 28 | endif 29 | -------------------------------------------------------------------------------- /data/desktop/gpredict.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Gpredict 3 | Comment=Satellite tracker 4 | Exec=gpredict 5 | Icon=gpredict 6 | Terminal=false 7 | Type=Application 8 | Categories=HamRadio;Science;Astronomy;Education;Network; 9 | -------------------------------------------------------------------------------- /data/metainfo/Makefile.am: -------------------------------------------------------------------------------- 1 | gpredict_metainfodir = $(datadir)/metainfo 2 | 3 | gpredict_metainfo_DATA = dk.oz9aec.Gpredict.metainfo.xml 4 | 5 | EXTRA_DIST = $(gpredict_metainfo_DATA) 6 | -------------------------------------------------------------------------------- /data/metainfo/dk.oz9aec.Gpredict.metainfo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | dk.oz9aec.Gpredict 4 | Gpredict 5 | Alexandru Csete 6 | Real-time satellite tracking and orbit prediction program 7 | 8 |

Gpredict is a real time satellite tracking and orbit prediction program written using the Gtk+ widgets.

9 |

Gpredict is targeted mainly towards ham radio operators but others interested in satellite tracking may find it useful as well.

10 |
11 | 12 | Astronomy 13 | Education 14 | HamRadio 15 | Network 16 | Science 17 | 18 | CC-BY-SA-3.0 19 | GPL-2.0+ 20 | 21 | gpredict.desktop 22 | 23 | https://oz9aec.dk/gpredict/ 24 | 25 | 26 | https://live.staticflickr.com/8089/28902144392_8cd36d57fe_b.jpg 27 | 28 | 29 | gpredict.desktop 30 | 31 |
32 | -------------------------------------------------------------------------------- /data/sample.qth: -------------------------------------------------------------------------------- 1 | [QTH] 2 | DESCRIPTION=Sample QTH file 3 | LOCATION=Copenhagen, Denmark 4 | LAT=55.6167 5 | LON=12.6500 6 | ALT=5 7 | WX=EKCH 8 | -------------------------------------------------------------------------------- /data/satdata/Makefile.am: -------------------------------------------------------------------------------- 1 | gpredict_satdir = $(pkgdatadir)/data/satdata 2 | 3 | gpredict_sat_DATA = satellites.dat *.cat 4 | 5 | EXTRA_DIST = $(gpredict_sat_DATA) 6 | -------------------------------------------------------------------------------- /data/satdata/amateur.cat: -------------------------------------------------------------------------------- 1 | Amateur Radio 2 | 14129 3 | 14781 4 | 20442 5 | 22825 6 | 22826 7 | 23439 8 | 24278 9 | 25397 10 | 25544 11 | 26931 12 | 27607 13 | 27844 14 | 27848 15 | 27939 16 | 28895 17 | 32785 18 | 32789 19 | 32791 20 | 32953 21 | 33499 22 | 35932 23 | 35933 24 | 35935 25 | 36122 26 | 37839 27 | 37841 28 | 37855 29 | 39090 30 | 39134 31 | 39135 32 | 39136 33 | 39417 34 | 39430 35 | 39440 36 | 39444 37 | 39446 38 | 39770 39 | 40012 40 | 40021 41 | 40025 42 | 40900 43 | 40901 44 | 40902 45 | 40903 46 | 40904 47 | 40905 48 | 40906 49 | 40907 50 | 40908 51 | 40910 52 | 40911 53 | 40912 54 | 40926 55 | 40928 56 | 40931 57 | 41459 58 | 41460 59 | 41557 60 | 41619 61 | 41847 62 | 42017 63 | 42759 64 | 42761 65 | 42778 66 | 43017 67 | 43137 68 | 43678 69 | 43700 70 | 43770 71 | 43786 72 | 43803 73 | 44354 74 | 44355 75 | 44419 76 | 44854 77 | 44909 78 | 45113 79 | 45119 80 | 45857 81 | 46495 82 | 46839 83 | 7530 84 | 22782 85 | 30776 86 | 33493 87 | 37854 88 | 38340 89 | 38735 90 | 40030 91 | 40034 92 | 40057 93 | 40071 94 | 40299 95 | 40300 96 | 40301 97 | 40377 98 | 40654 99 | 40719 100 | 40909 101 | 40958 102 | 41338 103 | 41339 104 | 41458 105 | 41558 106 | 41603 107 | 41607 108 | 41783 109 | 41789 110 | 41790 111 | 41844 112 | 41846 113 | 42766 114 | 42791 115 | 42829 116 | 42983 117 | 43019 118 | 43155 119 | 43156 120 | 43158 121 | 43186 122 | 43187 123 | 43188 124 | 43189 125 | 43192 126 | 43199 127 | 43640 128 | 43669 129 | 43677 130 | 43743 131 | 43758 132 | 43772 133 | 43773 134 | 43782 135 | 43784 136 | 43790 137 | 43792 138 | 43793 139 | 43798 140 | 43804 141 | 43805 142 | 43814 143 | 43855 144 | 43879 145 | 43880 146 | 43881 147 | 43933 148 | 43937 149 | 44045 150 | 44083 151 | 44103 152 | 44104 153 | 44339 154 | 44348 155 | 44352 156 | 44360 157 | 44420 158 | 44530 159 | 44878 160 | 44881 161 | 44885 162 | 45115 163 | 45258 164 | 45261 165 | 45263 166 | 45598 167 | 46276 168 | 46287 169 | 47309 170 | 47310 171 | 47311 172 | 47312 173 | 47313 174 | 47314 175 | 47315 176 | 47317 177 | 47318 178 | 47319 179 | 47320 180 | -------------------------------------------------------------------------------- /data/satdata/cubesat.cat: -------------------------------------------------------------------------------- 1 | Cubesat 2 | 27844 3 | 27848 4 | 28895 5 | 32785 6 | 32788 7 | 32789 8 | 32791 9 | 35932 10 | 35933 11 | 35935 12 | 36799 13 | 37855 14 | 38767 15 | 38768 16 | 39090 17 | 39134 18 | 39135 19 | 39136 20 | 39151 21 | 39161 22 | 39268 23 | 39269 24 | 39270 25 | 39417 26 | 39423 27 | 39427 28 | 39430 29 | 39440 30 | 39441 31 | 39444 32 | 39446 33 | 39465 34 | 39466 35 | 40020 36 | 40021 37 | 40024 38 | 40025 39 | 40032 40 | 40037 41 | 40039 42 | 40042 43 | 40043 44 | 40045 45 | 40046 46 | 40074 47 | 40119 48 | 40378 49 | 40379 50 | 40380 51 | 40659 52 | 40660 53 | 40926 54 | 40928 55 | 40936 56 | 40965 57 | 40966 58 | 41168 59 | 41170 60 | 41171 61 | 41340 62 | 41459 63 | 41460 64 | 41619 65 | 41788 66 | 41849 67 | 41850 68 | 41851 69 | 41852 70 | 41853 71 | 41854 72 | 41855 73 | 41954 74 | 41999 75 | 42000 76 | 42015 77 | 42016 78 | 42017 79 | 42765 80 | 42768 81 | 42775 82 | 42776 83 | 42777 84 | 42783 85 | 42784 86 | 42785 87 | 42786 88 | 42787 89 | 42788 90 | 42789 91 | 42790 92 | 42792 93 | 42793 94 | 42794 95 | 42846 96 | 42847 97 | 43015 98 | 43016 99 | 43021 100 | 43042 101 | 43043 102 | 43044 103 | 43049 104 | 43050 105 | 43052 106 | 43118 107 | 43131 108 | 43139 109 | 43140 110 | 43141 111 | 43142 112 | 43143 113 | 43196 114 | 43197 115 | 43467 116 | 43547 117 | 43549 118 | 43552 119 | 43556 120 | 43557 121 | 43614 122 | 43615 123 | 43616 124 | 43617 125 | 43666 126 | 43690 127 | 43693 128 | 43694 129 | 43696 130 | 43721 131 | 43722 132 | 43738 133 | 43759 134 | 43767 135 | 43780 136 | 43816 137 | 43817 138 | 43818 139 | 43850 140 | 43852 141 | 43907 142 | 43908 143 | 43940 144 | 44029 145 | 44030 146 | 44031 147 | 44033 148 | 44329 149 | 44330 150 | 44331 151 | 44332 152 | 44370 153 | 44371 154 | 44385 155 | 44398 156 | 44400 157 | 44406 158 | 44412 159 | 44419 160 | 44426 161 | 44427 162 | 44428 163 | 44429 164 | 44430 165 | 44431 166 | 44854 167 | 44877 168 | 45113 169 | 45727 170 | 46504 171 | 46505 172 | 46506 173 | 46507 174 | 46921 175 | 46922 176 | 46923 177 | 46924 178 | 46927 179 | -------------------------------------------------------------------------------- /data/satdata/galileo.cat: -------------------------------------------------------------------------------- 1 | Galileo Nav. 2 | 37846 3 | 37847 4 | 38857 5 | 38858 6 | 40128 7 | 40129 8 | 40544 9 | 40545 10 | 40889 11 | 40890 12 | 41174 13 | 41175 14 | 41549 15 | 41550 16 | 41859 17 | 41860 18 | 41861 19 | 41862 20 | 43055 21 | 43056 22 | 43057 23 | 43058 24 | 43564 25 | 43565 26 | 43566 27 | 43567 28 | -------------------------------------------------------------------------------- /data/satdata/glo-ops.cat: -------------------------------------------------------------------------------- 1 | Glonass Operational 2 | 29670 3 | 32275 4 | 32276 5 | 32393 6 | 32395 7 | 36111 8 | 36112 9 | 36400 10 | 36401 11 | 36402 12 | 37139 13 | 37372 14 | 37867 15 | 37868 16 | 37869 17 | 39155 18 | 39620 19 | 40001 20 | 40315 21 | 41330 22 | 41554 23 | 42939 24 | 43508 25 | 43687 26 | 44299 27 | 44850 28 | 45358 29 | -------------------------------------------------------------------------------- /data/satdata/gps-ops.cat: -------------------------------------------------------------------------------- 1 | GPS Operational 2 | 24876 3 | 26360 4 | 26407 5 | 27663 6 | 27704 7 | 28129 8 | 28190 9 | 28474 10 | 28874 11 | 29486 12 | 29601 13 | 32260 14 | 32384 15 | 32711 16 | 35752 17 | 36585 18 | 37753 19 | 38833 20 | 39166 21 | 39533 22 | 39741 23 | 40105 24 | 40294 25 | 40534 26 | 40730 27 | 41019 28 | 41328 29 | 43873 30 | 44506 31 | 45854 32 | -------------------------------------------------------------------------------- /data/satdata/iridium-NEXT.cat: -------------------------------------------------------------------------------- 1 | Iridium NEXT 2 | 41917 3 | 41918 4 | 41919 5 | 41920 6 | 41921 7 | 41922 8 | 41923 9 | 41924 10 | 41925 11 | 41926 12 | 42803 13 | 42804 14 | 42805 15 | 42806 16 | 42807 17 | 42808 18 | 42809 19 | 42810 20 | 42811 21 | 42812 22 | 42955 23 | 42956 24 | 42957 25 | 42958 26 | 42959 27 | 42960 28 | 42961 29 | 42962 30 | 42963 31 | 42964 32 | 43070 33 | 43071 34 | 43072 35 | 43073 36 | 43074 37 | 43075 38 | 43076 39 | 43077 40 | 43078 41 | 43079 42 | 43249 43 | 43250 44 | 43251 45 | 43252 46 | 43253 47 | 43254 48 | 43255 49 | 43256 50 | 43257 51 | 43258 52 | 43478 53 | 43479 54 | 43480 55 | 43481 56 | 43482 57 | 43569 58 | 43570 59 | 43571 60 | 43572 61 | 43573 62 | 43574 63 | 43575 64 | 43576 65 | 43577 66 | 43578 67 | 43922 68 | 43923 69 | 43924 70 | 43925 71 | 43926 72 | 43927 73 | 43928 74 | 43929 75 | 43930 76 | 43931 77 | -------------------------------------------------------------------------------- /data/satdata/iridium.cat: -------------------------------------------------------------------------------- 1 | Iridium 2 | 24793 3 | 24795 4 | 24796 5 | 24836 6 | 24841 7 | 24842 8 | 24870 9 | 24871 10 | 24873 11 | 24903 12 | 24907 13 | 24925 14 | 24926 15 | 24944 16 | 24946 17 | 24948 18 | 24967 19 | 25042 20 | 25043 21 | 25077 22 | 25078 23 | 25104 24 | 25105 25 | 25262 26 | 25273 27 | 25286 28 | 25319 29 | 25320 30 | 25344 31 | 25467 32 | 25527 33 | -------------------------------------------------------------------------------- /data/satdata/molniya.cat: -------------------------------------------------------------------------------- 1 | Molniya 2 | 7276 3 | 7376 4 | 7392 5 | 7780 6 | 8195 7 | 8601 8 | 9880 9 | 10455 10 | 10925 11 | 11057 12 | 11896 13 | 12156 14 | 13012 15 | 13070 16 | 13875 17 | 13890 18 | 15214 19 | 15429 20 | 15738 21 | 16393 22 | 17078 23 | 17328 24 | 18946 25 | 19807 26 | 21118 27 | 21196 28 | 21426 29 | 21706 30 | 22178 31 | 22671 32 | 22949 33 | 23420 34 | 23642 35 | 24960 36 | 25485 37 | 25847 38 | -------------------------------------------------------------------------------- /data/satdata/noaa.cat: -------------------------------------------------------------------------------- 1 | NOAA 2 | 4793 3 | 6235 4 | 6920 5 | 7529 6 | 9057 7 | 11060 8 | 11416 9 | 12553 10 | 13923 11 | 15427 12 | 16969 13 | 19531 14 | 21263 15 | 22739 16 | 23455 17 | 25338 18 | 26536 19 | 27453 20 | 28654 21 | 33591 22 | 37849 23 | 43013 24 | -------------------------------------------------------------------------------- /data/satdata/science.cat: -------------------------------------------------------------------------------- 1 | Space & Earth Science 2 | 20580 3 | 23802 4 | 25560 5 | 25867 6 | 25989 7 | 25994 8 | 26410 9 | 26411 10 | 26463 11 | 26464 12 | 26702 13 | 26998 14 | 27370 15 | 27540 16 | 27640 17 | 27651 18 | 27843 19 | 27858 20 | 28485 21 | 29047 22 | 29048 23 | 29049 24 | 29050 25 | 29051 26 | 29052 27 | 29107 28 | 29108 29 | 29479 30 | 29505 31 | 29506 32 | 31135 33 | 31304 34 | 33053 35 | 36119 36 | 36395 37 | 36508 38 | 37389 39 | 38337 40 | 38358 41 | 39089 42 | 39197 43 | 39253 44 | 39265 45 | 39422 46 | 39451 47 | 39452 48 | 39453 49 | 40020 50 | 40059 51 | 40119 52 | 40360 53 | 40482 54 | 40483 55 | 40484 56 | 40485 57 | 40930 58 | 41173 59 | 41784 60 | 42758 61 | 42831 62 | 43132 63 | 43194 64 | 44628 65 | 46495 66 | -------------------------------------------------------------------------------- /data/satdata/scripts/add-amsat.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # 3 | # Add satellites from AMSAT website that were not in the Celestrak database 4 | # 5 | import os 6 | import string 7 | import urllib 8 | 9 | 10 | webfile = 'https://www.amsat.org/amsat/ftp/keps/current/nasabare.txt' 11 | localfile = './in/amsat.txt' 12 | print 'Fetching ' + webfile + ' => ' + localfile 13 | urllib.urlretrieve (webfile, localfile) 14 | 15 | tlefile = open(localfile, 'r') 16 | catfile = open('./out/amateur.cat', 'a') 17 | datfile = open('./out/satellites.dat', 'a') 18 | 19 | while 1: 20 | # read three lines at a time; strip trailing whitespaces 21 | line1 = tlefile.readline().strip() 22 | if not line1: break 23 | line2 = tlefile.readline().strip() 24 | line3 = tlefile.readline().strip() 25 | 26 | # catalog number; strip leading zeroes 27 | catnum = line2[2:7].lstrip('0') 28 | 29 | satfilename = './tmp/' + catnum + '.sat' 30 | if os.path.isfile(satfilename): continue 31 | 32 | print " Adding " + catnum + " ..." 33 | 34 | catfile.write(catnum+'\n') 35 | 36 | datfile.write("\n["+catnum+"]\n") 37 | datfile.write('VERSION=1.1\n') 38 | datfile.write('NAME='+line1+'\n') 39 | datfile.write('NICKNAME='+line1+'\n') 40 | datfile.write('TLE1='+line2+'\n') 41 | datfile.write('TLE2='+line3+'\n') 42 | 43 | tlefile.close() 44 | catfile.close() 45 | datfile.close() 46 | -------------------------------------------------------------------------------- /data/satdata/visual.cat: -------------------------------------------------------------------------------- 1 | Brightest 2 | 694 3 | 733 4 | 877 5 | 2802 6 | 3230 7 | 3597 8 | 3669 9 | 4327 10 | 4814 11 | 5118 12 | 5560 13 | 5730 14 | 6073 15 | 6153 16 | 6155 17 | 7004 18 | 8459 19 | 10114 20 | 10967 21 | 11251 22 | 11267 23 | 11574 24 | 11672 25 | 12139 26 | 12465 27 | 12585 28 | 12904 29 | 13068 30 | 13154 31 | 13403 32 | 13552 33 | 13553 34 | 13819 35 | 14032 36 | 14208 37 | 14372 38 | 14699 39 | 14819 40 | 14820 41 | 15354 42 | 15483 43 | 15494 44 | 15772 45 | 15945 46 | 16111 47 | 16182 48 | 16496 49 | 16719 50 | 16792 51 | 16882 52 | 16908 53 | 17295 54 | 17567 55 | 17589 56 | 17590 57 | 17912 58 | 17973 59 | 18153 60 | 18187 61 | 18421 62 | 18749 63 | 18958 64 | 19046 65 | 19120 66 | 19210 67 | 19257 68 | 19573 69 | 19574 70 | 19650 71 | 20261 72 | 20262 73 | 20303 74 | 20323 75 | 20443 76 | 20453 77 | 20465 78 | 20466 79 | 20511 80 | 20580 81 | 20625 82 | 20663 83 | 20666 84 | 20775 85 | 21088 86 | 21397 87 | 21422 88 | 21423 89 | 21574 90 | 21610 91 | 21819 92 | 21876 93 | 21938 94 | 22219 95 | 22220 96 | 22236 97 | 22285 98 | 22286 99 | 22566 100 | 22626 101 | 22803 102 | 22830 103 | 23087 104 | 23088 105 | 23343 106 | 23405 107 | 23560 108 | 23561 109 | 23705 110 | 24298 111 | 24883 112 | 25400 113 | 25407 114 | 25544 115 | 25723 116 | 25732 117 | 25860 118 | 25861 119 | 25876 120 | 25977 121 | 25994 122 | 26070 123 | 26102 124 | 26474 125 | 27386 126 | 27422 127 | 27424 128 | 27432 129 | 27597 130 | 27601 131 | 28059 132 | 28222 133 | 28353 134 | 28415 135 | 28480 136 | 28499 137 | 28738 138 | 28773 139 | 28931 140 | 28932 141 | 28939 142 | 29228 143 | 29252 144 | 29507 145 | 31114 146 | 31598 147 | 31789 148 | 31792 149 | 31793 150 | 33504 151 | 38341 152 | 39271 153 | 39679 154 | 39766 155 | 40306 156 | 40354 157 | 41038 158 | 41337 159 | 42758 160 | 43521 161 | 43600 162 | 43641 163 | 44064 164 | 46390 165 | 46395 166 | -------------------------------------------------------------------------------- /data/satdata/weather.cat: -------------------------------------------------------------------------------- 1 | Weather Satellites 2 | 25338 3 | 25991 4 | 27509 5 | 28054 6 | 28654 7 | 28912 8 | 29047 9 | 29048 10 | 29049 11 | 29050 12 | 29051 13 | 29052 14 | 29155 15 | 29499 16 | 29522 17 | 32958 18 | 33463 19 | 33591 20 | 35491 21 | 35865 22 | 35951 23 | 36411 24 | 36744 25 | 37214 26 | 37849 27 | 38049 28 | 38552 29 | 38771 30 | 39260 31 | 40069 32 | 40267 33 | 40367 34 | 40732 35 | 41105 36 | 41836 37 | 41866 38 | 41882 39 | 41884 40 | 41885 41 | 41886 42 | 41887 43 | 41888 44 | 41889 45 | 41890 46 | 41891 47 | 43010 48 | 43013 49 | 43226 50 | 43491 51 | 43689 52 | 43823 53 | 44385 54 | 44387 55 | -------------------------------------------------------------------------------- /doc/.gitignore: -------------------------------------------------------------------------------- 1 | Makefile 2 | Makefile.in 3 | -------------------------------------------------------------------------------- /doc/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = man 2 | -------------------------------------------------------------------------------- /doc/man/.gitignore: -------------------------------------------------------------------------------- 1 | Makefile 2 | Makefile.in 3 | gpredict.1 4 | -------------------------------------------------------------------------------- /doc/man/Makefile.am: -------------------------------------------------------------------------------- 1 | MAN_IN_FILES = gpredict.1.in 2 | MAN_FILES =$(MAN_IN_FILES:.1.in=.1) 3 | 4 | man_MANS = gpredict.1 5 | 6 | EXTRA_DIST = $(MAN_IN_FILES) 7 | 8 | CLEANFILES = $(man_MANS) 9 | 10 | -------------------------------------------------------------------------------- /doc/man/gpredict.1.in: -------------------------------------------------------------------------------- 1 | .\" 2 | .TH "GPREDICT" "1" "Version @VERSION@" "Alexandru Csete" "User Commands" 3 | 4 | .SH "NAME" 5 | gpredict \- real-time satellite tracking and orbit prediction program 6 | 7 | .SH "SYNOPSIS" 8 | .B gpredict 9 | [\fIOPTION\fR]... 10 | 11 | .SH "DESCRIPTION" 12 | .\" Add any additional description here 13 | .PP 14 | Gpredict is a real-time satellite tracking and orbit prediction program. It can track an unlimited number of satellites and display the satellite data in various visualisation modules like lists, maps and polar plots. Gpredict can also provide detailed information about upcoming satellite passes relative to one or more ground stations. Gpredict can perform Doppler tuning and antenna rotator tracking via hamlib. The complete user manual, as well as other documentation, is available from http://gpredict.oz9aec.net/documents.php 15 | 16 | 17 | .SH "AUTHOR" 18 | Gpredict is designed and written by Alexandru Csete, OZ9AEC, but many other have contributed in one way or other, see the AUTHORS file or the About box in gpredict. 19 | 20 | .SH "REPORTING BUGS" 21 | Report bugs to \fB\fR. 22 | 23 | .SH "COPYRIGHT" 24 | Copyright \(co 2001\-2011 Alexandru Csete. 25 | .br 26 | This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. If it breaks you can keep both pieces. 27 | 28 | 29 | -------------------------------------------------------------------------------- /doc/notes/configuration.txt: -------------------------------------------------------------------------------- 1 | Gpredict has two configuration layers. 2 | 3 | 1. A global configuration layer accessible via Edit->Preferences, which applies 4 | to the whole program. 5 | 6 | 2. A local configuration layer for modules accessible via the "Settings" button 7 | in the module configuration dialog. 8 | 9 | The global configuration layer is implemented in the sat-pref modules and is 10 | intended to provide useful parameters that can be used as default values. The 11 | local layer is implemented in the mod-cfg module and is intended to allow users 12 | to configure each module individually. If a module does not have its own 13 | configuration the parameters will fall back to their corresponding default 14 | values. 15 | 16 | When creating a new module, the module should first try to read the local 17 | configuration parameter using the .mod file and the keys defined in config-keys.h 18 | If a parameter does not exist the modules should read the value from sat-cfg, 19 | which always will return a useful value, i.e. sat-cfg has built-in defaults. 20 | The mod-cfg-util module provides utility functions to warp all this code into 21 | ine single function call for all kinds of used parameters (bool, int, char). The 22 | required parameters for these functions are the local GKeyFile, the local section 23 | definition from config-keys, the key definition from config-keys and the 24 | parameter definition from sat-cfg. 25 | -------------------------------------------------------------------------------- /doc/notes/ft-847.txt: -------------------------------------------------------------------------------- 1 | Setting up gpredict for use with a Yaesu FT-847 radio 2 | 3 | As an USB to RS232 interface I bought the converter from "TechnoFix UK", 4 | which can be obtained from e.g. ebay et al. 5 | There might be a problem with your braille kernel driver, so you have 6 | to disable this from loading at system start (to get /dev/ttyUSB?). 7 | Remember to add the user running rigtcl[d] to the dialout group. 8 | My PC is running an actual debian with KDE as desktop environment and 9 | hamlib is the version delivered as distri package (currently 10 | Hamlib 1.2.15.3), because I have been too lazy to compile it by myself. 11 | Another issue I found while testing the threaded version of my gpredict 12 | build: transponder modes, such as FM, LSB, USB etc. have to be set 13 | manual on the radio. 14 | 15 | FT-847: 16 | Menu 37 "CAT RATE" -> 57600 17 | 18 | rigctld: 19 | /usr/bin/rigctld -m 101 -r /dev/ttyUSB0 -t 4532 -s 57600 --set-conf=stop_bits=2,serial_handshake=None 20 | 21 | gpredict: 22 | Edit -> Preferences -> Interfaces -> Add New 23 | Name: YAESUFT-847 24 | Host: 127.0.0.1 25 | Port: 4532 26 | Radio Type: Duplex TRX 27 | PTT status: Read PTT 28 | VFO Up/Down: SUB /\ / MAIN \/ 29 | LO Down: 30 | LO Up: 31 | Signalling: [ ] AOS [ ] LOS 32 | 33 | in Radiocontrol widget: 34 | Settings: 35 | 1. Device: YAESUFT-847 36 | 2. Device: None 37 | Cycle: 2500 38 | 39 | Note on Cycle: 40 | You have to chose a value bigger than the communication via RS232 to 41 | the radio takes! This is approximately 300 ms per command, existing of 42 | the command itself and the answer, containing the result. With a 43 | full-duplex radio there are 7 (!) commands executed: 1. [t] get PTT 44 | status, 2. [f] get current VFOA frq, 3. [F {...}] set new VFOA frq, 45 | 4. [f] check if new VFOA frq is set, 5. [i] get current SUB frq, 46 | 6. [I {...}] set new SUB frq, 7. [i] check if new SUB frq is set. This 47 | results in a cycle-time of approx 2100 ms - add some time to ensure all 48 | commands are transmitted. The idea to enclose the whole communication 49 | into separate threads came up, because socket communication is always 50 | blocking. This also comes up with rotcld! Still some work to do... 51 | 52 | One full cycle: 53 | 2017-03-02 19:24:18.918677 54 | t f F {...} f i I {...} i 55 | 2017-03-02 19:24:21.036607 56 | 57 | (to be enhanced...) 58 | 59 | Mar. 2017, Patrick Dohmen (DL4PD) 60 | -------------------------------------------------------------------------------- /doc/notes/ic-910.txt: -------------------------------------------------------------------------------- 1 | Setting up gpredict on linux for use with a Icom IC-910 radio. 2 | 3 | 4 | Settings on the IC-910: 5 | CI-V DATA Baud Rate: 19200 6 | CI-V Address: 60h 7 | CI-V transceive: On 8 | 9 | 10 | When the radio is connected to the PC via the CI-V CAT Interface and serial port COM1 it is 11 | on /dev/ttyS0 or higher number. 12 | When you are using a usb-serial-rs232-adapter it should be on /dev/ttyUSB0 or higher number. 13 | 14 | 15 | Setting up the daemon from hamlib: 16 | ~/Hamlib/Hamlib/tests $ ./rigctld -m 3044 -r /dev/ttyUSB0 --civaddr \0x60 17 | main: #1 vfo_mode=0 18 | Recommend using --vfo switch for rigctld if client supports it 19 | rigctl and netrigctl will automatically detect vfo mode 20 | 21 | 22 | The daemon should be running in the background now, "./" is only needed for local execution and testing, if installed from a package: 23 | $ rigctld -m 3044 -r /dev/ttyUSB0 --civaddr \0x60 24 | 25 | Or you can initiate with "systemd/rc-init" once testing is stable. 26 | 27 | 28 | 29 | 30 | Radio config in Gpredict: 31 | Edit -> Preferences -> Interfaces -> Add New 32 | 33 | Name: IC-910 34 | Host: localhost 35 | Port: 4532 36 | Radio Type:Duplex TRX 37 | PTT status: None 38 | VFO Up/Down: Main Down Sub Up 39 | LO Down: 0 40 | LO Up: 0 41 | Signalling: unchecked 42 | 43 | in Radiocontrol widget: 44 | Settings: 45 | 1. Device: IC-910 46 | 2. Device: None 47 | Cycle: 1000 48 | 49 | 50 | (to be enhanced...) 51 | 52 | May. 2020, Brett Coady (VK2KYB) / Andreas Puschendorf (DL7OAP) 53 | 54 | 55 | -------------------------------------------------------------------------------- /doc/notes/ic-9100.txt: -------------------------------------------------------------------------------- 1 | Setting up gpredict on linux for use with a Icom IC-9100 radio. 2 | 3 | 4 | Settings on the IC-9100: 5 | CI-V DATA Baud Rate: 19200 6 | CI-V Address: 7Ch 7 | CI-V transceive: On 8 | 9 | 10 | When the radio is connected to the PC via the CI-V CAT Interface and serial port COM1 it is 11 | on /dev/ttyS0 or higher number. 12 | When you are using a usb-serial-rs232-adapter it should be on /dev/ttyUSB0 or higher number. 13 | 14 | 15 | Setting up the daemon from hamlib: 16 | ~/Hamlib/Hamlib/tests $ ./rigctld -m 3068 -r /dev/ttyUSB0 --civaddr \0x7C 17 | main: #1 vfo_mode=0 18 | Recommend using --vfo switch for rigctld if client supports it 19 | rigctl and netrigctl will automatically detect vfo mode 20 | 21 | 22 | The daemon should be running in the background now, "./" is only needed for local execution and testing, if installed from a package: 23 | $ rigctld -m 3068 -r /dev/ttyUSB0 --civaddr \0x7C 24 | 25 | Or you can initiate with "systemd/rc-init" once testing is stable. 26 | 27 | 28 | 29 | 30 | Radio config in Gpredict: 31 | Edit -> Preferences -> Interfaces -> Add New 32 | 33 | Name: IC-9100 34 | Host: localhost 35 | Port: 4532 36 | Radio Type:Duplex TRX 37 | PTT status: None 38 | VFO Up/Down: Main Down Sub Up 39 | LO Down: 0 40 | LO Up: 0 41 | Signalling: unchecked 42 | 43 | in Radiocontrol widget: 44 | Settings: 45 | 1. Device: IC-9100 46 | 2. Device: None 47 | Cycle: 1000 48 | 49 | 50 | (to be enhanced...) 51 | 52 | May. 2020, Brett Coady (VK2KYB) / Andreas Puschendorf (DL7OAP) 53 | 54 | 55 | -------------------------------------------------------------------------------- /doc/notes/ic-9700.txt: -------------------------------------------------------------------------------- 1 | Setting up gpredict on linux for use with a Icom IC-9700 radio. 2 | (testing) 3 | 4 | settings on the IC-9700: 5 | CI-V USB Port: Unlink from[REMOTE] 6 | CI-V USB Baud Rate: auto 7 | CI-V USB Echo Back: OFF 8 | CI-V DATA Baud Rate: 19200 9 | CI-V DATA Echo Back: OFF 10 | CI-V Address: A2h 11 | CI-V Transceive: ON 12 | 13 | 14 | When the radio is connected to the PC you should see: 15 | 16 | $ lsmod |grep cp 17 | 18 | cp210x 24576 << is the kernel module and memory size, if compiled into the kernel you won't see the module but may still work, try below. 19 | 20 | $ lsusb 21 | 22 | Bus 001 Device 079: ID 08bb:2901 Texas Instruments PCM2901 Audio Codec 23 | Bus 001 Device 078: ID 10c4:ea60 Silicon Labs CP210x UART Bridge 24 | Bus 001 Device 077: ID 10c4:ea60 Silicon Labs CP210x UART Bridge 25 | Bus 001 Device 076: ID 0451:2046 Texas Instruments, Inc. TUSB2046 Hub 26 | 27 | The radio control port is the usually first port: 28 | 29 | $ ls /dev/ttyU* 30 | /dev/ttyUSB0 /dev/ttyUSB1 31 | 32 | 33 | Setting up the daemon from hamlib: 34 | ~/Hamlib/Hamlib/tests $ ./rigctld -m 3081 -r /dev/ttyUSB0 --civaddr \0xA2 35 | main: #1 vfo_mode=0 36 | Recommend using --vfo switch for rigctld if client supports it 37 | rigctl and netrigctl will automatically detect vfo mode 38 | 39 | Be aware of the hamlib 4.1 parameter -x/--uplink switch for GPredict. Will avoid reading freq from the uplink. 40 | This will help for a better handling when sweeping over a linear satellite transponder. 41 | 42 | 43 | The daemon should be running in the background now, "./" is only needed for local execution and testing, if installed from a package: 44 | $ rigctld -m 3081 -r /dev/ttyUSB0 --civaddr \0xA2 45 | 46 | Or you can initiate with "systemd/rc-init" once testing is stable. 47 | 48 | 49 | 50 | 51 | Radio config in Gpredict: 52 | Edit -> Preferences -> Interfaces -> Add New 53 | 54 | Name: IC-9700 55 | Host: localhost 56 | Port: 4532 57 | Radio Type:Duplex TRX 58 | PTT status: None 59 | VFO Up/Down: Main Down Sub Up 60 | LO Down: 0 61 | LO Up: 0 62 | Signalling: unchecked 63 | 64 | in Radiocontrol widget: 65 | Settings: 66 | 1. Device: IC-9700 67 | 2. Device: None 68 | Cycle: 1000 69 | 70 | 71 | Note on Cycle: 72 | Faster is possible due to USB use but the Interrupt on the Waterfall and Radio itself may be more noticeable. 73 | Currently working well on firmware revision 1.23 74 | 75 | (to be enhanced...) 76 | 77 | May. 2020, Brett Coady (VK2KYB) 78 | 79 | 80 | -------------------------------------------------------------------------------- /doc/notes/time_keeping.txt: -------------------------------------------------------------------------------- 1 | Notes on time keeping in gpredict 2 | --------------------------------- 3 | 4 | The SGP4/SDP4 algorithms require the time since Epoch in minutes (tsince). The 5 | sat_t data structure, on the other hand, keeps the Epoch time and the current 6 | time as Julian dates. They can be obtained using the Julian_Date_of_Epoch and 7 | get_current_daynum functions. To obtain tsince, on can simply multiply the 8 | difference between these two with the number of minutes per day: 9 | 10 | tsince = (sat->jul_utc - sat->jul_epoch) * xmnpd 11 | 12 | Similarly, when predicting passes, a specific Julian date can be obtained from 13 | tsince by dividing tsince with the number of minutes per day and adding the 14 | Epoch time as Julian date to it: 15 | 16 | jul_day(AOS) = tsince(AOS)/xmnpd + sat->jul_epoch 17 | 18 | 19 | The file sgpsdp/sgp_time.c contains many other functions that can be used to 20 | convert between calendar date/time and Julian date. 21 | 22 | 23 | Nomenclature 24 | ------------ 25 | 26 | Julian day 27 | The Julian day or Julian day number (JDN) is the number of days that have 28 | elapsed since 12 noon Greenwich Mean Time (UT or TT) on Monday, January 1, 29 | 4713 BC in the proleptic Julian calendar. 30 | 31 | Julian date 32 | The Julian Date (JD) is the Julian day number plus the decimal fraction of the 33 | day that has elapsed since noon. 34 | 35 | 36 | The Time Manager 37 | ---------------- 38 | 39 | Each module has its own built-in time manager, which keeps track of 40 | the module time. Besides real-time, gpredict also allows the user to 41 | use simulated real-time and manual time keeping individually for each 42 | module. Each of these are described in following. 43 | 44 | Real-time: 45 | The clock of the module is synchronised to the system time in a 1:1 relation. 46 | 47 | Simulated real-time: 48 | Also called time-throttling. The clock of the module is synchronised to the 49 | system time in a 1:N relation, where N is an integer. Thus, if N=2, for every 50 | second the module time will be incremented by 2 seconds. If N=-2, the module 51 | time will be decremented with 2 seconds in every second. 52 | 53 | Manual: 54 | When using this option, the time of the module is frozen. The user can then 55 | scroll forward and backward in time using various controls. The time 56 | resolution here is 1 second. 57 | 58 | By default, each module will use real-time. In order to enter another time 59 | keeping state, the user has to open the Time Manager from the module pop-up 60 | menu. 61 | 62 | Fortunately, the implementation of GtkSatModule is very generic where time is 63 | simply a state variable. A module will thus not care about whether the time 64 | is acquires is real-time or simulated time. 65 | 66 | Time keeping works by using a throttling state variable that indicates how 67 | the time should be incremented. This state variable is a signed integer with 68 | following values: 69 | 70 | 0: Paused; in this state the time is kept constant in every cycle but it is 71 | adjustable by the user using various controls. 72 | 73 | 1: Real time; in every cycle the time manager reads the current system time 74 | and performs the update according to this time. 75 | 76 | Any other value indicated simulated real-time indicating the throttling factor 77 | that is applied to the actual real-time. For example a value of 2 will take 78 | twice as big steps as the real-time clock. Negative values have the same 79 | meaning but in backwards direction. 80 | 81 | By default, the module starts up in real-time mode, i.e. throttle = 1. Via the 82 | module pop-up menu, the user can bring up the "Time Controller" window 83 | containing various widgets to control the throttling state. 84 | 85 | 86 | -------------------------------------------------------------------------------- /doc/um/gpredict-user-manual.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/doc/um/gpredict-user-manual.odt -------------------------------------------------------------------------------- /icons/.gitignore: -------------------------------------------------------------------------------- 1 | Makefile 2 | Makefile.in 3 | -------------------------------------------------------------------------------- /icons/Makefile.am: -------------------------------------------------------------------------------- 1 | gpredict_iconsdir = $(datadir)/icons/hicolor/scalable/apps 2 | gpredict_icons_DATA = gpredict.svg 3 | 4 | EXTRA_DIST = $(gpredict_icons_DATA) 5 | -------------------------------------------------------------------------------- /icons/gpredict.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 44 | 46 | 47 | 49 | image/svg+xml 50 | 52 | 53 | 54 | 55 | 56 | 61 | 64 | 69 | 70 | 73 | 78 | 79 | 82 | 87 | 88 | 91 | 96 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /pixmaps/.gitignore: -------------------------------------------------------------------------------- 1 | Makefile 2 | Makefile.in 3 | -------------------------------------------------------------------------------- /pixmaps/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = icons logos maps 2 | -------------------------------------------------------------------------------- /pixmaps/icons/.gitignore: -------------------------------------------------------------------------------- 1 | Makefile 2 | Makefile.in 3 | -------------------------------------------------------------------------------- /pixmaps/icons/Makefile.am: -------------------------------------------------------------------------------- 1 | gpredict_pixmaps_iconsdir = $(datadir)/pixmaps/gpredict/icons 2 | 3 | gpredict_pixmaps_icons_DATA = \ 4 | gpredict-antenna.png \ 5 | gpredict-antenna-small.png \ 6 | gpredict-azel-small.png \ 7 | gpredict-calendar.png \ 8 | gpredict-clock.png \ 9 | gpredict-clock-small.png \ 10 | gpredict-crash.png \ 11 | gpredict-icon.png \ 12 | gpredict-layout-00.png \ 13 | gpredict-layout-01.png \ 14 | gpredict-layout-02.png \ 15 | gpredict-layout-03.png \ 16 | gpredict-layout-04.png \ 17 | gpredict-layout-05.png \ 18 | gpredict-layout-06.png \ 19 | gpredict-layout-07.png \ 20 | gpredict-layout-08.png \ 21 | gpredict-layout-99.png \ 22 | gpredict-leds.png \ 23 | gpredict-mod-attach.png \ 24 | gpredict-mod-close.png \ 25 | gpredict-mod-config.png \ 26 | gpredict-mod-detach.png \ 27 | gpredict-mod-popup.png \ 28 | gpredict-notebook.png \ 29 | gpredict-oscilloscope.png \ 30 | gpredict-oscilloscope-small.png \ 31 | gpredict-planner.png \ 32 | gpredict-planner-small.png \ 33 | gpredict-polar-small.png \ 34 | gpredict-sat-list.png \ 35 | gpredict-sat-pref.png \ 36 | gpredict-shuttle.png \ 37 | gpredict-shuttle-small.png 38 | 39 | EXTRA_DIST = $(gpredict_pixmaps_icons_DATA) 40 | -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-antenna-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-antenna-small.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-antenna.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-antenna.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-azel-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-azel-small.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-calendar.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-clock-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-clock-small.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-clock.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-crash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-crash.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-icon.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-layout-00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-layout-00.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-layout-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-layout-01.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-layout-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-layout-02.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-layout-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-layout-03.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-layout-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-layout-04.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-layout-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-layout-05.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-layout-06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-layout-06.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-layout-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-layout-07.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-layout-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-layout-08.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-layout-99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-layout-99.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-leds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-leds.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-mod-attach.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-mod-attach.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-mod-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-mod-close.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-mod-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-mod-config.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-mod-detach.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-mod-detach.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-mod-popup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-mod-popup.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-notebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-notebook.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-oscilloscope-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-oscilloscope-small.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-oscilloscope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-oscilloscope.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-planner-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-planner-small.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-planner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-planner.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-polar-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-polar-small.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-sat-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-sat-list.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-sat-pref.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-sat-pref.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-shuttle-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-shuttle-small.png -------------------------------------------------------------------------------- /pixmaps/icons/gpredict-shuttle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/icons/gpredict-shuttle.png -------------------------------------------------------------------------------- /pixmaps/logos/Makefile.am: -------------------------------------------------------------------------------- 1 | gpredict_pixmaps_logosdir = $(datadir)/pixmaps/gpredict/logos 2 | 3 | gpredict_pixmaps_logos_DATA = \ 4 | gpredict_horizontal_color.png \ 5 | gpredict_horizontal_color.svg \ 6 | gpredict_horizontal_white.png \ 7 | gpredict_horizontal_white.svg \ 8 | gpredict_icon_color.png \ 9 | gpredict_icon_color.svg \ 10 | gpredict_icon_white.png \ 11 | gpredict_icon_white.svg \ 12 | gpredict_vertical_color.png \ 13 | gpredict_vertical_color.svg \ 14 | gpredict_vertical_white.png \ 15 | gpredict_vertical_white.svg 16 | 17 | EXTRA_DIST = $(gpredict_pixmaps_logos_DATA) 18 | -------------------------------------------------------------------------------- /pixmaps/logos/gpredict_horizontal_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/logos/gpredict_horizontal_color.png -------------------------------------------------------------------------------- /pixmaps/logos/gpredict_horizontal_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/logos/gpredict_horizontal_white.png -------------------------------------------------------------------------------- /pixmaps/logos/gpredict_icon_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/logos/gpredict_icon_color.png -------------------------------------------------------------------------------- /pixmaps/logos/gpredict_icon_color.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 44 | 46 | 47 | 49 | image/svg+xml 50 | 52 | 53 | 54 | 55 | 56 | 61 | 64 | 69 | 70 | 73 | 78 | 79 | 82 | 87 | 88 | 91 | 96 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /pixmaps/logos/gpredict_icon_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/logos/gpredict_icon_white.png -------------------------------------------------------------------------------- /pixmaps/logos/gpredict_icon_white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 44 | 46 | 47 | 49 | image/svg+xml 50 | 52 | 53 | 54 | 55 | 56 | 61 | 64 | 69 | 70 | 73 | 76 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /pixmaps/logos/gpredict_vertical_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/logos/gpredict_vertical_color.png -------------------------------------------------------------------------------- /pixmaps/logos/gpredict_vertical_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/logos/gpredict_vertical_white.png -------------------------------------------------------------------------------- /pixmaps/maps/.gitignore: -------------------------------------------------------------------------------- 1 | Makefile 2 | Makefile.in 3 | -------------------------------------------------------------------------------- /pixmaps/maps/Makefile.am: -------------------------------------------------------------------------------- 1 | gpredict_pixmaps_mapsdir = $(datadir)/pixmaps/gpredict/maps 2 | 3 | gpredict_pixmaps_maps_DATA = \ 4 | earth_800.png \ 5 | nasa-bmng-01_1024.jpg \ 6 | nasa-bmng-03_1024.jpg \ 7 | nasa-bmng-05_1024.jpg \ 8 | nasa-bmng-07_1024.jpg \ 9 | nasa-bmng-08_1024.jpg \ 10 | nasa-bmng-01_2048.jpg \ 11 | nasa-bmng-03_2048.jpg \ 12 | nasa-bmng-05_2048.jpg \ 13 | nasa-bmng-07_2048.jpg \ 14 | nasa-bmng-08_2048.jpg \ 15 | nasa-topo_800.png \ 16 | nasa-topo_1024.jpg \ 17 | nasa-topo_1600.jpg \ 18 | nasa-topo_2048.jpg 19 | 20 | EXTRA_DIST = $(gpredict_pixmaps_maps_DATA) 21 | -------------------------------------------------------------------------------- /pixmaps/maps/earth_800.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/earth_800.png -------------------------------------------------------------------------------- /pixmaps/maps/nasa-bmng-01_1024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/nasa-bmng-01_1024.jpg -------------------------------------------------------------------------------- /pixmaps/maps/nasa-bmng-01_2048.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/nasa-bmng-01_2048.jpg -------------------------------------------------------------------------------- /pixmaps/maps/nasa-bmng-03_1024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/nasa-bmng-03_1024.jpg -------------------------------------------------------------------------------- /pixmaps/maps/nasa-bmng-03_2048.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/nasa-bmng-03_2048.jpg -------------------------------------------------------------------------------- /pixmaps/maps/nasa-bmng-05_1024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/nasa-bmng-05_1024.jpg -------------------------------------------------------------------------------- /pixmaps/maps/nasa-bmng-05_2048.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/nasa-bmng-05_2048.jpg -------------------------------------------------------------------------------- /pixmaps/maps/nasa-bmng-07_1024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/nasa-bmng-07_1024.jpg -------------------------------------------------------------------------------- /pixmaps/maps/nasa-bmng-07_2048.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/nasa-bmng-07_2048.jpg -------------------------------------------------------------------------------- /pixmaps/maps/nasa-bmng-08_1024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/nasa-bmng-08_1024.jpg -------------------------------------------------------------------------------- /pixmaps/maps/nasa-bmng-08_2048.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/nasa-bmng-08_2048.jpg -------------------------------------------------------------------------------- /pixmaps/maps/nasa-topo_1024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/nasa-topo_1024.jpg -------------------------------------------------------------------------------- /pixmaps/maps/nasa-topo_1600.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/nasa-topo_1600.jpg -------------------------------------------------------------------------------- /pixmaps/maps/nasa-topo_2048.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/nasa-topo_2048.jpg -------------------------------------------------------------------------------- /pixmaps/maps/nasa-topo_800.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/pixmaps/maps/nasa-topo_800.png -------------------------------------------------------------------------------- /po/.gitignore: -------------------------------------------------------------------------------- 1 | *.gmo 2 | .intltool-merge-cache 3 | Makefile 4 | Makefile 5 | Makefile.in 6 | Makefile.in.in 7 | POTFILES 8 | cat-id-tbl.c 9 | messages.mo 10 | stamp-cat-id 11 | stamp-it 12 | gpredict.pot 13 | -------------------------------------------------------------------------------- /po/ChangeLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/po/ChangeLog -------------------------------------------------------------------------------- /po/POTFILES.in: -------------------------------------------------------------------------------- 1 | [encoding: UTF-8] 2 | src/about.c 3 | src/compat.c 4 | src/first-time.c 5 | src/gpredict-help.c 6 | src/gpredict-utils.c 7 | src/gtk-azel-plot.c 8 | src/gtk-event-list.c 9 | src/gtk-freq-knob.c 10 | src/gtk-polar-plot.c 11 | src/gtk-polar-view.c 12 | src/gtk-polar-view-popup.c 13 | src/gtk-rig-ctrl.c 14 | src/gtk-rot-ctrl.c 15 | src/gtk-rot-knob.c 16 | src/gtk-sat-data.c 17 | src/gtk-sat-list.c 18 | src/gtk-sat-list-popup.c 19 | src/gtk-sat-map.c 20 | src/gtk-sat-map-ground-track.c 21 | src/gtk-sat-map-popup.c 22 | src/gtk-sat-module.c 23 | src/gtk-sat-module-popup.c 24 | src/gtk-sat-module-tmg.c 25 | src/gtk-sat-popup-common.c 26 | src/gtk-sat-selector.c 27 | src/gtk-sat-tree.c 28 | src/gtk-single-sat.c 29 | src/gtk-sky-glance.c 30 | src/gui.c 31 | src/locator.c 32 | src/loc-tree.c 33 | src/main.c 34 | src/map-selector.c 35 | src/menubar.c 36 | src/mod-cfg.c 37 | src/mod-cfg-get-param.c 38 | src/mod-mgr.c 39 | src/orbit-tools.c 40 | src/pass-popup-menu.c 41 | src/pass-to-txt.c 42 | src/predict-tools.c 43 | src/print-pass.c 44 | src/qth-data.c 45 | src/qth-editor.c 46 | src/radio-conf.c 47 | src/rotor-conf.c 48 | src/sat-cfg.c 49 | src/sat-info.c 50 | src/sat-log-browser.c 51 | src/sat-log.c 52 | src/sat-monitor.c 53 | src/sat-pass-dialogs.c 54 | src/sat-pref.c 55 | src/sat-pref-conditions.c 56 | src/sat-pref-debug.c 57 | src/sat-pref-formats.c 58 | src/sat-pref-general.c 59 | src/sat-pref-interfaces.c 60 | src/sat-pref-layout.c 61 | src/sat-pref-list-view.c 62 | src/sat-pref-map-view.c 63 | src/sat-pref-modules.c 64 | src/sat-pref-multi-pass.c 65 | src/sat-pref-polar-view.c 66 | src/sat-pref-predict.c 67 | src/sat-pref-qth.c 68 | src/sat-pref-qth-editor.c 69 | src/sat-pref-refresh.c 70 | src/sat-pref-rig.c 71 | src/sat-pref-rig-editor.c 72 | src/sat-pref-rot.c 73 | src/sat-pref-rot-editor.c 74 | src/sat-pref-single-pass.c 75 | src/sat-pref-single-sat.c 76 | src/sat-pref-sky-at-glance.c 77 | src/sat-pref-tle.c 78 | src/sat-vis.c 79 | src/save-pass.c 80 | src/sgpsdp/sgp4sdp4.c 81 | src/sgpsdp/sgp_in.c 82 | src/sgpsdp/sgp_math.c 83 | src/sgpsdp/sgp_obs.c 84 | src/sgpsdp/sgp_time.c 85 | src/sgpsdp/solar.c 86 | src/time-tools.c 87 | src/tle-tools.c 88 | src/tle-update.c 89 | src/trsp-conf.c 90 | src/trsp-update.c 91 | -------------------------------------------------------------------------------- /snap/snapcraft.yaml: -------------------------------------------------------------------------------- 1 | name: gpredict 2 | version: 2.3.54 3 | summary: Gpredict - satellite tracking 4 | description: Gpredict is a real time satellite tracking and orbit prediction program for the Linux desktop. It uses the SGP4/SDP4 propagation algorithms together with NORAD two-line element sets (TLE). 5 | confinement: strict 6 | grade: stable 7 | 8 | environment: 9 | GPREDICT_DATA_DIR: $SNAP/share/gpredict/ 10 | 11 | apps: 12 | gpredict: 13 | command: desktop-launch gpredict 14 | plugs: [network, opengl, home, desktop, gsettings, unity7] 15 | 16 | parts: 17 | gpredict: 18 | plugin: autotools 19 | source: ../ 20 | after: [desktop-gtk3] 21 | build-packages: 22 | - libgtk-3-dev 23 | - libcurl4-openssl-dev 24 | - libglib2.0-dev 25 | - libgoocanvas-2.0-dev 26 | stage-packages: 27 | - libcanberra-gtk3-module 28 | 29 | -------------------------------------------------------------------------------- /src/.gitignore: -------------------------------------------------------------------------------- 1 | Makefile 2 | Makefile.in 3 | *.o 4 | gpredict 5 | sgpsdp/test-001 6 | sgpsdp/test-002 7 | .deps 8 | -------------------------------------------------------------------------------- /src/about.h: -------------------------------------------------------------------------------- 1 | #ifndef ABOUT_H 2 | #define ABOUT_H 1 3 | 4 | void about_dialog_create(void); 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /src/compat.h: -------------------------------------------------------------------------------- 1 | /* Utilities to ensure compatibility across multiple platforms. */ 2 | #ifndef COMPAT_H 3 | #define COMPAT_H 1 4 | 5 | gchar *get_data_dir(void); 6 | gchar *get_maps_dir(void); 7 | gchar *get_logo_dir(void); 8 | gchar *get_icon_dir(void); 9 | gchar *get_user_conf_dir(void); 10 | gchar *get_modules_dir(void); 11 | gchar *get_satdata_dir(void); 12 | gchar *get_trsp_dir(void); 13 | gchar *get_hwconf_dir(void); 14 | gchar *get_old_conf_dir(void); 15 | gchar *map_file_name(const gchar * map); 16 | gchar *logo_file_name(const gchar * logo); 17 | gchar *icon_file_name(const gchar * icon); 18 | gchar *data_file_name(const gchar * data); 19 | gchar *sat_file_name(const gchar * satfile); 20 | gchar *trsp_file_name(const gchar * trspfile); 21 | gchar *hw_file_name(const gchar * hwfile); 22 | 23 | gchar *sat_file_name_from_catnum(guint catnum); 24 | gchar *sat_file_name_from_catnum_s(gchar * catnum); 25 | 26 | gchar const* get_locale_thousands_sep(); 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /src/first-time.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 | /* 3 | Gpredict: Real-time satellite tracking and orbit prediction program 4 | 5 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 6 | 7 | Authors: Alexandru Csete 8 | 9 | Comments, questions and bugreports should be submitted via 10 | http://sourceforge.net/projects/gpredict/ 11 | More details can be found at the project home page: 12 | 13 | http://gpredict.oz9aec.net/ 14 | 15 | This program is free software; you can redistribute it and/or modify 16 | it under the terms of the GNU General Public License as published by 17 | the Free Software Foundation; either version 2 of the License, or 18 | (at your option) any later version. 19 | 20 | This program is distributed in the hope that it will be useful, 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | GNU General Public License for more details. 24 | 25 | You should have received a copy of the GNU General Public License 26 | along with this program; if not, visit http://www.fsf.org/ 27 | */ 28 | #ifndef FIRST_TIME_H 29 | #define FIRST_TIME_H 1 30 | 31 | 32 | /** \brief Bit fields in the returned error code */ 33 | enum { 34 | FTC_ERROR_STEP_01 = 1 << 1, 35 | FTC_ERROR_STEP_02 = 1 << 2, 36 | FTC_ERROR_STEP_03 = 1 << 3, 37 | FTC_ERROR_STEP_04 = 1 << 4, 38 | FTC_ERROR_STEP_05 = 1 << 5, 39 | FTC_ERROR_STEP_06 = 1 << 6, 40 | FTC_ERROR_STEP_07 = 1 << 7, 41 | FTC_ERROR_STEP_08 = 1 << 8, 42 | FTC_ERROR_STEP_09 = 1 << 9 43 | }; 44 | 45 | guint first_time_check_run (void); 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /src/gpredict-help.h: -------------------------------------------------------------------------------- 1 | #ifndef GPREDICT_HELP_H 2 | #define GPREDICT_HELP_H 1 3 | 4 | void gpredict_help_show_txt(const gchar * filename); 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /src/gpredict-utils.h: -------------------------------------------------------------------------------- 1 | #ifndef GPREDICT_UTILS_H 2 | #define GPREDICT_UTILS_H 1 3 | 4 | #include 5 | 6 | #define M_TO_FT(x) (3.2808399*x) 7 | #define FT_TO_M(x) (x/3.2808399) 8 | #define KM_TO_MI(x) (x/1.609344) 9 | #define MI_TO_KM(x) (1.609344*x) 10 | 11 | #ifndef M_PI 12 | #define M_PI 3.14159265358979323846264338327 13 | #endif 14 | 15 | 16 | GtkWidget *gpredict_hpixmap_button(const gchar * file, 17 | const gchar * text, 18 | const gchar * tooltip); 19 | 20 | GtkWidget *gpredict_vpixmap_button(const gchar * file, 21 | const gchar * text, 22 | const gchar * tooltip); 23 | 24 | GtkWidget *gpredict_hstock_button(const gchar * stock_id, 25 | const gchar * text, 26 | const gchar * tooltip); 27 | 28 | GtkWidget *gpredict_mini_mod_button(const gchar * pixmapfile, 29 | const gchar * tooltip); 30 | 31 | void gpredict_set_combo_tooltips(GtkWidget * combo, gpointer text); 32 | 33 | gint gpredict_file_copy(const gchar * in, const gchar * out); 34 | 35 | void rgba_from_cfg(guint cfg_rgba, GdkRGBA * gdk_rgba); 36 | guint rgba_to_cfg(const GdkRGBA * gdk_rgba); 37 | void rgb_from_cfg(guint cfg_rgb, GdkRGBA * gdk_rgba); 38 | guint rgb_to_cfg(const GdkRGBA * gdk_rgba); 39 | 40 | void rgb2gdk(guint rgb, GdkColor * color); 41 | void rgba2gdk(guint rgba, GdkColor * color, guint16 * alpha); 42 | void gdk2rgb(const GdkColor * color, guint * rgb); 43 | void gdk2rgba(const GdkColor * color, guint16 alpha, guint * rgba); 44 | gchar *rgba2html(guint rgba); 45 | int gpredict_strcmp(const char *s1, const char *s2); 46 | char *gpredict_strcasestr(const char *s1, const char *s2); 47 | gboolean gpredict_save_key_file(GKeyFile * cfgdata, 48 | const char *filename); 49 | gboolean gpredict_legal_char(int ch); 50 | #endif 51 | -------------------------------------------------------------------------------- /src/gtk-event-list-popup.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 5 | 6 | Authors: Alexandru Csete 7 | 8 | Comments, questions and bugreports should be submitted via 9 | http://sourceforge.net/projects/gpredict/ 10 | More details can be found at the project home page: 11 | 12 | http://gpredict.oz9aec.net/ 13 | 14 | This program is free software; you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation; either version 2 of the License, or 17 | (at your option) any later version. 18 | 19 | This program is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program; if not, visit http://www.fsf.org/ 26 | */ 27 | #ifndef GTK_EVENT_LIST_POPUP_H 28 | #define GTK_EVENT_LIST_POPUP_H 1 29 | 30 | #include 31 | #include "sgpsdp/sgp4sdp4.h" 32 | #include "gtk-sat-data.h" 33 | #include "gtk-event-list.h" 34 | 35 | 36 | void gtk_event_list_popup_exec(sat_t * sat, qth_t * qth, 37 | GdkEventButton * event, 38 | GtkEventList * list); 39 | 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /src/gtk-event-list.h: -------------------------------------------------------------------------------- 1 | #ifndef __GTK_EVENT_LIST_H__ 2 | #define __GTK_EVENT_LIST_H__ 1 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #include "gtk-sat-data.h" 10 | 11 | /* *INDENT-OFF* */ 12 | #ifdef __cplusplus 13 | extern "C" { 14 | #endif /* __cplusplus */ 15 | /* *INDENT-ON* */ 16 | 17 | #define GTK_TYPE_EVENT_LIST (gtk_event_list_get_type ()) 18 | #define GTK_EVENT_LIST(obj) G_TYPE_CHECK_INSTANCE_CAST (obj,\ 19 | gtk_event_list_get_type (),\ 20 | GtkEventList) 21 | 22 | #define GTK_EVENT_LIST_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass,\ 23 | gtk_event_list_get_type (),\ 24 | GtkEventListClass) 25 | 26 | #define IS_GTK_EVENT_LIST(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, gtk_event_list_get_type ()) 27 | 28 | typedef struct _gtk_event_list GtkEventList; 29 | typedef struct _GtkEventListClass GtkEventListClass; 30 | 31 | struct _gtk_event_list { 32 | GtkBox box; 33 | 34 | GtkWidget *treeview; /*!< the tree view itself */ 35 | GtkWidget *swin; /*!< scrolled window */ 36 | 37 | GHashTable *satellites; /*!< Satellites. */ 38 | qth_t *qth; /*!< Pointer to current location. */ 39 | 40 | guint32 flags; /*!< Flags indicating which columns are visible */ 41 | 42 | gdouble tstamp; /*!< time stamp of calculations; set by GtkSatModule */ 43 | GKeyFile *cfgdata; 44 | gint sort_column; 45 | GtkSortType sort_order; 46 | GtkTreeModel *sortable; 47 | 48 | void (*update) (GtkWidget * widget); /*!< update function */ 49 | 50 | }; 51 | 52 | struct _GtkEventListClass { 53 | GtkBoxClass parent_class; 54 | }; 55 | 56 | /** Symbolic references to columns */ 57 | typedef enum { 58 | EVENT_LIST_COL_NAME = 0, /*!< Satellite name. */ 59 | EVENT_LIST_COL_CATNUM, /*!< Catalogue number. */ 60 | EVENT_LIST_COL_AZ, /*!< Satellite Azimuth. */ 61 | EVENT_LIST_COL_EL, /*!< Satellite Elevation. */ 62 | EVENT_LIST_COL_EVT, /*!< Next event (AOS or LOS). */ 63 | EVENT_LIST_COL_TIME, /*!< Time countdown. */ 64 | EVENT_LIST_COL_DECAY, /*!< Whether satellite is decayed or not. */ 65 | EVENT_LIST_COL_BOLD, /*!< Stores weight for rendering text. */ 66 | EVENT_LIST_COL_NUMBER 67 | } event_list_col_t; 68 | 69 | /** Column Flags */ 70 | typedef enum { 71 | EVENT_LIST_FLAG_NAME = 1 << EVENT_LIST_COL_NAME, /*!< Satellite name. */ 72 | EVENT_LIST_FLAG_CATNUM = 1 << EVENT_LIST_COL_CATNUM, 73 | EVENT_LIST_FLAG_AZ = 1 << EVENT_LIST_COL_AZ, 74 | EVENT_LIST_FLAG_EL = 1 << EVENT_LIST_COL_EL, 75 | EVENT_LIST_FLAG_EVT = 1 << EVENT_LIST_COL_EVT, /*!< Next event (AOS or LOS) */ 76 | EVENT_LIST_FLAG_TIME = 1 << EVENT_LIST_COL_TIME, /*!< Time countdown */ 77 | } event_list_flag_t; 78 | 79 | GType gtk_event_list_get_type(void); 80 | GtkWidget *gtk_event_list_new(GKeyFile * cfgdata, 81 | GHashTable * sats, 82 | qth_t * qth, guint32 columns); 83 | void gtk_event_list_update(GtkWidget * widget); 84 | void gtk_event_list_reconf(GtkWidget * widget, GKeyFile * cfgdat); 85 | 86 | void gtk_event_list_reload_sats(GtkWidget * satlist, 87 | GHashTable * sats); 88 | void gtk_event_list_select_sat(GtkWidget * widget, gint catnum); 89 | 90 | /* *INDENT-OFF* */ 91 | #ifdef __cplusplus 92 | } 93 | #endif /* __cplusplus */ 94 | /* *INDENT-ON* */ 95 | 96 | #endif /* __GTK_SAT_MODULE_H__ */ 97 | -------------------------------------------------------------------------------- /src/gtk-freq-knob.h: -------------------------------------------------------------------------------- 1 | #ifndef __GTK_FREQ_KNOB_H__ 2 | #define __GTK_FREQ_KNOB_H__ 1 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | /* *INDENT-OFF* */ 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif /* __cplusplus */ 12 | /* *INDENT-ON* */ 13 | 14 | 15 | #define GTK_TYPE_FREQ_KNOB (gtk_freq_knob_get_type ()) 16 | #define GTK_FREQ_KNOB(obj) G_TYPE_CHECK_INSTANCE_CAST (obj,\ 17 | gtk_freq_knob_get_type (),\ 18 | GtkFreqKnob) 19 | 20 | #define GTK_FREQ_KNOB_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass,\ 21 | gtk_freq_knob_get_type (),\ 22 | GtkFreqKnobClass) 23 | 24 | #define IS_GTK_FREQ_KNOB(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, gtk_freq_knob_get_type ()) 25 | 26 | 27 | typedef struct _gtk_freq_knob GtkFreqKnob; 28 | typedef struct _GtkFreqKnobClass GtkFreqKnobClass; 29 | 30 | struct _gtk_freq_knob { 31 | GtkBox box; 32 | 33 | GtkWidget *digits[10]; /*!< Labels for the digits */ 34 | GtkWidget *evtbox[10]; /*!< Event boxes to catch mouse events over the digits */ 35 | GtkWidget *buttons[20]; /*!< Buttons; 0..9 up; 10..19 down */ 36 | 37 | gdouble min; 38 | gdouble max; 39 | gdouble value; 40 | }; 41 | 42 | struct _GtkFreqKnobClass { 43 | GtkVBoxClass parent_class; 44 | }; 45 | 46 | GType gtk_freq_knob_get_type(void); 47 | GtkWidget *gtk_freq_knob_new(gdouble val, gboolean buttons); 48 | void gtk_freq_knob_set_value(GtkFreqKnob * knob, gdouble val); 49 | gdouble gtk_freq_knob_get_value(GtkFreqKnob * knob); 50 | 51 | 52 | /* *INDENT-OFF* */ 53 | #ifdef __cplusplus 54 | } 55 | #endif /* __cplusplus */ 56 | /* *INDENT-ON* */ 57 | 58 | #endif /* __GTK_FREQ_KNOB_H__ */ 59 | -------------------------------------------------------------------------------- /src/gtk-polar-view-popup.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2017 Alexandru Csete, OZ9AEC. 5 | 6 | Comments, questions and bugreports should be submitted via 7 | http://sourceforge.net/projects/gpredict/ 8 | More details can be found at the project home page: 9 | 10 | http://gpredict.oz9aec.net/ 11 | 12 | This program is free software; you can redistribute it and/or modify 13 | it under the terms of the GNU General Public License as published by 14 | the Free Software Foundation; either version 2 of the License, or 15 | (at your option) any later version. 16 | 17 | This program is distributed in the hope that it will be useful, 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | GNU General Public License for more details. 21 | 22 | You should have received a copy of the GNU General Public License 23 | along with this program; if not, visit http://www.fsf.org/ 24 | */ 25 | #ifndef GTK_POLAR_VIEW_POPUP_H 26 | #define GTK_POLAR_VIEW_POPUP_H 1 27 | 28 | #include 29 | 30 | #include "gtk-sat-data.h" 31 | #include "gtk-polar-view.h" 32 | #include "sgpsdp/sgp4sdp4.h" 33 | 34 | 35 | void gtk_polar_view_popup_exec(sat_t * sat, qth_t * qth, 36 | GtkPolarView * polv, 37 | GdkEventButton * event, 38 | GtkWidget * toplevel); 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /src/gtk-rot-ctrl.h: -------------------------------------------------------------------------------- 1 | #ifndef __GTK_ROT_CTRL_H__ 2 | #define __GTK_ROT_CTRL_H__ 1 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include "gtk-sat-module.h" 9 | #include "predict-tools.h" 10 | #include "rotor-conf.h" 11 | #include "sgpsdp/sgp4sdp4.h" 12 | 13 | #ifdef __cplusplus 14 | extern "C" { 15 | #endif /* __cplusplus */ 16 | 17 | #define GTK_TYPE_ROT_CTRL (gtk_rot_ctrl_get_type ()) 18 | #define GTK_ROT_CTRL(obj) G_TYPE_CHECK_INSTANCE_CAST (obj,\ 19 | gtk_rot_ctrl_get_type (),\ 20 | GtkRotCtrl) 21 | 22 | #define GTK_ROT_CTRL_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass,\ 23 | gtk_rot_ctrl_get_type (),\ 24 | GtkRotCtrlClass) 25 | 26 | #define IS_GTK_ROT_CTRL(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, gtk_rot_ctrl_get_type ()) 27 | 28 | typedef struct _gtk_rot_ctrl GtkRotCtrl; 29 | typedef struct _GtkRotCtrlClass GtkRotCtrlClass; 30 | 31 | struct _gtk_rot_ctrl { 32 | GtkBox box; 33 | 34 | /* Azimuth widgets */ 35 | GtkWidget *AzSat, *AzSet, *AzRead, *AzDevSel; 36 | 37 | /* Elevation widgets */ 38 | GtkWidget *ElSat, *ElSet, *ElRead, *ElDevSel, *ElDev; 39 | 40 | /* other widgets */ 41 | GtkWidget *SatSel; 42 | GtkWidget *SatCnt; 43 | GtkWidget *DevSel; 44 | GtkWidget *plot; /*!< Polar plot widget */ 45 | GtkWidget *LockBut; 46 | GtkWidget *MonitorCheckBox; 47 | GtkWidget *track; 48 | GtkWidget *cycle_spin; /*!< Update timer cycle */ 49 | GtkWidget *thld_spin; /*!< Threshold spin */ 50 | 51 | rotor_conf_t *conf; 52 | gdouble t; /*!< Time when sat data last has been updated. */ 53 | 54 | /* satellites */ 55 | GSList *sats; /*!< List of sats in parent module */ 56 | sat_t *target; /*!< Target satellite */ 57 | pass_t *pass; /*!< Next pass of target satellite */ 58 | qth_t *qth; /*!< The QTH for this module */ 59 | gboolean flipped; /*!< Whether the current pass loaded is a flip pass or not */ 60 | 61 | guint delay; /*!< Timeout delay. */ 62 | guint timerid; /*!< Timer ID */ 63 | gdouble threshold; /*!< Motion threshold */ 64 | 65 | gboolean tracking; /*!< Flag set when we are tracking a target. */ 66 | gboolean monitor; /*!< Flag indicating that rig is in monitor mode. */ 67 | gboolean engaged; /*!< Flag indicating that rotor device is engaged. */ 68 | 69 | gint errcnt; /*!< Error counter. */ 70 | 71 | /* TCP client to rotctld */ 72 | struct { 73 | GThread *thread; 74 | GTimer *timer; 75 | GMutex mutex; 76 | gint socket; /* network socket to rotctld */ 77 | gfloat azi_in; /* last AZI angle read from rotctld */ 78 | gfloat ele_in; /* last ELE angle read from rotctld */ 79 | gfloat azi_out; /* AZI target */ 80 | gfloat ele_out; /* ELE target */ 81 | gboolean new_trg; /* new target position set */ 82 | gboolean running; 83 | gboolean io_error; 84 | } client; 85 | }; 86 | 87 | struct _GtkRotCtrlClass { 88 | GtkBoxClass parent_class; 89 | }; 90 | 91 | GType gtk_rot_ctrl_get_type(void); 92 | GtkWidget *gtk_rot_ctrl_new(GtkSatModule * module); 93 | void gtk_rot_ctrl_update(GtkRotCtrl * ctrl, gdouble t); 94 | void gtk_rot_ctrl_select_sat(GtkRotCtrl * ctrl, gint catnum); 95 | 96 | #ifdef __cplusplus 97 | } 98 | #endif /* __cplusplus */ 99 | 100 | #endif /* __GTK_ROT_CTRL_H__ */ 101 | -------------------------------------------------------------------------------- /src/gtk-rot-knob.h: -------------------------------------------------------------------------------- 1 | #ifndef __GTK_ROT_KNOB_H__ 2 | #define __GTK_ROT_KNOB_H__ 1 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | /* *INDENT-OFF* */ 9 | #ifdef __cplusplus 10 | extern "C" { 11 | #endif 12 | /* *INDENT-ON* */ 13 | 14 | 15 | #define GTK_TYPE_ROT_KNOB (gtk_rot_knob_get_type ()) 16 | #define GTK_ROT_KNOB(obj) G_TYPE_CHECK_INSTANCE_CAST (obj,\ 17 | gtk_rot_knob_get_type (),\ 18 | GtkRotKnob) 19 | #define GTK_ROT_KNOB_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass,\ 20 | gtk_rot_knob_get_type (),\ 21 | GtkRotKnobClass) 22 | #define IS_GTK_ROT_KNOB(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, gtk_rot_knob_get_type ()) 23 | 24 | 25 | typedef struct _gtk_rot_knob GtkRotKnob; 26 | typedef struct _GtkRotKnobClass GtkRotKnobClass; 27 | 28 | struct _gtk_rot_knob { 29 | GtkBox box; 30 | 31 | GtkWidget *digits[7]; /*!< Labels for the digits */ 32 | GtkWidget *evtbox[7]; /*!< Event boxes to catch mouse events over the digits */ 33 | GtkWidget *buttons[10]; /*!< Buttons; 0..4 up; 5..9 down */ 34 | 35 | gdouble min; 36 | gdouble max; 37 | gdouble value; 38 | }; 39 | 40 | struct _GtkRotKnobClass { 41 | GtkVBoxClass parent_class; 42 | }; 43 | 44 | GType gtk_rot_knob_get_type(void); 45 | GtkWidget *gtk_rot_knob_new(gdouble min, gdouble max, gdouble val); 46 | void gtk_rot_knob_set_value(GtkRotKnob * knob, gdouble val); 47 | gdouble gtk_rot_knob_get_value(GtkRotKnob * knob); 48 | void gtk_rot_knob_set_max(GtkRotKnob * knob, gdouble max); 49 | gdouble gtk_rot_knob_get_max(GtkRotKnob * knob); 50 | gdouble gtk_rot_knob_get_min(GtkRotKnob * knob); 51 | void gtk_rot_knob_set_min(GtkRotKnob * knob, gdouble min); 52 | void gtk_rot_knob_set_max(GtkRotKnob * knob, gdouble max); 53 | void gtk_rot_knob_set_range(GtkRotKnob * knob, gdouble min, 54 | gdouble max); 55 | 56 | /* *INDENT-OFF* */ 57 | #ifdef __cplusplus 58 | } 59 | #endif 60 | /* *INDENT-ON* */ 61 | 62 | #endif /* __GTK_ROT_knob_H__ */ 63 | -------------------------------------------------------------------------------- /src/gtk-sat-data.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 5 | 6 | Comments, questions and bugreports should be submitted via 7 | http://sourceforge.net/projects/gpredict/ 8 | More details can be found at the project home page: 9 | 10 | http://gpredict.oz9aec.net/ 11 | 12 | This program is free software; you can redistribute it and/or modify 13 | it under the terms of the GNU General Public License as published by 14 | the Free Software Foundation; either version 2 of the License, or 15 | (at your option) any later version. 16 | 17 | This program is distributed in the hope that it will be useful, 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | GNU General Public License for more details. 21 | 22 | You should have received a copy of the GNU General Public License 23 | along with this program; if not, visit http://www.fsf.org/ 24 | */ 25 | #ifndef __GTK_SAT_DATA_H__ 26 | #define __GTK_SAT_DATA_H__ 1 27 | 28 | #include 29 | #include "sgpsdp/sgp4sdp4.h" 30 | #include "qth-data.h" 31 | 32 | 33 | gint gtk_sat_data_read_sat(gint catnum, sat_t * sat); 34 | void gtk_sat_data_init_sat(sat_t * sat, qth_t * qth); 35 | void gtk_sat_data_copy_sat(const sat_t * source, sat_t * dest, 36 | qth_t * qth); 37 | void gtk_sat_data_free_sat(sat_t * sat); 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /src/gtk-sat-list-popup.c: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2017 Alexandru Csete, OZ9AEC. 5 | 6 | Comments, questions and bugreports should be submitted via 7 | http://sourceforge.net/projects/gpredict/ 8 | More details can be found at the project home page: 9 | 10 | http://gpredict.oz9aec.net/ 11 | 12 | This program is free software; you can redistribute it and/or modify 13 | it under the terms of the GNU General Public License as published by 14 | the Free Software Foundation; either version 2 of the License, or 15 | (at your option) any later version. 16 | 17 | This program is distributed in the hope that it will be useful, 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | GNU General Public License for more details. 21 | 22 | You should have received a copy of the GNU General Public License 23 | along with this program; if not, visit http://www.fsf.org/ 24 | */ 25 | #ifdef HAVE_CONFIG_H 26 | #include 27 | #endif 28 | 29 | #include 30 | #include 31 | 32 | #include "config-keys.h" 33 | #include "gtk-sat-list-popup.h" 34 | #include "gtk-sat-popup-common.h" 35 | #include "orbit-tools.h" 36 | #include "predict-tools.h" 37 | #include "sat-cfg.h" 38 | #include "sat-info.h" 39 | #include "sat-log.h" 40 | #include "sat-pass-dialogs.h" 41 | #include "sgpsdp/sgp4sdp4.h" 42 | 43 | /** 44 | * Show satellite popup menu. 45 | * 46 | * @param sat Pointer to the satellite data. 47 | * @param qth The current location. 48 | * @param event The mouse-click related event info. 49 | * @param toplevel The top level window. 50 | */ 51 | void gtk_sat_list_popup_exec(sat_t * sat, qth_t * qth, GdkEventButton * event, 52 | GtkSatList * list) 53 | { 54 | GtkWidget *menu; 55 | GtkWidget *menuitem; 56 | 57 | menu = gtk_menu_new(); 58 | 59 | /* first menu item is the satellite name, centered */ 60 | menuitem = gtk_menu_item_new(); 61 | gtk_menu_item_set_label(GTK_MENU_ITEM(menuitem), _("Satellite info")); 62 | 63 | /* attach data to menuitem and connect callback */ 64 | g_object_set_data(G_OBJECT(menuitem), "sat", sat); 65 | g_object_set_data(G_OBJECT(menuitem), "qth", qth); 66 | g_signal_connect(menuitem, "activate", 67 | G_CALLBACK(show_sat_info_menu_cb), 68 | gtk_widget_get_toplevel(GTK_WIDGET(list))); 69 | 70 | gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 71 | 72 | /* separator */ 73 | menuitem = gtk_separator_menu_item_new(); 74 | gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 75 | 76 | /* add the menu items for current,next, and future passes. */ 77 | add_pass_menu_items(menu, sat, qth, &list->tstamp, GTK_WIDGET(list)); 78 | 79 | gtk_widget_show_all(menu); 80 | 81 | /* gtk_menu_popup got deprecated in 3.22, first available in Ubuntu 18.04 */ 82 | #if GTK_MINOR_VERSION < 22 83 | gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 84 | (event != NULL) ? event->button : 0, 85 | gdk_event_get_time((GdkEvent *) event)); 86 | #else 87 | (void) event; 88 | gtk_menu_popup_at_pointer(GTK_MENU(menu), NULL); 89 | #endif 90 | } 91 | -------------------------------------------------------------------------------- /src/gtk-sat-list-popup.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2017 Alexandru Csete, OZ9AEC. 5 | 6 | Comments, questions and bugreports should be submitted via 7 | http://sourceforge.net/projects/gpredict/ 8 | More details can be found at the project home page: 9 | 10 | http://gpredict.oz9aec.net/ 11 | 12 | This program is free software; you can redistribute it and/or modify 13 | it under the terms of the GNU General Public License as published by 14 | the Free Software Foundation; either version 2 of the License, or 15 | (at your option) any later version. 16 | 17 | This program is distributed in the hope that it will be useful, 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | GNU General Public License for more details. 21 | 22 | You should have received a copy of the GNU General Public License 23 | along with this program; if not, visit http://www.fsf.org/ 24 | */ 25 | #ifndef GTK_SAT_LIST_POPUP_H 26 | #define GTK_SAT_LIST_POPUP_H 1 27 | 28 | #include 29 | 30 | #include "gtk-sat-data.h" 31 | #include "gtk-sat-list.h" 32 | #include "sgpsdp/sgp4sdp4.h" 33 | 34 | void gtk_sat_list_popup_exec(sat_t * sat, qth_t * qth, 35 | GdkEventButton * event, 36 | GtkSatList * list); 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /src/gtk-sat-map-ground-track.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2017 Alexandru Csete, OZ9AEC. 5 | 6 | Comments, questions and bugreports should be submitted via 7 | http://sourceforge.net/projects/gpredict/ 8 | More details can be found at the project home page: 9 | 10 | http://gpredict.oz9aec.net/ 11 | 12 | This program is free software; you can redistribute it and/or modify 13 | it under the terms of the GNU General Public License as published by 14 | the Free Software Foundation; either version 2 of the License, or 15 | (at your option) any later version. 16 | 17 | This program is distributed in the hope that it will be useful, 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | GNU General Public License for more details. 21 | 22 | You should have received a copy of the GNU General Public License 23 | along with this program; if not, visit http://www.fsf.org/ 24 | */ 25 | #ifndef __GTK_SAT_MAP_GROUND_TRACK_H__ 26 | #define __GTK_SAT_MAP_GROUND_TRACK_H__ 1 27 | 28 | #include 29 | #include 30 | #include 31 | #include 32 | 33 | #include "gtk-sat-map.h" 34 | 35 | void ground_track_create(GtkSatMap * satmap, sat_t * sat, 36 | qth_t * qth, sat_map_obj_t * obj); 37 | 38 | void ground_track_update(GtkSatMap * satmap, sat_t * sat, 39 | qth_t * qth, sat_map_obj_t * obj, 40 | gboolean recalc); 41 | 42 | void ground_track_delete(GtkSatMap * satmap, sat_t * sat, 43 | qth_t * qth, sat_map_obj_t * obj, 44 | gboolean clear_ssp); 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /src/gtk-sat-map-popup.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2017 Alexandru Csete, OZ9AEC. 5 | 6 | Comments, questions and bugreports should be submitted via 7 | http://sourceforge.net/projects/gpredict/ 8 | More details can be found at the project home page: 9 | 10 | http://gpredict.oz9aec.net/ 11 | 12 | This program is free software; you can redistribute it and/or modify 13 | it under the terms of the GNU General Public License as published by 14 | the Free Software Foundation; either version 2 of the License, or 15 | (at your option) any later version. 16 | 17 | This program is distributed in the hope that it will be useful, 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | GNU General Public License for more details. 21 | 22 | You should have received a copy of the GNU General Public License 23 | along with this program; if not, visit http://www.fsf.org/ 24 | */ 25 | #ifndef GTK_SAT_MAP_POPUP_H 26 | #define GTK_SAT_MAP_POPUP_H 1 27 | 28 | #include 29 | 30 | #include "sgpsdp/sgp4sdp4.h" 31 | #include "gtk-sat-data.h" 32 | #include "gtk-sat-map.h" 33 | 34 | 35 | void gtk_sat_map_popup_exec(sat_t * sat, qth_t * qth, 36 | GtkSatMap * satmap, 37 | GdkEventButton * event, 38 | GtkWidget * toplevel); 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /src/gtk-sat-module-popup.h: -------------------------------------------------------------------------------- 1 | #ifndef __GTK_SAT_MODULE_POPUP_H__ 2 | #define __GTK_SAT_MODULE_POPUP_H__ 1 3 | 4 | void gtk_sat_module_popup(GtkSatModule * module); 5 | gboolean module_window_config_cb(GtkWidget *, GdkEventConfigure *, 6 | gpointer); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/gtk-sat-module-tmg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * NOTE: This file is an internal part of gtk-sat-module and should not 3 | * be used by other files than gtk-sat-module.c and gtk-sat-module-popup.c 4 | */ 5 | 6 | #ifndef __GTK_SAT_MODULE_TMG_H__ 7 | #define __GTK_SAT_MODULE_TMG_H__ 1 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | /* *INDENT-OFF* */ 14 | #ifdef __cplusplus 15 | extern "C" { 16 | #endif 17 | /* *INDENT-ON* */ 18 | 19 | void tmg_create(GtkSatModule * mod); 20 | void tmg_update_widgets(GtkSatModule * mod); 21 | void tmg_update_state(GtkSatModule * mod); 22 | 23 | /* *INDENT-OFF* */ 24 | #ifdef __cplusplus 25 | } 26 | #endif 27 | /* *INDENT-ON* */ 28 | 29 | #endif /* __GTK_SAT_MODULE_H__ */ 30 | -------------------------------------------------------------------------------- /src/gtk-sat-popup-common.h: -------------------------------------------------------------------------------- 1 | #ifndef __GTK_SAT_POPUP_COMMON_H__ 2 | #define __GTK_SAT_POPUP_COMMON_H__ 1 3 | 4 | #include "qth-data.h" 5 | #include "sgpsdp/sgp4sdp4.h" 6 | 7 | void add_pass_menu_items(GtkWidget * menu, sat_t * sat, 8 | qth_t * qth, gdouble * tstamp, 9 | GtkWidget * widget); 10 | void show_current_pass_cb(GtkWidget * menuitem, gpointer data); 11 | void show_next_pass_cb(GtkWidget * menuitem, gpointer data); 12 | void show_future_passes_cb(GtkWidget * menuitem, gpointer data); 13 | void show_next_pass_dialog(sat_t * sat, qth_t * qth, 14 | gdouble tstamp, GtkWindow * toplevel); 15 | void show_future_passes_dialog(sat_t * sat, qth_t * qth, 16 | gdouble tstamp, 17 | GtkWindow * toplevel); 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /src/gtk-sat-selector.h: -------------------------------------------------------------------------------- 1 | #ifndef __GTK_SAT_SELECTOR_H__ 2 | #define __GTK_SAT_SELECTOR_H__ 1 3 | 4 | #include 5 | 6 | /* *INDENT-OFF* */ 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | /* *INDENT-ON* */ 11 | 12 | 13 | /** Column definitions in the tree. */ 14 | typedef enum { 15 | GTK_SAT_SELECTOR_COL_NAME = 0, /*!< Satellite name. */ 16 | GTK_SAT_SELECTOR_COL_CATNUM, /*!< Catalogue Number. */ 17 | GTK_SAT_SELECTOR_COL_EPOCH, /*!< Element set epoch. */ 18 | GTK_SAT_SELECTOR_COL_SELECTED, /*!< Track whether element is selected. */ 19 | GTK_SAT_SELECTOR_COL_NUM /*!< The number of columns. */ 20 | } gtk_sat_selector_col_t; 21 | 22 | /** Flags used to indicate which columns should be visible. */ 23 | typedef enum { 24 | GTK_SAT_SELECTOR_FLAG_NAME = 1 << GTK_SAT_SELECTOR_COL_NAME, /*!< Satellite name. */ 25 | GTK_SAT_SELECTOR_FLAG_CATNUM = 1 << GTK_SAT_SELECTOR_COL_CATNUM, /*!< Catalogue Number. */ 26 | GTK_SAT_SELECTOR_FLAG_EPOCH = 1 << GTK_SAT_SELECTOR_COL_EPOCH, /*!< Element set epoch. */ 27 | GTK_SAT_SELECTOR_FLAG_SELECTED = 1 << GTK_SAT_SELECTOR_COL_SELECTED, /*!< Item selected or not. */ 28 | } gtk_sat_selector_flag_t; 29 | 30 | 31 | #define GTK_SAT_SELECTOR_DEFAULT_FLAGS (GTK_SAT_SELECTOR_FLAG_NAME | GTK_SAT_SELECTOR_FLAG_CATNUM) 32 | #define GTK_TYPE_SAT_SELECTOR (gtk_sat_selector_get_type ()) 33 | #define GTK_SAT_SELECTOR(obj) G_TYPE_CHECK_INSTANCE_CAST (obj,\ 34 | gtk_sat_selector_get_type (),\ 35 | GtkSatSelector) 36 | #define GTK_SAT_SELECTOR_CLASS(klass) G_TYPE_CHECK_CLASS_CAST (klass,\ 37 | gtk_sat_selector_get_type (),\ 38 | GtkSatSelectorClass) 39 | #define IS_GTK_SAT_SELECTOR(obj) G_TYPE_CHECK_INSTANCE_TYPE (obj, gtk_sat_selector_get_type ()) 40 | 41 | /** The GtkSatSelector structure */ 42 | typedef struct _gtk_sat_selector GtkSatSelector; 43 | typedef struct _GtkSatSelectorClass GtkSatSelectorClass; 44 | 45 | /** The GtkSatSelector Structure definition */ 46 | struct _gtk_sat_selector { 47 | GtkBox box; 48 | 49 | GtkWidget *tree; /*!< The tree. */ 50 | GtkWidget *swin; /*!< Scrolled window. */ 51 | guint flags; /*!< Column visibility flags. */ 52 | 53 | GtkWidget *groups; /*!< Combo box for selecting satellite group. */ 54 | GtkWidget *search; /*!< Text entry for searching. */ 55 | GSList *models; /*!< List of models with index corresponding to groups. */ 56 | }; 57 | 58 | struct _GtkSatSelectorClass { 59 | GtkVBoxClass parent_class; 60 | 61 | void (*gtksatselector) (GtkSatSelector * sel); 62 | }; 63 | 64 | GType gtk_sat_selector_get_type(void); 65 | GtkWidget *gtk_sat_selector_new(guint flags); 66 | guint32 gtk_sat_selector_get_flags(GtkSatSelector * selector); 67 | void gtk_sat_selector_get_selected(GtkSatSelector * selector, 68 | gint * catnum, gchar ** satname, 69 | gdouble * epoch); 70 | gdouble gtk_sat_selector_get_latest_epoch(GtkSatSelector * selector); 71 | void gtk_sat_selector_mark_selected(GtkSatSelector * selector, 72 | gint catnum); 73 | void gtk_sat_selector_mark_unselected(GtkSatSelector * selector, 74 | gint catnum); 75 | 76 | /* *INDENT-OFF* */ 77 | #ifdef __cplusplus 78 | } 79 | #endif 80 | /* *INDENT-ON* */ 81 | 82 | #endif 83 | -------------------------------------------------------------------------------- /src/gui.c: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2017 Alexandru Csete, OZ9AEC. 5 | 6 | Comments, questions and bugreports should be submitted via 7 | http://sourceforge.net/projects/gpredict/ 8 | More details can be found at the project home page: 9 | 10 | http://gpredict.oz9aec.net/ 11 | 12 | This program is free software; you can redistribute it and/or modify 13 | it under the terms of the GNU General Public License as published by 14 | the Free Software Foundation; either version 2 of the License, or 15 | (at your option) any later version. 16 | 17 | This program is distributed in the hope that it will be useful, 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | GNU General Public License for more details. 21 | 22 | You should have received a copy of the GNU General Public License 23 | along with this program; if not, visit http://www.fsf.org/ 24 | */ 25 | #ifdef HAVE_CONFIG_H 26 | # include 27 | #endif 28 | #include 29 | #include 30 | 31 | #include "compat.h" 32 | #include "gui.h" 33 | #include "menubar.h" 34 | #include "mod-mgr.h" 35 | 36 | GtkWidget *gui_create(GtkWidget *window) 37 | { 38 | GtkWidget *vbox; 39 | 40 | vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); 41 | gtk_box_pack_start(GTK_BOX(vbox), menubar_create(window), FALSE, FALSE, 1); 42 | gtk_box_pack_start(GTK_BOX(vbox), mod_mgr_create(), TRUE, TRUE, 0); 43 | 44 | return vbox; 45 | } 46 | -------------------------------------------------------------------------------- /src/gui.h: -------------------------------------------------------------------------------- 1 | #ifndef GUI_H 2 | #define GUI_H 1 3 | 4 | #include 5 | 6 | GtkWidget *gui_create(GtkWidget *window); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/loc-tree.h: -------------------------------------------------------------------------------- 1 | #ifndef LOC_TREE_H 2 | #define LOC_TREE_H 1 3 | 4 | /** Tree column definitions */ 5 | typedef enum { 6 | TREE_COL_NAM = 0, /*!< Location name column. */ 7 | TREE_COL_LAT, /*!< Location latitude column. */ 8 | TREE_COL_LON, /*!< Location longitude column. */ 9 | TREE_COL_ALT, /*!< Location altitude column. */ 10 | TREE_COL_WX, /*!< Weather station column. */ 11 | TREE_COL_SELECT, /*!< Invisible colindicating whether row may be selected */ 12 | TREE_COL_NUM /*!< The total number of columns. */ 13 | } loc_tree_col_t; 14 | 15 | 16 | /** Column flags */ 17 | typedef enum { 18 | TREE_COL_FLAG_NAME = 1 << TREE_COL_NAM, /*!< Location name column. */ 19 | TREE_COL_FLAG_LAT = 1 << TREE_COL_LAT, /*!< Location latitude column. */ 20 | TREE_COL_FLAG_LON = 1 << TREE_COL_LON, /*!< Location longitude column. */ 21 | TREE_COL_FLAG_ALT = 1 << TREE_COL_ALT, /*!< Location altitude column. */ 22 | TREE_COL_FLAG_WX = 1 << TREE_COL_WX /*!< Weather station column. */ 23 | } loc_tree_col_flag_t; 24 | 25 | 26 | 27 | gboolean loc_tree_create(const gchar * fname, 28 | guint flags, 29 | gchar ** loc, 30 | gfloat * lat, 31 | gfloat * lon, guint * alt, gchar ** wx); 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /src/locator.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 | /* 3 | Gpredict: Real-time satellite tracking and orbit prediction program 4 | 5 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 6 | 7 | Authors: Alexandru Csete 8 | 9 | 10 | Comments, questions and bugreports should be submitted via 11 | http://sourceforge.net/projects/gpredict/ 12 | More details can be found at the project home page: 13 | 14 | http://gpredict.oz9aec.net/ 15 | 16 | This program is free software; you can redistribute it and/or modify 17 | it under the terms of the GNU General Public License as published by 18 | the Free Software Foundation; either version 2 of the License, or 19 | (at your option) any later version. 20 | 21 | This program is distributed in the hope that it will be useful, 22 | but WITHOUT ANY WARRANTY; without even the implied warranty of 23 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 24 | GNU General Public License for more details. 25 | 26 | You should have received a copy of the GNU General Public License 27 | along with this program; if not, visit http://www.fsf.org/ 28 | */ 29 | #ifndef LOCATOR_H 30 | #define LOCATOR_H 1 31 | 32 | #define RIG_OK 0 33 | #define RIG_EINVAL 1 34 | 35 | 36 | int qrb (double lon1, double lat1, double lon2, double lat2, 37 | double *distance, double *azimuth); 38 | 39 | double distance_long_path (double distance); 40 | 41 | double azimuth_long_path (double azimuth); 42 | 43 | int longlat2locator (double longitude, double latitude, 44 | char *locator, int pair_count); 45 | 46 | int locator2longlat (double *longitude, double *latitude, 47 | const char *locator); 48 | 49 | double dms2dec (int degrees, int minutes, double seconds, int sw); 50 | 51 | int dec2dms (double dec, 52 | int *degrees, int *minutes, double *seconds, int *sw); 53 | 54 | int dec2dmmm (double dec, int *degrees, double *minutes, int *sw); 55 | 56 | double dmmm2dec (int degrees, double minutes, int sw); 57 | 58 | 59 | #endif 60 | -------------------------------------------------------------------------------- /src/map-selector.h: -------------------------------------------------------------------------------- 1 | #ifndef MAP_SELECTOR_H 2 | #define MAP_SELECTOR_H 1 3 | 4 | gchar *select_map(const gchar * curmap); 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /src/map-tools.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 | /* 3 | Gpredict: Real-time satellite tracking and orbit prediction program 4 | 5 | Copyright (C) 2013 Alexandru Csete, OZ9AEC. 6 | 7 | Authors: Alexandru Csete 8 | 9 | Comments, questions and bugreports should be submitted via 10 | http://sourceforge.net/projects/gpredict/ 11 | More details can be found at the project home page: 12 | 13 | http://gpredict.oz9aec.net/ 14 | 15 | This program is free software; you can redistribute it and/or modify 16 | it under the terms of the GNU General Public License as published by 17 | the Free Software Foundation; either version 2 of the License, or 18 | (at your option) any later version. 19 | 20 | This program is distributed in the hope that it will be useful, 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | GNU General Public License for more details. 24 | 25 | You should have received a copy of the GNU General Public License 26 | along with this program; if not, visit http://www.fsf.org/ 27 | */ 28 | #include 29 | #ifdef HAVE_CONFIG_H 30 | # include 31 | #endif 32 | 33 | 34 | void map_tools_shift_center(GdkPixbuf *in, GdkPixbuf *out, float clon); 35 | -------------------------------------------------------------------------------- /src/menubar.h: -------------------------------------------------------------------------------- 1 | #ifndef MENUBAR_H 2 | #define MENUBAR_H 1 3 | 4 | GtkWidget *menubar_create(GtkWidget * window); 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /src/mod-cfg-get-param.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 5 | 6 | Authors: Alexandru Csete 7 | 8 | Comments, questions and bugreports should be submitted via 9 | http://sourceforge.net/projects/gpredict/ 10 | More details can be found at the project home page: 11 | 12 | http://gpredict.oz9aec.net/ 13 | 14 | This program is free software; you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation; either version 2 of the License, or 17 | (at your option) any later version. 18 | 19 | This program is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program; if not, visit http://www.fsf.org/ 26 | */ 27 | #ifndef MOD_CFG_GET_PARAM_H 28 | #define MOD_CFG_GET_PARAM_H 1 29 | 30 | #include "sat-cfg.h" 31 | 32 | gboolean mod_cfg_get_bool(GKeyFile * f, const gchar * sec, 33 | const gchar * key, sat_cfg_bool_e p); 34 | gint mod_cfg_get_int(GKeyFile * f, const gchar * sec, 35 | const gchar * key, sat_cfg_int_e p); 36 | gchar *mod_cfg_get_str(GKeyFile * f, const gchar * sec, 37 | const gchar * key, sat_cfg_str_e p); 38 | void mod_cfg_get_integer_list_boolean(GKeyFile * cfgdata, 39 | const gchar * section, 40 | const gchar * key, 41 | GHashTable * dest); 42 | void mod_cfg_set_integer_list_boolean(GKeyFile * cfgdata, 43 | GHashTable * hash, 44 | const gchar * cfgsection, 45 | const gchar * cfgkey); 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /src/mod-cfg.h: -------------------------------------------------------------------------------- 1 | #ifndef MOD_CFG_H 2 | #define MOD_CFG_H 1 3 | 4 | #include 5 | 6 | typedef enum { 7 | MOD_CFG_OK = 0, 8 | MOD_CFG_CANCEL, 9 | MOD_CFG_ERROR 10 | } mod_cfg_status_t; 11 | 12 | gchar *mod_cfg_new(void); 13 | mod_cfg_status_t mod_cfg_edit(gchar * modname, GKeyFile * cfgdata, 14 | GtkWidget * toplevel); 15 | mod_cfg_status_t mod_cfg_save(gchar * modname, GKeyFile * cfgdata); 16 | mod_cfg_status_t mod_cfg_delete(gchar * modname, gboolean needcfm); 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /src/mod-mgr.h: -------------------------------------------------------------------------------- 1 | #ifndef MOD_MGR_H 2 | #define MOD_MGR_H 1 3 | 4 | GtkWidget *mod_mgr_create(void); 5 | gint mod_mgr_add_module(GtkWidget * module, gboolean dock); 6 | gint mod_mgr_remove_module(GtkWidget * module); 7 | void mod_mgr_save_state(void); 8 | gboolean mod_mgr_mod_is_visible(GtkWidget * module); 9 | gint mod_mgr_dock_module(GtkWidget * module); 10 | gint mod_mgr_undock_module(GtkWidget * module); 11 | void mod_mgr_reload_sats(void); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /src/nxjson/nxjson.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013 Yaroslav Stavnichiy 3 | * 4 | * This file is part of NXJSON. 5 | * 6 | * NXJSON is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General Public License 8 | * as published by the Free Software Foundation, either version 3 9 | * of the License, or (at your option) any later version. 10 | * 11 | * NXJSON 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 Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with NXJSON. If not, see . 18 | */ 19 | 20 | #ifndef NXJSON_H 21 | #define NXJSON_H 22 | 23 | #ifdef __cplusplus 24 | extern "C" { 25 | #endif 26 | 27 | 28 | typedef enum nx_json_type { 29 | NX_JSON_NULL, // this is null value 30 | NX_JSON_OBJECT, // this is an object; properties can be found in child nodes 31 | NX_JSON_ARRAY, // this is an array; items can be found in child nodes 32 | NX_JSON_STRING, // this is a string; value can be found in text_value field 33 | NX_JSON_INTEGER, // this is an integer; value can be found in int_value field 34 | NX_JSON_DOUBLE, // this is a double; value can be found in dbl_value field 35 | NX_JSON_BOOL // this is a boolean; value can be found in int_value field 36 | } nx_json_type; 37 | 38 | typedef struct nx_json { 39 | nx_json_type type; // type of json node, see above 40 | const char* key; // key of the property; for object's children only 41 | const char* text_value; // text value of STRING node 42 | long long int_value; // the value of INTEGER or BOOL node 43 | double dbl_value; // the value of DOUBLE node 44 | int length; // number of children of OBJECT or ARRAY 45 | struct nx_json* child; // points to first child 46 | struct nx_json* next; // points to next child 47 | struct nx_json* last_child; 48 | } nx_json; 49 | 50 | typedef int (*nx_json_unicode_encoder)(unsigned int codepoint, char* p, char** endp); 51 | 52 | extern nx_json_unicode_encoder nx_json_unicode_to_utf8; 53 | 54 | const nx_json* nx_json_parse(char* text, nx_json_unicode_encoder encoder); 55 | const nx_json* nx_json_parse_utf8(char* text); 56 | void nx_json_free(const nx_json* js); 57 | const nx_json* nx_json_get(const nx_json* json, const char* key); // get object's property by key 58 | const nx_json* nx_json_item(const nx_json* json, int idx); // get array element by index 59 | 60 | 61 | #ifdef __cplusplus 62 | } 63 | #endif 64 | 65 | #endif /* NXJSON_H */ 66 | -------------------------------------------------------------------------------- /src/orbit-tools.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 | /* 3 | Gpredict: Real-time satellite tracking and orbit prediction program 4 | 5 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 6 | 7 | Authors: Alexandru Csete 8 | 9 | Comments, questions and bugreports should be submitted via 10 | http://sourceforge.net/projects/gpredict/ 11 | More details can be found at the project home page: 12 | 13 | http://gpredict.oz9aec.net/ 14 | 15 | This program is free software; you can redistribute it and/or modify 16 | it under the terms of the GNU General Public License as published by 17 | the Free Software Foundation; either version 2 of the License, or 18 | (at your option) any later version. 19 | 20 | This program is distributed in the hope that it will be useful, 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | GNU General Public License for more details. 24 | 25 | You should have received a copy of the GNU General Public License 26 | along with this program; if not, visit http://www.fsf.org/ 27 | */ 28 | #ifndef ORBIT_TOOLS_H 29 | #define ORBIT_TOOLS_H 1 30 | 31 | #include 32 | #include "sgpsdp/sgp4sdp4.h" 33 | #include "gtk-sat-data.h" 34 | 35 | orbit_type_t get_orbit_type (sat_t *sat); 36 | gboolean geostationary (sat_t *sat); 37 | gboolean decayed (sat_t *sat); 38 | gboolean has_aos (sat_t *sat, qth_t *qth); 39 | 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /src/pass-popup-menu.h: -------------------------------------------------------------------------------- 1 | #ifndef PASS_POPUP_MENU_H 2 | #define PASS_POPUP_MENU_H 1 3 | 4 | #include 5 | 6 | #include "gtk-sat-data.h" 7 | #include "predict-tools.h" 8 | #include "sgpsdp/sgp4sdp4.h" 9 | 10 | void pass_popup_menu_exec(qth_t * qth, pass_t * pass, 11 | GdkEventButton * event, 12 | GtkWidget * toplevel); 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /src/pass-to-txt.h: -------------------------------------------------------------------------------- 1 | #ifndef PASS_TO_TXT_H 2 | #define PASS_TO_TXT_H 1 3 | 4 | #include 5 | #include "sat-pass-dialogs.h" 6 | #include "predict-tools.h" 7 | #include "gtk-sat-data.h" 8 | 9 | 10 | gchar *pass_to_txt_pgheader(pass_t * pass, qth_t * qth, gint fields); 11 | gchar *pass_to_txt_tblheader(pass_t * pass, qth_t * qth, gint fields); 12 | gchar *pass_to_txt_tblcontents(pass_t * pass, qth_t * qth, 13 | gint fields); 14 | 15 | gchar *passes_to_txt_pgheader(GSList * passes, qth_t * qth, 16 | gint fields); 17 | gchar *passes_to_txt_tblheader(GSList * passes, qth_t * qth, 18 | gint fields); 19 | gchar *passes_to_txt_tblcontents(GSList * passes, qth_t * qth, 20 | gint fields); 21 | 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /src/print-pass.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 | /* 3 | Gpredict: Real-time satellite tracking and orbit prediction program 4 | 5 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 6 | 7 | Authors: Alexandru Csete 8 | 9 | Comments, questions and bugreports should be submitted via 10 | http://sourceforge.net/projects/gpredict/ 11 | More details can be found at the project home page: 12 | 13 | http://gpredict.oz9aec.net/ 14 | 15 | This program is free software; you can redistribute it and/or modify 16 | it under the terms of the GNU General Public License as published by 17 | the Free Software Foundation; either version 2 of the License, or 18 | (at your option) any later version. 19 | 20 | This program is distributed in the hope that it will be useful, 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | GNU General Public License for more details. 24 | 25 | You should have received a copy of the GNU General Public License 26 | along with this program; if not, visit http://www.fsf.org/ 27 | */ 28 | #ifndef PRINT_PASS_H 29 | #define PRINT_PASS_H 1 30 | 31 | #include 32 | #include "sat-pass-dialogs.h" 33 | #include "predict-tools.h" 34 | #include "gtk-sat-data.h" 35 | 36 | 37 | void print_pass (pass_t *pass, qth_t *qth, GtkWindow *parent); 38 | void print_passes (GSList *passes); 39 | 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /src/qth-data.h: -------------------------------------------------------------------------------- 1 | #ifndef __QTH_DATA_H__ 2 | #define __QTH_DATA_H__ 1 3 | 4 | #include 5 | #include "sgpsdp/sgp4sdp4.h" 6 | 7 | /** QTH data structure in human readable form. */ 8 | typedef struct { 9 | gchar *name; /*!< Name, eg. callsign. */ 10 | gchar *loc; /*!< Location, eg City, Country. */ 11 | gchar *desc; /*!< Short description. */ 12 | gdouble lat; /*!< Latitude in dec. deg. North. */ 13 | gdouble lon; /*!< Longitude in dec. deg. East. */ 14 | gint alt; /*!< Altitude above sea level in meters. */ 15 | gchar *qra; /*!< QRA locator */ 16 | gchar *wx; /*!< Weather station code (4 chars). */ 17 | gint type; /*!< QTH type (static,gpsd). */ 18 | gchar *gpsd_server; /*!< GPSD Server name. */ 19 | gint gpsd_port; /*!< GPSD Server port. */ 20 | gdouble gpsd_update; /*!< Time last GPSD update was received. */ 21 | gdouble gpsd_connected; /*!< Time last GPSD update was last attempted to connect. */ 22 | struct gps_data_t *gps_data; /*!< gpsd data structure. */ 23 | GKeyFile *data; /*!< Raw data from cfg file. */ 24 | } qth_t; 25 | 26 | /** Compact QTH data structure for tagging data and comparing. */ 27 | typedef struct { 28 | gdouble lat; /*!< Latitude in dec. deg. North. */ 29 | gdouble lon; /*!< Longitude in dec. deg. East. */ 30 | gint alt; /*!< Altitude above sea level in meters. */ 31 | } qth_small_t; 32 | 33 | typedef enum { 34 | QTH_STATIC_TYPE = 0, 35 | QTH_GPSD_TYPE 36 | } qth_data_type; 37 | 38 | 39 | gint qth_data_read(const gchar * filename, qth_t * qth); 40 | gint qth_data_save(const gchar * filename, qth_t * qth); 41 | void qth_data_free(qth_t * qth); 42 | gboolean qth_data_update(qth_t * qth, gdouble t); 43 | gboolean qth_data_update_init(qth_t * qth); 44 | void qth_data_update_stop(qth_t * qth); 45 | double qth_small_dist(qth_t * qth, qth_small_t qth_small); 46 | void qth_small_save(qth_t * qth, qth_small_t * qth_small); 47 | void qth_init(qth_t * qth); 48 | void qth_safe(qth_t * qth); 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /src/qth-editor.h: -------------------------------------------------------------------------------- 1 | #ifndef QTH_EDITOR_H 2 | #define QTH_EDITOR_H 1 3 | 4 | #include 5 | #include "gtk-sat-data.h" 6 | #include "qth-data.h" 7 | 8 | GtkResponseType qth_editor_run(qth_t * qth, GtkWindow * parent); 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /src/radio-conf.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2015 Alexandru Csete. 5 | 6 | Authors: Alexandru Csete 7 | 8 | Comments, questions and bugreports should be submitted via 9 | http://sourceforge.net/projects/gpredict/ 10 | More details can be found at the project home page: 11 | 12 | http://gpredict.oz9aec.net/ 13 | 14 | This program is free software; you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation; either version 2 of the License, or 17 | (at your option) any later version. 18 | 19 | This program is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program; if not, visit http://www.fsf.org/ 26 | 27 | 28 | */ 29 | #ifndef RADIO_CONF_H 30 | #define RADIO_CONF_H 1 31 | 32 | #include 33 | 34 | 35 | /** \brief Radio types. */ 36 | typedef enum { 37 | RIG_TYPE_RX = 0, /*!< Rig can only be used as receiver */ 38 | RIG_TYPE_TX, /*!< Rig can only be used as transmitter */ 39 | RIG_TYPE_TRX, /*!< Rig can be used as RX/TX (half-duplex only) */ 40 | RIG_TYPE_DUPLEX, /*!< Rig is a full duplex radio, e.g. IC910 */ 41 | RIG_TYPE_TOGGLE_AUTO, /*!< Special mode for FT-817, 857 and 897 using auto T/R switch */ 42 | RIG_TYPE_TOGGLE_MAN /*!< Special mode for FT-817, 857 and 897 using manual T/R switch */ 43 | } rig_type_t; 44 | 45 | typedef enum { 46 | PTT_TYPE_NONE = 0, /*!< Don't read PTT */ 47 | PTT_TYPE_CAT, /*!< Read PTT using get_ptt CAT command */ 48 | PTT_TYPE_DCD /*!< Read PTT using get_dcd */ 49 | } ptt_type_t; 50 | 51 | typedef enum { 52 | VFO_NONE = 0, 53 | VFO_A, 54 | VFO_B, 55 | VFO_MAIN, 56 | VFO_SUB 57 | } vfo_t; 58 | 59 | /** \brief Radio configuration. */ 60 | typedef struct { 61 | gchar *name; /*!< Configuration file name, without .rig. */ 62 | gchar *host; /*!< hostname or IP */ 63 | gint port; /*!< port number */ 64 | gint cycle; /*!< cycle period in msec */ 65 | gdouble lo; /*!< local oscillator freq in Hz (using double for 66 | compatibility with rest of code). Downlink. */ 67 | gdouble loup; /*!< local oscillator freq in Hz for uplink. */ 68 | rig_type_t type; /*!< Radio type */ 69 | ptt_type_t ptt; /*!< PTT type (needed for RX, TX, and TRX) */ 70 | vfo_t vfoDown; /*!< Downlink VFO for full-duplex radios */ 71 | vfo_t vfoUp; /*!< Uplink VFO for full-duplex radios */ 72 | 73 | gboolean signal_aos; /*!< Send AOS notification to RIG */ 74 | gboolean signal_los; /*!< Send LOS notification to RIG */ 75 | 76 | gint vfo_opt; /*!< Keep track of vfo_opt being enabled in rigctld */ 77 | } radio_conf_t; 78 | 79 | 80 | gboolean radio_conf_read(radio_conf_t * conf); 81 | void radio_conf_save(radio_conf_t * conf); 82 | 83 | 84 | #endif 85 | -------------------------------------------------------------------------------- /src/rotor-conf.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 | /* 3 | Gpredict: Real-time satellite tracking and orbit prediction program 4 | 5 | Copyright (C) 2001-2009 Alexandru Csete. 6 | 7 | Authors: Alexandru Csete 8 | 9 | Comments, questions and bugreports should be submitted via 10 | http://sourceforge.net/projects/gpredict/ 11 | More details can be found at the project home page: 12 | 13 | http://gpredict.oz9aec.net/ 14 | 15 | This program is free software; you can redistribute it and/or modify 16 | it under the terms of the GNU General Public License as published by 17 | the Free Software Foundation; either version 2 of the License, or 18 | (at your option) any later version. 19 | 20 | This program is distributed in the hope that it will be useful, 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | GNU General Public License for more details. 24 | 25 | You should have received a copy of the GNU General Public License 26 | along with this program; if not, visit http://www.fsf.org/ 27 | 28 | 29 | */ 30 | #ifndef ROTOR_CONF_H 31 | #define ROTOR_CONF_H 1 32 | 33 | #include 34 | 35 | 36 | typedef enum { 37 | ROT_AZ_TYPE_360 = 0, /*!< Azimuth in range 0..360 */ 38 | ROT_AZ_TYPE_180 = 1 /*!< Azimuth in range -180..+180 */ 39 | } rot_az_type_t; 40 | 41 | /** \brief Rotator configuration. */ 42 | typedef struct { 43 | gchar *name; /*!< Configuration file name, less .rot */ 44 | gchar *host; /*!< hostname */ 45 | gint port; /*!< port number */ 46 | gint cycle; /*!< cycle period in msec */ 47 | rot_az_type_t aztype; /*!< Az type */ 48 | gdouble minaz; /*!< Lower azimuth limit */ 49 | gdouble maxaz; /*!< Upper azimuth limit */ 50 | gdouble minel; /*!< Lower elevation limit */ 51 | gdouble maxel; /*!< Upper elevation limit */ 52 | gdouble azstoppos; /*!< absolute position of rotation stops; normally = minaz */ 53 | gdouble threshold; /*!< Angle difference that triggers new motion command */ 54 | } rotor_conf_t; 55 | 56 | 57 | gboolean rotor_conf_read(rotor_conf_t * conf); 58 | void rotor_conf_save(rotor_conf_t * conf); 59 | 60 | #endif 61 | -------------------------------------------------------------------------------- /src/sat-info.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_INFO_H 2 | #define SAT_INFO_H 1 3 | 4 | #include 5 | 6 | #include "gtk-sat-data.h" 7 | #include "sgpsdp/sgp4sdp4.h" 8 | 9 | 10 | void show_sat_info_menu_cb(GtkWidget * menuitem, gpointer data); 11 | void show_sat_info(sat_t * sat, gpointer data); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /src/sat-log-browser.h: -------------------------------------------------------------------------------- 1 | /* log file browser */ 2 | #ifndef SAT_LOG_BROWSER_H 3 | #define SAT_LOG_BROWSER_H 1 4 | 5 | void sat_log_browser_open(void); 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /src/sat-log.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2017 Alexandru Csete, OZ9AEC. 5 | 6 | Comments, questions and bugreports should be submitted via 7 | http://sourceforge.net/projects/gpredict/ 8 | More details can be found at the project home page: 9 | 10 | http://gpredict.oz9aec.net/ 11 | 12 | This program is free software; you can redistribute it and/or modify 13 | it under the terms of the GNU General Public License as published by 14 | the Free Software Foundation; either version 2 of the License, or 15 | (at your option) any later version. 16 | 17 | This program is distributed in the hope that it will be useful, 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | GNU General Public License for more details. 21 | 22 | You should have received a copy of the GNU General Public License 23 | along with this program; if not, visit http://www.fsf.org/ 24 | */ 25 | #ifndef SAT_LOG_H 26 | #define SAT_LOG_H 1 27 | 28 | #include 29 | 30 | #define SAT_LOG_MSG_SEPARATOR "|" 31 | 32 | typedef enum { 33 | SAT_LOG_LEVEL_NONE = 0, 34 | SAT_LOG_LEVEL_ERROR = 1, 35 | SAT_LOG_LEVEL_WARN = 2, 36 | SAT_LOG_LEVEL_INFO = 3, 37 | SAT_LOG_LEVEL_DEBUG = 4 38 | } sat_log_level_t; 39 | 40 | void sat_log_init(void); 41 | void sat_log_close(void); 42 | void sat_log_log(sat_log_level_t level, const char *fmt, ...); 43 | void sat_log_set_visible(gboolean visible); 44 | void sat_log_set_level(sat_log_level_t level); 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /src/sat-monitor.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 | /* 3 | Gpredict: Real-time satellite tracking and orbit prediction program 4 | 5 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 6 | 7 | Authors: Alexandru Csete 8 | 9 | Comments, questions and bugreports should be submitted via 10 | http://sourceforge.net/projects/gpredict/ 11 | More details can be found at the project home page: 12 | 13 | http://gpredict.oz9aec.net/ 14 | 15 | This program is free software; you can redistribute it and/or modify 16 | it under the terms of the GNU General Public License as published by 17 | the Free Software Foundation; either version 2 of the License, or 18 | (at your option) any later version. 19 | 20 | This program is distributed in the hope that it will be useful, 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | GNU General Public License for more details. 24 | 25 | You should have received a copy of the GNU General Public License 26 | along with this program; if not, visit http://www.fsf.org/ 27 | */ 28 | /** \defgroup satmon Monitor satellites. 29 | */ 30 | #include 31 | #include 32 | #ifdef HAVE_CONFIG_H 33 | # include 34 | #endif 35 | #include "sat-monitor.h" 36 | -------------------------------------------------------------------------------- /src/sat-monitor.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 | /* 3 | Gpredict: Real-time satellite tracking and orbit prediction program 4 | 5 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 6 | 7 | Authors: Alexandru Csete 8 | 9 | Comments, questions and bugreports should be submitted via 10 | http://sourceforge.net/projects/gpredict/ 11 | More details can be found at the project home page: 12 | 13 | http://gpredict.oz9aec.net/ 14 | 15 | This program is free software; you can redistribute it and/or modify 16 | it under the terms of the GNU General Public License as published by 17 | the Free Software Foundation; either version 2 of the License, or 18 | (at your option) any later version. 19 | 20 | This program is distributed in the hope that it will be useful, 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | GNU General Public License for more details. 24 | 25 | You should have received a copy of the GNU General Public License 26 | along with this program; if not, visit http://www.fsf.org/ 27 | */ 28 | #ifndef SAT_MONITOR_H 29 | #define SAT_MONITOR_H 1 30 | 31 | #endif 32 | 33 | -------------------------------------------------------------------------------- /src/sat-pref-conditions.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_CONDITIONS_H 2 | #define SAT_PREF_CONDITIONS_H 1 3 | 4 | GtkWidget *sat_pref_conditions_create(void); 5 | void sat_pref_conditions_cancel(void); 6 | void sat_pref_conditions_ok(void); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-debug.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_DEBUG_H 2 | #define SAT_PREF_DEBUG_H 1 3 | 4 | GtkWidget *sat_pref_debug_create(void); 5 | void sat_pref_debug_cancel(void); 6 | void sat_pref_debug_ok(void); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-formats.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_FORMATS_H 2 | #define SAT_PREF_FORMATS_H 1 3 | 4 | GtkWidget *sat_pref_formats_create(void); 5 | void sat_pref_formats_cancel(void); 6 | void sat_pref_formats_ok(void); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-general.c: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2017 Alexandru Csete, OZ9AEC. 5 | 6 | Comments, questions and bugreports should be submitted via 7 | http://sourceforge.net/projects/gpredict/ 8 | More details can be found at the project home page: 9 | 10 | http://gpredict.oz9aec.net/ 11 | 12 | This program is free software; you can redistribute it and/or modify 13 | it under the terms of the GNU General Public License as published by 14 | the Free Software Foundation; either version 2 of the License, or 15 | (at your option) any later version. 16 | 17 | This program is distributed in the hope that it will be useful, 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | GNU General Public License for more details. 21 | 22 | You should have received a copy of the GNU General Public License 23 | along with this program; if not, visit http://www.fsf.org/ 24 | */ 25 | #ifdef HAVE_CONFIG_H 26 | #include 27 | #endif 28 | #include 29 | #include 30 | 31 | #include "sat-pref-debug.h" 32 | #include "sat-pref-formats.h" 33 | #include "sat-pref-general.h" 34 | #include "sat-pref-qth.h" 35 | #include "sat-pref-tle.h" 36 | 37 | /** 38 | * Create and initialise widgets for the general prefs tab. 39 | * 40 | * The widgets must be preloaded with values from config. If a config value 41 | * is NULL, sensible default values, eg. those from defaults.h should 42 | * be loaded. 43 | */ 44 | GtkWidget *sat_pref_general_create() 45 | { 46 | GtkWidget *nbook; 47 | 48 | nbook = gtk_notebook_new(); 49 | 50 | gtk_notebook_append_page(GTK_NOTEBOOK(nbook), 51 | sat_pref_formats_create(), 52 | gtk_label_new(_("Number Formats"))); 53 | gtk_notebook_append_page(GTK_NOTEBOOK(nbook), 54 | sat_pref_qth_create(), 55 | gtk_label_new(_("Ground Stations"))); 56 | gtk_notebook_append_page(GTK_NOTEBOOK(nbook), 57 | sat_pref_tle_create(), 58 | gtk_label_new(_("TLE Update"))); 59 | gtk_notebook_append_page(GTK_NOTEBOOK(nbook), 60 | sat_pref_debug_create(), 61 | gtk_label_new(_("Message Logs"))); 62 | 63 | return nbook; 64 | } 65 | 66 | /** User pressed cancel. Any changes to config must be cancelled. */ 67 | void sat_pref_general_cancel() 68 | { 69 | sat_pref_formats_cancel(); 70 | sat_pref_qth_cancel(); 71 | sat_pref_tle_cancel(); 72 | sat_pref_debug_cancel(); 73 | } 74 | 75 | /** User pressed OK. Any changes should be stored in config. */ 76 | void sat_pref_general_ok() 77 | { 78 | sat_pref_formats_ok(); 79 | sat_pref_qth_ok(); 80 | sat_pref_tle_ok(); 81 | sat_pref_debug_ok(); 82 | } 83 | -------------------------------------------------------------------------------- /src/sat-pref-general.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_GENERAL_H 2 | #define SAT_PREF_GENERAL_H 1 3 | 4 | GtkWidget *sat_pref_general_create(void); 5 | void sat_pref_general_cancel(void); 6 | void sat_pref_general_ok(void); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-interfaces.c: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2015 Alexandru Csete, OZ9AEC. 5 | 6 | Authors: Alexandru Csete 7 | 8 | Comments, questions and bugreports should be submitted via 9 | http://sourceforge.net/projects/gpredict/ 10 | More details can be found at the project home page: 11 | 12 | http://gpredict.oz9aec.net/ 13 | 14 | This program is free software; you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation; either version 2 of the License, or 17 | (at your option) any later version. 18 | 19 | This program is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program; if not, visit http://www.fsf.org/ 26 | */ 27 | #ifdef HAVE_CONFIG_H 28 | #include 29 | #endif 30 | #include 31 | #include 32 | 33 | #include "sat-cfg.h" 34 | #include "sat-pref-interfaces.h" 35 | #include "sat-pref-rig.h" 36 | #include "sat-pref-rot.h" 37 | 38 | /** 39 | * Create and initialise widgets for the hardware interfaces prefs tab. 40 | * 41 | * The widgets must be preloaded with values from config. If a config value 42 | * is NULL, sensible default values, eg. those from defaults.h should 43 | * be loaded. 44 | */ 45 | GtkWidget *sat_pref_interfaces_create() 46 | { 47 | GtkWidget *nbook; 48 | 49 | nbook = gtk_notebook_new(); 50 | 51 | gtk_notebook_append_page(GTK_NOTEBOOK(nbook), 52 | sat_pref_rig_create(), 53 | gtk_label_new(_("Radios"))); 54 | gtk_notebook_append_page(GTK_NOTEBOOK(nbook), 55 | sat_pref_rot_create(), 56 | gtk_label_new(_("Rotators"))); 57 | 58 | return nbook; 59 | } 60 | 61 | /** User pressed cancel. Any changes to config must be cancelled. */ 62 | void sat_pref_interfaces_cancel() 63 | { 64 | sat_pref_rig_cancel(); 65 | sat_pref_rot_cancel(); 66 | } 67 | 68 | /** User pressed OK. Any changes should be stored in config. */ 69 | void sat_pref_interfaces_ok() 70 | { 71 | sat_pref_rig_ok(); 72 | sat_pref_rot_ok(); 73 | } 74 | -------------------------------------------------------------------------------- /src/sat-pref-interfaces.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2015 Alexandru Csete, OZ9AEC. 5 | 6 | Authors: Alexandru Csete 7 | 8 | Comments, questions and bugreports should be submitted via 9 | http://sourceforge.net/projects/gpredict/ 10 | More details can be found at the project home page: 11 | 12 | http://gpredict.oz9aec.net/ 13 | 14 | This program is free software; you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation; either version 2 of the License, or 17 | (at your option) any later version. 18 | 19 | This program is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program; if not, visit http://www.fsf.org/ 26 | */ 27 | #ifndef SAT_PREF_INTERFACES_H 28 | #define SAT_PREF_INTERFACES_H 1 29 | 30 | GtkWidget *sat_pref_interfaces_create(void); 31 | void sat_pref_interfaces_cancel(void); 32 | void sat_pref_interfaces_ok(void); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/sat-pref-layout.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_LAYOUT_H 2 | #define SAT_PREF_LAYOUT_H 1 3 | 4 | GtkWidget *sat_pref_layout_create(GKeyFile * cfg); 5 | void sat_pref_layout_cancel(GKeyFile * cfg); 6 | void sat_pref_layout_ok(GKeyFile * cfg); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-list-view.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_LIST_VIEW_H 2 | #define SAT_PREF_LIST_VIEW_H 1 3 | 4 | GtkWidget *sat_pref_list_view_create(GKeyFile * cfg); 5 | void sat_pref_list_view_cancel(GKeyFile * cfg); 6 | void sat_pref_list_view_ok(GKeyFile * cfg); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-map-view.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_MAP_VIEW_H 2 | #define SAT_PREF_MAP_VIEW_H 1 3 | 4 | GtkWidget *sat_pref_map_view_create(GKeyFile * cfg); 5 | void sat_pref_map_view_cancel(GKeyFile * cfg); 6 | void sat_pref_map_view_ok(GKeyFile * cfg); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-modules.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 5 | 6 | Authors: Alexandru Csete 7 | 8 | Comments, questions and bugreports should be submitted via 9 | http://sourceforge.net/projects/gpredict/ 10 | More details can be found at the project home page: 11 | 12 | http://gpredict.oz9aec.net/ 13 | 14 | This program is free software; you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation; either version 2 of the License, or 17 | (at your option) any later version. 18 | 19 | This program is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program; if not, visit http://www.fsf.org/ 26 | */ 27 | #ifndef SAT_PREF_MODULES_H 28 | #define SAT_PREF_MODULES_H 1 29 | 30 | GtkWidget *sat_pref_modules_create(GKeyFile * cfg); 31 | void sat_pref_modules_cancel(GKeyFile * cfg); 32 | void sat_pref_modules_ok(GKeyFile * cfg); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/sat-pref-multi-pass.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_MULTI_PASS_H 2 | #define SAT_PREF_MULTI_PASS_H 1 3 | 4 | GtkWidget *sat_pref_multi_pass_create(void); 5 | void sat_pref_multi_pass_cancel(void); 6 | void sat_pref_multi_pass_ok(void); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-polar-view.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_POLAR_VIEW_H 2 | #define SAT_PREF_POLAR_VIEW_H 1 3 | 4 | GtkWidget *sat_pref_polar_view_create(GKeyFile * cfg); 5 | void sat_pref_polar_view_cancel(GKeyFile * cfg); 6 | void sat_pref_polar_view_ok(GKeyFile * cfg); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-predict.c: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 5 | 6 | Authors: Alexandru Csete 7 | 8 | Comments, questions and bugreports should be submitted via 9 | http://sourceforge.net/projects/gpredict/ 10 | More details can be found at the project home page: 11 | 12 | http://gpredict.oz9aec.net/ 13 | 14 | This program is free software; you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation; either version 2 of the License, or 17 | (at your option) any later version. 18 | 19 | This program is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program; if not, visit http://www.fsf.org/ 26 | */ 27 | #ifdef HAVE_CONFIG_H 28 | #include 29 | #endif 30 | #include 31 | #include 32 | 33 | #include "sat-cfg.h" 34 | #include "sat-pref-conditions.h" 35 | #include "sat-pref-multi-pass.h" 36 | #include "sat-pref-predict.h" 37 | #include "sat-pref-single-pass.h" 38 | #include "sat-pref-sky-at-glance.h" 39 | 40 | 41 | /** 42 | * Create and initialise widgets for the predictor tab. 43 | * 44 | * The widgets must be preloaded with values from config. If a config value 45 | * is NULL, sensible default values, eg. those from defaults.h should 46 | * be loaded. 47 | */ 48 | GtkWidget *sat_pref_predict_create() 49 | { 50 | GtkWidget *nbook; 51 | 52 | nbook = gtk_notebook_new(); 53 | 54 | gtk_notebook_append_page(GTK_NOTEBOOK(nbook), 55 | sat_pref_conditions_create(), 56 | gtk_label_new(_("Pass Conditions"))); 57 | gtk_notebook_append_page(GTK_NOTEBOOK(nbook), 58 | sat_pref_multi_pass_create(), 59 | gtk_label_new(_("Multiple Passes"))); 60 | gtk_notebook_append_page(GTK_NOTEBOOK(nbook), 61 | sat_pref_single_pass_create(), 62 | gtk_label_new(_("Single Pass"))); 63 | gtk_notebook_append_page(GTK_NOTEBOOK(nbook), 64 | sat_pref_sky_at_glance_create(), 65 | gtk_label_new(_("Sky at a Glance"))); 66 | 67 | return nbook; 68 | } 69 | 70 | /** User pressed cancel. Any changes to config must be cancelled. */ 71 | void sat_pref_predict_cancel() 72 | { 73 | sat_pref_conditions_cancel(); 74 | sat_pref_multi_pass_cancel(); 75 | sat_pref_single_pass_cancel(); 76 | sat_pref_sky_at_glance_cancel(); 77 | } 78 | 79 | /** User pressed OK. Any changes should be stored in config. */ 80 | void sat_pref_predict_ok() 81 | { 82 | sat_pref_conditions_ok(); 83 | sat_pref_multi_pass_ok(); 84 | sat_pref_single_pass_ok(); 85 | sat_pref_sky_at_glance_ok(); 86 | } 87 | -------------------------------------------------------------------------------- /src/sat-pref-predict.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 5 | 6 | Authors: Alexandru Csete 7 | 8 | Comments, questions and bugreports should be submitted via 9 | http://sourceforge.net/projects/gpredict/ 10 | More details can be found at the project home page: 11 | 12 | http://gpredict.oz9aec.net/ 13 | 14 | This program is free software; you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation; either version 2 of the License, or 17 | (at your option) any later version. 18 | 19 | This program is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program; if not, visit http://www.fsf.org/ 26 | */ 27 | #ifndef SAT_PREF_PREDICT_H 28 | #define SAT_PREF_PREDICT_H 1 29 | 30 | GtkWidget *sat_pref_predict_create(void); 31 | void sat_pref_predict_cancel(void); 32 | void sat_pref_predict_ok(void); 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/sat-pref-qth-data.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2013 Alexandru Csete, OZ9AEC. 5 | 6 | Authors: Alexandru Csete 7 | Charles Suprin 8 | 9 | Comments, questions and bugreports should be submitted via 10 | http://sourceforge.net/projects/gpredict/ 11 | More details can be found at the project home page: 12 | 13 | http://gpredict.oz9aec.net/ 14 | 15 | This program is free software; you can redistribute it and/or modify 16 | it under the terms of the GNU General Public License as published by 17 | the Free Software Foundation; either version 2 of the License, or 18 | (at your option) any later version. 19 | 20 | This program is distributed in the hope that it will be useful, 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | GNU General Public License for more details. 24 | 25 | You should have received a copy of the GNU General Public License 26 | along with this program; if not, visit http://www.fsf.org/ 27 | */ 28 | 29 | /** Column definitions for QTH list. */ 30 | typedef enum { 31 | QTH_LIST_COL_NAME = 0, /*!< Name of the QTH. */ 32 | QTH_LIST_COL_LOC, /*!< Location, eg. "Copenhagen, Denmark". */ 33 | QTH_LIST_COL_DESC, /*!< Optional description. */ 34 | QTH_LIST_COL_LAT, /*!< Latitude in dec. deg. North. */ 35 | QTH_LIST_COL_LON, /*!< Longitude in dec. deg. East. */ 36 | QTH_LIST_COL_ALT, /*!< Altitude in meters. */ 37 | QTH_LIST_COL_QRA, /*!< QRA locator. */ 38 | QTH_LIST_COL_WX, /*!< 4 letter weather station. */ 39 | QTH_LIST_COL_DEF, /*!< Is this QTH the default one? */ 40 | QTH_LIST_COL_TYPE, /*!< Is this QTH the default one? */ 41 | QTH_LIST_COL_GPSD_SERVER, /*!< Is this QTH the default one? */ 42 | QTH_LIST_COL_GPSD_PORT, /*!< Is this QTH the default one? */ 43 | QTH_LIST_COL_NUM /*!< The number of fields. */ 44 | } qth_list_col_t; 45 | -------------------------------------------------------------------------------- /src/sat-pref-qth-editor.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_QTH_EDITOR_H 2 | #define SAT_PREF_QTH_EDITOR_H 1 3 | 4 | #include 5 | 6 | void sat_pref_qth_editor_run(GtkTreeView * treeview, gboolean new); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-qth.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_QTH_H 2 | #define SAT_PREF_QTH_H 1 3 | 4 | GtkWidget *sat_pref_qth_create(void); 5 | void sat_pref_qth_cancel(void); 6 | void sat_pref_qth_ok(void); 7 | 8 | /* external hooks */ 9 | void sat_pref_qth_sys_changed(gboolean imperial); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /src/sat-pref-refresh.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_REFRESH_H 2 | #define SAT_PREF_REFRESH_H 1 3 | 4 | GtkWidget *sat_pref_refresh_create(GKeyFile * cfg); 5 | void sat_pref_refresh_cancel(GKeyFile * cfg); 6 | void sat_pref_refresh_ok(GKeyFile * cfg); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-rig-data.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2015 Alexandru Csete, OZ9AEC. 5 | 6 | Authors: Alexandru Csete 7 | 8 | Comments, questions and bugreports should be submitted via 9 | http://sourceforge.net/projects/gpredict/ 10 | More details can be found at the project home page: 11 | 12 | http://gpredict.oz9aec.net/ 13 | 14 | This program is free software; you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation; either version 2 of the License, or 17 | (at your option) any later version. 18 | 19 | This program is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program; if not, visit http://www.fsf.org/ 26 | */ 27 | #ifndef SAT_PREF_RIG_DATA_H 28 | #define SAT_PREF_RIG_DATA_H 1 29 | 30 | /** \brief Coumn definitions for radio list. */ 31 | typedef enum { 32 | RIG_LIST_COL_NAME = 0, /*!< File name. */ 33 | RIG_LIST_COL_HOST, /*!< Hostname, e.g. localhost */ 34 | RIG_LIST_COL_PORT, /*!< Port number */ 35 | RIG_LIST_COL_TYPE, /*!< Radio type */ 36 | RIG_LIST_COL_PTT, /*!< PTT */ 37 | RIG_LIST_COL_VFOUP, /*!< VFO Up */ 38 | RIG_LIST_COL_VFODOWN, /*!< VFO down */ 39 | RIG_LIST_COL_LO, /*!< Local oscillator freq (downlink) */ 40 | RIG_LIST_COL_LOUP, /*!< Local oscillato freq (uplink) */ 41 | RIG_LIST_COL_SIGAOS, /*!< Signal AOS */ 42 | RIG_LIST_COL_SIGLOS, /*!< Signal LOS */ 43 | RIG_LIST_COL_NUM /*!< The number of fields in the list. */ 44 | } rig_list_col_t; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /src/sat-pref-rig-editor.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_RIG_EDITOR_H 2 | #define SAT_PREF_RIG_EDITOR_H 1 3 | 4 | #include 5 | #include "radio-conf.h" 6 | 7 | void sat_pref_rig_editor_run(radio_conf_t * conf); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /src/sat-pref-rig.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_RIG_H 2 | #define SAT_PREF_RIG_H 1 3 | 4 | GtkWidget *sat_pref_rig_create(void); 5 | void sat_pref_rig_cancel(void); 6 | void sat_pref_rig_ok(void); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-rot-data.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 5 | 6 | Authors: Alexandru Csete 7 | 8 | Comments, questions and bugreports should be submitted via 9 | http://sourceforge.net/projects/gpredict/ 10 | More details can be found at the project home page: 11 | 12 | http://gpredict.oz9aec.net/ 13 | 14 | This program is free software; you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation; either version 2 of the License, or 17 | (at your option) any later version. 18 | 19 | This program is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program; if not, visit http://www.fsf.org/ 26 | */ 27 | #ifndef SAT_PREF_ROT_DATA_H 28 | #define SAT_PREF_ROT_DATA_H 1 29 | 30 | /** Coumn definitions for rotator list. */ 31 | typedef enum { 32 | ROT_LIST_COL_NAME = 0, /*!< File name. */ 33 | ROT_LIST_COL_HOST, /*!< Hostname */ 34 | ROT_LIST_COL_PORT, /*!< Port number */ 35 | ROT_LIST_COL_MINAZ, /*!< Lower Az limit. */ 36 | ROT_LIST_COL_MAXAZ, /*!< Upper Az limit. */ 37 | ROT_LIST_COL_MINEL, /*!< Lower El limit. */ 38 | ROT_LIST_COL_MAXEL, /*!< Upper El limit. */ 39 | ROT_LIST_COL_AZTYPE, /*!< Azimuth type. */ 40 | ROT_LIST_COL_AZSTOPPOS, /*!< Position of the azimuth rotation stops. 41 | Should default to MINAZ, unless specified 42 | otherwise */ 43 | ROT_LIST_COL_NUM /*!< The number of fields in the list. */ 44 | } rotor_list_col_t; 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /src/sat-pref-rot-editor.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_ROT_EDITOR_H 2 | #define SAT_PREF_ROT_EDITOR_H 1 3 | 4 | #include 5 | #include "rotor-conf.h" 6 | 7 | void sat_pref_rot_editor_run(rotor_conf_t * conf); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /src/sat-pref-rot.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_ROT_H 2 | #define SAT_PREF_ROT_H 1 3 | 4 | GtkWidget *sat_pref_rot_create(void); 5 | void sat_pref_rot_cancel(void); 6 | void sat_pref_rot_ok(void); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-single-pass.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_SINGLE_PASS_H 2 | #define SAT_PREF_SINGLE_PASS_H 1 3 | 4 | GtkWidget *sat_pref_single_pass_create(void); 5 | void sat_pref_single_pass_cancel(void); 6 | void sat_pref_single_pass_ok(void); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-single-sat.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_SINGLE_SAT_H 2 | #define SAT_PREF_SINGLE_SAT_H 1 3 | 4 | GtkWidget *sat_pref_single_sat_create(GKeyFile * cfg); 5 | void sat_pref_single_sat_cancel(GKeyFile * cfg); 6 | void sat_pref_single_sat_ok(GKeyFile * cfg); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-sky-at-glance.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_SKY_AT_GLANCE_H 2 | #define SAT_PREF_SKY_AT_GLANCE_H 1 3 | 4 | GtkWidget *sat_pref_sky_at_glance_create(void); 5 | void sat_pref_sky_at_glance_cancel(void); 6 | void sat_pref_sky_at_glance_ok(void); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref-tle.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_TLE_H 2 | #define SAT_PREF_TLE_H 1 3 | 4 | GtkWidget *sat_pref_tle_create(void); 5 | void sat_pref_tle_cancel(void); 6 | void sat_pref_tle_ok(void); 7 | 8 | #endif 9 | -------------------------------------------------------------------------------- /src/sat-pref.h: -------------------------------------------------------------------------------- 1 | #ifndef SAT_PREF_H 2 | #define SAT_PREF_H 1 3 | 4 | void sat_pref_run(void); 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /src/sat-vis.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 | /* 3 | Gpredict: Real-time satellite tracking and orbit prediction program 4 | 5 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 6 | 7 | Authors: Alexandru Csete 8 | 9 | Comments, questions and bugreports should be submitted via 10 | http://sourceforge.net/projects/gpredict/ 11 | More details can be found at the project home page: 12 | 13 | http://gpredict.oz9aec.net/ 14 | 15 | This program is free software; you can redistribute it and/or modify 16 | it under the terms of the GNU General Public License as published by 17 | the Free Software Foundation; either version 2 of the License, or 18 | (at your option) any later version. 19 | 20 | This program is distributed in the hope that it will be useful, 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | GNU General Public License for more details. 24 | 25 | You should have received a copy of the GNU General Public License 26 | along with this program; if not, visit http://www.fsf.org/ 27 | */ 28 | /** \brief Satellite visibility calculations. */ 29 | #include 30 | #include 31 | #include "sgpsdp/sgp4sdp4.h" 32 | #include "gtk-sat-data.h" 33 | #include "sat-vis.h" 34 | #include "sat-cfg.h" 35 | 36 | 37 | static gchar VIS2CHR[SAT_VIS_NUM] = { '-', 'V', 'D', 'E'}; 38 | 39 | static gchar *VIS2STR[SAT_VIS_NUM] = { 40 | N_("Unknown"), 41 | N_("Visible"), 42 | N_("Daylight"), 43 | N_("Eclipsed") 44 | }; 45 | 46 | 47 | 48 | /** \brief Calculate satellite visibility. 49 | * \param sat The satellite structure. 50 | * \param qth The QTH 51 | * \param jul_utc The time at which the visibility should be calculated. 52 | * \return The visibility code. 53 | * 54 | */ 55 | sat_vis_t 56 | get_sat_vis (sat_t *sat, qth_t *qth, gdouble jul_utc) 57 | { 58 | gboolean sat_sun_status; 59 | gdouble sun_el; 60 | gdouble threshold; 61 | gdouble eclipse_depth; 62 | sat_vis_t vis = SAT_VIS_NONE; 63 | vector_t zero_vector = {0,0,0,0}; 64 | geodetic_t obs_geodetic; 65 | 66 | /* Solar ECI position vector */ 67 | vector_t solar_vector=zero_vector; 68 | 69 | /* Solar observed az and el vector */ 70 | obs_set_t solar_set; 71 | 72 | /* FIXME: could be passed as parameter */ 73 | obs_geodetic.lon = qth->lon * de2ra; 74 | obs_geodetic.lat = qth->lat * de2ra; 75 | obs_geodetic.alt = qth->alt / 1000.0; 76 | obs_geodetic.theta = 0; 77 | 78 | 79 | Calculate_Solar_Position (jul_utc, &solar_vector); 80 | Calculate_Obs (jul_utc, &solar_vector, &zero_vector, &obs_geodetic, &solar_set); 81 | 82 | if (Sat_Eclipsed (&sat->pos, &solar_vector, &eclipse_depth)) { 83 | /* satellite is eclipsed */ 84 | sat_sun_status = FALSE; 85 | } 86 | else { 87 | /* satellite in sunlight => may be visible */ 88 | sat_sun_status = TRUE; 89 | } 90 | 91 | 92 | if (sat_sun_status) { 93 | sun_el = Degrees (solar_set.el); 94 | threshold = (gdouble) sat_cfg_get_int (SAT_CFG_INT_PRED_TWILIGHT_THLD); 95 | 96 | if (sun_el <= threshold && sat->el >= 0.0) 97 | vis = SAT_VIS_VISIBLE; 98 | else 99 | vis = SAT_VIS_DAYLIGHT; 100 | } 101 | else 102 | vis = SAT_VIS_ECLIPSED; 103 | 104 | 105 | return vis; 106 | } 107 | 108 | 109 | 110 | /** \brief Convert visibility to character code. */ 111 | gchar 112 | vis_to_chr (sat_vis_t vis) 113 | { 114 | return VIS2CHR[vis]; 115 | } 116 | 117 | 118 | /** \brief Convert visibility to character string. 119 | * \param vis The visibility code 120 | * 121 | * The returned string must be freed when no longer needed. 122 | */ 123 | gchar * 124 | vis_to_str (sat_vis_t vis) 125 | { 126 | return g_strdup (_(VIS2STR[vis])); 127 | } 128 | 129 | -------------------------------------------------------------------------------- /src/sat-vis.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 | /* 3 | Gpredict: Real-time satellite tracking and orbit prediction program 4 | 5 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 6 | 7 | Authors: Alexandru Csete 8 | 9 | Comments, questions and bugreports should be submitted via 10 | http://sourceforge.net/projects/gpredict/ 11 | More details can be found at the project home page: 12 | 13 | http://gpredict.oz9aec.net/ 14 | 15 | This program is free software; you can redistribute it and/or modify 16 | it under the terms of the GNU General Public License as published by 17 | the Free Software Foundation; either version 2 of the License, or 18 | (at your option) any later version. 19 | 20 | This program is distributed in the hope that it will be useful, 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | GNU General Public License for more details. 24 | 25 | You should have received a copy of the GNU General Public License 26 | along with this program; if not, visit http://www.fsf.org/ 27 | */ 28 | #ifndef SAT_VISIBILITY_H 29 | #define SAT_VISIBILITY_H 30 | 31 | 32 | #include 33 | #include 34 | #include "sgpsdp/sgp4sdp4.h" 35 | #include "gtk-sat-data.h" 36 | 37 | 38 | 39 | /** \brief Satellite visibility. */ 40 | typedef enum { 41 | SAT_VIS_NONE = 0, /*!< Unknown/undefined. */ 42 | SAT_VIS_VISIBLE, /*!< Visible. */ 43 | SAT_VIS_DAYLIGHT, /*!< Satellite is in daylight. */ 44 | SAT_VIS_ECLIPSED, /*!< Satellite is eclipsed. */ 45 | SAT_VIS_NUM 46 | } sat_vis_t; 47 | 48 | 49 | 50 | 51 | 52 | sat_vis_t get_sat_vis (sat_t *sat, qth_t *qth, gdouble jul_utc); 53 | gchar vis_to_chr (sat_vis_t vis); 54 | gchar *vis_to_str (sat_vis_t vis); 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /src/save-pass.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2017 Alexandru Csete, OZ9AEC. 5 | 6 | Authors: Alexandru Csete 7 | 8 | Comments, questions and bugreports should be submitted via 9 | http://sourceforge.net/projects/gpredict/ 10 | More details can be found at the project home page: 11 | 12 | http://gpredict.oz9aec.net/ 13 | 14 | This program is free software; you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation; either version 2 of the License, or 17 | (at your option) any later version. 18 | 19 | This program is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program; if not, visit http://www.fsf.org/ 26 | */ 27 | #ifndef SAVE_PASS_H 28 | #define SAVE_PASS_H 1 29 | 30 | #include 31 | 32 | #include "gtk-sat-data.h" 33 | #include "predict-tools.h" 34 | #include "sat-pass-dialogs.h" 35 | 36 | 37 | void save_pass(GtkWidget * parent); 38 | void save_passes(GtkWidget * parent); 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /src/sgpsdp/1_COPYING: -------------------------------------------------------------------------------- 1 | Copyright Information: 2 | 3 | Some parts of the C source code in this package were ported partly 4 | form NORAD's Spacetrack report #3, which included FORTRAN source for 5 | SGP, SGP4, SDP4, SGP8 and SDP8. According to a statement in that 6 | report, the document is free of copyrights and open to unlimited 7 | public distribution. 8 | 9 | Other parts of the C source code in this package were ported from 10 | Pascal code provided by Dr. TS. Kelso on his CelesTrack website at 11 | http://celestrack.com/ . I have reproduced the copyright information 12 | regarding the Pascal source I used below: 13 | 14 | { Author: Dr TS Kelso } 15 | { Original Version: 1991 Oct 30} 16 | { Current Revision: 1992 Sep 03} 17 | { Version: 1.50 } 18 | { Copyright: 1991-1992, All Rights Reserved } 19 | 20 | I make no copyright claims to the C ports in this package as I used 21 | the above material downloaded from the Internet to produce it. 22 | I suppose any sourcecode used from norad.c must contain the above 23 | copyright statement by Dr. TS. Kelso. 24 | 25 | Neoklis Kyriazis April 10 2001. -------------------------------------------------------------------------------- /src/sgpsdp/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = TR 2 | 3 | ##noinst_LIBRARIES = libsgp4sdp4.a 4 | 5 | AM_CPPFLAGS = $(all_includes) @PACKAGE_CFLAGS@ 6 | 7 | ##libsgp4sdp4_a_METASOURCES = AUTO 8 | 9 | ##libsgp4sdp4_a_SOURCES = \ 10 | ## solar.c \ 11 | ## sgp_time.c \ 12 | ## sgp_obs.c \ 13 | ## sgp_math.c \ 14 | ## sgp_in.c \ 15 | ## sgp4sdp4.c 16 | 17 | ##libsgp4sdp4_a_LDFLAGS = `pkg-config --libs glib-2.0` 18 | 19 | noinst_PROGRAMS = test-001 test-002 20 | 21 | test_001_SOURCES = \ 22 | solar.c \ 23 | sgp_time.c \ 24 | sgp_obs.c \ 25 | sgp_math.c \ 26 | sgp_in.c \ 27 | sgp4sdp4.c \ 28 | test-001.c 29 | 30 | test_001_LDADD = @PACKAGE_LIBS@ 31 | ##test_001_LDFLAGS = `pkg-config --libs glib-2.0` 32 | 33 | test_002_SOURCES = \ 34 | solar.c \ 35 | sgp_time.c \ 36 | sgp_obs.c \ 37 | sgp_math.c \ 38 | sgp_in.c \ 39 | sgp4sdp4.c \ 40 | test-002.c 41 | 42 | test_002_LDADD = @PACKAGE_LIBS@ 43 | ##test_002_LDFLAGS = `pkg-config --libs glib-2.0` 44 | 45 | EXTRA_DIST = \ 46 | 1_COPYING \ 47 | 2_README \ 48 | README \ 49 | sgp4sdp4.c \ 50 | sgp4sdp4.h \ 51 | sgp_in.c \ 52 | sgp_math.c \ 53 | sgp_obs.c \ 54 | sgp_time.c \ 55 | solar.c \ 56 | test-001.c \ 57 | test-001.tle \ 58 | test-002.c \ 59 | test-002.tle 60 | 61 | 62 | -------------------------------------------------------------------------------- /src/sgpsdp/README: -------------------------------------------------------------------------------- 1 | This library is based on the sgp4sdp4-0.3 by Neoklis Kyriazis 2 | (http://leonardo.spidernet.net/Copernicus/22420). I made some minor 3 | modifications to the code in order to create a library that works on 4 | multiple platforms. 5 | 6 | Hari Nair 7 | hari@alumni.caltech.edu 8 | -------------------------------------------------------------------------------- /src/sgpsdp/TR/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = \ 2 | README \ 3 | test-001-01.res \ 4 | test-002-01.res 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/sgpsdp/TR/README: -------------------------------------------------------------------------------- 1 | Numerical test result for sgpsdp. 2 | -------------------------------------------------------------------------------- /src/sgpsdp/TR/test-001-01.res: -------------------------------------------------------------------------------- 1 | TEST DATA: 2 | TEST SAT SGP 001 3 | 1 88888U 80275.98708465 .00073094 13844-3 66816-4 0 9 4 | 2 88888 72.8435 115.9689 0086731 52.6988 110.5714 16.05824518 103 5 | 6 | DEEP_SPACE_EPHEM: 0 (expected 0) 7 | 8 | RESULT EXPECTED DELTA 9 | ------------------------------------------------------------------------------ 10 | STEP 1 t: 0.0 X: 2328.97068761 2328.97048951 0.00019810 (0.00001%) 11 | Y: -5995.22085643 -5995.22076416 0.00009227 (0.00000%) 12 | Z: 1719.97068075 1719.97067261 0.00000814 (0.00000%) 13 | VX: 2.91207226 2.91207230 0.00000004 (0.00000%) 14 | VY: -0.98341533 -0.98341546 0.00000013 (0.00001%) 15 | VZ: -7.09081695 -7.09081703 0.00000008 (0.00000%) 16 | STEP 2 t: 360.0 X: 2456.10753857 2456.10705566 0.00048291 (0.00002%) 17 | Y: -6071.93865906 -6071.93853760 0.00012146 (0.00000%) 18 | Z: 1222.89643564 1222.89727783 0.00084219 (0.00007%) 19 | VX: 2.67938947 2.67938992 0.00000045 (0.00002%) 20 | VY: -0.44828939 -0.44829041 0.00000102 (0.00023%) 21 | VZ: -7.22879242 -7.22879231 0.00000011 (0.00000%) 22 | STEP 3 t: 720.0 X: 2567.56230055 2567.56195068 0.00034987 (0.00001%) 23 | Y: -6112.50386789 -6112.50384522 0.00002267 (0.00000%) 24 | Z: 713.96381249 713.96397400 0.00016151 (0.00002%) 25 | VX: 2.44024579 2.44024599 0.00000020 (0.00001%) 26 | VY: 0.09810893 0.09810869 0.00000024 (0.00025%) 27 | VZ: -7.31995922 -7.31995916 0.00000006 (0.00000%) 28 | STEP 4 t: 1080.0 X: 2663.08919967 2663.09078980 0.00159013 (0.00006%) 29 | Y: -6115.48308263 -6115.48229980 0.00078283 (0.00001%) 30 | Z: 196.40236060 196.39640427 0.00595633 (0.00303%) 31 | VX: 2.19612236 2.19611958 0.00000278 (0.00013%) 32 | VY: 0.65241327 0.65241995 0.00000668 (0.00102%) 33 | VZ: -7.36282406 -7.36282432 0.00000026 (0.00000%) 34 | STEP 5 t: 1440.0 X: 2742.55314743 2742.55133057 0.00181686 (0.00007%) 35 | Y: -6079.67068185 -6079.67144775 0.00076590 (0.00001%) 36 | Z: -326.38672720 -326.38095856 0.00576864 (0.00177%) 37 | VX: 1.94849935 1.94850229 0.00000294 (0.00015%) 38 | VY: 1.21106891 1.21106251 0.00000640 (0.00053%) 39 | VZ: -7.35619329 -7.35619372 0.00000043 (0.00001%) 40 | -------------------------------------------------------------------------------- /src/sgpsdp/TR/test-002-01.res: -------------------------------------------------------------------------------- 1 | TEST DATA: 2 | TEST SAT SDP 001 3 | 1 11801U 80230.29629788 .01431103 00000-0 14311-1 0 2 4 | 2 11801 46.7916 230.4354 7318036 47.4722 10.4117 2.28537848 2 5 | 6 | DEEP_SPACE_EPHEM: 64 (expected 64) 7 | 8 | RESULT EXPECTED DELTA 9 | --------------------------------------------------------------------------------- 10 | STEP 1 t: 0.0 X: 7473.37235249 7473.37066650 0.00168599 (0.00002%) 11 | Y: 428.95458268 428.95261765 0.00196503 (0.00046%) 12 | Z: 5828.74803892 5828.74786377 0.00017515 (0.00000%) 13 | VX: 5.10715285 5.10715130 0.00000155 (0.00003%) 14 | VY: 6.44468277 6.44468284 0.00000007 (0.00000%) 15 | VZ: -0.18613180 -0.18613096 0.00000084 (0.00045%) 16 | STEP 2 t: 360.0 X: -3305.22249435 -3305.22537232 0.00287797 (0.00009%) 17 | Y: 32410.86724220 32410.86328125 0.00396095 (0.00001%) 18 | Z: -24697.17847749 -24697.17675781 0.00171968 (0.00001%) 19 | VX: -1.30113544 -1.30113538 0.00000006 (0.00000%) 20 | VY: -1.15131484 -1.15131518 0.00000034 (0.00003%) 21 | VZ: -0.28333545 -0.28333528 0.00000017 (0.00006%) 22 | STEP 3 t: 720.0 X: 14271.28902792 14271.28759766 0.00143026 (0.00001%) 23 | Y: 24110.45647174 24110.46411133 0.00763959 (0.00003%) 24 | Z: -4725.76149170 -4725.76837158 0.00687988 (0.00015%) 25 | VX: -0.32050356 -0.32050445 0.00000089 (0.00028%) 26 | VY: 2.67984224 2.67984074 0.00000150 (0.00006%) 27 | VZ: -2.08405317 -2.08405289 0.00000028 (0.00001%) 28 | STEP 4 t: 1080.0 X: -9990.05125819 -9990.05883789 0.00757970 (0.00008%) 29 | Y: 22717.38011629 22717.35522461 0.02489168 (0.00011%) 30 | Z: -23616.90130945 -23616.89066250 0.01064695 (0.00005%) 31 | VX: -1.01667324 -1.01667246 0.00000078 (0.00008%) 32 | VY: -2.29026532 -2.29026759 0.00000227 (0.00010%) 33 | VZ: 0.72892148 0.72892364 0.00000216 (0.00030%) 34 | STEP 5 t: 1440.0 X: 9787.88496660 9787.86975097 0.01521563 (0.00016%) 35 | Y: 33753.34020891 33753.34667969 0.00647078 (0.00002%) 36 | Z: -15030.79330940 -15030.81176758 0.01845818 (0.00012%) 37 | VX: -1.09424947 -1.09425966 0.00001019 (0.00093%) 38 | VY: 0.92359201 0.92358845 0.00000356 (0.00039%) 39 | VZ: -1.52231073 -1.52230928 0.00000145 (0.00010%) 40 | -------------------------------------------------------------------------------- /src/sgpsdp/solar.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Unit Solar 3 | * Author: Dr TS Kelso 4 | * Original Version: 1990 Jul 29 5 | * Current Revision: 1999 Nov 27 6 | * Version: 1.30 7 | * Copyright: 1990-1999, All Rights Reserved 8 | * 9 | * Ported to C by: Neoklis Kyriazis April 1 2001 10 | */ 11 | 12 | #include "sgp4sdp4.h" 13 | 14 | /* Calculates solar position vector */ 15 | void Calculate_Solar_Position(double _time, vector_t * solar_vector) 16 | { 17 | double mjd, year, T, M, L, e, C, O, Lsa, nu, R, eps; 18 | 19 | mjd = _time - 2415020.0; 20 | year = 1900 + mjd / 365.25; 21 | T = (mjd + Delta_ET(year) / secday) / 36525.0; 22 | M = Radians(Modulus(358.47583 + Modulus(35999.04975 * T, 360.0) 23 | - (0.000150 + 0.0000033 * T) * Sqr(T), 360.0)); 24 | L = Radians(Modulus(279.69668 + Modulus(36000.76892 * T, 360.0) 25 | + 0.0003025 * Sqr(T), 360.0)); 26 | e = 0.01675104 - (0.0000418 + 0.000000126 * T) * T; 27 | C = Radians((1.919460 - (0.004789 + 0.000014 * T) * T) * sin(M) 28 | + (0.020094 - 0.000100 * T) * sin(2 * M) + 29 | 0.000293 * sin(3 * M)); 30 | O = Radians(Modulus(259.18 - 1934.142 * T, 360.0)); 31 | Lsa = Modulus(L + C - Radians(0.00569 - 0.00479 * sin(O)), twopi); 32 | nu = Modulus(M + C, twopi); 33 | R = 1.0000002 * (1 - Sqr(e)) / (1 + e * cos(nu)); 34 | eps = Radians(23.452294 - (0.0130125 + (0.00000164 - 35 | 0.000000503 * T) * T) * T + 36 | 0.00256 * cos(O)); 37 | R = AU * R; 38 | solar_vector->x = R * cos(Lsa); 39 | solar_vector->y = R * sin(Lsa) * cos(eps); 40 | solar_vector->z = R * sin(Lsa) * sin(eps); 41 | solar_vector->w = R; 42 | } 43 | 44 | 45 | /* Calculates stellite's eclipse status and depth */ 46 | int Sat_Eclipsed(vector_t * pos, vector_t * sol, double *depth) 47 | { 48 | double sd_sun, sd_earth, delta; 49 | vector_t Rho, earth; 50 | 51 | /* Determine partial eclipse */ 52 | sd_earth = ArcSin(xkmper / pos->w); 53 | Vec_Sub(sol, pos, &Rho); 54 | sd_sun = ArcSin(__sr__ / Rho.w); 55 | Scalar_Multiply(-1, pos, &earth); 56 | delta = Angle(sol, &earth); 57 | *depth = sd_earth - sd_sun - delta; 58 | if (sd_earth < sd_sun) 59 | return (0); 60 | else if (*depth >= 0) 61 | return (1); 62 | else 63 | return (0); 64 | 65 | } 66 | -------------------------------------------------------------------------------- /src/sgpsdp/test-001.tle: -------------------------------------------------------------------------------- 1 | TEST SAT SGP 001 2 | 1 88888U 80275.98708465 .00073094 13844-3 66816-4 0 9 3 | 2 88888 72.8435 115.9689 0086731 52.6988 110.5714 16.05824518 103 4 | -------------------------------------------------------------------------------- /src/sgpsdp/test-002.tle: -------------------------------------------------------------------------------- 1 | TEST SAT SDP 001 2 | 1 11801U 80230.29629788 .01431103 00000-0 14311-1 0 2 3 | 2 11801 46.7916 230.4354 7318036 47.4722 10.4117 2.28537848 2 4 | 5 | -------------------------------------------------------------------------------- /src/strnatcmp.h: -------------------------------------------------------------------------------- 1 | /* -*- mode: c; c-file-style: "k&r" -*- 2 | 3 | strnatcmp.c -- Perform 'natural order' comparisons of strings in C. 4 | Copyright (C) 2000, 2004 by Martin Pool 5 | 6 | This software is provided 'as-is', without any express or implied 7 | warranty. In no event will the authors be held liable for any damages 8 | arising from the use of this software. 9 | 10 | Permission is granted to anyone to use this software for any purpose, 11 | including commercial applications, and to alter it and redistribute it 12 | freely, subject to the following restrictions: 13 | 14 | 1. The origin of this software must not be misrepresented; you must not 15 | claim that you wrote the original software. If you use this software 16 | in a product, an acknowledgment in the product documentation would be 17 | appreciated but is not required. 18 | 2. Altered source versions must be plainly marked as such, and must not be 19 | misrepresented as being the original software. 20 | 3. This notice may not be removed or altered from any source distribution. 21 | */ 22 | 23 | 24 | /* CUSTOMIZATION SECTION 25 | * 26 | * You can change this typedef, but must then also change the inline 27 | * functions in strnatcmp.c */ 28 | typedef char nat_char; 29 | 30 | int strnatcmp(nat_char const *a, nat_char const *b); 31 | int strnatcasecmp(nat_char const *a, nat_char const *b); 32 | -------------------------------------------------------------------------------- /src/time-tools.c: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 | /* 3 | Gpredict: Real-time satellite tracking and orbit prediction program 4 | 5 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 6 | 7 | Authors: Alexandru Csete 8 | 9 | Comments, questions and bugreports should be submitted via 10 | http://sourceforge.net/projects/gpredict/ 11 | More details can be found at the project home page: 12 | 13 | http://gpredict.oz9aec.net/ 14 | 15 | This program is free software; you can redistribute it and/or modify 16 | it under the terms of the GNU General Public License as published by 17 | the Free Software Foundation; either version 2 of the License, or 18 | (at your option) any later version. 19 | 20 | This program is distributed in the hope that it will be useful, 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | GNU General Public License for more details. 24 | 25 | You should have received a copy of the GNU General Public License 26 | along with this program; if not, visit http://www.fsf.org/ 27 | */ 28 | 29 | #include 30 | #include 31 | //#include 32 | #ifdef HAVE_CONFIG_H 33 | # include 34 | #endif 35 | #include "sgpsdp/sgp4sdp4.h" 36 | #include "time-tools.h" 37 | #include "sat-cfg.h" 38 | //#ifdef G_OS_WIN32 39 | //# include "libc_internal.h" 40 | //# include "libc_interface.h" 41 | //#endif 42 | 43 | 44 | 45 | /** \brief Get the current time. 46 | * 47 | * Read the system clock and return the current Julian day. 48 | */ 49 | gdouble 50 | get_current_daynum () 51 | { 52 | struct tm utc; 53 | GDateTime *now; 54 | double daynum; 55 | 56 | UTC_Calendar_Now (&utc); 57 | now = g_date_time_new_now_local(); 58 | daynum = Julian_Date (&utc); 59 | daynum = daynum + (double)g_date_time_get_microsecond(now)/8.64e+10; 60 | g_date_time_unref(now); 61 | 62 | return daynum; 63 | } 64 | 65 | int 66 | daynum_to_str(char *s, size_t max, const char *format, gdouble jultime){ 67 | // printf("Someone called me\n"); 68 | time_t tim; 69 | size_t size=0; 70 | tim = (jultime - 2440587.5)*86400.0; 71 | if (sat_cfg_get_bool (SAT_CFG_BOOL_USE_LOCAL_TIME)) 72 | size = strftime (s, max, format, localtime (&tim)); 73 | else 74 | size = strftime (s, max, format, gmtime (&tim)); 75 | 76 | if (size 8 | 9 | Comments, questions and bugreports should be submitted via 10 | http://sourceforge.net/projects/gpredict/ 11 | More details can be found at the project home page: 12 | 13 | http://gpredict.oz9aec.net/ 14 | 15 | This program is free software; you can redistribute it and/or modify 16 | it under the terms of the GNU General Public License as published by 17 | the Free Software Foundation; either version 2 of the License, or 18 | (at your option) any later version. 19 | 20 | This program is distributed in the hope that it will be useful, 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | GNU General Public License for more details. 24 | 25 | You should have received a copy of the GNU General Public License 26 | along with this program; if not, visit http://www.fsf.org/ 27 | */ 28 | #ifndef TIME_TOOLS_H 29 | #define TIME_TOOLS_H 1 30 | 31 | gdouble get_current_daynum (void); 32 | //long get_daynum_from_dmy (int d, int m, int y); 33 | int daynum_to_str(char *s, size_t max, const char *format, gdouble jultime); 34 | #endif 35 | 36 | 37 | -------------------------------------------------------------------------------- /src/tle-tools.h: -------------------------------------------------------------------------------- 1 | /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 | /* 3 | Gpredict: Real-time satellite tracking and orbit prediction program 4 | 5 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 6 | 7 | Authors: Alexandru Csete 8 | 9 | Comments, questions and bugreports should be submitted via 10 | http://sourceforge.net/projects/gpredict/ 11 | More details can be found at the project home page: 12 | 13 | http://gpredict.oz9aec.net/ 14 | 15 | This program is free software; you can redistribute it and/or modify 16 | it under the terms of the GNU General Public License as published by 17 | the Free Software Foundation; either version 2 of the License, or 18 | (at your option) any later version. 19 | 20 | This program is distributed in the hope that it will be useful, 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | GNU General Public License for more details. 24 | 25 | You should have received a copy of the GNU General Public License 26 | along with this program; if not, visit http://www.fsf.org/ 27 | */ 28 | #ifndef TLE_TOOLS_H 29 | #define TLE_TOOLS_H 1 30 | 31 | #include 32 | #include "sgpsdp/sgp4sdp4.h" 33 | //#include "gtk-sat-data.h" 34 | 35 | 36 | enum { 37 | TLE_CONV_SUCCESS = 0, 38 | TLE_CONV_ERROR 39 | }; 40 | 41 | 42 | 43 | gint twoline2tle (gchar *line1, gchar *line2, gchar *line3, 44 | gboolean checksum, tle_t *tle); 45 | 46 | gint tle2twoline (tle_t *tle, gchar *line1, gchar *line2, gchar *line3); 47 | 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /src/tle-update.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2009 Alexandru Csete, OZ9AEC. 5 | 6 | Comments, questions and bugreports should be submitted via 7 | http://sourceforge.net/projects/gpredict/ 8 | More details can be found at the project home page: 9 | 10 | http://gpredict.oz9aec.net/ 11 | 12 | This program is free software; you can redistribute it and/or modify 13 | it under the terms of the GNU General Public License as published by 14 | the Free Software Foundation; either version 2 of the License, or 15 | (at your option) any later version. 16 | 17 | This program is distributed in the hope that it will be useful, 18 | but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | GNU General Public License for more details. 21 | 22 | You should have received a copy of the GNU General Public License 23 | along with this program; if not, visit http://www.fsf.org/ 24 | */ 25 | #ifndef TLE_UPDATE_H 26 | #define TLE_UPDATE_H 1 27 | 28 | #include 29 | #include "sgpsdp/sgp4sdp4.h" 30 | 31 | 32 | /** TLE format type flags. */ 33 | typedef enum { 34 | TLE_TYPE_NASA = 0 /*!< NASA two-line format (3 lines with name). */ 35 | } tle_type_t; 36 | 37 | 38 | /** TLE auto update frequency. */ 39 | typedef enum { 40 | TLE_AUTO_UPDATE_NEVER = 0, /*!< No auto-update, just warn after one week. */ 41 | TLE_AUTO_UPDATE_MONTHLY = 1, 42 | TLE_AUTO_UPDATE_WEEKLY = 2, 43 | TLE_AUTO_UPDATE_DAILY = 3, 44 | TLE_AUTO_UPDATE_NUM 45 | } tle_auto_upd_freq_t; 46 | 47 | 48 | /** Action to perform when it's time to update TLE. */ 49 | typedef enum { 50 | TLE_AUTO_UPDATE_NOACT = 0, /*!< No action (not a valid option). */ 51 | TLE_AUTO_UPDATE_NOTIFY = 1, /*!< Notify user. */ 52 | TLE_AUTO_UPDATE_GOAHEAD = 2 /*!< Perform unattended update. */ 53 | } tle_auto_upd_action_t; 54 | 55 | 56 | /** Data structure to hold a TLE set. */ 57 | typedef struct { 58 | guint catnum; /*!< Catalog number. */ 59 | gdouble epoch; /*!< Epoch. */ 60 | gchar *satname; /*!< Satellite name. */ 61 | gchar *line1; /*!< Line 1. */ 62 | gchar *line2; /*!< Line 2. */ 63 | gchar *srcfile; /*!< The file where TLE comes from (needed for cat) */ 64 | gboolean isnew; /*!< Flag indicating whether sat is new. */ 65 | op_stat_t status; /*!< Enum indicating current satellite status. */ 66 | } new_tle_t; 67 | 68 | 69 | /** Data structure to hold local TLE data. */ 70 | typedef struct { 71 | tle_t tle; /*!< TLE data. */ 72 | gchar *filename; /*!< File name where the TLE data is from */ 73 | } loc_tle_t; 74 | 75 | 76 | void tle_update_from_files(const gchar * dir, 77 | const gchar * filter, 78 | gboolean silent, 79 | GtkWidget * progress, 80 | GtkWidget * label1, GtkWidget * label2); 81 | 82 | void tle_update_from_network(gboolean silent, 83 | GtkWidget * progress, 84 | GtkWidget * label1, 85 | GtkWidget * label2); 86 | 87 | const gchar *tle_update_freq_to_str(tle_auto_upd_freq_t freq); 88 | 89 | #endif 90 | -------------------------------------------------------------------------------- /src/trsp-conf.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2009 Alexandru Csete. 5 | 6 | Authors: Alexandru Csete 7 | 8 | Comments, questions and bugreports should be submitted via 9 | http://sourceforge.net/projects/gpredict/ 10 | More details can be found at the project home page: 11 | 12 | http://gpredict.oz9aec.net/ 13 | 14 | This program is free software; you can redistribute it and/or modify 15 | it under the terms of the GNU General Public License as published by 16 | the Free Software Foundation; either version 2 of the License, or 17 | (at your option) any later version. 18 | 19 | This program is distributed in the hope that it will be useful, 20 | but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | GNU General Public License for more details. 23 | 24 | You should have received a copy of the GNU General Public License 25 | along with this program; if not, visit http://www.fsf.org/ 26 | */ 27 | #ifndef TRSP_CONF_H 28 | #define TRSP_CONF_H 1 29 | 30 | #include 31 | 32 | /* NOTE For beacons uplow=uphigh=0 and downlow=downhigh */ 33 | typedef struct { 34 | gchar *name; /*!< The name of the transponder (same as config group) */ 35 | gint64 uplow; /*!< Lower limit of uplink. */ 36 | gint64 uphigh; /*!< Upper limit of uplink. */ 37 | gint64 downlow; /*!< Lower limit of downlink. */ 38 | gint64 downhigh; /*!< Upper limit of donlink. */ 39 | gdouble baud; /*!< Baud rate > */ 40 | gboolean invert; /*!< Flag indicating whether transponder is inverting. */ 41 | gchar *mode; /*!< Mode descriptor. */ 42 | } trsp_t; 43 | 44 | /* The actual data would then be a singly linked list with pointers to transponder_t structures */ 45 | 46 | GSList *read_transponders(guint catnum); 47 | void write_transponders(guint catnum, GSList * trsplist); 48 | void free_transponders(GSList * trsplist); 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /src/trsp-update.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2017 Alexandru Csete, OZ9AEC. 5 | Copyright (C) 2016 Baris DINC (TA7W) 6 | 7 | Comments, questions and bugreports should be submitted via 8 | http://sourceforge.net/projects/gpredict/ 9 | More details can be found at the project home page: 10 | 11 | http://gpredict.oz9aec.net/ 12 | 13 | This program is free software; you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation; either version 2 of the License, or 16 | (at your option) any later version. 17 | 18 | This program is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program; if not, visit http://www.fsf.org/ 25 | */ 26 | #ifndef TRSP_UPDATE_H 27 | #define TRSP_UPDATE_H 1 28 | 29 | #include 30 | 31 | void trsp_update_from_network(gboolean silent, 32 | GtkWidget * progress, 33 | GtkWidget * label1, 34 | GtkWidget * label2); 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /win32/README: -------------------------------------------------------------------------------- 1 | ### Win32 build notes ### 2 | 3 | # Phil Ashby, Dec 2017 - Jan 2018 4 | 5 | At present, MSYS2 on a Windows system is required to gather dependencies 6 | before building a Win32 version of gpredict using this build system. 7 | 8 | Install MSYS2, open a shell and install the Gtk3 and Goocanvas2 packages, 9 | following the instructions from GTK team: 10 | https://www.gtk.org/download/windows.php 11 | 12 | Once your MSYS2 output folder (/mingw32 or similar) is accessible from 13 | this system, adjust the MINGW_ROOT parameter in config.mk to suit. 14 | 15 | You should now be able to cross-compile the Win32 version of GPredict 16 | using the 'make' command. 17 | 18 | Experimental Win32 build testing is being tracked in this ticket: 19 | https://github.com/csete/gpredict/issues/110 20 | 21 | 22 | To build a deployable ZIP archive, use 'make dist', which packages all 23 | binary DLLs from dependent packages along with gpredict[-con].exe into 24 | a versioned ZIP. 25 | 26 | Good luck! 27 | Phlash. 28 | -------------------------------------------------------------------------------- /win32/build-config.h: -------------------------------------------------------------------------------- 1 | /* build-config.h.in. Generated from configure.ac by autoheader. */ 2 | 3 | /* Define if code coverage should be enabled. */ 4 | #undef ENABLE_COV 5 | 6 | /* always defined to indicate that i18n is enabled */ 7 | #undef ENABLE_NLS 8 | 9 | /* "definition of GETTEXT_PACKAGE" */ 10 | #undef GETTEXT_PACKAGE 11 | 12 | /* Define to 1 if you have the `bind_textdomain_codeset' function. */ 13 | #undef HAVE_BIND_TEXTDOMAIN_CODESET 14 | 15 | /* Define to 1 if you have the `dcgettext' function. */ 16 | #undef HAVE_DCGETTEXT 17 | 18 | /* Define to 1 if you have the header file. */ 19 | #undef HAVE_DLFCN_H 20 | 21 | /* Define to 1 if you have the header file. */ 22 | #undef HAVE_GETOPT_H 23 | 24 | /* Define if the GNU gettext() function is already present or preinstalled. */ 25 | #undef HAVE_GETTEXT 26 | 27 | /* Define to 1 if you have the header file. */ 28 | #undef HAVE_INTTYPES_H 29 | 30 | /* Define if your file defines LC_MESSAGES. */ 31 | #undef HAVE_LC_MESSAGES 32 | 33 | /* Define to 1 if you have the header file. */ 34 | #undef HAVE_LOCALE_H 35 | 36 | /* Define to 1 if you have the header file. */ 37 | #undef HAVE_MEMORY_H 38 | 39 | /* Define to 1 if you have the header file. */ 40 | #undef HAVE_STDINT_H 41 | 42 | /* Define to 1 if you have the header file. */ 43 | #undef HAVE_STDLIB_H 44 | 45 | /* Define to 1 if you have the header file. */ 46 | #undef HAVE_STRINGS_H 47 | 48 | /* Define to 1 if you have the header file. */ 49 | #undef HAVE_STRING_H 50 | 51 | /* Define to 1 if you have the header file. */ 52 | #undef HAVE_SYS_STAT_H 53 | 54 | /* Define to 1 if you have the header file. */ 55 | #undef HAVE_SYS_TIME_H 56 | 57 | /* Define to 1 if you have the header file. */ 58 | #undef HAVE_SYS_TYPES_H 59 | 60 | /* Define to 1 if you have the header file. */ 61 | #undef HAVE_UNISTD_H 62 | 63 | /* Define to the sub-directory in which libtool stores uninstalled libraries. 64 | */ 65 | #undef LT_OBJDIR 66 | 67 | /* Name of package */ 68 | #undef PACKAGE 69 | 70 | /* Define to the address where bug reports for this package should be sent. */ 71 | #undef PACKAGE_BUGREPORT 72 | 73 | /* Define to the full name of this package. */ 74 | #undef PACKAGE_NAME 75 | 76 | /* Define to the full name and version of this package. */ 77 | #undef PACKAGE_STRING 78 | 79 | /* Define to the one symbol short name of this package. */ 80 | #undef PACKAGE_TARNAME 81 | 82 | /* Define to the version of this package. */ 83 | #undef PACKAGE_VERSION 84 | 85 | /* Define to 1 if you have the ANSI C header files. */ 86 | #undef STDC_HEADERS 87 | 88 | /* Version number of package */ 89 | #ifdef VERSION_SHORT 90 | #define stringify_(x) #x 91 | #define str_(x) stringify_(x) 92 | #define VERSION str_(VERSION_SHORT) 93 | #else 94 | #define VERSION "1.9.xx" 95 | #endif 96 | 97 | #define GETTEXT_PACKAGE "gpredict" 98 | 99 | #undef HAS_LIBGPS 100 | 101 | -------------------------------------------------------------------------------- /win32/config.mk: -------------------------------------------------------------------------------- 1 | # Configuration variables governing the build of gpredict for win32 2 | 3 | # pkgconfig path, assumes goocanvas-3.0.0 and gtk+-3.10.4 win32 packages 4 | # unpacked and paths adjusted (pkg-config files) at the same folder level 5 | # as gpredict. Downloads used: 6 | # 7 | # http://ftp.gnome.org/pub/GNOME/binaries/win32/goocanvas/3.0/ 8 | # download both: goocanvas-3.0.0-win32.zip, goocanvas-dev-3.0.0-win32.zip 9 | # 10 | # http://win32builder.gnome.org/gtk+-bundle_3.10.4-20131202_win32.zip 11 | # NB: I had to create new .pc files for both gtk+-3.0.pc and gdk.pc 12 | # (thanks GNOME for missing crucial bits out of builds). My versions 13 | # are in this folder, and will need unpack paths inserting. 14 | 15 | # Change the path below to select the appropriate install path and compiler 16 | # for 32 and 64 bit cross-compiles. Note that if you have expicitly changed 17 | # the PATH environment variable, you may need to make additional changes. 18 | # 19 | # Windows hosts will require a configuration like this for 32 bit compiles: 20 | # MINGW_ROOT=/mingw32 21 | # or this, for 64 bit compiles: 22 | # MINGW_ROOT=/mingw64 23 | # 24 | # Linux or other hosts require a path that is dependent upon the installation. 25 | # For 32 bit: 26 | # MINGW_ROOT=../../msys64/mingw32 27 | # For 64 bit: 28 | # MINGW_ROOT=../../msys64/mingw64 29 | # 30 | MINGW_ROOT=/mingw64 31 | 32 | PKG_CONFIG_PATH = "$(abspath $(MINGW_ROOT)/lib/pkgconfig)" 33 | 34 | # binary dependencies to be deployed with gpredict.exe 35 | BINDEPS = \ 36 | $(wildcard $(MINGW_ROOT)/bin/*.dll) \ 37 | $(MINGW_ROOT)/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.dll \ 38 | $(MINGW_ROOT)/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.dll \ 39 | $(MINGW_ROOT)/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jpeg.dll 40 | 41 | # where to put the loaders.cache file 42 | LOADERS = lib/gdk-pixbuf-2.0/2.10.0 43 | 44 | # other miscellaneous folders to deploy with the binary 45 | GTKETC = $(MINGW_ROOT)/etc 46 | SCHEMAS = $(MINGW_ROOT)/share/glib-2.0/schemas 47 | ADWAITA = $(MINGW_ROOT)/share/icons/Adwaita 48 | 49 | # Autoversioning from nearest git tag, assumes v. tag format. 50 | 51 | GITVER := $(shell git describe) 52 | GITSEP := $(subst -, ,$(GITVER)) 53 | GITTAG := $(word 1,$(GITSEP)) 54 | GITBLD := $(word 2,$(GITSEP)) 55 | GITCOM := $(word 3,$(GITSEP)) 56 | GITMAJ := $(subst v,,$(word 1,$(subst ., ,$(GITTAG)))) 57 | GITMIN := $(word 2,$(subst ., ,$(GITTAG))) 58 | -------------------------------------------------------------------------------- /win32/gpredict.rc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include "resource.h" 5 | 6 | #if defined(VERMAJ) && defined(VERMIN) && defined(VERBLD) 7 | // awesome, we have version info 8 | #else 9 | // fake it! 10 | #define VERMAJ 1 11 | #define VERMIN 9 12 | #define VERBLD 0 13 | #endif 14 | 15 | #define stringify_(x) #x 16 | #define str_(x) stringify_(x) 17 | #define VERSION_RSRC VERMAJ,VERMIN,0,VERBLD 18 | #define VERSION_STRS str_(VERMAJ) "." str_(VERMIN) "." str_(VERBLD) 19 | #define VERSION_STRL str_(VERMAJ) "." str_(VERMIN) ".0." str_(VERBLD) 20 | 21 | A ICON "icons/gpredict-icon.ico" 22 | 23 | LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL 24 | 1 VERSIONINFO 25 | FILEVERSION VERSION_RSRC 26 | PRODUCTVERSION VERSION_RSRC 27 | FILEOS VOS__WINDOWS32 28 | FILETYPE VFT_APP 29 | FILESUBTYPE VFT2_UNKNOWN 30 | FILEFLAGSMASK 0x00000000 31 | FILEFLAGS 0x00000000 32 | { 33 | BLOCK "StringFileInfo" 34 | { 35 | BLOCK "040904e4" 36 | { 37 | VALUE "CompanyName", "Alexandru Csete, OZ9AEC" 38 | VALUE "FileDescription", "Gpredict: Real-time satellite tracking and orbit prediction program" 39 | VALUE "FileVersion", VERSION_STRL 40 | VALUE "InternalName", "GPredict" 41 | VALUE "LegalCopyright", "Copyright (C) 2001-2017 Alexandru Csete, OZ9AEC" 42 | VALUE "ProductName", "GPredict" 43 | VALUE "ProductVersion", VERSION_STRS 44 | } 45 | } 46 | BLOCK "VarFileInfo" 47 | { 48 | VALUE "Translation", 0x0409, 0x04E4 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /win32/icons/gpredict-icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csete/gpredict/91a4a3fb15e7eab0374d1bb7c859d386818b48ee/win32/icons/gpredict-icon.ico -------------------------------------------------------------------------------- /win32/loaders.cache: -------------------------------------------------------------------------------- 1 | # GdkPixbuf Image Loader Modules file 2 | # Automatically generated file, do not edit 3 | # Created by gdk-pixbuf-query-loaders.exe from gdk-pixbuf-2.30.1 4 | # 5 | # LoaderDir = Z:\srv\win32builder\fixed_3104\build\win32/lib/gdk-pixbuf-2.0/2.10.0/loaders 6 | # 7 | "libpixbufloader-svg.dll" 8 | "svg" 2 "gdk-pixbuf" "Scalable Vector Graphics" "LGPL" 9 | "image/svg+xml" "image/svg" "image/svg-xml" "image/vnd.adobe.svg+xml" "text/xml-svg" "image/svg+xml-compressed" "" 10 | "svg" "svgz" "svg.gz" "" 11 | " 32 | #include 33 | #include 34 | #include "win32-fetch.h" 35 | 36 | #define BUFLEN 8192 37 | 38 | int win32_fetch(char *url, FILE *file, char *proxy, char *ua) 39 | { 40 | HINTERNET hInt, hUrl; 41 | char buf[BUFLEN]; 42 | DWORD nRead; 43 | 44 | if (proxy != NULL) 45 | hInt = InternetOpen(ua, INTERNET_OPEN_TYPE_PROXY, proxy, "", 0); 46 | else 47 | hInt = InternetOpen(ua, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); 48 | if (NULL == hInt) 49 | return 0x80000000 | (int)GetLastError(); 50 | 51 | hUrl = InternetOpenUrl(hInt, url, NULL, 0, INTERNET_FLAG_RELOAD, 0); 52 | if (NULL == hUrl) 53 | { 54 | InternetCloseHandle(hInt); 55 | return 0x40000000 | (int)GetLastError(); 56 | } 57 | 58 | while (InternetReadFile(hUrl, buf, BUFLEN, &nRead)) 59 | { 60 | if (nRead > 0) 61 | fwrite(buf, nRead, 1, file); 62 | else 63 | break; 64 | } 65 | InternetCloseHandle(hUrl); 66 | InternetCloseHandle(hInt); 67 | return 0; 68 | } 69 | 70 | -------------------------------------------------------------------------------- /win32/win32-fetch.h: -------------------------------------------------------------------------------- 1 | /* 2 | Gpredict: Real-time satellite tracking and orbit prediction program 3 | 4 | Copyright (C) 2001-2017 Alexandru Csete, OZ9AEC. 5 | Copyright (C) 2017 Phil Ashby, 2E0IPX. 6 | 7 | Comments, questions and bugreports should be submitted via 8 | http://sourceforge.net/projects/gpredict/ 9 | More details can be found at the project home page: 10 | 11 | http://gpredict.oz9aec.net/ 12 | 13 | This program is free software; you can redistribute it and/or modify 14 | it under the terms of the GNU General Public License as published by 15 | the Free Software Foundation; either version 2 of the License, or 16 | (at your option) any later version. 17 | 18 | This program is distributed in the hope that it will be useful, 19 | but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | GNU General Public License for more details. 22 | 23 | You should have received a copy of the GNU General Public License 24 | along with this program; if not, visit http://www.fsf.org/ 25 | */ 26 | 27 | extern int win32_fetch(char *url, FILE *file, char *proxy, char *ua); 28 | 29 | --------------------------------------------------------------------------------