projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Fix broken EXTI edge mode selections. Clear pending exti on enable
[fw/altos]
/
altosui
/
AltosSerial.java
diff --git
a/altosui/AltosSerial.java
b/altosui/AltosSerial.java
index 4cf306d051e478706294010c90c35c6ce7aae104..77c926b1f9629f9a9e171e6a4377e8ff84e1eba9 100644
(file)
--- a/
altosui/AltosSerial.java
+++ b/
altosui/AltosSerial.java
@@
-55,7
+55,7
@@
public class AltosSerial implements Runnable {
boolean monitor_mode;
int telemetry;
double frequency;
boolean monitor_mode;
int telemetry;
double frequency;
- static boolean debug;
+
public
static boolean debug;
boolean remote;
LinkedList<String> pending_output = new LinkedList<String>();
Frame frame;
boolean remote;
LinkedList<String> pending_output = new LinkedList<String>();
Frame frame;
@@
-363,12
+363,28
@@
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,
public void set_radio_frequency(double frequency,
+ boolean has_frequency,
boolean has_setting,
int cal) {
if (debug)
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 (frequency == 0)
+ return;
+ 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));
set_radio_setting(AltosConvert.radio_frequency_to_setting(frequency, cal));
else
set_channel(AltosConvert.radio_frequency_to_channel(frequency));
@@
-376,8
+392,11
@@
public class AltosSerial implements Runnable {
public void set_radio_frequency(double in_frequency) throws InterruptedException, TimeoutException {
frequency = in_frequency;
public void set_radio_frequency(double in_frequency) throws InterruptedException, TimeoutException {
frequency = in_frequency;
+ if (frequency == 0.0)
+ frequency = AltosPreferences.frequency(device.getSerial());
config_data();
set_radio_frequency(frequency,
config_data();
set_radio_frequency(frequency,
+ config_data.radio_frequency != 0,
config_data.radio_setting != 0,
config_data.radio_calibration);
}
config_data.radio_setting != 0,
config_data.radio_calibration);
}