projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altosuilib: Wait for product data while scanning
[fw/altos]
/
altosuilib
/
AltosScanUI.java
diff --git
a/altosuilib/AltosScanUI.java
b/altosuilib/AltosScanUI.java
index 7b5f2c7e64b88a7730b1db46d5a85757695f2f6a..1b30f99d64a092532e7eb9de702d17d0461b12fa 100644
(file)
--- a/
altosuilib/AltosScanUI.java
+++ b/
altosuilib/AltosScanUI.java
@@
-159,6
+159,8
@@
public class AltosScanUI
Thread thread;
AltosFrequency[] frequencies;
int frequency_index;
Thread thread;
AltosFrequency[] frequencies;
int frequency_index;
+ int packet_count;
+ int tick_count;
void scan_exception(Exception e) {
if (e instanceof FileNotFoundException) {
void scan_exception(Exception e) {
if (e instanceof FileNotFoundException) {
@@
-200,6
+202,7
@@
public class AltosScanUI
AltosState state = reader.read();
if (state == null)
continue;
AltosState state = reader.read();
if (state == null)
continue;
+ packet_count++;
if (state.flight != AltosLib.MISSING) {
final AltosScanResult result = new AltosScanResult(state.callsign,
state.serial,
if (state.flight != AltosLib.MISSING) {
final AltosScanResult result = new AltosScanResult(state.callsign,
state.serial,
@@
-284,6
+287,8
@@
public class AltosScanUI
return;
}
}
return;
}
}
+ packet_count = 0;
+ tick_count = 0;
++frequency_index;
if (frequency_index >= frequencies.length)
frequency_index = 0;
++frequency_index;
if (frequency_index >= frequencies.length)
frequency_index = 0;
@@
-308,7
+313,9
@@
public class AltosScanUI
}
void tick_timer() throws InterruptedException, TimeoutException {
}
void tick_timer() throws InterruptedException, TimeoutException {
- next();
+ ++tick_count;
+ if (packet_count == 0 || tick_count > 5)
+ next();
}
public void actionPerformed(ActionEvent e) {
}
public void actionPerformed(ActionEvent e) {
@@
-360,6
+367,8
@@
public class AltosScanUI
reader.set_telemetry_rate(r.rate);
reader.set_frequency(r.frequency.frequency);
reader.save_frequency();
reader.set_telemetry_rate(r.rate);
reader.set_frequency(r.frequency.frequency);
reader.save_frequency();
+ reader.save_telemetry();
+ reader.save_telemetry_rate();
owner.scan_device_selected(device);
}
}
owner.scan_device_selected(device);
}
}
@@
-519,7
+528,7
@@
public class AltosScanUI
rate_boxes[k].addActionListener(this);
rate_boxes[k].setSelected((scanning_rate & (1 << k)) != 0);
}
rate_boxes[k].addActionListener(this);
rate_boxes[k].setSelected((scanning_rate & (1 << k)) != 0);
}
- y_offset_rate += AltosLib.ao_telemetry_rate_max;
+ y_offset_rate += AltosLib.ao_telemetry_rate_max
+ 1
;
}
if (select_telemetry) {
}
if (select_telemetry) {