diff options
Diffstat (limited to 'src/ao_packet_slave.c')
| -rw-r--r-- | src/ao_packet_slave.c | 26 | 
1 files changed, 24 insertions, 2 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  } | 
