*** empty log message ***

This commit is contained in:
Antoine Drouin
2006-12-01 17:08:42 +00:00
parent 08157c3ef2
commit 887da3647b
2 changed files with 118 additions and 1 deletions
+7 -1
View File
@@ -29,5 +29,11 @@ all: play
play : play.ml
$(OCAMLC) $(INCLUDES) -custom -o $@ unix.cma str.cma xml-light.cma glibivy-ocaml.cma -I +lablgtk2 -I ../lib/ocaml lablgtk.cma lib-pprz.cma gtkInit.cmo $^
CC = gcc
CFLAGS=-g -O2 -Wall `pkg-config gtk+-2.0 --cflags`
LDFLAGS=`pkg-config gtk+-2.0 --libs` -s -lgtkdatabox `pcre-config --libs` -lglibivy
ahrsview : ahrsview.c
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
clean:
rm -f *.opt *.out *~ core *.o *.bak .depend *.cm* play
rm -f *.opt *.out *~ core *.o *.bak .depend *.cm* play ahrsview
+111
View File
@@ -0,0 +1,111 @@
#include <gtk/gtk.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <gtkdatabox.h>
#include <gtkdatabox_points.h>
#include <gtkdatabox_lines.h>
#include <gtkdatabox_bars.h>
#include <gtkdatabox_grid.h>
#include <gtkdatabox_cross_simple.h>
#include <gtkdatabox_marker.h>
#include <Ivy/ivy.h>
#include <Ivy/ivyglibloop.h>
#define NB_POINTS 2000
GtkWidget* databox;
static gfloat *X;
static gfloat *BX;
static gfloat *BY;
static gfloat *BZ;
static guint nb_data;
GtkWidget* plot_frame_new(void) {
databox = gtk_databox_new ();
X = g_new0 (gfloat, NB_POINTS);
BX = g_new0 (gfloat, NB_POINTS);
BY = g_new0 (gfloat, NB_POINTS);
BZ = g_new0 (gfloat, NB_POINTS);
GdkColor color;
color.red = 0;
color.green = 0;
color.blue = 0;
GtkDataboxGraph* grid = gtk_databox_grid_new (7, 7, &color, 2);
gtk_databox_graph_add (GTK_DATABOX (databox), grid);
color.red = 0;
color.green = 65535;
color.blue = 0;
GtkDataboxGraph *graph_bx = gtk_databox_lines_new (NB_POINTS, X, BX, &color, 1);
gtk_databox_graph_add (GTK_DATABOX (databox), graph_bx);
color.red = 65535;
color.green = 0;
color.blue = 0;
GtkDataboxGraph *graph_by = gtk_databox_lines_new(NB_POINTS, X, BY, &color, 1);
gtk_databox_graph_add (GTK_DATABOX (databox), graph_by);
color.red = 0;
color.green = 0;
color.blue = 65535;
GtkDataboxGraph *graph_bz = gtk_databox_lines_new(NB_POINTS, X, BZ, &color, 1);
gtk_databox_graph_add (GTK_DATABOX (databox), graph_bz);
nb_data = 0;
return databox;
}
void update_state_plot(float q0, float q1, float q2, float q3, float bx, float by, float bz) {
if (nb_data < NB_POINTS) {
X[nb_data] = nb_data;
BX[nb_data] = bx;
BY[nb_data] = by;
BZ[nb_data] = bz;
gtk_databox_auto_rescale (GTK_DATABOX (databox), 0.);
nb_data++;
}
}
void on_AHRS_STATE(IvyClientPtr app, void *user_data, int argc, char *argv[]){
float q0 = atof(argv[0]);
float q1 = atof(argv[1]);
float q2 = atof(argv[2]);
float q3 = atof(argv[3]);
float bx = atof(argv[4]);
float by = atof(argv[5]);
float bz = atof(argv[6]);
update_state_plot(q0, q1, q2, q3, bx, by, bz);
}
int main (int argc, char** argv) {
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request (window, 1240, 600);
GtkWidget *vbox1 = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox1);
gtk_box_pack_start (GTK_BOX (vbox1), plot_frame_new(), TRUE, TRUE, 0);
gtk_widget_show_all(window);
IvyInit ("IvyGtkButton", "IvyGtkButton READY", NULL, NULL, NULL, NULL);
IvyBindMsg(on_AHRS_STATE, NULL, "^77 AHRS (\\S*) (\\S*) (\\S*) (\\S*) (\\S*) (\\S*) (\\S*)");
//IvyBindMsg(on_AHRS_STATE, NULL, "^77 AHRS (.*)");
IvyStart("127.255.255.255");
gtk_main();
return 0;
}