⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 updategui.c

📁 非常好用的gps数据读写接口
💻 C
📖 第 1 页 / 共 3 页
字号:
/***************************************************************************                     updategui.h  -  refresh values in gui                             -------------------    begin                : So M鋜 21 17:50:31 CET 2004    copyright            : (C) 2004 by Dennis Real    email                : dev-null@users.sourceforge.net ***************************************************************************//*************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * ***************************************************************************/#include <stdio.h>#include <stdlib.h>#include <gtk/gtk.h>#include <math.h>#include "support.h"#include "def.h"#include "datatypes.h"#include "convert.h"#include "pvt.h"#include "device.h"/*	update sat info in gui	*/void updateGuiSat(GtkNotebook * notebook){	GtkTreeView *widget;	GtkTreeIter   iter, iter1;	GtkTreeStore *treestore;	GtkCellRenderer *renderer, *renderer2;	GtkTreeViewColumn *column, *column2;	int z=0;	char buff[255];	extern Almanac_Type satinfo[];	widget = (GtkTreeView *) lookup_widget (GTK_WIDGET (notebook), "treeview1");	/* columns */	column=gtk_tree_view_get_column(widget, 0);	column2=gtk_tree_view_get_column(widget, 1);			if (column!=NULL)	{		gtk_tree_view_remove_column(widget, column);	}	if (column2!=NULL)	{		gtk_tree_view_remove_column(widget, column2);	}	column = gtk_tree_view_column_new();	gtk_tree_view_column_set_title(column, "Satellite");	gtk_tree_view_append_column(GTK_TREE_VIEW(widget), column);	column2 = gtk_tree_view_column_new();	gtk_tree_view_column_set_title(column2, "Value");	gtk_tree_view_append_column(GTK_TREE_VIEW(widget), column2); 	/* renderer */   	renderer = gtk_cell_renderer_text_new();	gtk_tree_view_column_pack_start(column, renderer, TRUE);	renderer2 = gtk_cell_renderer_text_new();	gtk_tree_view_column_pack_start(column2, renderer2, TRUE);          	g_object_set(renderer, "foreground-set", FALSE, NULL);	g_object_set(renderer2, "foreground-set", FALSE, NULL);	//g_object_set(renderer, "foreground", "Red", "foreground-set", TRUE, NULL);                	//g_object_set(renderer, "text", "dkjfh", NULL); 	gtk_tree_view_column_add_attribute(column, renderer, "text", 0);	gtk_tree_view_column_add_attribute(column2, renderer2, "text", 1);	/* store */	treestore=gtk_tree_store_new(2, G_TYPE_STRING, G_TYPE_STRING);	gtk_tree_view_set_model(GTK_TREE_VIEW(widget), GTK_TREE_MODEL(treestore));	while ( (satinfo[z].wn!=0) && (z<ANZSAT) )	{		gtk_tree_store_append(treestore, &iter, NULL);		gtk_tree_store_set(treestore, &iter,	                       0, "Satellite", 	                               -1 );		if ( satinfo[z].wn==65535.0 )			sprintf(buff, "PRN-%02d (inactive)", z+1);		else			sprintf(buff, "PRN-%02d", z+1);		gtk_tree_store_set(treestore, &iter,	                       1, buff,	                                -1);		gtk_tree_store_append(treestore, &iter1, &iter);		gtk_tree_store_set(treestore, &iter1,	                       0, "Week number: (weeks)",	                                -1);		sprintf(buff, "%d", satinfo[z].wn);		gtk_tree_store_set(treestore, &iter1,	                       1, buff,	                                -1);		gtk_tree_store_append(treestore, &iter1, &iter);		gtk_tree_store_set(treestore, &iter1,	                       0, "Almanac Data Reference Time: (s)",	                                -1);		sprintf(buff, "%f", satinfo[z].toa);		gtk_tree_store_set(treestore, &iter1,	                       1, buff,	                                -1);		gtk_tree_store_append(treestore, &iter1, &iter);		gtk_tree_store_set(treestore, &iter1,	                       0, "Clock correction coefficient 1 (s):",	                                -1);		sprintf(buff, "%1.10E", satinfo[z].af0);		gtk_tree_store_set(treestore, &iter1,	                       1, buff,	                                -1);		gtk_tree_store_append(treestore, &iter1, &iter);		gtk_tree_store_set(treestore, &iter1,	                       0, "Clock correction coefficient 2 (s/s):",	                                -1);		sprintf(buff, "%1.10E", satinfo[z].af1);		gtk_tree_store_set(treestore, &iter1,	                       1, buff,	                                -1);		gtk_tree_store_append(treestore, &iter1, &iter);		gtk_tree_store_set(treestore, &iter1,	                       0, "Eccentricity:",	                                -1);		sprintf(buff, "%1.10E", satinfo[z].e);		gtk_tree_store_set(treestore, &iter1,	                       1, buff,	                                -1);		gtk_tree_store_append(treestore, &iter1, &iter);		gtk_tree_store_set(treestore, &iter1,	                       0, "Square root of semi-major axis (a) (m^1/2):",	                                -1);		sprintf(buff, "%f", satinfo[z].sqrta);		gtk_tree_store_set(treestore, &iter1,	                       1, buff,	                                -1);		gtk_tree_store_append(treestore, &iter1, &iter);		gtk_tree_store_set(treestore, &iter1,	                       0, "Mean anomaly at reference time (rad):",	                                -1);		sprintf(buff, "%f", satinfo[z].m0);		gtk_tree_store_set(treestore, &iter1,	                       1, buff,	                                -1);		gtk_tree_store_append(treestore, &iter1, &iter);		gtk_tree_store_set(treestore, &iter1,	                       0, "Argument of perigee (rad, deg):",	                                -1);		sprintf(buff, "%f   %f", satinfo[z].w, rad2deg(satinfo[z].w));		gtk_tree_store_set(treestore, &iter1,	                       1, buff,	                                -1);		gtk_tree_store_append(treestore, &iter1, &iter);		gtk_tree_store_set(treestore, &iter1,	                       0, "Right ascension (rad, deg):",	                                -1);		sprintf(buff, "%f   %f", satinfo[z].omg0, rad2deg(satinfo[z].omg0));		gtk_tree_store_set(treestore, &iter1,	                       1, buff,	                                -1);		gtk_tree_store_append(treestore, &iter1, &iter);		gtk_tree_store_set(treestore, &iter1,	                       0, "Rate of right ascension (rad/s):",	                                -1);		sprintf(buff, "%1.10E", satinfo[z].odot);		gtk_tree_store_set(treestore, &iter1,	                       1, buff,	                                -1);		gtk_tree_store_append(treestore, &iter1, &iter);		gtk_tree_store_set(treestore, &iter1,	                       0, "Inclination angle (rad, deg):",	                                -1);		sprintf(buff, "%f   %f", satinfo[z].i, rad2deg(satinfo[z].i));		gtk_tree_store_set(treestore, &iter1,	                       1, buff,	                                -1);		z++;	}}/*	update pvt in gui	*/gboolean updateGuiPvt(gpointer *data){	D800_Pvt_Data_Type pvtD800;	char posi [40];	GtkWidget *widget;	extern int tty;	double speed;	double minute;	double grad;	extern int timeouthandler[];	char dn, de;	GtkWidget *drawing_area;	GdkDrawable *drawable;	double d;	int sx,sy;	GdkColor yellow={0,0xffff,0xffff,0x0000};	GdkColor red={0,0xffff,0x0000,0x0000};	GdkGC *yellowgc, *redgc;	GdkColormap *cmap;	GdkFont * font;	/* get all pvt */	pvtD800=getAllpvtD800(tty);	if( pvtD800.fix==0 )	{		/* data useless or gps off. stop updating pvt */		g_source_remove (timeouthandler[pvt]);		timeouthandler[pvt]=0;		return 0;	}	/* speed */	speed=sqrt((pvtD800.north*pvtD800.north)+(pvtD800.east*pvtD800.east));	widget = (GtkWidget *)lookup_widget (GTK_WIDGET (data), "speedentry");	sprintf(posi, "%.3f (m/s) (%.1f掳)", speed, rad2deg(directionrad(pvtD800.north, pvtD800.east)));	gtk_entry_set_text (GTK_ENTRY(widget), posi);	widget = (GtkWidget *)lookup_widget (GTK_WIDGET (data), "speedlabel");	sprintf(posi, "%.1f km/h", speed*3.6);	gtk_label_set_text (GTK_LABEL(widget), posi);	/* velocity */	widget = (GtkWidget *)lookup_widget (GTK_WIDGET (data), "velocityhentry");	sprintf(posi, "%.3f (m/s)", pvtD800.east);	gtk_entry_set_text (GTK_ENTRY(widget), posi);	widget = (GtkWidget *)lookup_widget (GTK_WIDGET (data), "velocityventry");	sprintf(posi, "%.3f (m/s)", pvtD800.north);	gtk_entry_set_text (GTK_ENTRY(widget), posi);	widget = (GtkWidget *)lookup_widget (GTK_WIDGET (data), "velocityupentry");	sprintf(posi, "%.3f (m/s)", pvtD800.up);	gtk_entry_set_text (GTK_ENTRY(widget), posi);		/* position lat */	if ( pvtD800.posn.lat >= 0 )		dn='N';	else		dn='S';	grad=floor(rad2deg(fabs(pvtD800.posn.lat)));	minute=(rad2deg(fabs(pvtD800.posn.lat))-grad)*60;	widget = (GtkWidget *)lookup_widget (GTK_WIDGET (data), "latdegentry");	sprintf(posi, "%c  %02d掳 %02.3f \'", dn, abs((int)grad), minute);	gtk_entry_set_text (GTK_ENTRY(widget), posi);	widget = (GtkWidget *)lookup_widget (GTK_WIDGET (data), "latdecentry");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -