first commit to add IQ capture

This commit is contained in:
Matthew Hassell 2025-01-22 14:31:17 -05:00
parent 91a4a3fb15
commit 2ce656dcf4
4 changed files with 40 additions and 3 deletions

3
README
View file

@ -1,4 +1,3 @@
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).
@ -49,6 +48,7 @@ To build and install gpredict from source, first unpack the source package:
Then change to the gpredict-x.y.z directory and build gpredict:
autoreconf -i
./configure
make
make install
@ -61,6 +61,7 @@ adding --prefix=somedir to the ./configure step. For example
./configure --prefix=/home/user/predict
will configure the build to install the files into /home/user/gpredict folder.
Otherwise it will build to /usr/local/bin/gpredict.
If you are building directly from the git repository, you have to run
./autogen.sh instead of of configure. You can pass the same options to the

View file

@ -45,6 +45,8 @@
#define KEY_VFO_UP "VFO_UP"
#define KEY_SIG_AOS "SIGNAL_AOS"
#define KEY_SIG_LOS "SIGNAL_LOS"
#define KEY_SIG_AOIQ "SIGNAL_AOIQ"
#define KEY_SIG_LOIQ "SIGNAL_LOIQ"
#define DEFAULT_CYCLE_MS 1000
@ -236,6 +238,10 @@ gboolean radio_conf_read(radio_conf_t * conf)
/* Signal AOS and LOS */
conf->signal_aos = g_key_file_get_boolean(cfg, GROUP, KEY_SIG_AOS, NULL);
conf->signal_los = g_key_file_get_boolean(cfg, GROUP, KEY_SIG_LOS, NULL);
conf->signal_aoiq = g_key_file_get_boolean(cfg, GROUP, KEY_SIG_AOIQ, NULL);
conf->signal_loiq = g_key_file_get_boolean(cfg, GROUP, KEY_SIG_LOIQ, NULL);
g_key_file_free(cfg);
sat_log_log(SAT_LOG_LEVEL_INFO,
@ -288,6 +294,10 @@ void radio_conf_save(radio_conf_t * conf)
g_key_file_set_boolean(cfg, GROUP, KEY_SIG_AOS, conf->signal_aos);
g_key_file_set_boolean(cfg, GROUP, KEY_SIG_LOS, conf->signal_los);
g_key_file_set_boolean(cfg, GROUP, KEY_SIG_AOIQ, conf->signal_aoiq);
g_key_file_set_boolean(cfg, GROUP, KEY_SIG_LOIQ, conf->signal_loiq);
confdir = get_hwconf_dir();
fname = g_strconcat(confdir, G_DIR_SEPARATOR_S, conf->name, ".rig", NULL);

View file

@ -70,8 +70,10 @@ typedef struct {
vfo_t vfoDown; /*!< Downlink VFO for full-duplex radios */
vfo_t vfoUp; /*!< Uplink VFO for full-duplex radios */
gboolean signal_aos; /*!< Send AOS notification to RIG */
gboolean signal_los; /*!< Send LOS notification to RIG */
gboolean signal_aos; /*!< Send AOS notification to RIG */
gboolean signal_los; /*!< Send LOS notification to RIG */
gboolean signal_aoiq; /*!< Send AOIQ notification to RIG */
gboolean signal_loiq; /*!< Send LOIQ notification to RIG */
gint vfo_opt; /*!< Keep track of vfo_opt being enabled in rigctld */
} radio_conf_t;

View file

@ -43,6 +43,10 @@ static GtkWidget *lo; /* local oscillator of downconverter */
static GtkWidget *loup; /* local oscillator of upconverter */
static GtkWidget *sigaos; /* AOS signalling */
static GtkWidget *siglos; /* LOS signalling */
static GtkWidget *sigaoiq; /* AOIQ signalling */
static GtkWidget *sigloiq; /* LOIQ signalling */
static void clear_widgets()
@ -58,6 +62,9 @@ static void clear_widgets()
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ptt), FALSE);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sigaos), FALSE);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(siglos), FALSE);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sigaoiq), FALSE);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sigloiq), FALSE);
}
static void update_widgets(radio_conf_t * conf)
@ -103,6 +110,8 @@ static void update_widgets(radio_conf_t * conf)
/* AOS / LOS signalling */
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sigaos), conf->signal_aos);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(siglos), conf->signal_los);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sigaoiq), conf->signal_aoiq);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sigloiq), conf->signal_loiq);
}
/*
@ -436,6 +445,18 @@ static GtkWidget *create_editor_widgets(radio_conf_t * conf)
gtk_widget_set_tooltip_text(siglos,
_("Enable LOS signalling for this radio."));
sigaoiq = gtk_check_button_new_with_label(_("AOIQ"));
gtk_grid_attach(GTK_GRID(table), sigaoiq, 3, 8, 1, 1);
gtk_widget_set_tooltip_text(sigaoiq,
_("Enable AOIQ signalling for this radio."));
sigloiq = gtk_check_button_new_with_label(_("LOIQ"));
gtk_grid_attach(GTK_GRID(table), sigloiq, 4, 8, 1, 1);
gtk_widget_set_tooltip_text(sigloiq,
_("Enable LOIQ signalling for this radio."));
if (conf->name != NULL)
update_widgets(conf);
@ -510,6 +531,9 @@ static gboolean apply_changes(radio_conf_t * conf)
/* AOS / LOS signalling */
conf->signal_aos = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sigaos));
conf->signal_los = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(siglos));
conf->signal_aoiq = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sigaoiq));
conf->signal_loiq = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sigloiq));
return TRUE;
}