diff options
| author | Bdale Garbee <bdale@gag.com> | 2015-07-15 16:43:50 -0600 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2015-07-15 16:43:50 -0600 | 
| commit | 643c2fb03833d658320f476ef731bbb06fe3cc31 (patch) | |
| tree | 878c9df5dbd9bab9169becea4e06e8bae3529541 /src/drivers/ao_btm.c | |
| parent | e41786fb384892961a6547e17812a24314ce9623 (diff) | |
| parent | 271f56a41c7e785b0fab7e572325df842d104277 (diff) | |
Merge branch 'master' of ssh://git.gag.com/scm/git/fw/altos
Diffstat (limited to 'src/drivers/ao_btm.c')
| -rw-r--r-- | src/drivers/ao_btm.c | 19 | 
1 files changed, 15 insertions, 4 deletions
diff --git a/src/drivers/ao_btm.c b/src/drivers/ao_btm.c index 93d9dd9d..8e7052cb 100644 --- a/src/drivers/ao_btm.c +++ b/src/drivers/ao_btm.c @@ -263,6 +263,15 @@ uint8_t  ao_btm_cmd(__code char *cmd)  {  	ao_btm_drain(); + +#ifdef AO_BTM_INT_PORT +	/* Trust that AltosDroid will eventually disconnect and let us +	 * get things set up. The BTM module doesn't appear to listen +	 * for +++, so we have no way to force a disconnect. +	 */ +	while (ao_btm_connected) +		ao_sleep(&ao_btm_connected); +#endif  	ao_btm_string(cmd);  	return ao_btm_wait_reply();  } @@ -350,6 +359,10 @@ __xdata struct ao_task ao_btm_task;  void  ao_btm(void)  { +#ifdef AO_BTM_INT_PORT +	ao_exti_enable(AO_BTM_INT_PORT, AO_BTM_INT_PIN); +#endif +  	/*  	 * Wait for the bluetooth device to boot  	 */ @@ -380,6 +393,8 @@ ao_btm(void)  	/* Turn off status reporting */  	ao_btm_cmd("ATQ1\r"); +	ao_btm_drain(); +  	ao_btm_stdio = ao_add_stdio(_ao_serial_btm_pollchar,  				    ao_serial_btm_putchar,  				    NULL); @@ -388,10 +403,6 @@ ao_btm(void)  	/* Check current pin state */  	ao_btm_check_link(); -#ifdef AO_BTM_INT_PORT -	ao_exti_enable(AO_BTM_INT_PORT, AO_BTM_INT_PIN); -#endif -  	for (;;) {  		while (!ao_btm_connected)  			ao_sleep(&ao_btm_connected);  | 
