From ab50a1467bac0234062bc8c0a17783f1730aa981 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 15 May 2017 08:59:52 -0700 Subject: [PATCH] altos/ao_rn4678: Send '$$$' for new devices. Fix name setting code. New devices won't respond to the cmd pin we have configured, so get them to command mode by sending the $$$ string. Somehow I'd botched the name setting code and hadn't caught it as I hadn't tried a new device... Signed-off-by: Keith Packard --- src/drivers/ao_rn4678.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/drivers/ao_rn4678.c b/src/drivers/ao_rn4678.c index f5b50459..4e3d12cb 100644 --- a/src/drivers/ao_rn4678.c +++ b/src/drivers/ao_rn4678.c @@ -315,19 +315,15 @@ ao_rn_set_name(void) { char sn[8]; char *s = sn + 8; - char c; int n; ao_rn_dbg("set name...\n"); - ao_rn_send_cmd(AO_RN_SET_NAME_CMD, "TeleBT-"); *--s = '\0'; - *--s = '\r'; n = ao_serial_number; do { *--s = '0' + n % 10; } while (n /= 10); - while ((c = *s++)) - ao_rn_putchar(c); + ao_rn_send_cmd(AO_RN_SET_NAME_CMD "TeleBT-", s); return ao_rn_wait_status(); } @@ -408,6 +404,8 @@ ao_rn(void) continue; } + ao_rn_puts("$$$"); + /* After it reboots, it can take a moment before it responds * to commands */ @@ -422,7 +420,7 @@ ao_rn(void) continue; } - if (strncmp(name, "TeleBT", 6) == 0) { + if (strncmp(name, "TeleBT-", 7) == 0) { ao_rn_dbg("name is set\n"); status = AO_RN_OK; break; -- 2.30.2