altos: Add support for 115200 baud serial rates
[fw/altos] / src / test / ao_gps_test.c
index 4d4012df10b54e11ed7d1d9f26681ac649faf246..3844a3265452f623d5065f48e31b6061cdabe002 100644 (file)
@@ -21,6 +21,7 @@
 #include <errno.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <unistd.h>
 #include <fcntl.h>
 #define AO_GPS_NUM_SAT_MASK    (0xf << 0)
 #define AO_GPS_NUM_SAT_SHIFT   (0)
@@ -87,6 +88,7 @@ ao_mutex_put(uint8_t *mutex)
 static int
 ao_gps_fd;
 
+#if 0
 static void
 ao_dbg_char(char c)
 {
@@ -102,6 +104,7 @@ ao_dbg_char(char c)
        }
        write(1, line, strlen(line));
 }
+#endif
 
 #define QUEUE_LEN      4096
 
@@ -220,6 +223,8 @@ check_sirf_message(char *from, uint8_t *msg, int len)
                get_u16(h_v_error);
 
 
+               (void) mag_var;
+               (void) id;
                printf ("Geodetic Navigation Data (41):\n");
                printf ("\tNav valid %04x\n", nav_valid);
                printf ("\tNav type %04x\n", nav_type);
@@ -257,6 +262,7 @@ check_sirf_message(char *from, uint8_t *msg, int len)
                get_u32(gps_tow);
                get_u8(channels);
 
+               (void) id;
                printf ("Measured Tracker Data (4):\n");
                printf ("GPS week: %d\n", gps_week);
                printf ("GPS time of week: %d\n", gps_tow);
@@ -368,10 +374,11 @@ ao_serial1_putchar(char c)
                i = write(ao_gps_fd, &c, 1);
                if (i == 1) {
                        if ((uint8_t) c == 0xb3 || c == '\r') {
-                               static const struct timespec delay = {
+/*                             static const struct timespec delay = {
                                        .tv_sec = 0,
                                        .tv_nsec = 100 * 1000 * 1000
                                };
+*/
                                tcdrain(ao_gps_fd);
 //                             nanosleep(&delay, NULL);
                        }
@@ -386,6 +393,7 @@ ao_serial1_putchar(char c)
 
 #define AO_SERIAL_SPEED_4800   0
 #define AO_SERIAL_SPEED_57600  1
+#define AO_SERIAL_SPEED_115200 2
 
 static void
 ao_serial1_set_speed(uint8_t speed)
@@ -402,6 +410,9 @@ ao_serial1_set_speed(uint8_t speed)
        case AO_SERIAL_SPEED_57600:
                cfsetspeed(&termios, B57600);
                break;
+       case AO_SERIAL_SPEED_115200:
+               cfsetspeed(&termios, B115200);
+               break;
        }
        tcsetattr(fd, TCSAFLUSH, &termios);
        tcflush(fd, TCIFLUSH);
@@ -415,7 +426,6 @@ ao_serial1_set_speed(uint8_t speed)
 void
 ao_dump_state(void *wchan)
 {
-       double  lat, lon;
        int     i;
        if (wchan == &ao_gps_data)
                ao_gps_print(&ao_gps_data);
@@ -505,4 +515,5 @@ main (int argc, char **argv)
        }
        ao_gps_setup();
        ao_gps();
+       return 0;
 }