Merge remote-tracking branch 'uniarch/master' into multiarch
authorKeith Packard <keithp@keithp.com>
Fri, 7 Oct 2011 14:40:14 +0000 (08:40 -0600)
committerKeith Packard <keithp@keithp.com>
Fri, 7 Oct 2011 14:40:14 +0000 (08:40 -0600)
Conflicts:
src/core/ao_cmd.c

Use ao_arch_reboot after waiting for a second

src/cc1111/ao_packet_slave.c
src/core/ao_cmd.c
src/core/ao_flight.c
src/product/ao_telemetrum.c

index 9f14052af406c9293b3fbeeb7a73b92c3fff438c..d7cafa680d5a7a470de654ae3eae73ed8743afd6 100644 (file)
@@ -37,8 +37,10 @@ ao_packet_slave(void)
 void
 ao_packet_slave_start(void)
 {
-       ao_packet_enable = 1;
-       ao_add_task(&ao_packet_task, ao_packet_slave, "slave");
+       if (!ao_packet_enable) {
+               ao_packet_enable = 1;
+               ao_add_task(&ao_packet_task, ao_packet_slave, "slave");
+       }
 }
 
 void
index d0a4663352ff703718b0e4d27ab4834d42e2660d..2b64b8ca210efe871b6eaadd4f14b37d6f281707 100644 (file)
@@ -227,6 +227,12 @@ ao_reboot(void)
        ao_cmd_white();
        if (!ao_match_word("eboot"))
                return;
+       /* Delay waiting for the packet master to be turned off
+        * so that we don't end up back in idle mode because we
+        * received a packet after boot.
+        */
+       flush();
+       ao_delay(AO_SEC_TO_TICKS(1));
        ao_arch_reboot();
        ao_panic(AO_PANIC_REBOOT);
 }
index a5cf7468f439728617bfe5877c55d6341ac6becd..433efeae6cc1d48e2db378dd379292485f007ab8 100644 (file)
@@ -91,6 +91,8 @@ ao_flight(void)
                                 */
                                ao_flight_state = ao_flight_invalid;
 
+                               /* Turn on packet system in invalid mode on TeleMetrum */
+                               ao_packet_slave_start();
                        } else
 #endif
                                if (!ao_flight_force_idle
@@ -108,8 +110,10 @@ ao_flight(void)
                                ao_usb_disable();
 #endif
 
-                               /* Disable packet mode in pad state */
+#if !HAS_ACCEL
+                               /* Disable packet mode in pad state on TeleMini */
                                ao_packet_slave_stop();
+#endif
 
                                /* Turn on telemetry system */
                                ao_rdf_set(1);
@@ -121,6 +125,11 @@ ao_flight(void)
                                /* Set idle mode */
                                ao_flight_state = ao_flight_idle;
  
+#if HAS_ACCEL
+                               /* Turn on packet system in idle mode on TeleMetrum */
+                               ao_packet_slave_start();
+#endif
+
                                /* signal successful initialization by turning off the LED */
                                ao_led_off(AO_LED_RED);
                        }
index f560740a455eb26484234478246063389c172c39..ea77f5afe83e55c5a5808fe50cb023ea194f48f2 100644 (file)
@@ -57,7 +57,7 @@ main(void)
        ao_gps_report_init();
        ao_telemetry_init();
        ao_radio_init();
-       ao_packet_slave_init(TRUE);
+       ao_packet_slave_init(FALSE);
        ao_igniter_init();
 #if HAS_DBG
        ao_dbg_init();