Merge branch 'master' into micropeak-logging
[fw/altos] / src / core / ao_telemetry.c
index 79d1bb814f7b2ad87da0414bce50fb9841b05177..8d440e15410ff4bd7833bcd5da6e1380d8ba46f9 100644 (file)
@@ -299,28 +299,35 @@ ao_telemetry(void)
 #endif
                while (ao_telemetry_interval) {
 
-
+#if HAS_APRS
+                       if (!(ao_config.radio_enable & AO_RADIO_DISABLE_TELEMETRY))
+#endif
+                       {
 #ifdef AO_SEND_ALL_BARO
-                       ao_send_baro();
+                               ao_send_baro();
 #endif
 #ifdef AO_SEND_MEGA
-                       ao_send_mega_sensor();
-                       ao_send_mega_data();
+                               ao_send_mega_sensor();
+                               ao_send_mega_data();
 #else
-                       ao_send_sensor();
+                               ao_send_sensor();
 #endif
 
 #if HAS_COMPANION
-                       if (ao_companion_running)
-                               ao_send_companion();
+                               if (ao_companion_running)
+                                       ao_send_companion();
 #endif
-                       ao_send_configuration();
+                               ao_send_configuration();
 #if HAS_GPS
-                       ao_send_location();
-                       ao_send_satellite();
+                               ao_send_location();
+                               ao_send_satellite();
 #endif
+                       }
 #ifndef AO_SEND_ALL_BARO
                        if (ao_rdf &&
+#if HAS_APRS
+                           !(ao_config.radio_enable & AO_RADIO_DISABLE_RDF) &&
+#endif
                            (int16_t) (ao_time() - ao_rdf_time) >= 0)
                        {
 #if HAS_IGNITE_REPORT
@@ -335,8 +342,10 @@ ao_telemetry(void)
                                        ao_radio_rdf();
                        }
 #if HAS_APRS
-                       if (ao_rdf && (int16_t) (ao_time() - ao_aprs_time) >= 0) {
-                               ao_aprs_time = ao_time() + AO_APRS_INTERVAL_TICKS;
+                       if (ao_config.aprs_interval != 0 &&
+                           (int16_t) (ao_time() - ao_aprs_time) >= 0)
+                       {
+                               ao_aprs_time = ao_time() + AO_SEC_TO_TICKS(ao_config.aprs_interval);
                                ao_aprs_send();
                        }
 #endif
@@ -406,9 +415,6 @@ ao_rdf_set(uint8_t rdf)
                ao_radio_rdf_abort();
        else {
                ao_rdf_time = ao_time() + AO_RDF_INTERVAL_TICKS;
-#if HAS_APRS
-               ao_aprs_time = ao_time() + AO_APRS_INTERVAL_TICKS;
-#endif
        }
 }