altos: Broke TeleMetrum GPS reporting by holding the GPS mutex too much
[fw/altos] / src / core / ao_serial.h
index 53aa8a89e2c7d7903270257f2118c1700b6a28a3..baf213c01ad510eee2d278439ef546df2d04b321 100644 (file)
@@ -22,6 +22,7 @@
 #define AO_SERIAL_SPEED_9600   1
 #define AO_SERIAL_SPEED_19200  2
 #define AO_SERIAL_SPEED_57600  3
+#define AO_SERIAL_SPEED_115200 4
 
 #if HAS_SERIAL_0
 extern volatile __xdata struct ao_fifo ao_serial0_rx_fifo;
@@ -30,6 +31,9 @@ extern volatile __xdata struct ao_fifo        ao_serial0_tx_fifo;
 char
 ao_serial0_getchar(void);
 
+int
+_ao_serial0_pollchar(void);
+
 void
 ao_serial0_putchar(char c);
 
@@ -47,8 +51,8 @@ extern volatile __xdata struct ao_fifo        ao_serial1_tx_fifo;
 char
 ao_serial1_getchar(void);
 
-char
-ao_serial1_pollchar(void);
+int
+_ao_serial1_pollchar(void);
 
 void
 ao_serial1_putchar(char c);
@@ -67,8 +71,8 @@ extern volatile __xdata struct ao_fifo        ao_serial2_tx_fifo;
 char
 ao_serial2_getchar(void);
 
-char
-ao_serial2_pollchar(void);
+int
+_ao_serial2_pollchar(void);
 
 void
 ao_serial2_putchar(char c);
@@ -80,6 +84,26 @@ void
 ao_serial2_set_speed(uint8_t speed);
 #endif
 
+#if HAS_SERIAL_3
+extern volatile __xdata struct ao_fifo ao_serial3_rx_fifo;
+extern volatile __xdata struct ao_fifo ao_serial3_tx_fifo;
+
+char
+ao_serial3_getchar(void);
+
+int
+_ao_serial3_pollchar(void);
+
+void
+ao_serial3_putchar(char c);
+
+void
+ao_serial3_drain(void);
+
+void
+ao_serial3_set_speed(uint8_t speed);
+#endif
+
 void
 ao_serial_init(void);