projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Add checksum to TELEM output lines
[fw/altos]
/
src
/
ao.h
diff --git
a/src/ao.h
b/src/ao.h
index 42c3edda85ec41c1121470a673077b6dc7a2995c..f57537033caf029d89eec35dfb281569ae4de5aa 100644
(file)
--- a/
src/ao.h
+++ b/
src/ao.h
@@
-107,6
+107,7
@@
ao_start_scheduler(void);
#define AO_PANIC_REBOOT 8 /* Reboot failed */
#define AO_PANIC_FLASH 9 /* Invalid flash part (or wrong blocksize) */
#define AO_PANIC_USB 10 /* Trying to send USB packet while busy */
#define AO_PANIC_REBOOT 8 /* Reboot failed */
#define AO_PANIC_FLASH 9 /* Invalid flash part (or wrong blocksize) */
#define AO_PANIC_USB 10 /* Trying to send USB packet while busy */
+#define AO_PANIC_BT 11 /* Communications with bluetooth device failed */
/* Stop the operating system, beeping and blinking the reason */
void
/* Stop the operating system, beeping and blinking the reason */
void
@@
-403,6
+404,14
@@
ao_cmd_register(__code struct ao_cmds *cmds);
void
ao_cmd_init(void);
void
ao_cmd_init(void);
+#if HAS_CMD_FILTER
+/*
+ * Provided by an external module to filter raw command lines
+ */
+uint8_t
+ao_cmd_filter(void);
+#endif
+
/*
* ao_dma.c
*/
/*
* ao_dma.c
*/
@@
-708,6
+717,13
@@
ao_flight(void);
void
ao_flight_init(void);
void
ao_flight_init(void);
+/*
+ * ao_flight_nano.c
+ */
+
+void
+ao_flight_nano_init(void);
+
/*
* ao_sample.c
*/
/*
* ao_sample.c
*/
@@
-896,6
+912,10
@@
ao_dbg_init(void);
#endif
#if HAS_SERIAL_1
#endif
#if HAS_SERIAL_1
+#ifndef USE_SERIAL_STDIN
+#error Please define USE_SERIAL_STDIN
+#endif
+
void
ao_serial_rx1_isr(void) __interrupt 3;
void
ao_serial_rx1_isr(void) __interrupt 3;
@@
-905,12
+925,24
@@
ao_serial_tx1_isr(void) __interrupt 14;
char
ao_serial_getchar(void) __critical;
char
ao_serial_getchar(void) __critical;
+#if USE_SERIAL_STDIN
+char
+ao_serial_pollchar(void) __critical;
+
+void
+ao_serial_set_stdin(uint8_t stdin);
+#endif
+
void
ao_serial_putchar(char c) __critical;
void
ao_serial_putchar(char c) __critical;
+void
+ao_serial_drain(void) __critical;
+
#define AO_SERIAL_SPEED_4800 0
#define AO_SERIAL_SPEED_9600 1
#define AO_SERIAL_SPEED_4800 0
#define AO_SERIAL_SPEED_9600 1
-#define AO_SERIAL_SPEED_57600 2
+#define AO_SERIAL_SPEED_19200 2
+#define AO_SERIAL_SPEED_57600 3
void
ao_serial_set_speed(uint8_t speed);
void
ao_serial_set_speed(uint8_t speed);
@@
-1004,12
+1036,13
@@
void
ao_gps_report_init(void);
/*
ao_gps_report_init(void);
/*
- * ao_telemetry.c
+ * ao_telemetry
_orig
.c
*/
#define AO_MAX_CALLSIGN 8
*/
#define AO_MAX_CALLSIGN 8
+#define AO_MAX_TELEMETRY 128
-struct ao_telemetry {
+struct ao_telemetry
_orig
{
uint16_t serial;
uint16_t flight;
uint8_t flight_state;
uint16_t serial;
uint16_t flight;
uint8_t flight_state;
@@
-1047,10
+1080,15
@@
struct ao_telemetry_tiny {
/*
* ao_radio_recv tacks on rssi and status bytes
*/
/*
* ao_radio_recv tacks on rssi and status bytes
*/
-struct ao_telemetry_recv {
- struct ao_telemetry telemetry;
- int8_t rssi;
- uint8_t status;
+
+struct ao_telemetry_raw_recv {
+ uint8_t packet[AO_MAX_TELEMETRY + 2];
+};
+
+struct ao_telemetry_orig_recv {
+ struct ao_telemetry_orig telemetry_orig;
+ int8_t rssi;
+ uint8_t status;
};
struct ao_telemetry_tiny_recv {
};
struct ao_telemetry_tiny_recv {
@@
-1072,7
+1110,7
@@
void
ao_rdf_set(uint8_t rdf);
void
ao_rdf_set(uint8_t rdf);
void
-ao_telemetry_init(void);
+ao_telemetry_
orig_
init(void);
void
ao_telemetry_tiny_init(void);
void
ao_telemetry_tiny_init(void);
@@
-1128,7
+1166,7
@@
void
ao_monitor(void);
#define AO_MONITORING_OFF 0
ao_monitor(void);
#define AO_MONITORING_OFF 0
-#define AO_MONITORING_
FULL
1
+#define AO_MONITORING_
ORIG
1
#define AO_MONITORING_TINY 2
void
#define AO_MONITORING_TINY 2
void
@@
-1147,14
+1185,22
@@
struct ao_stdio {
char (*pollchar)(void);
void (*putchar)(char c) __reentrant;
void (*flush)(void);
char (*pollchar)(void);
void (*putchar)(char c) __reentrant;
void (*flush)(void);
+ uint8_t echo;
};
};
+extern __xdata struct ao_stdio ao_stdios[];
+extern __data int8_t ao_cur_stdio;
+extern __data int8_t ao_num_stdios;
+
void
flush(void);
extern __xdata uint8_t ao_stdin_ready;
void
flush(void);
extern __xdata uint8_t ao_stdin_ready;
-void
+uint8_t
+ao_echo(void);
+
+int8_t
ao_add_stdio(char (*pollchar)(void),
void (*putchar)(char) __reentrant,
void (*flush)(void)) __reentrant;
ao_add_stdio(char (*pollchar)(void),
void (*putchar)(char) __reentrant,
void (*flush)(void)) __reentrant;
@@
-1325,4
+1371,21
@@
ao_packet_slave_stop(void);
void
ao_packet_slave_init(uint8_t enable);
void
ao_packet_slave_init(uint8_t enable);
+/* ao_btm.c */
+
+/* If bt_link is on P2, this interrupt is shared by USB, so the USB
+ * code calls this function. Otherwise, it's a regular ISR.
+ */
+
+void
+ao_btm_isr(void)
+#if BT_LINK_ON_P1
+ __interrupt 15
+#endif
+ ;
+
+
+void
+ao_btm_init(void);
+
#endif /* _AO_H_ */
#endif /* _AO_H_ */