altos: TM: Don't turn on packet slave mode until idle/invalid state
[fw/altos] / src / ao_packet_slave.c
index e40ddfec4a2ec2917c36e1843bf77e5c7f02c08e..d7cafa680d5a7a470de654ae3eae73ed8743afd6 100644 (file)
@@ -20,7 +20,6 @@
 void
 ao_packet_slave(void)
 {
-       ao_radio_set_packet();
        ao_tx_packet.addr = ao_serial_number;
        ao_tx_packet.len = AO_PACKET_SYN;
        while (ao_packet_enable) {
@@ -38,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
@@ -51,9 +52,6 @@ ao_packet_slave_stop(void)
                        ao_radio_recv_abort();
                        ao_delay(AO_MS_TO_TICKS(10));
                }
-               ao_radio_get();
-               ao_radio_set_telemetry();
-               ao_radio_put();
        }
 }