altos: add callsign to packet mode, increase payload to 64 bytes
[fw/altos] / src / ao_packet_slave.c
index 3c4ffb92d26837f5216fbbe1a0a8739447098ed7..9b78767f55282b4e77c0f28f806124728151fccc 100644 (file)
@@ -27,8 +27,10 @@ ao_packet_slave(void)
        ao_tx_packet.len = AO_PACKET_SYN;
        while (ao_packet_enable) {
                status = ao_packet_recv();
-               if (status & AO_DMA_DONE)
+               if (status & AO_DMA_DONE) {
+                       memcpy(&ao_tx_packet.callsign, &ao_rx_packet.packet.callsign, AO_MAX_CALLSIGN);
                        ao_packet_send();
+               }
        }
        ao_exit();
 }
@@ -36,10 +38,8 @@ ao_packet_slave(void)
 void
 ao_packet_slave_start(void)
 {
-       if (!ao_packet_enable) {
-               ao_packet_enable = 1;
-               ao_add_task(&ao_packet_task, ao_packet_slave, "slave");
-       }
+       ao_packet_enable = 1;
+       ao_add_task(&ao_packet_task, ao_packet_slave, "slave");
 }
 
 void
@@ -56,30 +56,10 @@ ao_packet_slave_stop(void)
        }
 }
 
-#ifdef PACKET_HAS_SLAVE_CMD
-void
-ao_packet_slave_control(void)
-{
-       ao_cmd_hex();
-       if (ao_cmd_lex_i)
-               ao_packet_slave_start();
-       else
-               ao_packet_slave_stop();
-}
-
-__code struct ao_cmds ao_packet_slave_cmds[] = {
-       { 's',  ao_packet_slave_control,        "s <enable>                         Remote packet link slave" },
-       { 0,    ao_packet_slave_control,        NULL },
-};
-#endif
-
 void
 ao_packet_slave_init(void)
 {
        ao_add_stdio(ao_packet_pollchar,
                     ao_packet_putchar,
                     NULL);
-#ifdef PACKET_HAS_SLAVE_CMD
-       ao_cmd_register(&ao_packet_slave_cmds[0]);
-#endif
 }