diff options
| author | Keith Packard <keithp@keithp.com> | 2010-04-22 14:53:44 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2010-04-22 16:25:38 -0700 | 
| commit | e7dc7fab787df63a4de72c8450e94092eb04d7db (patch) | |
| tree | 8695b1131ca45c88574368dd912527fc606de4da | |
| parent | f4383394b5d2b275b21e3ce8040d8cb9e48bb375 (diff) | |
Add optional 's' command to packet slave to enable/disable slave mode
This option has been selected for teledongle so that you can use slave
mode and hook two teledongles together over the RF link.
Signed-off-by: Keith Packard <keithp@keithp.com>
| -rw-r--r-- | src/ao_packet_slave.c | 26 | ||||
| -rw-r--r-- | src/ao_pins.h | 3 | 
2 files changed, 26 insertions, 3 deletions
| diff --git a/src/ao_packet_slave.c b/src/ao_packet_slave.c index e03ebdc3..3c4ffb92 100644 --- a/src/ao_packet_slave.c +++ b/src/ao_packet_slave.c @@ -36,8 +36,10 @@ ao_packet_slave(void)  void  ao_packet_slave_start(void)  { -	ao_packet_enable = 1; -	ao_add_task(&ao_packet_task, ao_packet_slave, "slave"); +	if (!ao_packet_enable) { +		ao_packet_enable = 1; +		ao_add_task(&ao_packet_task, ao_packet_slave, "slave"); +	}  }  void @@ -54,10 +56,30 @@ 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  } diff --git a/src/ao_pins.h b/src/ao_pins.h index e9a265b0..5a0b4318 100644 --- a/src/ao_pins.h +++ b/src/ao_pins.h @@ -41,7 +41,8 @@  	#define DBG_ON_P1		1  	#define DBG_ON_P0 		0  	#define PACKET_HAS_MASTER	1 -	#define PACKET_HAS_SLAVE	0 +	#define PACKET_HAS_SLAVE	1 +	#define PACKET_HAS_SLAVE_CMD	1  	#define AO_LED_RED		1  	#define AO_LED_GREEN		2  	#define LEDS_AVAILABLE		(AO_LED_RED|AO_LED_GREEN) | 
