diff options
author | Keith Packard <keithp@keithp.com> | 2012-03-27 10:38:32 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2012-03-27 10:45:34 -0700 |
commit | d8ebb83e64d66fa159e75aa560d39d80bb6d9d04 (patch) | |
tree | b8388ffafeee81e3583e7e7160c0a7107b59f960 /altosui/AltosSerial.java | |
parent | c1d12a117b36de7fe8dd992959b890bfd1163e81 (diff) |
altosui: Configure radio with new direct frequency setting
Instead of computing the radio setting in altosui, let the radio do it directly.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosui/AltosSerial.java')
-rw-r--r-- | altosui/AltosSerial.java | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/altosui/AltosSerial.java b/altosui/AltosSerial.java index 4cf306d0..ff1a91a5 100644 --- a/altosui/AltosSerial.java +++ b/altosui/AltosSerial.java @@ -363,12 +363,26 @@ public class AltosSerial implements Runnable { } } + private void set_radio_freq(int frequency) { + if (altos != null) { + if (monitor_mode) + printf("m 0\nc F %d\nm %x\n", + frequency, telemetry_len()); + else + printf("c F %d\n", frequency); + flush_output(); + } + } + public void set_radio_frequency(double frequency, + boolean has_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) + System.out.printf("set_radio_frequency %7.3f (freq %b) (set %b) %d\n", frequency, has_frequency, has_setting, cal); + if (has_frequency) + set_radio_freq((int) Math.floor (frequency * 1000)); + else if (has_setting) set_radio_setting(AltosConvert.radio_frequency_to_setting(frequency, cal)); else set_channel(AltosConvert.radio_frequency_to_channel(frequency)); @@ -378,6 +392,7 @@ public class AltosSerial implements Runnable { frequency = in_frequency; config_data(); set_radio_frequency(frequency, + config_data.radio_frequency != 0, config_data.radio_setting != 0, config_data.radio_calibration); } |