diff options
| author | Bdale Garbee <bdale@gag.com> | 2014-09-09 23:28:39 -0600 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2014-09-09 23:28:39 -0600 | 
| commit | 16405fd3eb6f82ef3a709e3ed30fc48faef7b547 (patch) | |
| tree | c111819b3ba0c9357af41c81b798326b9df7adad /src/drivers/ao_lco_func.c | |
| parent | 5a2f6ed6210844f7284fbf9f7ecba68c8a14fa52 (diff) | |
| parent | 28bd5057252e61bc5b1a35a00bc1f9fdfde097f7 (diff) | |
Merge branch 'branch-1.5' into debian
Conflicts:
	ChangeLog
	Releasing
	altosui/Instdrv/NSIS/Includes/java.nsh
	altosui/altos-windows.nsi.in
	configure.ac
	doc/Makefile
	doc/altusmetrum.xsl
	micropeak/micropeak-windows.nsi.in
	telegps/telegps-windows.nsi.in
Diffstat (limited to 'src/drivers/ao_lco_func.c')
| -rw-r--r-- | src/drivers/ao_lco_func.c | 16 | 
1 files changed, 15 insertions, 1 deletions
| diff --git a/src/drivers/ao_lco_func.c b/src/drivers/ao_lco_func.c index 9e642836..32c00068 100644 --- a/src/drivers/ao_lco_func.c +++ b/src/drivers/ao_lco_func.c @@ -28,7 +28,21 @@ ao_lco_query(uint16_t box, struct ao_pad_query *query, uint16_t *tick_offset)  {  	int8_t		r;  	uint16_t	sent_time; +	uint16_t	timeout = AO_MS_TO_TICKS(10); +#if HAS_RADIO_RATE +	switch (ao_config.radio_rate) { +	case AO_RADIO_RATE_38400: +	default: +		break; +	case AO_RADIO_RATE_9600: +		timeout = AO_MS_TO_TICKS(20); +		break; +	case AO_RADIO_RATE_2400: +		timeout = AO_MS_TO_TICKS(80); +		break; +	} +#endif  	ao_mutex_get(&ao_lco_mutex);  	command.tick = ao_time() - *tick_offset;  	command.box = box; @@ -36,7 +50,7 @@ ao_lco_query(uint16_t box, struct ao_pad_query *query, uint16_t *tick_offset)  	command.channels = 0;  	ao_radio_cmac_send(&command, sizeof (command));  	sent_time = ao_time(); -	r = ao_radio_cmac_recv(query, sizeof (*query), AO_MS_TO_TICKS(10)); +	r = ao_radio_cmac_recv(query, sizeof (*query), timeout);  	if (r == AO_RADIO_CMAC_OK)  		*tick_offset = sent_time - query->tick;  	ao_mutex_put(&ao_lco_mutex); | 
