altosui: Start idle thread after the rocket leaves the pad
authorKeith Packard <keithp@keithp.com>
Sun, 5 Sep 2010 08:13:01 +0000 (01:13 -0700)
committerKeith Packard <keithp@keithp.com>
Sun, 5 Sep 2010 08:13:01 +0000 (01:13 -0700)
This makes the first altitude report time consistently 10 seconds
after launch, instead of some random time depending on when the rocket
launched relative to the time the device connection was made.

Signed-off-by: Keith Packard <keithp@keithp.com>
ao-tools/altosui/AltosUI.java

index 4915376..fbce5e1 100644 (file)
@@ -277,6 +277,7 @@ public class AltosUI extends JFrame {
 
        class IdleThread extends Thread {
 
+               boolean started;
                private AltosState state;
                int     reported_landing;
 
@@ -346,6 +347,10 @@ public class AltosUI extends JFrame {
                public void notice(AltosState new_state) {
                        AltosState old_state = state;
                        state = new_state;
+                       if (!started && state.state > Altos.ao_flight_pad) {
+                               started = true;
+                               start();
+                       }
                        if (old_state != null && old_state.state != state.state)
                                report(false);
                }
@@ -398,7 +403,6 @@ public class AltosUI extends JFrame {
 
                        info_reset();
                        info_finish();
-                       idle_thread.start();
                        try {
                                for (;;) {
                                        try {