altos: Interrupt radio receive when changing data rate
[fw/altos] / src / kernel / ao_config.c
index 52c0c4f6f02e20a42fc99f4da5fb4788bb32b60c..d73a3733db1989bb95dbd1386d67114048c0ba76 100644 (file)
@@ -492,6 +492,10 @@ ao_config_radio_cal_set(void) __reentrant
 #endif
 
 #if HAS_RADIO_RATE
+#ifndef HAS_TELEMETRY
+#error Please define HAS_TELEMETRY
+#endif
+
 void
 ao_config_radio_rate_show(void) __reentrant
 {
@@ -510,7 +514,13 @@ ao_config_radio_rate_set(void) __reentrant
        }
        _ao_config_edit_start();
        ao_config.radio_rate = ao_cmd_lex_i;
+#if HAS_TELEMETRY
+       ao_telemetry_reset_interval();
+#endif
        _ao_config_edit_finish();
+#if HAS_RADIO_RECV
+       ao_radio_recv_abort();
+#endif
 }
 #endif