#define AO_RDF_INTERVAL_TICKS AO_SEC_TO_TICKS(5)
#define AO_RDF_LENGTH_MS 500
+#if defined(MEGAMETRUM)
+#define AO_TELEMETRY_SENSOR AO_TELEMETRY_SENSOR_MEGAMETRUM
+#endif
+
#if defined(TELEMETRUM_V_0_1) || defined(TELEMETRUM_V_0_2) || defined(TELEMETRUM_V_1_0) || defined(TELEMETRUM_V_1_1) || defined(TELEBALLOON_V_1_1) || defined(TELEMETRUM_V_1_2)
#define AO_TELEMETRY_SENSOR AO_TELEMETRY_SENSOR_TELEMETRUM
#endif
static void
ao_send_sensor(void)
{
- uint8_t sample = ao_data_ring_prev(ao_sample_data);
+ __xdata struct ao_data *packet = (__xdata struct ao_data *) &ao_data_ring[ao_data_ring_prev(ao_sample_data)];
- telemetry.generic.tick = ao_data_ring[sample].tick;
+ telemetry.generic.tick = packet->tick;
telemetry.generic.type = AO_TELEMETRY_SENSOR;
telemetry.sensor.state = ao_flight_state;
#if HAS_ACCEL
- telemetry.sensor.accel = ao_data_ring[sample].adc.accel;
+ telemetry.sensor.accel = packet->adc.accel;
#else
telemetry.sensor.accel = 0;
#endif
- telemetry.sensor.pres = ao_data_ring[sample].adc.pres;
- telemetry.sensor.temp = ao_data_ring[sample].adc.temp;
- telemetry.sensor.v_batt = ao_data_ring[sample].adc.v_batt;
+ telemetry.sensor.pres = ao_data_pres(packet);
+ telemetry.sensor.temp = packet->adc.temp;
+ telemetry.sensor.v_batt = packet->adc.v_batt;
#if HAS_IGNITE
- telemetry.sensor.sense_d = ao_data_ring[sample].adc.sense_d;
- telemetry.sensor.sense_m = ao_data_ring[sample].adc.sense_m;
+ telemetry.sensor.sense_d = packet->adc.sense_d;
+ telemetry.sensor.sense_m = packet->adc.sense_m;
#else
telemetry.sensor.sense_d = 0;
telemetry.sensor.sense_m = 0;