altos: Send SPI message at flight state changes
[fw/altos] / src / ao_packet_slave.c
index 39d04bbb2e8a70ca43450b9a7457f8991a1198b9..9f14052af406c9293b3fbeeb7a73b92c3fff438c 100644 (file)
 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) {
                if (ao_packet_recv()) {
                        memcpy(&ao_tx_packet.callsign, &ao_rx_packet.packet.callsign, AO_MAX_CALLSIGN);
+#if HAS_FLIGHT
+                       ao_flight_force_idle = TRUE;
+#endif
                        ao_packet_send();
                }
        }
@@ -48,16 +50,15 @@ 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();
        }
 }
 
 void
-ao_packet_slave_init(void)
+ao_packet_slave_init(uint8_t enable)
 {
        ao_add_stdio(ao_packet_pollchar,
                     ao_packet_putchar,
                     NULL);
+       if (enable)
+               ao_packet_slave_start();
 }