diff options
| author | Anthony Towns <aj@erisian.com.au> | 2010-11-23 10:14:55 +1000 | 
|---|---|---|
| committer | Anthony Towns <aj@erisian.com.au> | 2010-11-23 10:14:55 +1000 | 
| commit | d1005f68376d695039c314b8d7a68bbf9acbca4f (patch) | |
| tree | 9352713fa7cb5f80614a170c29f2c4be0e8d30f5 /src/ao_radio.c | |
| parent | 9a83e0dc79f7a7467c7814d58daa2a2b89e50972 (diff) | |
| parent | 22c09781af1df4b38562b577e9926c23e4a397f2 (diff) | |
Merge branch 'buttonbox' of git://git.gag.com/fw/altos into buttonbox
Diffstat (limited to 'src/ao_radio.c')
| -rw-r--r-- | src/ao_radio.c | 33 | 
1 files changed, 23 insertions, 10 deletions
| diff --git a/src/ao_radio.c b/src/ao_radio.c index f4a9d3b2..3fb4afd7 100644 --- a/src/ao_radio.c +++ b/src/ao_radio.c @@ -448,19 +448,32 @@ ao_radio_rdf_abort(void)  void  ao_radio_test(void)  { -	ao_set_monitor(0); -	ao_packet_slave_stop(); -	ao_radio_get(); -	printf ("Hit a character to stop..."); flush(); -	RFST = RFST_STX; -	getchar(); -	ao_radio_idle(); -	ao_radio_put(); -	putchar('\n'); +	uint8_t	mode = 2; +	ao_cmd_white(); +	if (ao_cmd_lex_c != '\n') { +		ao_cmd_decimal(); +		mode = (uint8_t) ao_cmd_lex_u32; +	} +	mode++; +	if (mode & 2) { +		ao_set_monitor(0); +		ao_packet_slave_stop(); +		ao_radio_get(); +		RFST = RFST_STX; +	} +	if (mode == 3) { +		printf ("Hit a character to stop..."); flush(); +		getchar(); +		putchar('\n'); +	} +	if (mode & 1) { +		ao_radio_idle(); +		ao_radio_put(); +	}  }  __code struct ao_cmds ao_radio_cmds[] = { -	{ 'C',	ao_radio_test,	"C                                  Radio carrier test" }, +	{ 'C',	ao_radio_test,	"C <1 start, 0 stop, none both>     Radio carrier test" },  	{ 0,	ao_radio_test,	NULL },  }; | 
