+ private void set_radio_setting(int setting) {
+ if (altos != null) {
+ if (monitor_mode)
+ printf("m 0\nc R %d\nm %x\n",
+ setting, telemetry_len());
+ else
+ printf("c R %d\n", setting);
+ flush_output();
+ }
+ }
+
+ public void set_radio_frequency(double frequency,
+ boolean has_setting,
+ int cal) {
+ if (debug)
+ System.out.printf("set_radio_frequency %7.3f %b %d\n", frequency, has_setting, cal);
+ if (has_setting)
+ set_radio_setting(AltosConvert.radio_frequency_to_setting(frequency, cal));
+ else
+ set_channel(AltosConvert.radio_frequency_to_channel(frequency));
+ }
+
+ public void set_radio_frequency(double in_frequency) throws InterruptedException, TimeoutException {
+ frequency = in_frequency;
+ config_data();
+ set_radio_frequency(frequency,
+ config_data.radio_setting != 0,
+ config_data.radio_calibration);
+ }
+