Dont smash aoview_monitor_parse input buffer
[fw/altos] / aoview / aoview.h
index 7b5f0de5b7c5dd2ced0639032550ee4796721593..5c118a111d64d8f2a3eb59c4ce13c12d702ee565 100644 (file)
 
 #define _GNU_SOURCE
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -70,17 +74,61 @@ struct aostate {
                int minute;
                int second;
        } gps_time;
-       double  lat;
-       double  lon;
-       int     alt;
+       double  lat;            /* degrees (+N -S) */
+       double  lon;            /* degrees (+E -W) */
+       int     alt;            /* m */
+       double  ground_speed;   /* m/s */
+       int     course;         /* degrees */
+       double  climb_rate;     /* m/s */
+       double  hdop;           /* unitless? */
+       int     h_error;        /* m */
+       int     v_error;        /* m */
+
+       /* derived data */
+
+       gboolean        ascent; /* going up? */
+
+       int     ground_altitude;
+       int     height;
+       double  speed;
+       double  acceleration;
+       double  battery;
+       double  temperature;
+       double  main_sense;
+       double  drogue_sense;
+
+       int     max_height;
+       double  max_acceleration;
+       double  max_speed;
+
+       double  pad_lat;
+       double  pad_lon;
+       double  pad_alt;
+       double  pad_lat_total;
+       double  pad_lon_total;
+       double  pad_alt_total;
+       int     npad;
+
+       double  distance;
+       double  bearing;
+       int     gps_height;
 };
 
+/* GPS is 'stable' when we've seen at least this many samples */
+#define MIN_PAD_SAMPLES        10
+
 void
 aoview_monitor_disconnect(void);
 
 gboolean
 aoview_monitor_connect(char *tty);
 
+gboolean
+aoview_monitor_parse(const char *line);
+
+void
+aoview_monitor_reset(void);
+
 struct aoview_serial *
 aoview_serial_open(const char *tty);
 
@@ -172,12 +220,17 @@ aoview_table_clear(void);
 
 struct aoview_file;
 
+extern char *aoview_file_dir;
+
 void
 aoview_file_finish(struct aoview_file *file);
 
 gboolean
 aoview_file_start(struct aoview_file *file);
 
+const char *
+aoview_file_name(struct aoview_file *file);
+
 void
 aoview_file_set_serial(struct aoview_file *file, int serial);
 
@@ -199,4 +252,34 @@ aoview_file_destroy(struct aoview_file *file);
 void
 aoview_file_init(GladeXML *xml);
 
+/* aoview_eeprom.c */
+
+gboolean
+aoview_eeprom_save(const char *device);
+
+void
+aoview_eeprom_init(GladeXML *xml);
+
+/* aoview_voice.c */
+void aoview_voice_open(void);
+
+void aoview_voice_close(void);
+
+void aoview_voice_speak(char *format, ...);
+
+/* aoview_label.c */
+
+void aoview_label_init(GladeXML *xml);
+
+void
+aoview_label_show(struct aostate *state);
+
+/* aoview_flite.c */
+
+FILE *
+aoview_flite_start(void);
+
+void
+aoview_flite_stop(void);
+
 #endif /* _AOVIEW_H_ */