__xdata struct ao_data *packet = (__xdata struct ao_data *) &ao_data_ring[ao_data_ring_prev(ao_sample_data)];
telemetry.generic.tick = packet->tick;
- telemetry.generic.type = AO_TELEMETRY_MINI;
+ telemetry.generic.type = AO_SEND_MINI;
telemetry.mini.state = ao_flight_state;
static __pdata int8_t ao_telemetry_config_max;
static __pdata int8_t ao_telemetry_config_cur;
+static __pdata uint16_t ao_telemetry_flight_number;
+
+#ifndef ao_telemetry_battery_convert
+#define ao_telemetry_battery_convert(a) (a)
+#endif
static void
ao_send_configuration(void)
{
telemetry.generic.type = AO_TELEMETRY_CONFIGURATION;
telemetry.configuration.device = AO_idProduct_NUMBER;
-#if HAS_LOG
- telemetry.configuration.flight = ao_log_full() ? 0 : ao_flight_number;
-#else
- telemetry.configuration.flight = ao_flight_number;
-#endif
+ telemetry.configuration.flight = ao_telemetry_flight_number;
telemetry.configuration.config_major = AO_CONFIG_MAJOR;
telemetry.configuration.config_minor = AO_CONFIG_MINOR;
#if AO_idProduct_NUMBER == 0x25 && HAS_ADC
/* TeleGPS gets battery voltage instead of apogee delay */
- telemetry.configuration.apogee_delay = ao_data_ring[ao_data_ring_prev(ao_data_head)].adc.v_batt;
+ telemetry.configuration.apogee_delay = ao_telemetry_battery_convert(ao_data_ring[ao_data_ring_prev(ao_data_head)].adc.v_batt);
#else
telemetry.configuration.apogee_delay = ao_config.apogee_delay;
telemetry.configuration.main_deploy = ao_config.main_deploy;
while (!ao_flight_number)
ao_sleep(&ao_flight_number);
+ ao_telemetry_flight_number = ao_flight_number;
+#if HAS_LOG
+ if (ao_log_full())
+ ao_telemetry_flight_number = 0;
+#endif
telemetry.generic.serial = ao_serial_number;
for (;;) {
while (ao_telemetry_interval == 0)