projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altosui: Make flight log downloading handle 'Connecting...' dialog
[fw/altos]
/
src
/
ao_packet_master.c
diff --git
a/src/ao_packet_master.c
b/src/ao_packet_master.c
index 3b23ad92c882396f543a169c02053dbe1b7afcd7..069bc5df4044f9fadb2c1e6e1f6e0a1a2894b0aa 100644
(file)
--- a/
src/ao_packet_master.c
+++ b/
src/ao_packet_master.c
@@
-21,16
+21,13
@@
static char
ao_packet_getchar(void) __critical
{
char c;
ao_packet_getchar(void) __critical
{
char c;
- while ((c = ao_packet_pollchar()) == AO_READ_AGAIN)
- {
+ while ((c = ao_packet_pollchar()) == AO_READ_AGAIN) {
if (!ao_packet_enable)
break;
if (ao_packet_master_sleeping)
if (!ao_packet_enable)
break;
if (ao_packet_master_sleeping)
- ao_wake
_task(&ao_packet_task
);
+ ao_wake
up(&ao_packet_master_sleeping
);
ao_usb_flush();
ao_sleep(&ao_stdin_ready);
ao_usb_flush();
ao_sleep(&ao_stdin_ready);
- if (!ao_packet_enable)
- break;
}
return c;
}
}
return c;
}
@@
-38,10
+35,10
@@
ao_packet_getchar(void) __critical
static void
ao_packet_echo(void) __reentrant
{
static void
ao_packet_echo(void) __reentrant
{
-
uint8_t
c;
+
char
c;
while (ao_packet_enable) {
c = ao_packet_getchar();
while (ao_packet_enable) {
c = ao_packet_getchar();
- if (
ao_packet_enable
)
+ if (
c != AO_READ_AGAIN
)
ao_usb_putchar(c);
}
ao_exit();
ao_usb_putchar(c);
}
ao_exit();
@@
-78,7
+75,6
@@
void
ao_packet_master(void)
{
ao_config_get();
ao_packet_master(void)
{
ao_config_get();
- ao_radio_set_packet();
ao_tx_packet.addr = ao_serial_number;
ao_tx_packet.len = AO_PACKET_SYN;
ao_packet_master_time = ao_time();
ao_tx_packet.addr = ao_serial_number;
ao_tx_packet.len = AO_PACKET_SYN;
ao_packet_master_time = ao_time();
@@
-97,11
+93,11
@@
ao_packet_master(void)
if (ao_rx_packet.packet.len)
ao_packet_master_busy();
ao_packet_master_sleeping = 1;
if (ao_rx_packet.packet.len)
ao_packet_master_busy();
ao_packet_master_sleeping = 1;
- ao_delay(ao_packet_master_delay);
+ ao_alarm(ao_packet_master_delay);
+ ao_sleep(&ao_packet_master_sleeping);
ao_packet_master_sleeping = 0;
}
}
ao_packet_master_sleeping = 0;
}
}
- ao_radio_set_telemetry();
ao_exit();
}
ao_exit();
}
@@
-126,8
+122,8
@@
ao_packet_forward(void) __reentrant
ao_delay(AO_MS_TO_TICKS(100));
ao_packet_enable = 0;
while (ao_packet_echo_task.wchan || ao_packet_task.wchan) {
ao_delay(AO_MS_TO_TICKS(100));
ao_packet_enable = 0;
while (ao_packet_echo_task.wchan || ao_packet_task.wchan) {
- if (ao_packet_echo_task.wchan)
-
ao_wake_task(&ao_packet_echo_task
);
+ ao_radio_recv_abort();
+
ao_wakeup(&ao_stdin_ready
);
ao_delay(AO_MS_TO_TICKS(10));
}
}
ao_delay(AO_MS_TO_TICKS(10));
}
}
@@
-135,8
+131,8
@@
ao_packet_forward(void) __reentrant
__code struct ao_cmds ao_packet_master_cmds[] = {
__code struct ao_cmds ao_packet_master_cmds[] = {
- {
'p', ao_packet_forward, "p
Remote packet link." },
- { 0,
ao_packet_forward,
NULL },
+ {
ao_packet_forward, "p\0
Remote packet link." },
+ { 0, NULL },
};
void
};
void