Esta referencia documenta la interfaz externa de comandos AT de la versión V1.2.1 del módulo Bluetooth de modo dual SF32LB57 (SIFLI_AT). Los comandos y las cadenas de respuesta se muestran en monoespaciado; \r denota un retorno de carro (0x0D) y \n denota un salto de línea (0x0A). Los comandos AT se transmiten como texto ASCII, mientras que los campos binarios en las tramas PDU usan orden de bytes little-endian.
Esta es la especificación completa de la interfaz AT referenciada por la página del Módulo de comandos AT Bluetooth.
Tabla: Historial de revisiones
Versión
Cambios
Fecha
V1.2.1
SF32LB57 V1.2.1: se añadió AT+CFGRESET; se actualizó la sincronización del nombre Bluetooth clásico al arrancar y la documentación de CLEARLINKKEY, el identificador de conexión y PDU; se habilitó la configuración de compilación BQB.
El módulo Bluetooth de modo dual SF32LB57 ofrece al host una interfaz de comandos AT basada en UART para BLE y Bluetooth clásico (BR/EDR). El host puede usar estos comandos para configurar el dispositivo, gestionar conexiones, enviar y recibir datos, y recibir notificaciones de estado no solicitadas del módulo.
Los comandos AT se transmiten como texto ASCII y terminan con un retorno de carro \r (0x0D). El prefijo es AT+ para los comandos en formato AT o AT> para los comandos en formato PDU. En el SF32LB57, el puerto AT es USART1 y usa el formato 8N1, sin control de flujo por hardware, a una velocidad predeterminada de 460800 baudios. Cada trama AT puede ocupar como máximo 512 bytes.
Los comandos PDU transfieren cargas útiles binarias mientras el módulo está en modo de comando. A menos que se indique lo contrario, los campos numéricos dentro de una trama son little-endian, y data son datos binarios sin procesar.
Nombre del dispositivo: una cadena de 1 a 29 bytes de longitud; vacía o mayor de 29 bytes devuelve ERROR. Predeterminado SIFLI_AT.
Notas
Actualiza el nombre del dispositivo y lo sincroniza con el nombre local y el incluido en la respuesta de escaneo BLE. MACNAME controla el nombre que finalmente se anuncia.
Consultar la opción de añadir el sufijo MAC al nombre¶
Tabla: Lectura del estado del sufijo MAC del nombre
Elemento
Contenido
Comando
AT+MACNAME?\r
Respuesta
\r\n+MACNAME:<value>\r\n\r\nOK\r\n
Parámetros
Ninguno
Notas
Devuelve el estado de la opción de sufijo: 0 = desactivada, 1 = activada.
Configurar la opción de añadir el sufijo MAC al nombre¶
Tabla: Configuración de la opción de sufijo MAC en el nombre
Elemento
Contenido
Comando
AT+MACNAME=<value>\r
Respuesta
Éxito: \r\nOK\r\n; fallo: \r\nERROR\r\n
Parámetros
Valor: 0 = se muestra el nombre del dispositivo sin cambios; 1 = añade el sufijo -XXXX al nombre (XXXX son los últimos dos bytes de la BD_ADDR local, expresados en hexadecimal y en mayúsculas). Rango: 0–1. Valor predeterminado: 0.
Notas
Actualiza la configuración. Si está activada y el nombre más el sufijo supera el límite de 29 bytes, se trunca el nombre del dispositivo para dejar espacio al sufijo de 5 bytes.
Cadena de ID: la cadena de ID de dispositivo IEEE 1284; la longitud debe estar por debajo de la capacidad del búfer de almacenamiento, una longitud excesiva devuelve ERROR. El valor predeterminado es una cadena vacía.
Éxito: \r\nOK\r\n; forma de consulta (AT+RESET?\r): \r\nERROR\r\n
Parámetros
Ninguno
Notas
Al recibir este comando, el módulo guarda la configuración AT actual, responde OK, detiene la publicidad, desconecta las conexiones y ejecuta un reinicio por software. El comando no modifica la configuración por sí mismo.
Éxito: \r\nOK\r\n; forma de consulta (AT+FACTORYRESET?\r): \r\nERROR\r\n
Parámetros
Ninguno
Notas
Restaura la configuración AT a los valores predeterminados, borra la configuración de servicio GATT personalizado, las vinculaciones BLE, las vinculaciones de emparejamiento Bluetooth clásico (BR/EDR), y la dirección aleatoria estática BLE, luego responde OK y se reinicia. El host debe esperar IM_READY después del reinicio.
Éxito: \r\nOK\r\n; forma de consulta (AT+CFGRESET?\r): \r\nERROR\r\n
Parámetros
Ninguno
Notas
Restaura la configuración AT y la configuración GATT personalizada guardada, luego responde OK y se reinicia; los registros de emparejamiento y la dirección BLE actual se conservan.
Éxito: \r\nOK\r\n (luego entra en modo DFU y se reinicia; sin más respuesta); forma de consulta (AT+OTA?\r): \r\nERROR\r\n
Parámetros
Ninguno
Notas
Primero guarda la configuración AT actual y responde OK, luego escribe una bandera DFU y se reinicia en modo de actualización DFU por UART.
Consultar calibración de desviación de frecuencia¶
Tabla: Consultar calibración de desviación de frecuencia
Elemento
Contenido
Comando
AT+TRIM?\r
Respuesta
\r\n+TRIM:<freq_off>\r\n\r\nOK\r\n
Parámetros
freq_off: el valor de calibración de desviación de frecuencia actualmente registrado, en Hz.
Notas
Devuelve el valor de referencia guardado en la configuración AT; el valor que se aplica realmente se almacena en la partición FACTORY_CFG_ID_CRYSTAL.
Establecer calibración de desviación de frecuencia¶
Tabla: Establecer calibración de desviación de frecuencia
Elemento
Contenido
Comando
AT+TRIM=<freq_off>\r
Respuesta
Éxito: \r\nOK\r\n; valor fuera de rango o fallo de la interfaz de calibración: \r\nERROR\r\n
Parámetros
freq_off: valor de calibración de la desviación de frecuencia, en Hz. Rango: -120000 a 120000. Valor predeterminado: 0. El valor 0 restablece la calibración y recupera el valor original de fábrica del hardware; cualquier valor distinto de cero se aplica directamente.
Notas
Al establecer el valor, se actualiza el registro del banco de condensadores HXT y se escribe el resultado en la partición FACTORY_CFG_ID_CRYSTAL. Si la calibración se completa correctamente, se actualiza el valor guardado en la configuración AT y se marca para su almacenamiento.
Éxito: \r\nOK\r\n; forma de consulta (AT+DUT?\r): \r\nERROR\r\n
Parámetros
Ninguno
Notas
Activa el bit DUT de BR/EDR Bluetooth clásico y responde OK. Después, espera a que el equipo de prueba transmita LMP_test_control por radio para iniciar la prueba de señalización. El UART AT (USART1) permanece disponible. El modo DUT es irreversible y solo se puede abandonar reiniciando el dispositivo.
addr: devuelve la dirección Bluetooth pública actual, 12 caracteres hexadecimales (mayúsculas, sin separadores), byte más significativo primero, p. ej. 001583112233.
Notas
Devuelve la dirección pública leída del firmware; devuelve ERROR en caso de fallo de lectura.
addr: dirección Bluetooth que se va a establecer, con exactamente 12 caracteres hexadecimales sin separadores y el byte más significativo primero, por ejemplo 001583112233.
Notas
La dirección se escribe en la configuración y se guarda. Surte efecto después de un reinicio. El valor predeterminado de fábrica es todo ceros, lo que significa que la dirección se genera automáticamente a partir del UID del chip.
addr: devuelve la dirección actualmente usada por BLE, 12 caracteres hexadecimales (mayúsculas, sin separadores), byte más significativo primero.
Notas
Si se ha generado una dirección aleatoria estática específica de BLE mediante AT+RANDOMADDR=1, se devuelve esa dirección aleatoria estática; de lo contrario se devuelve la misma dirección pública que la dirección Bluetooth. Devuelve ERROR en caso de fallo de lectura.
Este comando no acepta establecer directamente la dirección BLE; llamarlo siempre devuelve ERROR. Una dirección aleatoria estática BLE se genera mediante AT+RANDOMADDR=1.
Tabla: Configuración del uso de una dirección aleatoria BLE
Elemento
Contenido
Comando
AT+RANDOMADDR=<n>\r
Respuesta
Éxito: \r\nOK\r\n; fallo: \r\nERROR\r\n
Parámetros
n: 0 o 1. 1 = habilita una dirección aleatoria estática BLE, derivada de la dirección pública (estableciendo los dos bits superiores del byte más significativo de la dirección pública en 1; p. ej. la dirección pública 001583112233 deriva en BLE C01583112233); 0 = BLE vuelve a la dirección pública. Otros valores o caracteres adicionales devuelven ERROR. Predeterminado 0.
Notas
El ajuste actualiza la configuración. Si se establece en 1 y falla la lectura de la dirección pública, el valor vuelve a 0 y se devuelve ERROR. La nueva dirección se guarda en NVDS y surte efecto tras reiniciar. Volver a ejecutar AT+RANDOMADDR=1 genera la misma dirección aleatoria a partir de la dirección pública, sin cambios.
state: estado de visibilidad actual. 0 = no visible, 1 = visible, 2 = visibilidad parcial (estado mixto). Su significado depende del modo de operación: en modo BLE (BTMODE=1), refleja si el advertising BLE está activado (1) o desactivado (0); en modo BT (BTMODE=2), refleja Inquiry Scan y Page Scan: 1 cuando ambos están activos, 0 cuando ambos están desactivados y 2 en cualquier otro caso; en modo dual (BTMODE=0), vale 1 cuando están activos el advertising BLE, Inquiry Scan y Page Scan; 0 cuando los tres están desactivados y 2 en cualquier otro caso.
Notas
Solo consulta el estado visible actual; no cambia el estado del dispositivo.
mode: 0 = desactivar la visibilidad, 1 = activar la visibilidad.
Notas
El efecto depende del modo de operación: en modo BLE (BTMODE=1), activa o desactiva el advertising BLE; en modo BT (BTMODE=2), activa o desactiva Inquiry Scan y Page Scan; en modo dual (BTMODE=0), controla conjuntamente el advertising BLE, Inquiry Scan y Page Scan.
mode: modo de operación. 0 = modo transparente, 1 = modo de comando. El módulo arranca en modo transparente al encenderlo.
Notas
El cambio se aplica de inmediato, pero no se guarda: al reiniciar, el módulo vuelve al modo transparente. En este modo, los datos recibidos por el puerto serie se reenvían sin modificar al dispositivo conectado; en modo de comando, se interpretan como comandos AT.
Éxito: \r\nOK\r\n; forma de consulta AT+CLEARLINKKEY?\r: \r\nERROR\r\n
Parámetros
Sin parámetros.
Notas
Borra la información de vinculación BLE y la clave de enlace Bluetooth clásico. Si la operación se completa, el dispositivo se reinicia; la configuración AT (nombre del dispositivo, velocidad en baudios y COD) se conserva. El host debe esperar IM_READY después del reinicio. No se admite la forma de consulta.
Tabla: Configuración de las notificaciones de eventos
Elemento
Contenido
Comando
AT+EVT=<evt_silent>\r
Respuesta
Éxito: \r\nOK\r\n; fallo: \r\nERROR\r\n
Parámetros
evt_silent: controla las notificaciones de eventos. 0 = emitir normalmente IM_CONN/IM_DISCONN/IM_READY y los demás eventos; 1 = suprimirlos todos. Valor predeterminado: 0 (notificaciones habilitadas).
Notas
El ajuste actualiza la configuración. Con el valor 1, las notificaciones de conexión, desconexión y disponibilidad no se envían por el puerto serie.
Consultar tiempo de desconexión por inactividad en modo transparente¶
Tabla: Consultar tiempo de desconexión por inactividad en modo transparente
Elemento
Contenido
Comando
AT+IDLE?\r
Respuesta
\r\n+IDLE:<idle_ms>\r\n\r\nOK\r\n
Parámetros
idle_ms: el tiempo de espera de desconexión por inactividad actual, en milisegundos.
Notas
Ninguna
Establecer tiempo de desconexión por inactividad en modo transparente¶
Tabla: Establecer tiempo de desconexión por inactividad en modo transparente
Elemento
Contenido
Comando
AT+IDLE=<idle_ms>\r
Respuesta
Éxito: \r\nOK\r\n; fallo: \r\nERROR\r\n
Parámetros
idle_ms: tiempo de espera de desconexión por inactividad en modo transparente, en milisegundos, rango 0–65535; más de 65535 devuelve ERROR. 0 deshabilita la función de desconexión por inactividad. Predeterminado 0 (desactivado).
Notas
El ajuste actualiza la configuración y solo surte efecto en modo transparente: si transcurren más de idle_ms milisegundos desde el último dato recibido por el puerto serie, se desconectan todas las conexiones existentes. Con idle_ms = 0, la desconexión por inactividad queda desactivada.
<n>: estado de la multiconexión global. 0 = desactivada (una sola conexión en todo el sistema); 1 = activada (permite conexiones simultáneas hasta el límite de cada transporte).
<n>: 0 = deshabilitar multiconexión; 1 = habilitar multiconexión. El valor es 0 o 1. Predeterminado 1.
Notas
El ajuste actualiza la configuración. Cuando la multiconexión está desactivada, la capacidad de conexión concurrente está restringida; cuando está activada, opera según los ajustes AT+BLEMULTICONN y AT+BTMULTICONN.
Consultar el número máximo de conexiones concurrentes BLE¶
Tabla: Consultar el número máximo de conexiones concurrentes BLE
Elemento
Contenido
Comando
AT+BLEMULTICONN?\r
Respuesta
Éxito: \r\n+BLEMULTICONN:<n>\r\n\r\nOK\r\n; cuando la multiconexión está desactivada: \r\nERROR\r\n
Parámetros
<n>: el número máximo de conexiones concurrentes BLE actualmente configurado, decimal.
Notas
Solo se puede consultar cuando está activada la multiconexión (AT+MULTICONN=1); si está desactivada, devuelve ERROR.
Establecer el número máximo de conexiones concurrentes BLE¶
Tabla: Establecer el número máximo de conexiones concurrentes BLE
Elemento
Contenido
Comando
AT+BLEMULTICONN=<n>\r
Respuesta
Éxito: \r\nOK\r\n; fallo: \r\nERROR\r\n
Parámetros
<n>: número máximo de conexiones concurrentes BLE, decimal, rango 1–6. Predeterminado 3.
Notas
Solo puede configurarse si la multiconexión global está habilitada (AT+MULTICONN=1). El ajuste actualiza la configuración. Al alcanzar el límite de conexiones, se detiene el advertising (el dispositivo deja de aceptar nuevas conexiones) y se reanuda automáticamente cuando el número de conexiones vuelve a estar por debajo del límite.
Consultar el número máximo de conexiones concurrentes Bluetooth clásico¶
Tabla: Consultar el número máximo de conexiones concurrentes Bluetooth clásico
Elemento
Contenido
Comando
AT+BTMULTICONN?\r
Respuesta
Éxito: \r\n+BTMULTICONN:<n>\r\n\r\nOK\r\n; cuando la multiconexión está desactivada: \r\nERROR\r\n
Parámetros
<n>: el número máximo de conexiones concurrentes Bluetooth clásico (BR/EDR) actualmente configurado, decimal.
Notas
Solo se puede consultar cuando está activada la multiconexión (AT+MULTICONN=1); si está desactivada, devuelve ERROR.
Establecer el número máximo de conexiones concurrentes Bluetooth clásico¶
Tabla: Establecer el número máximo de conexiones concurrentes Bluetooth clásico
Elemento
Contenido
Comando
AT+BTMULTICONN=<n>\r
Respuesta
Éxito: \r\nOK\r\n; fallo: \r\nERROR\r\n
Parámetros
<n>: número máximo de conexiones concurrentes Bluetooth clásico, decimal, rango 1–7. Predeterminado 7.
Notas
Solo se puede establecer cuando está activada la multiconexión (AT+MULTICONN=1). El ajuste actualiza la configuración. Cuando se alcanza el límite de conexiones, el módulo detiene Page Scan y lo reanuda automáticamente cuando el número de conexiones vuelve a quedar por debajo del límite.
Éxito: \r\nOK\r\n; fallo o no encontrado: \r\nERROR\r\n
Parámetros
<conn_hdl>: identificador de conexión en hexadecimal. Para BLE se usa un identificador externo numerado desde 1 (como el que devuelve AT+CONNLIST); las conexiones BT usan su identificador ACL. <conn_hdl> = 0 no es válido y devuelve ERROR.
Notas
Sin parámetro (o con un parámetro vacío), se desconectan todos los enlaces activos (BLE y BR/EDR) y se devuelve OK. Si se proporciona un identificador, primero se compara con el identificador BLE externo (identificador interno = <conn_hdl> - 1). Si no hay coincidencia, se compara con el identificador de conexión ACL de BT sin procesar. Si tampoco se encuentra una conexión, se devuelve ERROR. La forma de consulta AT+DISCONN? devuelve ERROR.
Cada conexión activa se emite como una línea: \r\n+CONNLIST:<conn_hdl>,<type>,<addr>,<extra>\r\n; seguido de \r\nOK\r\n después de todas las líneas; solo \r\nOK\r\n si no hay conexiones activas; un parámetro no vacío: \r\nERROR\r\n
Parámetros
Campos de salida: <conn_hdl>: identificador de conexión de 4 dígitos hexadecimales; para BLE es un identificador externo numerado desde 1. <type>: tipo de conexión, BLE o BT. <addr>: dirección Bluetooth del par, 12 dígitos hexadecimales (primero el byte más significativo). <extra>: MTU actual de las conexiones BLE o canal de servicio de las conexiones BT, en decimal.
Notas
La forma de ajuste devuelve ERROR cuando se proporciona un parámetro no vacío. El módulo verifica cada ranura de conexión y emite cada conexión activa.
AT+SPPSEND=<conn_hdl>,<data>\r o AT+SPPSEND=,<data>\r
Respuesta
Éxito: \r\nOK\r\n; fallo: \r\nERROR\r\n
Parámetros
conn_hdl: identificador de conexión BT objetivo, hexadecimal. Puede omitirse o establecerse en 0, en cuyo caso se usa la primera conexión BT activa actual. data: los datos a enviar, una cadena hexadecimal, cada dos caracteres representan un byte; no puede estar vacía y el recuento de caracteres debe ser par. La longitud real de los datos transportados en una trama AT ASCII también está limitada por el límite de una sola trama AT.
Notas
conn_hdl y data se separan con una coma. La coma debe incluirse incluso si se omite conn_hdl. No se admite la forma de consulta.
Tabla: Consultar lista de servicios GATT personalizados
Elemento
Contenido
Comando
AT+GATTSRV?\r
Respuesta
Para cada servicio configurado, devuelve una línea \r\n+GATTSRV:<idx>,<char_count>,<state>\r\n, seguida de \r\nOK\r\n. Si no hay servicios configurados, solo se devuelve \r\nOK\r\n
Parámetros
idx: número de ranura de servicio, 0–5. char_count: el número de características configuradas para ese servicio. state: REG significa registrado con la pila de protocolo, CFG significa configurado solo en RAM y aún no registrado
Notas
Solo lista las ranuras de servicio actualmente en uso
idx: número de ranura de servicio, 0–5. uuid: el UUID del servicio, ingresado como una cadena hexadecimal con el MSB primero: 4 caracteres para un UUID de 16 bits, 32 caracteres para un UUID de 128 bits
Notas
idx debe ser un solo dígito seguido inmediatamente por una coma. La longitud del UUID debe ser exactamente 4 o 32 caracteres; cualquier otra longitud devuelve ERROR. Si la ranura ya está registrada con la pila de protocolo no se puede reconfigurar, y la creación devuelve ERROR. Crear un servicio borra cualquier configuración anterior en esa ranura
Borra la configuración de esa ranura en RAM. Un servicio ya registrado con la pila de protocolo no se puede revocar en tiempo de ejecución; este comando solo borra la configuración en RAM
Consultar lista de características GATT personalizadas¶
Tabla: Consultar lista de características GATT personalizadas
Elemento
Contenido
Comando
AT+GATTCHAR?<svc>\r
Respuesta
Para cada característica de ese servicio, devuelve una línea \r\n+GATTCHAR:<svc>,<chr>,prop=0x<prop>,len=<max_len>\r\n, seguida de \r\nOK\r\n; si el servicio no existe: \r\nERROR\r\n
Parámetros
svc: número de ranura de servicio, 0–5. chr: índice de característica. prop: los bits de propiedad de la característica, en hexadecimal. max_len: longitud máxima del valor de la característica
svc: número de ranura de servicio, 0–5. chr: índice de característica, 0–7. uuid: UUID de la característica, MSB primero, 4 caracteres para 16 bits, 32 caracteres para 128 bits. prop: una cadena de propiedades compuesta por los caracteres R (leer), W (escribir con respuesta), w (escribir sin respuesta), N (notificar), I (indicar). len: longitud máxima del valor de la característica, 1–512
Notas
Los cinco parámetros son obligatorios; omitir cualquiera devuelve ERROR. La longitud del UUID debe ser exactamente 4 o 32 caracteres. prop debe contener al menos un carácter de propiedad reconocido; si no se reconoce ninguno, devuelve ERROR; los caracteres no reconocidos dentro de prop simplemente se ignoran. len de 0 o superior a 512 devuelve ERROR. El servicio padre ya debe estar creado y aún no registrado con la pila de protocolo
\r\n+GATTSTART:<count>\r\n seguido de \r\nOK\r\n; forma de consulta AT+GATTSTART?\r: \r\nERROR\r\n
Parámetros
count: el número de servicios registrados exitosamente con la pila de protocolo en esta llamada
Notas
Registra en la pila de protocolos cada servicio que esté en uso, aún no se haya registrado y contenga al menos una característica. Una vez registrado, el servicio ya no puede retirarse ni reconfigurarse durante la ejecución. No se admite la forma de consulta.
Enviar datos de característica GATT (notificar/indicar)¶
Tabla: Enviar datos de característica GATT (notificar/indicar)
Elemento
Contenido
Comando
AT+GATTSEND=<svc>,<chr>,<conn_hdl>,<hex>\r; omitiendo el identificador de conexión: AT+GATTSEND=<svc>,<chr>,,<hex>\r
Respuesta
Éxito: \r\nOK\r\n; fallo: \r\nERROR\r\n; forma de consulta AT+GATTSEND?\r: \r\nERROR\r\n
Parámetros
svc: número de ranura de servicio. chr: índice de característica. conn_hdl: identificador de conexión BLE en hexadecimal, numerado desde 1; puede omitirse. hex: datos que se van a enviar, expresados como una cadena hexadecimal con un número par de caracteres. La longitud efectiva también está limitada por el tamaño máximo de una trama AT ASCII.
Notas
Cuando se omite conn_hdl, se usa la primera conexión BLE actual. El servicio objetivo ya debe estar registrado y el índice de característica debe ser válido; si las propiedades de la característica incluyen Indicar (I), se usa una indicación, de lo contrario una notificación.
Guardar configuración GATT personalizada en flash¶
Tabla: Guardar configuración GATT personalizada en flash
Elemento
Contenido
Comando
AT+GATTSTORE\r
Respuesta
Éxito: \r\nOK\r\n; fallo: \r\nERROR\r\n; forma de consulta AT+GATTSTORE?\r: \r\nERROR\r\n
Parámetros
Ninguno
Notas
Guarda en flash la configuración actual de todos los servicios y características. Solo se conservan los datos de configuración; no se guarda información de ejecución, como el estado de registro. Devuelve ERROR si KVDB no está listo o falla la escritura. No se admite la forma de consulta.
Tabla: Borrar configuración GATT personalizada en flash
Elemento
Contenido
Comando
AT+GATTCLEAR\r
Respuesta
Éxito: \r\nOK\r\n; forma de consulta AT+GATTCLEAR?\r: \r\nERROR\r\n
Parámetros
Ninguno
Notas
Elimina la configuración GATT guardada en flash. No afecta la configuración actual en RAM. No se admite la forma de consulta.
Consultar la carga automática de GATT al encender¶
Tabla: Lectura del ajuste de carga automática de GATT al encender
Elemento
Contenido
Comando
AT+GATTAUTOSTART?\r
Respuesta
\r\n+GATTAUTOSTART:<v>\r\n\r\nOK\r\n
Parámetros
v: valor actual; 0 = desactivado, 1 = activado. Valor predeterminado: 1.
Notas
Ninguna
Configurar la carga automática de GATT al encender¶
Tabla: Configuración de la carga automática de GATT al encender
Elemento
Contenido
Comando
AT+GATTAUTOSTART=<v>\r
Respuesta
Éxito: \r\nOK\r\n; fallo: \r\nERROR\r\n
Parámetros
v: 0 = desactivado, 1 = activado. Valor predeterminado: 1.
Notas
El ajuste actualiza la configuración. Cuando está habilitado, el dispositivo carga automáticamente la configuración de servicio GATT guardada al encender.
Las siguientes son notificaciones de estado que el módulo emite por iniciativa propia; el host no necesita enviar un comando para recibirlas. Su emisión se controla con AT+EVT; en modo silencioso no se envían.
Ninguno (notificación emitida automáticamente por el firmware; no la envía el usuario)
Respuesta
Cadena de notificación: \r\nIM_READY\r\n
Parámetros
Ninguno
Notas
Se emite una vez cuando el módulo termina la inicialización y queda disponible. También se vuelve a emitir cuando se han desconectado todos los enlaces y el número de conexiones activas vuelve a cero. La emisión se controla con AT+EVT; el ajuste AT+EVT=1 suprime estas notificaciones.
Ninguno (notificación emitida automáticamente por el firmware al establecerse una conexión)
Respuesta
Modo de comando: \r\nIM_CONN <hdl>,<addr>,<mtu>\r\n; modo transparente: \r\nIM_CONN\r\n
Parámetros
hdl: identificador de conexión, exactamente 4 dígitos hexadecimales en mayúsculas, completado con ceros a la izquierda. En BLE se muestra un identificador numerado desde 1 (el identificador interno más 1); los demás tipos muestran el valor sin procesar. addr: dirección del dispositivo remoto, 12 dígitos hexadecimales, con el byte más significativo primero. mtu: MTU de la conexión actual, en decimal.
Notas
En modo de comando se emite una notificación por cada conexión establecida, con el identificador, la dirección del dispositivo remoto y la MTU. En modo transparente solo se notifica la primera conexión (cuando el número de conexiones es 1), sin parámetros. La emisión se controla con AT+EVT; el ajuste AT+EVT=1 suprime estas notificaciones.
Ninguno (notificación emitida automáticamente por el firmware al cerrarse una conexión)
Respuesta
Modo de comando: \r\nIM_DISCONN:<hdl>\r\n
Parámetros
hdl: identificador de la conexión desconectada, exactamente 4 dígitos hexadecimales en mayúsculas, completado con ceros a la izquierda. En BLE se muestra un identificador numerado desde 1 (el valor sin procesar más 1); los demás tipos muestran el valor sin procesar.
Notas
Solo contiene el identificador y se emite en modo de comando, no en modo transparente. En ambos modos, cuando se han cerrado todas las conexiones y el número de conexiones activas vuelve a cero, también se emite \r\nIM_READY\r\n. La emisión se controla con AT+EVT; el ajuste AT+EVT=1 suprime estas notificaciones.
opcode es fijo en 0x0101; body = conn_hdl (2 bytes little-endian) + data. BLE usa el identificador externo numerado desde 1; SPP usa el identificador ACL sin procesar.
Notas
En modo de comando, cuando se escriben datos en una característica BLE personalizada o se reciben por Bluetooth clásico SPP, el módulo los reporta al host en el formato anterior; en modo transparente, los datos se emiten directamente.
Envío de datos en modo PDU (selección automática de característica de notificación, opcode 0x0101)¶
Tabla: Envío de datos en modo PDU (selección automática de característica de notificación, opcode 0x0101)
Elemento
Contenido
Comando
Trama binaria (no es una línea AT de texto): AT> + opcode(2 bytes little-endian) + len(2 bytes little-endian) + body + \r. Aquí opcode = 0x0101 (secuencia de bytes 01 01); len es el recuento de bytes de body; body = conn_hdl(2 bytes little-endian) + data. data es la carga útil que se enviará.
Respuesta
Sin cadena de respuesta de texto. El firmware reenvía data al par según el tipo de conexión, sin responder OK/ERROR.
Parámetros
opcode: fijo 0x0101. len: longitud de body, rango 2–508 (las tramas de menos de 2 o más de AT_RX_BUF_SIZE-4 se descartan; AT_RX_BUF_SIZE = 512). conn_hdl: identificador de conexión de destino; para BLE, el valor externo numerado desde 1; para SPP, el identificador ACL sin procesar. data: bytes de carga útil, longitud = len-2, puede ser 0.
Notas
conn_hdl se resuelve primero como identificador BLE numerado desde 1 (es decir, conn_hdl-1 corresponde a una ranura BLE); si no hay coincidencia, se busca el valor sin procesar en una ranura SPP. Si no se encuentra la conexión, se descarta la trama. Para BLE, el firmware recorre los servicios GATT personalizados y selecciona automáticamente la primera característica con propiedad Notify o Indicate; si no existe ninguna, no se envía nada. Para SPP (BR/EDR), data se envía por el canal SPP. La trama debe ir seguida inmediatamente de \r; si falta, se descarta la trama actual. Si no llegan bytes nuevos antes del umbral de timeout PDU entre tramas, se reinicia el estado de recepción PDU.
Envío de datos en modo PDU (especificar servicio y característica, opcode 0x0102)¶
Tabla: Envío de datos en modo PDU (especificar servicio y característica, opcode 0x0102)
Elemento
Contenido
Comando
Una trama binaria (no una línea AT de texto): AT> + opcode(2 bytes little-endian) + len(2 bytes little-endian) + body + \r. Aquí opcode = 0x0102 (secuencia de bytes 02 01); len es el recuento de bytes de body; body = conn_hdl(2 bytes little-endian) + svc_idx(1 byte) + char_idx(1 byte) + data.
Respuesta
Sin cadena de respuesta de texto. El firmware envía data al par mediante el servicio/característica especificado, sin responder OK/ERROR.
Parámetros
opcode: fijo 0x0102. len: longitud de body, rango 4–508 (el mínimo general de la capa de recepción es 2, pero este opcode requiere que body tenga al menos 4 bytes, incluidos svc_idx y char_idx); de lo contrario, se descarta. conn_hdl: identificador BLE de destino numerado desde 1 (valor externo mostrado). svc_idx: índice del servicio GATT personalizado. char_idx: índice de característica dentro de ese servicio. data: bytes de carga útil, longitud = len-4, puede ser 0.
Notas
Solo se admiten conexiones BLE; si la conexión resuelta es de tipo SPP, se descarta la trama. svc_idx debe corresponder a un servicio personalizado registrado y char_idx debe ser menor que el número de características de ese servicio; de lo contrario, se descarta la trama. La característica especificada debe tener la propiedad Notify o Indicate; si no, se descarta la trama. conn_hdl se resuelve con la misma regla que 0x0101 (primero el identificador BLE numerado desde 1 y luego el valor sin procesar). La trama debe ir seguida inmediatamente de \r.
AT+DISCONN\r (sin parámetro) o AT+DISCONN=<conn_hdl>\r
Respuesta
Éxito: \r\nOK\r\n; fallo: \r\nERROR\r\n
Parámetros
conn_hdl: el identificador de conexión a desconectar, hexadecimal. Las conexiones BLE están basadas en 1 (valor de visualización externo); el valor no debe ser 0 (0 se trata como entrada inválida y devuelve ERROR). Las conexiones SPP usan el identificador de conexión ACL sin procesar.
Notas
Sin parámetro, se desconectan todas las conexiones actuales y se devuelve OK. Con un parámetro, se busca primero el identificador BLE numerado desde 1 (conn_hdl-1 corresponde a una ranura BLE); si no hay coincidencia, se busca el valor sin procesar en una ranura SPP. Si no se encuentra la conexión, se devuelve ERROR. Para BLE, la desconexión se inicia con el código de razón 0x13; para SPP, se inicia usando la dirección del par. La forma de consulta AT+DISCONN? devuelve ERROR.
Indicación de estado de conexión PDU (IM_CONN / IM_DISCONN)¶
Tabla: Indicación de estado de conexión PDU (IM_CONN / IM_DISCONN)
Elemento
Contenido
Comando
Notificación emitida automáticamente por el módulo; no requiere un comando del host. IM_CONN se emite al establecerse una conexión y IM_DISCONN al cerrarse una conexión.
Respuesta
Modo de comando, conexión establecida: \r\nIM_CONN <hdl>,<mac>,<mtu>\r\n, donde <hdl> es un identificador hexadecimal de 4 dígitos, <mac> es una dirección hexadecimal de 12 dígitos (byte más significativo primero), y <mtu> es un MTU decimal. Modo de comando, conexión caída: \r\nIM_DISCONN:<hdl>\r\n (<hdl> son 4 dígitos hexadecimales). El modo transparente reporta \r\nIM_CONN\r\n (sin parámetros) solo cuando se establece la primera conexión, y no reporta IM_DISCONN al desconectar. Ambos modos reportan \r\nIM_READY\r\n una vez que todas las conexiones han caído.
Parámetros
<hdl>: identificador de conexión; las conexiones BLE se muestran basadas en 1 (interno basado en 0 más 1), las conexiones SPP muestran el identificador sin procesar. <mac>: la dirección Bluetooth del par. <mtu>: el MTU negociado.
Notas
La emisión se controla con AT+EVT: con el valor 0 (predeterminado), las notificaciones se envían con normalidad; con el valor 1, se suprimen IM_READY, IM_CONN e IM_DISCONN. El formato y el contenido dependen del modo de operación actual (modo de comando o modo transparente), como se ha descrito arriba.