Merge branch 'master' of git://git.gag.com/fw/altos
[fw/altos] / src / ao.h
index 97cb75ae59ca016f7f0c953c094827c134690360..5f2b83394daf96eb78abd5f89bff2fb92ec35388 100644 (file)
--- a/src/ao.h
+++ b/src/ao.h
@@ -110,6 +110,7 @@ ao_start_scheduler(void);
 #define AO_PANIC_STDIO         7       /* Too many stdio handlers registered */
 #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 */
 
 /* Stop the operating system, beeping and blinking the reason */
 void
@@ -561,7 +562,7 @@ struct ao_log_record {
 
 /* Write a record to the eeprom log */
 void
-ao_log_data(struct ao_log_record *log);
+ao_log_data(__xdata struct ao_log_record *log) __reentrant;
 
 /* Flush the log */
 void
@@ -803,7 +804,7 @@ ao_gps_report_init(void);
  */
 
 #define AO_MAX_CALLSIGN                8
-#define AO_TELEMETRY_VERSION   2
+#define AO_TELEMETRY_VERSION   3
 
 struct ao_telemetry {
        uint8_t                 addr;
@@ -1033,7 +1034,7 @@ struct ao_fifo {
  * Packet-based command interface
  */
 
-#define AO_PACKET_MAX  8
+#define AO_PACKET_MAX          64
 #define AO_PACKET_SYN          (uint8_t) 0xff
 
 struct ao_packet {
@@ -1042,6 +1043,7 @@ struct ao_packet {
        uint8_t         seq;
        uint8_t         ack;
        uint8_t         d[AO_PACKET_MAX];
+       uint8_t         callsign[AO_MAX_CALLSIGN];
 };
 
 struct ao_packet_recv {