summaryrefslogtreecommitdiff
path: root/altosui/AltosTelemetryIterable.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-10-09 10:55:04 -0600
committerKeith Packard <keithp@keithp.com>2011-10-09 11:09:11 -0600
commit5c82b07471f017171c58a6968adf79901f46a987 (patch)
treee41009d4a56561a495d979dfbf6fd8c3f0a72e0c /altosui/AltosTelemetryIterable.java
parent636b7b368e67346b0796cd84fbfd71e10966d61f (diff)
altosui: Deal with telem data that goes backwards in time
The new telemetry stuff can send packets with older timestamps, so sort telem packets read from disk to create an in-order record of the flight. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosui/AltosTelemetryIterable.java')
-rw-r--r--altosui/AltosTelemetryIterable.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/altosui/AltosTelemetryIterable.java b/altosui/AltosTelemetryIterable.java
index 1a31b365..278cbfb7 100644
--- a/altosui/AltosTelemetryIterable.java
+++ b/altosui/AltosTelemetryIterable.java
@@ -22,7 +22,7 @@ import java.util.*;
import java.text.*;
public class AltosTelemetryIterable extends AltosRecordIterable {
- LinkedList<AltosRecord> records;
+ TreeSet<AltosRecord> records;
public Iterator<AltosRecord> iterator () {
return records.iterator();
@@ -41,7 +41,7 @@ public class AltosTelemetryIterable extends AltosRecordIterable {
int boost_tick = 0;
AltosRecord previous = null;
- records = new LinkedList<AltosRecord> ();
+ records = new TreeSet<AltosRecord> ();
try {
for (;;) {
@@ -56,8 +56,8 @@ public class AltosTelemetryIterable extends AltosRecordIterable {
if (records.isEmpty()) {
current_tick = record.tick;
} else {
- int tick = record.tick | (current_tick & ~ 0xffff);
- if (tick < current_tick - 0x1000)
+ int tick = record.tick;
+ while (tick < current_tick - 0x1000)
tick += 0x10000;
current_tick = tick;
record.tick = current_tick;