[Gpredict-svn] SF.net SVN: gpredict:[70] trunk/src
Real time satellite tracking and orbit prediction
Status: Beta
Brought to you by:
csete
|
From: <cs...@us...> - 2008-08-27 20:40:25
|
Revision: 70
http://gpredict.svn.sourceforge.net/gpredict/?rev=70&view=rev
Author: csete
Date: 2008-08-27 20:40:34 +0000 (Wed, 27 Aug 2008)
Log Message:
-----------
Added fields for port number and LO frequency.
Modified Paths:
--------------
trunk/src/sat-pref-rig-data.h
trunk/src/sat-pref-rig-editor.c
trunk/src/sat-pref-rig.c
Modified: trunk/src/sat-pref-rig-data.h
===================================================================
--- trunk/src/sat-pref-rig-data.h 2008-08-27 19:19:52 UTC (rev 69)
+++ trunk/src/sat-pref-rig-data.h 2008-08-27 20:40:34 UTC (rev 70)
@@ -31,7 +31,9 @@
/** \brief Coumn definitions for radio list. */
typedef enum {
RIG_LIST_COL_NAME = 0, /*!< File name. */
- RIG_LIST_COL_HOST, /*!< Hostname, e.g. localhost:12000 */
+ RIG_LIST_COL_HOST, /*!< Hostname, e.g. localhost */
+ RIG_LIST_COL_PORT, /*!< Port number */
+ RIG_LIST_COL_LO, /*!< Local oscillator freq */
RIG_LIST_COL_NUM /*!< The number of fields in the list. */
} rig_list_col_t;
Modified: trunk/src/sat-pref-rig-editor.c
===================================================================
--- trunk/src/sat-pref-rig-editor.c 2008-08-27 19:19:52 UTC (rev 69)
+++ trunk/src/sat-pref-rig-editor.c 2008-08-27 20:40:34 UTC (rev 70)
@@ -53,6 +53,8 @@
static GtkWidget *dialog; /* dialog window */
static GtkWidget *name; /* config name */
static GtkWidget *host; /* host */
+static GtkWidget *port; /* port number */
+static GtkWidget *lo; /* local oscillator */
static GtkWidget *create_editor_widgets (radio_conf_t *conf);
@@ -139,7 +141,7 @@
- table = gtk_table_new (2, 4, FALSE);
+ table = gtk_table_new (4, 4, FALSE);
gtk_container_set_border_width (GTK_CONTAINER (table), 5);
gtk_table_set_col_spacings (GTK_TABLE (table), 5);
gtk_table_set_row_spacings (GTK_TABLE (table), 5);
@@ -172,7 +174,34 @@
_("Enter the host and port where rigctld is running, e.g. 192.168.1.100:15123"));
gtk_table_attach_defaults (GTK_TABLE (table), host, 1, 4, 1, 2);
+ /* port */
+ label = gtk_label_new (_("Port"));
+ gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
+ gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 2, 3);
+ port = gtk_spin_button_new_with_range (1024, 65535, 1);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (port), 4532);
+ gtk_spin_button_set_digits (GTK_SPIN_BUTTON (port), 0);
+ gtk_widget_set_tooltip_text (port,
+ _("Enter the port number where rigctld is listening"));
+ gtk_table_attach_defaults (GTK_TABLE (table), port, 1, 3, 2, 3);
+
+ /* LO frequency */
+ label = gtk_label_new (_("LO"));
+ gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
+ gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 1, 3, 4);
+
+ lo = gtk_spin_button_new_with_range (-40000, 40000, 1);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (lo), 0);
+ gtk_spin_button_set_digits (GTK_SPIN_BUTTON (lo), 0);
+ gtk_widget_set_tooltip_text (lo,
+ _("Enter the frequency of the local oscillator, if any."));
+ gtk_table_attach_defaults (GTK_TABLE (table), lo, 1, 3, 3, 4);
+
+ label = gtk_label_new (_("MHz"));
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+ gtk_table_attach_defaults (GTK_TABLE (table), label, 3, 4, 3, 4);
+
if (conf->name != NULL)
update_widgets (conf);
@@ -191,10 +220,18 @@
/* configuration name */
gtk_entry_set_text (GTK_ENTRY (name), conf->name);
- /* host name and port */
+ /* host name */
if (conf->host)
gtk_entry_set_text (GTK_ENTRY (host), conf->host);
+ /* port */
+ if (conf->port > 1023)
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (port), conf->port);
+ else
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (port), 4532); /* hamlib default? */
+
+ /* lo in MHz */
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (lo), conf->lo / 1000000);
}
@@ -209,7 +246,8 @@
{
gtk_entry_set_text (GTK_ENTRY (name), "");
gtk_entry_set_text (GTK_ENTRY (host), "");
-
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (port), 4532); /* hamlib default? */
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (lo), 0);
}
@@ -235,7 +273,12 @@
conf->host = g_strdup (gtk_entry_get_text (GTK_ENTRY (host)));
-
+ /* port */
+ conf->port = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (port));
+
+ /* lo freq */
+ conf->lo = 1000000*gtk_spin_button_get_value (GTK_SPIN_BUTTON (lo));
+
return TRUE;
}
Modified: trunk/src/sat-pref-rig.c
===================================================================
--- trunk/src/sat-pref-rig.c 2008-08-27 19:19:52 UTC (rev 69)
+++ trunk/src/sat-pref-rig.c 2008-08-27 20:40:34 UTC (rev 70)
@@ -58,22 +58,13 @@
GtkTreeModel *model,
GtkTreeIter *iter,
gpointer column);
-static void render_civ (GtkTreeViewColumn *col,
+static void render_lo (GtkTreeViewColumn *col,
GtkCellRenderer *renderer,
GtkTreeModel *model,
GtkTreeIter *iter,
gpointer column);
-static void render_dtr_rts (GtkTreeViewColumn *col,
- GtkCellRenderer *renderer,
- GtkTreeModel *model,
- GtkTreeIter *iter,
- gpointer column);
-static void render_rig_type (GtkTreeViewColumn *col,
- GtkCellRenderer *renderer,
- GtkTreeModel *model,
- GtkTreeIter *iter,
- gpointer column);
+
/* global objects */
static GtkWidget *addbutton;
static GtkWidget *editbutton;
@@ -138,7 +129,24 @@
NULL);
gtk_tree_view_insert_column (GTK_TREE_VIEW (riglist), column, -1);
+ /* port */
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Port"), renderer,
+ "text", RIG_LIST_COL_PORT,
+ NULL);
+ gtk_tree_view_insert_column (GTK_TREE_VIEW (riglist), column, -1);
+ /* lo */
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("LO Freq. (MHz)"), renderer,
+ "text", RIG_LIST_COL_LO,
+ NULL);
+ gtk_tree_view_column_set_cell_data_func (column, renderer,
+ render_lo,
+ GUINT_TO_POINTER(RIG_LIST_COL_LO),
+ NULL);
+ gtk_tree_view_insert_column (GTK_TREE_VIEW (riglist), column, -1);
+
}
@@ -158,7 +166,9 @@
/* create a new list store */
liststore = gtk_list_store_new (RIG_LIST_COL_NUM,
G_TYPE_STRING, // name
- G_TYPE_STRING // model
+ G_TYPE_STRING, // host
+ G_TYPE_INT, // port
+ G_TYPE_DOUBLE // LO
);
/* open configuration directory */
@@ -183,6 +193,8 @@
gtk_list_store_set (liststore, &item,
RIG_LIST_COL_NAME, conf.name,
RIG_LIST_COL_HOST, conf.host,
+ RIG_LIST_COL_PORT, conf.port,
+ RIG_LIST_COL_LO, conf.lo,
-1);
sat_log_log (SAT_LOG_LEVEL_DEBUG,
@@ -290,6 +302,8 @@
radio_conf_t conf = {
.name = NULL,
.host = NULL,
+ .port = 4532,
+ .lo = 0.0,
};
@@ -328,6 +342,8 @@
gtk_tree_model_get (model, &iter,
RIG_LIST_COL_NAME, &conf.name,
RIG_LIST_COL_HOST, &conf.host,
+ RIG_LIST_COL_PORT, &conf.port,
+ RIG_LIST_COL_LO, &conf.lo,
-1);
radio_conf_save (&conf);
@@ -364,6 +380,8 @@
radio_conf_t conf = {
.name = NULL,
.host = NULL,
+ .port = 4532,
+ .lo = 0.0,
};
/* run rig conf editor */
@@ -376,6 +394,8 @@
gtk_list_store_set (liststore, &item,
RIG_LIST_COL_NAME, conf.name,
RIG_LIST_COL_HOST, conf.host,
+ RIG_LIST_COL_PORT, conf.port,
+ RIG_LIST_COL_LO, conf.lo,
-1);
g_free (conf.name);
@@ -404,6 +424,8 @@
radio_conf_t conf = {
.name = NULL,
.host = NULL,
+ .port = 4532,
+ .lo = 0.0,
};
@@ -427,6 +449,8 @@
gtk_tree_model_get (model, &iter,
RIG_LIST_COL_NAME, &conf.name,
RIG_LIST_COL_HOST, &conf.host,
+ RIG_LIST_COL_PORT, &conf.port,
+ RIG_LIST_COL_PORT, &conf.lo,
-1);
}
@@ -453,6 +477,8 @@
gtk_list_store_set (GTK_LIST_STORE(model), &iter,
RIG_LIST_COL_NAME, conf.name,
RIG_LIST_COL_HOST, conf.host,
+ RIG_LIST_COL_PORT, conf.port,
+ RIG_LIST_COL_LO, conf.lo,
-1);
}
@@ -543,138 +569,36 @@
}
-/** \brief Render CIV address.
+/** \brief Render Local Oscillator frequency.
* \param col Pointer to the tree view column.
* \param renderer Pointer to the renderer.
* \param model Pointer to the tree model.
* \param iter Pointer to the tree iterator.
* \param column The column number in the model.
*
- * This function is used to render the Icom CI-V address of the radio.
- * The CI-V adress is store as an integer and we want to display it as a
- * HEX number.
+ * This function is used to render the local oscillator frequency. We
+ * need a special renderer so that we can automatically render as MHz
+ * instead of Hz.
*/
-static void render_civ (GtkTreeViewColumn *col,
+static void render_lo (GtkTreeViewColumn *col,
GtkCellRenderer *renderer,
GtkTreeModel *model,
GtkTreeIter *iter,
gpointer column)
{
- guint number;
- gchar *buff;
- guint coli = GPOINTER_TO_UINT (column);
+ gdouble number;
+ gchar *buff;
+ guint coli = GPOINTER_TO_UINT (column);
gtk_tree_model_get (model, iter, coli, &number, -1);
- if (number > 0)
- buff = g_strdup_printf ("0x%X", number);
- else
- buff = g_strdup_printf (" ");
-
+ /* convert to MHz */
+ number /= 1000000.0;
+ buff = g_strdup_printf ("%.0f", number);
g_object_set (renderer, "text", buff, NULL);
g_free (buff);
}
-/** \brief Render DTR or RTS columns address.
- * \param col Pointer to the tree view column.
- * \param renderer Pointer to the renderer.
- * \param model Pointer to the tree model.
- * \param iter Pointer to the tree iterator.
- * \param column The column number in the model.
- *
- * This function renders the DTR and RTS line settings onto the radio list.
- * The DTR and RTS states are stored as enum; however, we want to display them
- * using some escriptive text, e.g. "ON", "OFF", "PTT", and so on
- */
-static void render_dtr_rts (GtkTreeViewColumn *col,
- GtkCellRenderer *renderer,
- GtkTreeModel *model,
- GtkTreeIter *iter,
- gpointer column)
-{
- guint number;
- guint coli = GPOINTER_TO_UINT (column);
-
- gtk_tree_model_get (model, iter, coli, &number, -1);
-/* switch (number) {
-
- case LINE_OFF:
- g_object_set (renderer, "text", "OFF", NULL);
- break;
-
- case LINE_ON:
- g_object_set (renderer, "text", "ON", NULL);
- break;
-
- case LINE_PTT:
- g_object_set (renderer, "text", "PTT", NULL);
- break;
-
- case LINE_CW:
- g_object_set (renderer, "text", "CW", NULL);
- break;
-
- default:
- g_object_set (renderer, "text", "UNDEF", NULL);
- break;
-
- }
- */
-}
-
-/** \brief Render radio type.
- * \param col Pointer to the tree view column.
- * \param renderer Pointer to the renderer.
- * \param model Pointer to the tree model.
- * \param iter Pointer to the tree iterator.
- * \param column The column number in the model.
- *
- * This function renders the radio type onto the radio list.
- * The radio type is stored as enum; however, we want to display it
- * using some escriptive text, e.g. "Received", "Full Duplex", and so on
- */
-static void render_rig_type (GtkTreeViewColumn *col,
- GtkCellRenderer *renderer,
- GtkTreeModel *model,
- GtkTreeIter *iter,
- gpointer column)
-{
- guint number;
- guint coli = GPOINTER_TO_UINT (column);
-
- gtk_tree_model_get (model, iter, coli, &number, -1);
-
-/* switch (number) {
-
- case RADIO_TYPE_RX:
- g_object_set (renderer, "text", "RX", NULL);
- break;
-
- case RADIO_TYPE_TX:
- g_object_set (renderer, "text", "TX", NULL);
- break;
-
- case RADIO_TYPE_TRX:
- g_object_set (renderer, "text", "RX/TX", NULL);
- break;
-
- case RADIO_TYPE_FULL_DUP:
- g_object_set (renderer, "text", "FULL DUPL", NULL);
- break;
-
- default:
- sat_log_log (SAT_LOG_LEVEL_ERROR,
- _("%s:%s: Invalid type: %d. Using RX."),
- __FILE__, __FUNCTION__, number);
- g_object_set (renderer, "text", "RX", NULL);
- break;
-
- }*/
-
-}
-
-
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|