void
ao_cmd_decimal(void);
+/* Read a single hex nibble off stdin. */
+uint8_t
+ao_getnibble(void);
+
uint8_t
ao_match_word(__code char *word);
void
ao_radio_test(uint8_t on);
+typedef int16_t (*ao_radio_fill_func)(uint8_t *buffer, int16_t len);
+
+void
+ao_radio_send_lots(ao_radio_fill_func fill);
+
/*
* Compute the packet length as follows:
*
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];
* ao_stdio.c
*/
-#define AO_READ_AGAIN ((char) -1)
+#define AO_READ_AGAIN (-1)
struct ao_stdio {
- char (*pollchar)(void);
+ int (*pollchar)(void);
void (*putchar)(char c) __reentrant;
void (*flush)(void);
uint8_t echo;
ao_echo(void);
int8_t
-ao_add_stdio(char (*pollchar)(void),
+ao_add_stdio(int (*pollchar)(void),
void (*putchar)(char) __reentrant,
void (*flush)(void)) __reentrant;
#endif
#define AO_CONFIG_MAJOR 1
-#define AO_CONFIG_MINOR 12
+#define AO_CONFIG_MINOR 13
#define AO_AES_LEN 16
#if AO_PYRO_NUM
struct ao_pyro pyro[AO_PYRO_NUM]; /* minor version 12 */
#endif
+ uint16_t aprs_interval; /* minor version 13 */
};
#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