altos: Add defines for 2400 and 9600 baud telemetry rates
[fw/altos] / src / kernel / ao.h
index 29ad26031d9733cfe7409b31127c06c53698ec41..6c6abd36271463a33b44594c0c457e8a197ae740 100644 (file)
@@ -393,6 +393,9 @@ struct ao_gps_tracking_orig {
        struct ao_gps_sat_orig  sats[AO_MAX_GPS_TRACKING];
 };
 
+void
+ao_gps_set_rate(uint8_t rate);
+
 void
 ao_gps(void);
 
@@ -518,6 +521,10 @@ struct ao_telemetry_raw_recv {
 #define AO_TELEMETRY_INTERVAL_RECOVER  AO_MS_TO_TICKS(1000)
 #endif
 
+#define AO_RADIO_RATE_38400    0
+#define AO_RADIO_RATE_9600     1
+#define AO_RADIO_RATE_2400     2
+
 void
 ao_telemetry_set_interval(uint16_t interval);
 
@@ -555,6 +562,15 @@ extern __xdata int8_t      ao_radio_rssi;
 #define HAS_RADIO_XMIT HAS_RADIO
 #endif
 
+#define AO_RADIO_RATE_38400    0
+#define AO_RADIO_RATE_9600     1
+#define AO_RADIO_RATE_2400     2
+#define AO_RADIO_RATE_MAX      AO_RADIO_RATE_2400
+
+#if defined(HAS_RADIO) && !defined(HAS_RADIO_RATE)
+#define HAS_RADIO_RATE HAS_RADIO
+#endif
+
 void
 ao_radio_general_isr(void) ao_arch_interrupt(16);
 
@@ -737,6 +753,7 @@ ao_igniter_init(void);
 /*
  * ao_config.c
  */
+#include <ao_config.h>
 
 #if AO_PYRO_NUM
 #include <ao_pyro.h>
@@ -749,90 +766,17 @@ ao_igniter_init(void);
 extern __xdata uint8_t ao_force_freq;
 #endif
 
-#define AO_CONFIG_MAJOR        1
-#define AO_CONFIG_MINOR        15
-
-#define AO_AES_LEN 16
-
-extern __xdata uint8_t ao_config_aes_seq;
-
-struct ao_config {
-       uint8_t         major;
-       uint8_t         minor;
-       uint16_t        main_deploy;
-       int16_t         accel_plus_g;           /* changed for minor version 2 */
-       uint8_t         _legacy_radio_channel;
-       char            callsign[AO_MAX_CALLSIGN + 1];
-       uint8_t         apogee_delay;           /* minor version 1 */
-       int16_t         accel_minus_g;          /* minor version 2 */
-       uint32_t        radio_cal;              /* minor version 3 */
-       uint32_t        flight_log_max;         /* minor version 4 */
-       uint8_t         ignite_mode;            /* minor version 5 */
-       uint8_t         pad_orientation;        /* minor version 6 */
-       uint32_t        radio_setting;          /* minor version 7 */
-       uint8_t         radio_enable;           /* minor version 8 */
-       uint8_t         aes_key[AO_AES_LEN];    /* minor version 9 */
-       uint32_t        frequency;              /* minor version 10 */
-       uint16_t        apogee_lockout;         /* minor version 11 */
-#if AO_PYRO_NUM
-       struct ao_pyro  pyro[AO_PYRO_NUM];      /* minor version 12 */
-#endif
-       uint16_t        aprs_interval;          /* minor version 13 */
-#if HAS_RADIO_POWER
-       uint8_t         radio_power;            /* minor version 14 */
-#endif
-#if HAS_RADIO_AMP
-       uint8_t         radio_amp;              /* minor version 14 */
-#endif
-#if HAS_GYRO
-       int16_t         accel_zero_along;       /* minor version 15 */
-       int16_t         accel_zero_across;      /* minor version 15 */
-       int16_t         accel_zero_through;     /* minor version 15 */
-#endif
-};
-
-#define AO_IGNITE_MODE_DUAL            0
-#define AO_IGNITE_MODE_APOGEE          1
-#define AO_IGNITE_MODE_MAIN            2
-
-#define AO_RADIO_ENABLE_CORE           1
-#define AO_RADIO_DISABLE_TELEMETRY     2
-#define AO_RADIO_DISABLE_RDF           4
-
-#define AO_PAD_ORIENTATION_ANTENNA_UP  0
-#define AO_PAD_ORIENTATION_ANTENNA_DOWN        1
-
-extern __xdata struct ao_config ao_config;
-
-#define AO_CONFIG_MAX_SIZE     128
-
-void
-_ao_config_edit_start(void);
-
-void
-_ao_config_edit_finish(void);
-
-void
-ao_config_get(void);
-
-void
-ao_config_put(void);
-
-void
-ao_config_set_radio(void);
-
-void
-ao_config_init(void);
-
 /*
  * ao_rssi.c
  */
 
+#ifdef AO_LED_TYPE
 void
-ao_rssi_set(int rssi_value);
+ao_rssi_set(int16_t rssi_value);
 
 void
-ao_rssi_init(uint8_t rssi_led);
+ao_rssi_init(AO_LED_TYPE rssi_led);
+#endif
 
 /*
  * ao_product.c