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 4915376645d71ca5543d4d87a5e3af8b331cfaf3..fbce5e14f749ccbf8de2485590344d9d71ffc801 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 {