altos: Add telemetry to megametrum
[fw/altos] / src / core / ao_telemetry.c
index 800adfcba9bee010bafed3784dccea979a358510..5857c44d6c3499c8170091ba7277bb7c33d446dc 100644 (file)
@@ -35,6 +35,10 @@ static __pdata uint16_t ao_rdf_time;
 #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
@@ -53,23 +57,23 @@ static __xdata union ao_telemetry_all       telemetry;
 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;