import java.io.*;
import java.util.*;
import java.text.*;
-import java.util.prefs.*;
-import java.util.concurrent.LinkedBlockingQueue;
-
-/*
- * AltosRecords with an index field so they can be sorted by tick while preserving
- * the original ordering for elements with matching ticks
- */
-class AltosOrderedRecord extends AltosEepromRecord implements Comparable<AltosOrderedRecord> {
-
- public int index;
-
- public AltosOrderedRecord(String line, int in_index, int prev_tick, boolean prev_tick_valid)
- throws ParseException {
- super(line);
- if (prev_tick_valid) {
- tick |= (prev_tick & ~0xffff);
- if (tick < prev_tick) {
- if (prev_tick - tick > 0x8000)
- tick += 0x10000;
- } else {
- if (tick - prev_tick > 0x8000)
- tick -= 0x10000;
- }
- }
- index = in_index;
- }
-
- public AltosOrderedRecord(int in_cmd, int in_tick, int in_a, int in_b, int in_index) {
- super(in_cmd, in_tick, in_a, in_b);
- index = in_index;
- }
-
- public String toString() {
- return String.format("%d.%d %04x %04x %04x",
- cmd, index, tick, a, b);
- }
-
- public int compareTo(AltosOrderedRecord o) {
- int tick_diff = tick - o.tick;
- if (tick_diff != 0)
- return tick_diff;
- return index - o.index;
- }
-}
public class AltosEepromIterable extends AltosRecordIterable {
Iterator<AltosOrderedRecord> iterator = records.iterator();
AltosOrderedRecord record = null;
AltosRecordTM state = new AltosRecordTM();
- boolean last_reported = false;
+ //boolean last_reported = false;
EepromState eeprom = new EepromState();
state.state = AltosLib.ao_flight_pad;
state.accel_plus_g = 15758;
state.accel_minus_g = 16294;
+ state.flight_vel = 0;
/* Pull in static data from the flight and gps_date records */
if (flight_record != null)
if (line == null)
break;
AltosOrderedRecord record = new AltosOrderedRecord(line, index++, prev_tick, prev_tick_valid);
- if (record == null)
- break;
if (record.cmd == AltosLib.AO_LOG_INVALID)
continue;
prev_tick = record.tick;