Esta referência documenta a interface externa de comandos AT da versão V1.2.1 do módulo Bluetooth de modo dual SF32LB57 (SIFLI_AT). Os comandos e as respostas são exibidos em fonte monoespaçada; \r representa retorno de carro (0x0D) e \n, avanço de linha (0x0A). Os comandos AT são transmitidos como texto ASCII, enquanto os campos binários dos quadros PDU usam ordem de bytes little-endian.
Esta é a especificação completa da interface AT referenciada na página Módulo de comandos AT Bluetooth.
Tabela: Histórico de revisões
Versão
Alterações
Data
V1.2.1
SF32LB57 V1.2.1: adicionou AT+CFGRESET; atualizou a sincronização do nome Bluetooth Classic na inicialização, CLEARLINKKEY, o identificador da conexão e a documentação PDU; habilitou a configuração de compilação BQB.
O módulo Bluetooth de modo dual SF32LB57 oferece ao host uma interface de comandos AT via UART para BLE e Bluetooth Classic (BR/EDR). O host usa os comandos AT para configurar parâmetros do dispositivo, gerenciar conexões, enviar e receber dados e receber notificações de status não solicitadas do módulo.
Os comandos AT são transmitidos como texto ASCII e terminados por um retorno de carro \r (0x0D). O prefixo é AT+ para comandos no formato AT ou AT> para comandos no formato PDU. No SF32LB57, a porta AT é a USART1 e usa enquadramento 8N1, sem controle de fluxo por hardware, com baud rate padrão de 460800 bps. Cada quadro AT pode ter até 512 bytes.
Os comandos PDU transferem dados binários enquanto o módulo está no modo de comando. Salvo indicação em contrário, os campos numéricos do quadro usam ordem little-endian, e data contém dados binários brutos.
Nome do dispositivo: texto com 1 a 29 bytes. Um valor vazio ou com mais de 29 bytes retorna ERROR. Padrão: SIFLI_AT.
Observações
Atualiza a configuração do nome e a sincroniza com o nome local e o nome enviado na resposta de varredura BLE. MACNAME controla o nome final anunciado.
Tabela: configuração da opção de sufixo MAC no nome
Campo
Conteúdo
Comando
AT+MACNAME=<value>\r
Resposta
Sucesso: \r\nOK\r\n; falha: \r\nERROR\r\n
Parâmetros
Valor: 0 = exibe o nome do dispositivo sem alterações; 1 = acrescenta o sufixo -XXXX ao nome (XXXX corresponde aos dois bytes finais do BD_ADDR local em hexadecimal maiúsculo). Intervalo: 0–1. Padrão: 0.
Observações
Atualiza a configuração. Quando ativada, se o nome mais o sufixo ultrapassar o limite de 29 bytes, o nome do dispositivo será truncado para que o sufixo de 5 bytes caiba.
Tabela: configuração do ID de dispositivo IEEE 1284
Campo
Conteúdo
Comando
AT+1284ID=<ID string>\r
Resposta
Sucesso: \r\nOK\r\n; falha: \r\nERROR\r\n
Parâmetros
Cadeia do ID: ID de dispositivo IEEE 1284. O comprimento deve ser menor que a capacidade do buffer de armazenamento; um valor maior retorna ERROR. O padrão é uma cadeia vazia.
Sucesso: \r\nOK\r\n; a forma de consulta (AT+RESET?\r) retorna \r\nERROR\r\n
Parâmetros
Nenhum
Observações
Ao receber o comando, o módulo salva a configuração AT atual, responde OK, interrompe os anúncios, encerra as conexões e faz uma reinicialização suave. O comando não altera a configuração por si só.
Sucesso: \r\nOK\r\n; a forma de consulta (AT+FACTORYRESET?\r) retorna \r\nERROR\r\n
Parâmetros
Nenhum
Observações
Restaura a configuração AT aos valores padrão e apaga a configuração personalizada dos serviços GATT, os vínculos BLE, os vínculos de pareamento do Bluetooth Classic (BR/EDR) e o endereço aleatório estático BLE; em seguida, responde OK e reinicializa o módulo. Após a reinicialização, o host deve aguardar IM_READY.
Sucesso: \r\nOK\r\n; a forma de consulta (AT+CFGRESET?\r) retorna \r\nERROR\r\n
Parâmetros
Nenhum
Observações
Restaura a configuração AT e a configuração personalizada de GATT salva; em seguida, responde OK e reinicializa o módulo. Os registros de pareamento e o endereço BLE atual são mantidos.
Tabela: configuração da calibração do desvio de frequência
Campo
Conteúdo
Comando
AT+TRIM=<freq_off>\r
Resposta
Sucesso: \r\nOK\r\n; valor fora do intervalo ou falha na interface de calibração: \r\nERROR\r\n
Parâmetros
freq_off: valor de calibração do desvio de frequência, em Hz, no intervalo de -120000 a 120000; padrão: 0. O valor 0 redefine a calibração e restaura o valor original de hardware/de fábrica; um valor diferente de zero é aplicado diretamente.
Observações
Ao definir esse valor, o comando atualiza o registrador do banco de capacitores HXT e grava o resultado na partição FACTORY_CFG_ID_CRYSTAL. Após uma calibração bem-sucedida, o valor registrado na configuração AT é atualizado e marcado para gravação.
Sucesso: \r\nOK\r\n; a forma de consulta (AT+DUT?\r) retorna \r\nERROR\r\n
Parâmetros
Nenhum
Observações
Define o bit de habilitação DUT do Bluetooth Classic BR/EDR e responde OK; depois, aguarda que o equipamento de teste inicie o teste de sinalização via rádio por meio de LMP_test_control. A UART AT (USART1) continua disponível. A entrada no modo DUT é irreversível: só é possível sair reinicializando o módulo.
addr: endereço Bluetooth público atual, com 12 caracteres hexadecimais (maiúsculos, sem separadores), do byte mais significativo para o menos significativo; por exemplo, 001583112233.
Observações
Retorna o endereço público lido do firmware; retorna ERROR se a leitura falhar.
addr: endereço Bluetooth a definir, com exatamente 12 caracteres hexadecimais e sem separadores, do byte mais significativo para o menos significativo; por exemplo, 001583112233.
Observações
O endereço é gravado na configuração e entra em vigor após a reinicialização. O valor padrão de fábrica é composto apenas por zeros; nesse caso, o endereço é gerado automaticamente a partir do UID do chip.
addr: endereço usado atualmente pelo BLE, com 12 caracteres hexadecimais (maiúsculos, sem separadores), do byte mais significativo para o menos significativo.
Observações
Se um endereço aleatório estático específico para BLE tiver sido gerado com AT+RANDOMADDR=1, retorna esse endereço; caso contrário, retorna o mesmo endereço público usado pelo Bluetooth. Retorna ERROR se a leitura falhar.
Tabela: configuração da opção de endereço aleatório BLE
Campo
Conteúdo
Comando
AT+RANDOMADDR=<n>\r
Resposta
Sucesso: \r\nOK\r\n; falha: \r\nERROR\r\n
Parâmetros
n: 0 ou 1. 1 = habilita um endereço aleatório estático BLE derivado do endereço público (define como 1 os dois bits mais significativos do byte mais significativo; por exemplo, o endereço público 001583112233 gera o endereço BLE C01583112233); 0 = faz o BLE voltar a usar o endereço público. Outros valores ou caracteres adicionais retornam ERROR. Padrão: 0.
Observações
O estado da opção é atualizado na configuração. Se o valor for 1 e a leitura do endereço público falhar, a opção volta para 0 e o comando retorna ERROR. A alteração do endereço é gravada no NVDS e entra em vigor após a reinicialização. Executar AT+RANDOMADDR=1 novamente deriva o mesmo endereço aleatório do endereço público, que não foi alterado.
cod: Class of Device atual, sempre apresentada com 6 dígitos hexadecimais (24 bits menos significativos, formato %06X, preenchido com zeros à esquerda).
state: estado de detectabilidade atual. 0 = não detectável; 1 = detectável; 2 = parcialmente detectável (estado misto). O significado depende do modo de operação: no modo BLE (BTMODE=1), indica se os anúncios BLE estão ativos (1) ou não (0); no modo BT (BTMODE=2), considera a varredura de consulta e a varredura de página: 1 quando ambas estão ativas, 0 quando ambas estão inativas e 2 nos demais casos; no modo dual (BTMODE=0), vale 1 quando os anúncios BLE e as duas varreduras estão ativos, 0 quando todos estão inativos e 2 nos demais casos.
Observações
Apenas consulta o estado atual de detectabilidade; não altera o estado do dispositivo.
mode: 0 = desativa a detectabilidade; 1 = ativa a detectabilidade.
Observações
A ação depende do modo de operação atual: no modo BLE (BTMODE=1), ativa ou desativa os anúncios BLE; no modo BT (BTMODE=2), ativa ou desativa a varredura de consulta e a varredura de página; no modo dual (BTMODE=0), controla em conjunto os anúncios BLE e as duas varreduras.
mode: modo de operação. 0 = modo transparente; 1 = modo de comando. Após ligar, o módulo inicia no modo transparente.
Observações
A alteração entra em vigor imediatamente, mas não é persistente: após a reinicialização, o módulo volta ao modo transparente. Nesse modo, os dados recebidos pela porta serial são encaminhados sem alterações ao dispositivo conectado; no modo de comando, os dados seriais são interpretados como comandos AT.
Sucesso: \r\nOK\r\n; a forma de consulta AT+CLEARLINKKEY?\r retorna \r\nERROR\r\n
Parâmetros
Nenhum.
Observações
Apaga as informações de vínculo BLE e a chave de link do Bluetooth Classic. Após o sucesso, o dispositivo reinicializa; as configurações AT, como nome do dispositivo, baud rate e COD, são mantidas. Após a reinicialização, o host deve aguardar IM_READY. A forma de consulta não é compatível.
Tabela: configuração da opção de notificação de eventos
Campo
Conteúdo
Comando
AT+EVT=<evt_silent>\r
Resposta
Sucesso: \r\nOK\r\n; falha: \r\nERROR\r\n
Parâmetros
evt_silent: opção de notificação de eventos. 0 = notifica normalmente IM_CONN, IM_DISCONN, IM_READY e outros eventos; 1 = silencia todos (não os notifica). Padrão: 0 (notificação normal).
Observações
A alteração atualiza a configuração. Com o valor 1, os eventos de conexão estabelecida, desconexão e dispositivo pronto não são enviados pela porta serial.
Consultar tempo limite de desconexão por inatividade no modo transparente¶
Tabela: consulta do tempo limite de desconexão por inatividade no modo transparente
Campo
Conteúdo
Comando
AT+IDLE?\r
Resposta
\r\n+IDLE:<idle_ms>\r\n\r\nOK\r\n
Parâmetros
idle_ms: tempo limite atual para desconexão por inatividade, em milissegundos.
Observações
Nenhuma.
Definir tempo limite de desconexão por inatividade no modo transparente¶
Tabela: configuração do tempo limite de desconexão por inatividade no modo transparente
Campo
Conteúdo
Comando
AT+IDLE=<idle_ms>\r
Resposta
Sucesso: \r\nOK\r\n; falha: \r\nERROR\r\n
Parâmetros
idle_ms: tempo limite para desconexão por inatividade no modo transparente, em milissegundos, no intervalo de 0 a 65535. Valores acima de 65535 retornam ERROR. O valor 0 desativa o recurso. Padrão: 0 (desativado).
Observações
O ajuste atualiza a configuração e só funciona no modo transparente: se passarem mais de idle_ms milissegundos desde o último dado recebido pela porta serial, todas as conexões existentes serão encerradas. Com idle_ms = 0, a desconexão por inatividade fica desativada.
<n>: estado da opção principal de múltiplas conexões. 0 = desativada (uma conexão no total); 1 = ativada (conexões simultâneas até o limite de cada transporte).
Tabela: configuração da opção de múltiplas conexões
Campo
Conteúdo
Comando
AT+MULTICONN=<n>\r
Resposta
Sucesso: \r\nOK\r\n; falha: \r\nERROR\r\n
Parâmetros
<n>: 0 = desativa múltiplas conexões; 1 = ativa múltiplas conexões. Aceita apenas 0 ou 1. Padrão: 1.
Observações
A alteração atualiza a configuração. Com a opção desativada, a capacidade de manter conexões simultâneas fica limitada; quando ativada, os limites são definidos por AT+BLEMULTICONN e AT+BTMULTICONN.
Tabela: configuração do máximo de conexões BLE simultâneas
Campo
Conteúdo
Comando
AT+BLEMULTICONN=<n>\r
Resposta
Sucesso: \r\nOK\r\n; falha: \r\nERROR\r\n
Parâmetros
<n>: número máximo de conexões BLE simultâneas, em decimal, no intervalo de 1 a 6. Padrão: 3.
Observações
Só pode ser definido quando a opção de múltiplas conexões estiver ativada (AT+MULTICONN=1). A alteração atualiza a configuração. Quando o número de conexões atinge o limite, os anúncios são interrompidos e o dispositivo deixa de aceitar novas conexões; os anúncios são retomados automaticamente quando o número cai abaixo do limite.
Consultar o máximo de conexões Classic Bluetooth simultâneas¶
Tabela: consulta do máximo de conexões Classic Bluetooth simultâneas
Campo
Conteúdo
Comando
AT+BTMULTICONN?\r
Resposta
Sucesso: \r\n+BTMULTICONN:<n>\r\n\r\nOK\r\n; com múltiplas conexões desativadas: \r\nERROR\r\n
Parâmetros
<n>: número máximo de conexões Classic Bluetooth (BR/EDR) simultâneas configurado no momento, em decimal.
Observações
Só pode ser consultado quando a opção de múltiplas conexões estiver ativada (AT+MULTICONN=1); caso contrário, retorna ERROR.
Definir o máximo de conexões Classic Bluetooth simultâneas¶
Tabela: configuração do máximo de conexões Classic Bluetooth simultâneas
Campo
Conteúdo
Comando
AT+BTMULTICONN=<n>\r
Resposta
Sucesso: \r\nOK\r\n; falha: \r\nERROR\r\n
Parâmetros
<n>: número máximo de conexões Classic Bluetooth simultâneas, em decimal, no intervalo de 1 a 7. Padrão: 7.
Observações
Só pode ser definido quando a opção de múltiplas conexões estiver ativada (AT+MULTICONN=1). A alteração atualiza a configuração. Quando o número de conexões atinge o limite, o módulo interrompe a varredura de página e a retoma automaticamente quando o número cai abaixo do limite.
Desconectar uma conexão: AT+DISCONN=<conn_hdl>\r; desconectar todas: AT+DISCONN\r
Resposta
Sucesso: \r\nOK\r\n; falha ou conexão não encontrada: \r\nERROR\r\n
Parâmetros
<conn_hdl>: identificador da conexão em hexadecimal. Os identificadores BLE externos começam em 1 (como os retornados por AT+CONNLIST); conexões BT usam o identificador ACL. <conn_hdl> = 0 é inválido e retorna ERROR.
Observações
Sem parâmetro (ou com parâmetro vazio), desconecta todos os links ativos (BLE e BR/EDR) e retorna OK. Com um parâmetro, procura primeiro o identificador externo da conexão BLE (identificador interno = <conn_hdl> - 1); se não encontrar, procura o identificador ACL bruto do BT. Se não houver conexão correspondente, retorna ERROR. A forma de consulta AT+DISCONN? retorna ERROR.
Cada conexão ativa é exibida em uma linha: \r\n+CONNLIST:<conn_hdl>,<type>,<addr>,<extra>\r\n; após todas as linhas, é enviado \r\nOK\r\n. Se não houver conexões ativas, retorna apenas \r\nOK\r\n. Um parâmetro não vazio retorna \r\nERROR\r\n.
Parâmetros
Campos retornados: <conn_hdl> — identificador da conexão, 4 dígitos hexadecimais; para BLE, é um identificador externo numerado a partir de 1. <type> — tipo de conexão, BLE ou BT. <addr> — endereço Bluetooth do dispositivo remoto, 12 dígitos hexadecimais (do byte mais significativo para o menos significativo). <extra> — MTU atual para conexões BLE ou canal de serviço para conexões BT, em decimal.
Observações
Se o comando for enviado com um parâmetro não vazio, retorna ERROR. O módulo verifica todos os slots de conexão e lista cada conexão ativa.
AT+SPPSEND=<conn_hdl>,<data>\r ou AT+SPPSEND=,<data>\r
Resposta
Sucesso: \r\nOK\r\n; falha: \r\nERROR\r\n
Parâmetros
conn_hdl: identificador da conexão BT de destino, em hexadecimal. Pode ser omitido ou definido como 0; nesse caso, usa-se a primeira conexão BT ativa. data: dados a enviar, em cadeia hexadecimal na qual cada par de caracteres representa um byte. Não pode estar vazio e deve conter um número par de caracteres. O comprimento efetivo também está limitado ao tamanho máximo de um único quadro AT ASCII.
Observações
conn_hdl e data são separados por uma vírgula; a vírgula continua obrigatória quando conn_hdl é omitido. A forma de consulta não é compatível.
Tabela: consulta da lista de serviços GATT personalizados
Campo
Conteúdo
Comando
AT+GATTSRV?\r
Resposta
Para cada serviço configurado, retorna uma linha \r\n+GATTSRV:<idx>,<char_count>,<state>\r\n, seguida por \r\nOK\r\n. Se nenhum serviço estiver configurado, retorna apenas \r\nOK\r\n.
Parâmetros
idx: número do slot do serviço, de 0 a 5. char_count: número de características configuradas para esse serviço. state: REG indica que o serviço foi registrado na pilha de protocolos; CFG indica que está configurado apenas na RAM e ainda não foi registrado.
idx: número do slot do serviço, de 0 a 5. uuid: UUID do serviço, informado como cadeia hexadecimal do byte mais significativo para o menos significativo — 4 caracteres para UUID de 16 bits ou 32 para UUID de 128 bits.
Observações
idx deve ser um único dígito, imediatamente seguido por uma vírgula. O UUID deve ter exatamente 4 ou 32 caracteres; qualquer outro comprimento retorna ERROR. Um slot já registrado na pilha de protocolos não pode ser reconfigurado, e a tentativa de criação retorna ERROR. Criar um serviço apaga a configuração anterior desse slot.
Apaga a configuração desse slot na RAM. Um serviço já registrado na pilha de protocolos não pode ser removido durante a execução; este comando limpa somente a configuração na RAM.
Tabela: consulta das características GATT personalizadas
Campo
Conteúdo
Comando
AT+GATTCHAR?<svc>\r
Resposta
Para cada característica do serviço, retorna uma linha \r\n+GATTCHAR:<svc>,<chr>,prop=0x<prop>,len=<max_len>\r\n, seguida por \r\nOK\r\n; se o serviço não existir, retorna \r\nERROR\r\n.
Parâmetros
svc: número do slot do serviço, de 0 a 5. chr: índice da característica. prop: bits de propriedade da característica, em hexadecimal. max_len: comprimento máximo do valor da característica.
Tabela: adição de característica GATT personalizada
Campo
Conteúdo
Comando
AT+GATTCHAR=<svc>,<chr>,<uuid>,<prop>,<len>\r
Resposta
Sucesso: \r\nOK\r\n; falha: \r\nERROR\r\n
Parâmetros
svc: número do slot do serviço, de 0 a 5. chr: índice da característica, de 0 a 7. uuid: UUID da característica, do byte mais significativo para o menos significativo; 4 caracteres para 16 bits ou 32 para 128 bits. prop: cadeia de propriedades formada pelos caracteres R (leitura), W (escrita com resposta), w (escrita sem resposta), N (notificação) e I (indicação). len: comprimento máximo do valor da característica, de 1 a 512.
Observações
Os cinco parâmetros são obrigatórios; a omissão de qualquer um retorna ERROR. O UUID deve ter exatamente 4 ou 32 caracteres. prop deve conter ao menos um caractere de propriedade reconhecido; se nenhum for reconhecido, retorna ERROR. Caracteres não reconhecidos dentro de prop são ignorados. len igual a 0 ou acima de 512 retorna ERROR. O serviço pai deve ter sido criado e ainda não pode ter sido registrado na pilha de protocolos.
Tabela: início (registro) de serviços GATT personalizados
Campo
Conteúdo
Comando
AT+GATTSTART\r
Resposta
\r\n+GATTSTART:<count>\r\n, seguida por \r\nOK\r\n; a forma de consulta AT+GATTSTART?\r retorna \r\nERROR\r\n.
Parâmetros
count: número de serviços registrados com sucesso na pilha de protocolos por esta chamada.
Observações
Registra na pilha de protocolos cada serviço em uso que ainda não foi registrado e possui pelo menos uma característica. Depois de registrado, o serviço não pode ser removido nem reconfigurado durante a execução. A forma de consulta não é compatível.
Enviar dados de característica GATT (notificação/indicação)¶
Tabela: envio de dados de característica GATT (notificação/indicação)
Campo
Conteúdo
Comando
AT+GATTSEND=<svc>,<chr>,<conn_hdl>,<hex>\r; sem o identificador da conexão: AT+GATTSEND=<svc>,<chr>,,<hex>\r
Resposta
Sucesso: \r\nOK\r\n; falha: \r\nERROR\r\n; a forma de consulta AT+GATTSEND?\r retorna \r\nERROR\r\n.
Parâmetros
svc: número do slot do serviço. chr: índice da característica. conn_hdl: identificador hexadecimal da conexão BLE, numerado a partir de 1; pode ser omitido. hex: dados a enviar, expressos como uma sequência hexadecimal com número par de caracteres. O comprimento efetivo também é limitado ao tamanho máximo de um quadro AT ASCII.
Observações
Se conn_hdl for omitido, usa-se a primeira conexão BLE ativa. O serviço de destino já deve estar registrado e o índice da característica deve ser válido. Se as propriedades da característica incluírem Indicate (I), será enviada uma indicação; caso contrário, será enviada uma notificação.
Tabela: gravação da configuração GATT personalizada na flash
Campo
Conteúdo
Comando
AT+GATTSTORE\r
Resposta
Sucesso: \r\nOK\r\n; falha: \r\nERROR\r\n; a forma de consulta AT+GATTSTORE?\r retorna \r\nERROR\r\n.
Parâmetros
Nenhum.
Observações
Persiste na flash a configuração atual de todos os serviços e características. Somente os dados de configuração são salvos; informações de execução, como o estado de registro, não são persistidas. Retorna ERROR se o KVDB não estiver pronto ou se a gravação falhar. A forma de consulta não é compatível.
Os eventos a seguir são notificações de status enviadas espontaneamente pelo módulo; o host não precisa emitir um comando para recebê-las. A opção de notificação de eventos (AT+EVT) controla seu envio. No modo silencioso, nenhuma delas é enviada.
Nenhum (enviado espontaneamente pelo firmware, não pelo usuário).
Resposta
Texto da notificação: \r\nIM_READY\r\n
Parâmetros
Nenhum.
Observações
Enviado uma vez quando o módulo conclui a inicialização e fica disponível; também é enviado novamente quando todas as conexões são encerradas e o número de conexões volta a zero. O envio é controlado por AT+EVT; com AT+EVT=1 (modo silencioso), essa notificação é suprimida.
Nenhum (enviado espontaneamente pelo firmware quando uma conexão é estabelecida).
Resposta
Modo de comando: \r\nIM_CONN <hdl>,<addr>,<mtu>\r\n; modo transparente: \r\nIM_CONN\r\n
Parâmetros
hdl: identificador da conexão, exatamente 4 dígitos hexadecimais maiúsculos, preenchidos com zeros à esquerda. Para BLE, o identificador externo é numerado a partir de 1 (identificador interno mais 1); os demais tipos exibem o valor bruto. addr: endereço do dispositivo remoto, com 12 dígitos hexadecimais, do byte mais significativo para o menos significativo. mtu: MTU da conexão atual, em decimal.
Observações
No modo de comando, cada conexão estabelecida gera uma notificação com o identificador, o endereço remoto e a MTU. No modo transparente, a notificação é enviada somente quando o número de conexões é 1 (primeira conexão), sem parâmetros. O envio é controlado por AT+EVT; com AT+EVT=1 (modo silencioso), essa notificação é suprimida.
Nenhum (enviado espontaneamente pelo firmware quando uma conexão é encerrada).
Resposta
Modo de comando: \r\nIM_DISCONN:<hdl>\r\n
Parâmetros
hdl: identificador da conexão encerrada, exatamente 4 dígitos hexadecimais maiúsculos, preenchidos com zeros à esquerda. Para BLE, o identificador externo é numerado a partir de 1 (valor bruto mais 1); os demais tipos exibem o valor bruto.
Observações
A notificação contém somente o identificador e é enviada apenas no modo de comando; não é enviada no modo transparente. Em ambos os modos, quando todas as conexões são encerradas e o número volta a zero, também é enviado \r\nIM_READY\r\n. O envio é controlado por AT+EVT; com AT+EVT=1 (modo silencioso), essa notificação é suprimida.
opcode é fixo em 0x0101; body = conn_hdl (2 bytes em little-endian) + data. BLE usa o identificador externo numerado a partir de 1; SPP usa o identificador ACL bruto.
Observações
No modo de comando, quando dados são gravados em uma característica BLE personalizada ou recebidos pelo SPP do Bluetooth Classic, o módulo os envia ao host no formato acima. No modo transparente, os dados são enviados diretamente.
Envio de dados PDU (seleção automática da característica Notify, opcode 0x0101)¶
Tabela: envio de dados PDU (seleção automática da característica Notify, opcode 0x0101)
Campo
Conteúdo
Comando
Quadro binário (não é uma linha AT textual): AT> + opcode (2 bytes em little-endian) + len (2 bytes em little-endian) + body + \r. Aqui, opcode = 0x0101 (sequência de bytes 01 01); len é o número de bytes de body; body = conn_hdl (2 bytes em little-endian) + data. data é a carga útil a enviar.
Resposta
Não há resposta textual. O firmware encaminha data ao dispositivo remoto conforme o tipo de conexão, sem responder OK/ERROR.
Parâmetros
opcode: fixo em 0x0101. len: comprimento de body, de 2 a 508 (quadros abaixo de 2 ou acima de AT_RX_BUF_SIZE-4 são descartados; AT_RX_BUF_SIZE = 512). conn_hdl: identificador da conexão de destino; para BLE, valor externo numerado a partir de 1; para SPP, identificador ACL bruto. data: bytes da carga útil, comprimento = len-2, que pode ser 0.
Observações
conn_hdl é resolvido primeiro como identificador BLE numerado a partir de 1 (isto é, conn_hdl-1 corresponde a um slot BLE); se não houver correspondência, procura-se o valor bruto em um slot SPP. Se a conexão não for encontrada, o quadro é descartado. Para BLE, o firmware percorre os serviços GATT personalizados e seleciona automaticamente a primeira característica com a propriedade Notify ou Indicate; se não houver nenhuma, nada é enviado. Para SPP (BR/EDR), data é enviado pelo canal SPP. O quadro deve ser seguido imediatamente por \r; caso contrário, o quadro atual é descartado. Se não chegarem bytes novos antes do limite de timeout PDU entre quadros, o estado de recepção PDU é reiniciado.
Envio de dados PDU (serviço e característica específicos, opcode 0x0102)¶
Tabela: envio de dados PDU (serviço e característica específicos, opcode 0x0102)
Campo
Conteúdo
Comando
Quadro binário (não é uma linha AT textual): AT> + opcode (2 bytes em little-endian) + len (2 bytes em little-endian) + body + \r. Aqui, opcode = 0x0102 (sequência de bytes 02 01); len é o número de bytes de body; body = conn_hdl (2 bytes em little-endian) + svc_idx (1 byte) + char_idx (1 byte) + data.
Resposta
Não há resposta textual. O firmware envia data ao dispositivo remoto pelo serviço e pela característica especificados, sem responder OK/ERROR.
Parâmetros
opcode: fixo em 0x0102. len: comprimento de body, de 4 a 508. O mínimo geral da camada de recepção é 2, mas este opcode exige ao menos 4 bytes para incluir svc_idx+char_idx; caso contrário, o quadro é descartado. conn_hdl: identificador BLE de destino, numerado a partir de 1 (valor externo). svc_idx: índice do serviço GATT personalizado. char_idx: índice da característica nesse serviço. data: bytes da carga útil, comprimento = len-4, que pode ser 0.
Observações
Apenas conexões BLE são compatíveis; se a conexão resolvida for SPP, o quadro é descartado. svc_idx deve corresponder a um serviço personalizado registrado e char_idx deve ser menor que o número de características desse serviço; caso contrário, o quadro é descartado. A característica especificada deve ter a propriedade Notify ou Indicate; caso contrário, o quadro é descartado. conn_hdl segue a mesma regra de resolução de 0x0101: primeiro o identificador BLE numerado a partir de 1, depois o valor bruto. O quadro deve ser seguido imediatamente por \r.
AT+DISCONN\r (sem parâmetro) ou AT+DISCONN=<conn_hdl>\r
Resposta
Sucesso: \r\nOK\r\n; falha: \r\nERROR\r\n
Parâmetros
conn_hdl: identificador hexadecimal da conexão a encerrar. Para BLE, usa-se o valor externo numerado a partir de 1; o valor não pode ser 0 (0 é inválido e retorna ERROR). Conexões SPP usam o identificador ACL bruto.
Observações
Sem parâmetro, encerra todas as conexões atuais e retorna OK. Com um parâmetro, procura primeiro o identificador BLE numerado a partir de 1 (conn_hdl-1 corresponde a um slot BLE); se não houver correspondência, procura o valor bruto em um slot SPP. Se a conexão não for encontrada, retorna ERROR. Para BLE, a desconexão é iniciada com o código de motivo 0x13; para SPP, é iniciada usando o endereço remoto. A forma de consulta AT+DISCONN? retorna ERROR.
Indicação de status da conexão PDU (IM_CONN / IM_DISCONN)¶
Tabela: indicação de status da conexão PDU (IM_CONN / IM_DISCONN)
Campo
Conteúdo
Comando
Enviado espontaneamente pelo módulo, sem comando do host. IM_CONN é enviado quando uma conexão é estabelecida; IM_DISCONN, quando ela é encerrada.
Resposta
Conexão estabelecida no modo de comando: \r\nIM_CONN <hdl>,<mac>,<mtu>\r\n, em que <hdl> é um identificador com 4 dígitos hexadecimais, <mac> é um endereço com 12 dígitos hexadecimais (do byte mais significativo para o menos significativo) e <mtu> é a MTU em decimal. Desconexão no modo de comando: \r\nIM_DISCONN:<hdl>\r\n (<hdl> tem 4 dígitos hexadecimais). O modo transparente envia \r\nIM_CONN\r\n (sem parâmetros) somente quando a primeira conexão é estabelecida e não envia IM_DISCONN na desconexão. Ambos os modos enviam \r\nIM_READY\r\n quando todas as conexões são encerradas.
Parâmetros
<hdl>: identificador da conexão; para BLE, o valor externo corresponde ao identificador interno, numerado a partir de 0, mais 1; para SPP, usa-se o valor bruto. <mac>: endereço Bluetooth remoto. <mtu>: MTU negociada.
Observações
O envio é controlado por AT+EVT: com o valor 0 (padrão), as notificações são enviadas normalmente; com o valor 1, IM_READY/IM_CONN/IM_DISCONN são suprimidos. O formato e o conteúdo variam conforme o modo de operação atual (comando ou transparente), como descrito acima.