diff options
-rw-r--r-- | altoslib/AltosReplayReader.java | 50 | ||||
-rw-r--r-- | altoslib/AltosState.java | 5 | ||||
-rw-r--r-- | altosui/AltosFlightUI.java | 2 |
3 files changed, 27 insertions, 30 deletions
diff --git a/altoslib/AltosReplayReader.java b/altoslib/AltosReplayReader.java index fb8432e7..2117bc87 100644 --- a/altoslib/AltosReplayReader.java +++ b/altoslib/AltosReplayReader.java @@ -83,20 +83,8 @@ class AltosReplay extends AltosDataListener implements Runnable { public void set_companion(AltosCompanion companion) { state.set_companion(companion); } public void run () { - System.out.printf("ReplayReader running\n"); - state = new AltosState(record_set.cal_data()); - - /* Tell the display that we're in pad mode */ - state.set_state(AltosLib.ao_flight_pad); - semaphore.release(); - try { - Thread.sleep(100); - } catch (InterruptedException ie) { - } - /* Run the flight */ record_set.capture_series(this); - /* All done, signal that it's over */ done = true; semaphore.release(); @@ -104,31 +92,45 @@ class AltosReplay extends AltosDataListener implements Runnable { public AltosReplay(AltosRecordSet record_set) { super(record_set.cal_data()); + state = new AltosState(record_set.cal_data()); + this.record_set = record_set; try { semaphore.acquire(); - } catch (InterruptedException ie) { } - this.record_set = record_set; - Thread t = new Thread(this); - t.start(); + } catch (InterruptedException ie) { + } } } public class AltosReplayReader extends AltosFlightReader { File file; AltosReplay replay; + Thread t; + int reads; public AltosState read() { + switch (reads) { + case 0: + /* Tell the display that we're in pad mode */ + replay.state.set_state(AltosLib.ao_flight_pad); + break; + case 1: + t = new Thread(replay); + t.start(); + /* fall through */ + default: + /* Wait for something to change */ + try { + replay.semaphore.acquire(); + } catch (InterruptedException ie) { + } + break; + } + reads++; /* When done, let the display know */ if (replay.done) return null; - /* Wait for something to change */ - try { - replay.semaphore.acquire(); - } catch (InterruptedException ie) { - } - /* Fake out the received time */ replay.state.set_received_time(System.currentTimeMillis()); return replay.state; @@ -137,12 +139,10 @@ public class AltosReplayReader extends AltosFlightReader { public void close (boolean interrupted) { } - public void update(AltosState state) throws InterruptedException { - } - public File backing_file() { return file; } public AltosReplayReader(AltosRecordSet record_set, File in_file) { + reads = 0; file = in_file; name = file.getName(); replay = new AltosReplay(record_set); diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index 889aa9a3..0716b892 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -705,8 +705,6 @@ public class AltosState extends AltosDataListener { public double igniter_voltage[]; public AltosGPS gps; - public AltosGPS temp_gps; - public int temp_gps_sat_tick; public boolean gps_pending; public AltosIMU imu; @@ -757,6 +755,7 @@ public class AltosState extends AltosDataListener { public void init() { set = 0; + System.out.printf("state init\n"); received_time = System.currentTimeMillis(); time = AltosLib.MISSING; time_change = AltosLib.MISSING; @@ -793,8 +792,6 @@ public class AltosState extends AltosDataListener { kalman_acceleration = new AltosValue(); gps = null; - temp_gps = null; - temp_gps_sat_tick = 0; gps_pending = false; imu = null; diff --git a/altosui/AltosFlightUI.java b/altosui/AltosFlightUI.java index 23a62e95..12277f89 100644 --- a/altosui/AltosFlightUI.java +++ b/altosui/AltosFlightUI.java @@ -147,7 +147,7 @@ public class AltosFlightUI extends AltosUIFrame implements AltosFlightDisplay { } } - if (state.gps != null && state.gps.connected) { + if (state.gps != null) { if (!has_map) { pane.add("Site Map", sitemap); has_map = true; |