altos: Remove legacy telemetry from ao_monitor when not needed
[fw/altos] / src / core / ao.h
index 711b3533069ef7127ee49cd0601bb602a94d9945..81d92e72b2d512483b4640a08cf9c1651a2abab3 100644 (file)
@@ -64,6 +64,7 @@
 #define AO_PANIC_BT            11      /* Communications with bluetooth device failed */
 #define AO_PANIC_STACK         12      /* Stack overflow */
 #define AO_PANIC_SPI           13      /* SPI communication failure */
+#define AO_PANIC_CRASH         14      /* Processor crashed */
 #define AO_PANIC_SELF_TEST_CC1120      0x40 | 1        /* Self test failure */
 #define AO_PANIC_SELF_TEST_HMC5883     0x40 | 2        /* Self test failure */
 #define AO_PANIC_SELF_TEST_MPU6000     0x40 | 3        /* Self test failure */
@@ -85,7 +86,9 @@ ao_panic(uint8_t reason);
 extern volatile __data AO_TICK_TYPE ao_tick_count;
 
 /* Our timer runs at 100Hz */
+#ifndef AO_HERTZ
 #define AO_HERTZ               100
+#endif
 #define AO_MS_TO_TICKS(ms)     ((ms) / (1000 / AO_HERTZ))
 #define AO_SEC_TO_TICKS(s)     ((s) * AO_HERTZ)
 
@@ -99,7 +102,7 @@ ao_delay(uint16_t ticks);
 
 /* Set the ADC interval */
 void
-ao_timer_set_adc_interval(uint8_t interval) __critical;
+ao_timer_set_adc_interval(uint8_t interval);
 
 /* Timer interrupt */
 void
@@ -117,11 +120,13 @@ ao_clock_init(void);
  * ao_mutex.c
  */
 
+#ifndef ao_mutex_get
 void
 ao_mutex_get(__xdata uint8_t *ao_mutex) __reentrant;
 
 void
 ao_mutex_put(__xdata uint8_t *ao_mutex) __reentrant;
+#endif
 
 /*
  * ao_cmd.c
@@ -268,11 +273,13 @@ ao_temp_to_dC(int16_t temp) __reentrant;
  * Convert between pressure in Pa and altitude in meters
  */
 
-int32_t
+#include <ao_data.h>
+
+alt_t
 ao_pa_to_altitude(int32_t pa);
 
 int32_t
-ao_altitude_to_pa(int32_t alt);
+ao_altitude_to_pa(alt_t alt);
 
 #if HAS_DBG
 #include <ao_dbg.h>
@@ -551,8 +558,10 @@ extern const char const * const ao_state_names[];
 union ao_monitor {
        struct ao_telemetry_raw_recv    raw;
        struct ao_telemetry_all_recv    all;
+#if LEGACY_MONITOR
        struct ao_telemetry_orig_recv   orig;
        struct ao_telemetry_tiny_recv   tiny;
+#endif
 };
 
 extern __xdata union ao_monitor ao_monitor_ring[AO_MONITOR_RING];