Diese Referenz dokumentiert die externe AT-Befehlsschnittstelle des SF32LB57-Dual-Mode-Bluetooth-Moduls (SIFLI_AT) in Version V1.2.1. Befehle und Antwortzeichenketten sind in Monospace-Schrift dargestellt; \r steht für einen Wagenrücklauf (0x0D), \n für einen Zeilenvorschub (0x0A). AT-Befehle werden als ASCII-Text übertragen; binäre Felder in PDU-Rahmen verwenden Little-Endian-Byte-Reihenfolge.
Dies ist die vollständige AT-Schnittstellenspezifikation, auf die von der Seite Bluetooth-AT-Befehlsmodul verwiesen wird.
Tabelle: Versionshistorie
Version
Änderungen
Datum
V1.2.1
SF32LB57 V1.2.1: AT+CFGRESET hinzugefügt; Synchronisierung des Classic-Bluetooth-Namens beim Start, CLEARLINKKEY, Verbindungs-Handle und PDU-Dokumentation aktualisiert; BQB-Build-Konfiguration aktiviert.
Das SF32LB57-Dual-Mode-Bluetooth-Modul stellt dem Host eine UART-basierte AT-Befehlsschnittstelle für BLE und Classic Bluetooth (BR/EDR) bereit. Über AT-Befehle kann der Host Geräteparameter konfigurieren, Verbindungen verwalten, Daten senden und empfangen sowie unaufgeforderte Statusmeldungen des Moduls erhalten.
AT-Befehle werden als ASCII-Text übertragen und mit einem Wagenrücklaufzeichen \r (0x0D) abgeschlossen. Das Befehlspräfix ist AT+ (AT-Format-Befehle) oder AT> (PDU-Format-Befehle). Beim SF32LB57 ist der AT-Port USART1; er verwendet 8N1 ohne Hardware-Flusskontrolle und standardmäßig 460800 Baud. Ein einzelner AT-Frame ist auf 512 Byte begrenzt.
PDU-Befehle übertragen binäre Nutzdaten, während sich das Modul im Befehlsmodus befindet. Sofern nicht anders angegeben, sind numerische Felder innerhalb eines Frames Little-Endian, und data sind rohe Binärdaten.
Gerätename: eine Zeichenkette mit 1–29 Byte Länge; leer oder über 29 Byte gibt ERROR zurück. Standard SIFLI_AT.
Hinweise
Aktualisiert den Gerätenamen und übernimmt ihn in den lokalen Namen sowie den BLE-Scan-Response-Namen. MACNAME steuert den Namen, der letztlich ausgesendet wird.
Gibt zurück, ob das Suffix angehängt wird: 0 = nein, 1 = ja.
MAC-Suffix im Gerätenamen aktivieren oder deaktivieren¶
Tabelle: MAC-Suffix im Gerätenamen aktivieren oder deaktivieren
Element
Inhalt
Befehl
AT+MACNAME=<value>\r
Antwort
Erfolg: \r\nOK\r\n; Fehlschlag: \r\nERROR\r\n
Parameter
Wert: 0 = Gerätenamen unverändert anzeigen; 1 = -XXXX an den Gerätenamen anhängen (XXXX ist die großgeschriebene Hexadezimaldarstellung der letzten beiden Bytes der lokalen BD_ADDR). Bereich: 0–1. Standardwert: 0.
Hinweise
Aktualisiert die Einstellung. Wenn Gerätename und Suffix zusammen die Grenze von 29 Byte überschreiten, wird der Gerätename gekürzt, damit das 5 Byte lange Suffix erhalten bleibt.
ID-Zeichenkette: die IEEE-1284-Geräte-ID-Zeichenkette; die Länge muss unter der Kapazität des Speicherpuffers liegen, bei Überlänge wird ERROR zurückgegeben. Standard ist eine leere Zeichenkette.
Beim Empfang des Befehls speichert das Modul die aktuelle AT-Konfiguration, antwortet mit OK, stoppt dann das Advertising, trennt Verbindungen und führt einen Soft-Reset durch. Dieser Befehl ändert die Konfiguration selbst nicht.
Stellt die Standardwerte der AT-Konfiguration wieder her und löscht die benutzerdefinierte GATT-Service-Konfiguration, die BLE- und Classic-Bluetooth-(BR/EDR)-Pairing-Daten sowie die statische BLE-Zufallsadresse. Das Modul antwortet mit OK und startet anschließend neu. Der Host sollte danach auf IM_READY warten.
Setzt die AT-Konfiguration und die gespeicherte benutzerdefinierte GATT-Konfiguration zurück, antwortet mit OK und startet anschließend neu. Pairing-Daten und die aktuelle BLE-Adresse bleiben erhalten.
Erfolg: \r\nOK\r\n (dann Wechsel in den DFU-Modus und Reset — keine weitere Antwort); Abfrageform (AT+OTA?\r): \r\nERROR\r\n
Parameter
Keine
Hinweise
Speichert zunächst die aktuelle AT-Konfiguration und antwortet mit OK. Anschließend setzt das Modul ein DFU-Flag und startet im UART-DFU-Updatemodus neu.
Erfolg: \r\nOK\r\n; Wert außerhalb des Bereichs oder Fehler der Kalibrierschnittstelle: \r\nERROR\r\n
Parameter
freq_off: Kalibrierwert des Frequenzoffsets, in Hz. Bereich: -120000 bis 120000. Standardwert: 0. Der Wert 0 setzt die Kalibrierung zurück und stellt den ursprünglichen Hardwarewert aus der Fertigung wieder her; ein Wert ungleich 0 wird direkt übernommen.
Hinweise
Der neue Wert aktualisiert das Register der HXT-Kondensatorbank und wird in die Partition FACTORY_CFG_ID_CRYSTAL geschrieben. Nach erfolgreicher Kalibrierung wird der in der AT-Konfiguration gespeicherte Wert aktualisiert und zum Speichern vorgemerkt.
Setzt das BR/EDR-Classic-Bluetooth-DUT-Enable-Bit und antwortet mit OK, wartet dann darauf, dass die Testausrüstung über LMP_test_control einen Signalisierungstest über die Luftschnittstelle auslöst. Der AT-UART (USART1) bleibt verfügbar. Der Eintritt in den DUT-Modus ist unumkehrbar — er kann nur durch einen Reset verlassen werden.
addr: gibt die aktuelle öffentliche Bluetooth-Adresse zurück, 12 Hex-Zeichen (Großbuchstaben, keine Trennzeichen), höchstwertiges Byte zuerst, z. B. 001583112233.
Hinweise
Gibt die aus der Firmware gelesene öffentliche Adresse zurück; gibt bei Lesefehler ERROR zurück.
addr: die zu setzende Bluetooth-Adresse; sie muss aus genau 12 Hex-Zeichen ohne Trennzeichen bestehen, höchstwertiges Byte zuerst, z. B. 001583112233.
Hinweise
Die Adresse wird in der Konfiguration gespeichert und nach einem Reset wirksam. Ab Werk besteht der Wert nur aus Nullen; in diesem Fall wird die Adresse automatisch aus der Chip-UID erzeugt.
addr: gibt die aktuell von BLE verwendete Adresse zurück, 12 Hex-Zeichen (Großbuchstaben, keine Trennzeichen), höchstwertiges Byte zuerst.
Hinweise
Wenn über AT+RANDOMADDR=1 eine BLE-spezifische statische Zufallsadresse generiert wurde, wird diese statische Zufallsadresse zurückgegeben; andernfalls wird dieselbe öffentliche Adresse wie die Bluetooth-Adresse zurückgegeben. Gibt bei Lesefehler ERROR zurück.
Mit diesem Befehl lässt sich die BLE-Adresse nicht direkt setzen; jeder Aufruf gibt ERROR zurück. Eine statische BLE-Zufallsadresse wird über AT+RANDOMADDR=1 generiert.
n: 0 oder 1. 1 = aktiviert eine statische BLE-Zufallsadresse, abgeleitet von der öffentlichen Adresse (die oberen zwei Bits des höchstwertigen Bytes der öffentlichen Adresse werden auf 1 gesetzt — z. B. leitet die öffentliche Adresse 001583112233 die BLE-Adresse C01583112233 ab); 0 = BLE kehrt zur öffentlichen Adresse zurück. Andere Werte oder zusätzliche Zeichen geben ERROR zurück. Standard 0.
Hinweise
Die Einstellung wird gespeichert. Wird 1 angefordert, aber die öffentliche Adresse kann nicht gelesen werden, wird die Einstellung auf 0 zurückgesetzt und ERROR zurückgegeben. Die Adressänderung wird in NVDS geschrieben und nach einem Reset wirksam. Ein erneuter Aufruf von AT+RANDOMADDR=1 leitet dieselbe Zufallsadresse erneut von der unveränderten öffentlichen Adresse ab.
state: aktueller Sichtbarkeitsstatus. 0 = nicht sichtbar, 1 = sichtbar, 2 = teilweise sichtbar (gemischter Zustand). Die Bedeutung hängt vom Betriebsmodus ab: im BLE-Modus (BTMODE=1) spiegelt der Wert die BLE-Advertising-Einstellung wider — 1 = ein, 0 = aus; im BT-Modus (BTMODE=2) den Inquiry-Scan und Page-Scan — 1, wenn beide aktiv sind, 0, wenn beide inaktiv sind, sonst 2; im Dual-Mode (BTMODE=0) ist der Wert 1, wenn BLE-Advertising, Inquiry-Scan und Page-Scan aktiv sind, 0, wenn alle inaktiv sind, sonst 2.
Hinweise
Fragt nur den aktuellen Sichtbarkeitsstatus ab und ändert den Gerätezustand nicht.
Die Wirkung hängt vom aktuellen Betriebsmodus ab: Im BLE-Modus (BTMODE=1) schaltet der Befehl das BLE-Advertising ein oder aus, im BT-Modus (BTMODE=2) den Inquiry-Scan und Page-Scan. Im Dual-Mode (BTMODE=0) steuert er BLE-Advertising, Inquiry-Scan und Page-Scan gemeinsam.
state: tatsächlicher BLE-Advertising-Status auf der Luftschnittstelle. 0 = kein Advertising, 1 = Advertising aktiv.
Hinweise
Gibt den tatsächlichen BLE-Advertising-Status auf der Luftschnittstelle zurück. Im reinen BT-Modus (BTMODE=2) ist die Abfrage nicht verfügbar und gibt ERROR zurück.
mode: Betriebsmodus. 0 = Transparenzmodus, 1 = Befehlsmodus. Das Modul startet nach dem Einschalten im Transparenzmodus.
Hinweise
Wird sofort wirksam, aber nicht dauerhaft gespeichert; nach einem Reset gilt wieder der Transparenzmodus. In diesem Modus werden über die serielle Schnittstelle empfangene Daten unverändert an die verbundene Gegenstelle weitergeleitet. Im Befehlsmodus werden serielle Daten als AT-Befehle interpretiert.
Löscht BLE-Bonding-Informationen und den Classic-Bluetooth-Link-Key. Nach Erfolg wird das Gerät zurückgesetzt; AT-Konfiguration wie Gerätename, Baudrate und COD bleiben erhalten. Der Host sollte nach dem Reset auf IM_READY warten. Die Abfrageform wird nicht unterstützt.
evt_silent: Ereignisunterdrückung. 0 = IM_CONN/IM_DISCONN/IM_READY und weitere Ereignisse normal melden, 1 = alle diese Meldungen unterdrücken. Standardwert: 0 (normale Meldungen).
Hinweise
Das Setzen aktualisiert die Konfiguration. Bei Einstellung auf 1 werden Verbindungsaufbau-, Trennungs- und Bereitschaftsereignisse nicht über die serielle Schnittstelle ausgegeben.
Tabelle: Leerlauf-Trennzeit im Transparenzmodus setzen
Element
Inhalt
Befehl
AT+IDLE=<idle_ms>\r
Antwort
Erfolg: \r\nOK\r\n; Fehlschlag: \r\nERROR\r\n
Parameter
idle_ms: Zeitlimit für die Trennung bei Inaktivität im Transparenzmodus, in Millisekunden, Bereich 0–65535; über 65535 gibt ERROR zurück. 0 deaktiviert die Leerlauf-Trennfunktion. Standard 0 (aus).
Hinweise
Das Setzen aktualisiert die Konfiguration. Wird nur im Transparenzmodus wirksam: Sind im Transparenzmodus mehr als idle_ms Millisekunden seit dem letzten Datenempfang auf der seriellen Schnittstelle vergangen, werden alle Verbindungen (falls vorhanden) getrennt; idle_ms = 0 löst dies nie aus.
<n>: Zustand des Hauptschalters für Mehrfachverbindung. 0 = aus (global nur eine Verbindung); 1 = ein (gleichzeitig, bis zur jeweiligen Transportgrenze).
Tabelle: Mehrfachverbindung aktivieren oder deaktivieren
Element
Inhalt
Befehl
AT+MULTICONN=<n>\r
Antwort
Erfolg: \r\nOK\r\n; Fehlschlag: \r\nERROR\r\n
Parameter
<n>: 0 = Mehrfachverbindung deaktivieren; 1 = Mehrfachverbindung aktivieren. Wert ist 0 oder 1. Standard 1.
Hinweise
Das Setzen aktualisiert die Konfiguration. Ist die Mehrfachverbindung ausgeschaltet, sind gleichzeitige Verbindungen eingeschränkt. Ist sie eingeschaltet, richtet sich die Anzahl nach den Einstellungen von AT+BLEMULTICONN und AT+BTMULTICONN.
<n>: maximale Anzahl gleichzeitiger BLE-Verbindungen, dezimal, Bereich 1–6. Standard 3.
Hinweise
Kann nur gesetzt werden, wenn die Mehrfachverbindung aktiviert ist (AT+MULTICONN=1). Die Einstellung wird gespeichert. Erreicht die Anzahl der Verbindungen den Grenzwert, wird das Advertising gestoppt; weitere Verbindungen sind dann nicht möglich. Sinkt die Zahl wieder unter den Grenzwert, wird das Advertising automatisch fortgesetzt.
<n>: maximale Anzahl gleichzeitiger Classic-Bluetooth-Verbindungen, dezimal, Bereich 1–7. Standard 7.
Hinweise
Kann nur gesetzt werden, wenn die Mehrfachverbindung aktiviert ist (AT+MULTICONN=1). Die Einstellung wird gespeichert. Erreicht die Anzahl der Verbindungen den Grenzwert, stoppt das Modul den Page-Scan und setzt ihn automatisch fort, sobald die Anzahl wieder darunter liegt.
Eine Verbindung trennen: AT+DISCONN=<conn_hdl>\r; alle trennen: AT+DISCONN\r
Antwort
Erfolg: \r\nOK\r\n; Fehlschlag oder nicht gefunden: \r\nERROR\r\n
Parameter
<conn_hdl>: Verbindungs-Handle, hex. BLE-Verbindungs-Handles sind 1-basierte externe Handles (übereinstimmend mit dem, was AT+CONNLIST zurückgibt); BT-Verbindungen nutzen ihr ACL-Handle. <conn_hdl> = 0 wird als ungültige Eingabe behandelt und gibt ERROR zurück.
Hinweise
Ohne Parameter (oder mit leerem Parameter) werden alle aktiven Verbindungen (BLE und BR/EDR) getrennt; der Befehl gibt OK zurück. Mit Parameter sucht das Modul zuerst nach dem externen BLE-Handle (internes Handle = <conn_hdl> - 1). Gibt es keinen Treffer, sucht es nach dem rohen BT-ACL-Handle. Wird keine passende Verbindung gefunden, gibt der Befehl ERROR zurück. Die Abfrageform AT+DISCONN? gibt ebenfalls ERROR zurück.
Jede aktive Verbindung wird als eine Zeile ausgegeben: \r\n+CONNLIST:<conn_hdl>,<type>,<addr>,<extra>\r\n; gefolgt von \r\nOK\r\n nach allen Zeilen; nur \r\nOK\r\n, wenn keine aktiven Verbindungen bestehen; bei einem nicht leeren Parameter: \r\nERROR\r\n
Parameter
Ausgabefelder: <conn_hdl> — Verbindungs-Handle, 4 Hex-Ziffern; BLE verwendet ein 1-basiertes externes Handle. <type> — Verbindungstyp, BLE oder BT. <addr> — Bluetooth-Adresse der Gegenstelle, 12 Hex-Ziffern (höchstwertiges Byte zuerst). <extra> — aktuelle MTU bei BLE-Verbindungen oder Dienstkanal bei BT-Verbindungen, dezimal.
Hinweise
Wird der Befehl mit einem nicht leeren Parameter aufgerufen, antwortet er mit ERROR. Das Modul prüft alle Verbindungsslots und gibt jede aktive Verbindung aus.
AT+SPPSEND=<conn_hdl>,<data>\r oder AT+SPPSEND=,<data>\r
Antwort
Erfolg: \r\nOK\r\n; Fehlschlag: \r\nERROR\r\n
Parameter
conn_hdl: Ziel-BT-Verbindungs-Handle, hexadezimal. Kann weggelassen oder auf 0 gesetzt werden; in diesem Fall wird die erste aktuell aktive BT-Verbindung verwendet. data: zu sendende Daten als Hex-Zeichenkette; je zwei Zeichen bilden ein Byte. Der Wert darf nicht leer sein und muss eine gerade Zeichenzahl haben. Die übertragbare Datenmenge ist außerdem durch die maximale Länge eines ASCII-AT-Frames begrenzt.
Hinweise
conn_hdl und data werden durch ein Komma getrennt; das Komma muss auch dann vorhanden sein, wenn conn_hdl weggelassen wird. Die Abfrageform wird nicht unterstützt.
Tabelle: Liste benutzerdefinierter GATT-Services abfragen
Element
Inhalt
Befehl
AT+GATTSRV?\r
Antwort
Für jeden konfigurierten Service wird eine Zeile \r\n+GATTSRV:<idx>,<char_count>,<state>\r\n zurückgegeben, gefolgt von \r\nOK\r\n. Sind keine Services konfiguriert, wird nur \r\nOK\r\n zurückgegeben
Parameter
idx: Service-Slot-Nummer, 0–5. char_count: die Anzahl der für diesen Service konfigurierten Charakteristiken. state: REG bedeutet im Protokollstack registriert, CFG bedeutet nur im RAM konfiguriert und noch nicht registriert
idx: Service-Slot-Nummer, 0–5. uuid: die Service-UUID, eingegeben als Hex-Zeichenkette mit dem höchstwertigen Byte zuerst — 4 Zeichen für eine 16-Bit-UUID, 32 Zeichen für eine 128-Bit-UUID
Hinweise
idx muss eine einzelne Ziffer sein, unmittelbar gefolgt von einem Komma. Die UUID-Länge muss exakt 4 oder 32 Zeichen betragen — jede andere Länge gibt ERROR zurück. Ist der Slot bereits im Protokollstack registriert, kann er nicht neu konfiguriert werden, und das Erstellen gibt ERROR zurück. Das Erstellen eines Service löscht jede vorherige Konfiguration in diesem Slot
Löscht die Konfiguration dieses Slots im RAM. Ein bereits registrierter Service kann zur Laufzeit nicht mehr aus dem Protokollstack entfernt werden; dieser Befehl löscht nur die RAM-Konfiguration.
Liste benutzerdefinierter GATT-Charakteristiken abfragen¶
Tabelle: Liste benutzerdefinierter GATT-Charakteristiken abfragen
Element
Inhalt
Befehl
AT+GATTCHAR?<svc>\r
Antwort
Für jede Charakteristik dieses Service wird eine Zeile \r\n+GATTCHAR:<svc>,<chr>,prop=0x<prop>,len=<max_len>\r\n zurückgegeben, gefolgt von \r\nOK\r\n; falls der Service nicht existiert: \r\nERROR\r\n
Parameter
svc: Service-Slot-Nummer, 0–5. chr: Charakteristik-Index. prop: Eigenschaftsbits der Charakteristik, hexadezimal. max_len: maximale Länge des Charakteristikwerts
svc: Service-Slot-Nummer, 0–5. chr: Charakteristik-Index, 0–7. uuid: Charakteristik-UUID, höchstwertiges Byte zuerst, 4 Zeichen für 16 Bit, 32 Zeichen für 128 Bit. prop: Eigenschaftszeichenkette aus den Zeichen R (Lesen), W (Schreiben mit Antwort), w (Schreiben ohne Antwort), N (Notify), I (Indicate). len: maximale Länge des Charakteristikwerts, 1–512
Hinweise
Alle fünf Parameter sind erforderlich; fehlt einer, gibt der Befehl ERROR zurück. Die UUID-Länge muss exakt 4 oder 32 Zeichen betragen. prop muss mindestens ein erkanntes Eigenschaftszeichen enthalten. Wird keines erkannt, gibt der Befehl ERROR zurück; nicht erkannte Zeichen in prop werden ignoriert. Ist len 0 oder größer als 512, gibt der Befehl ERROR zurück. Der übergeordnete Service muss bereits angelegt und darf noch nicht im Protokollstack registriert sein.
Benutzerdefinierte GATT-Services starten (registrieren)¶
Tabelle: Benutzerdefinierte GATT-Services starten (registrieren)
Element
Inhalt
Befehl
AT+GATTSTART\r
Antwort
\r\n+GATTSTART:<count>\r\n gefolgt von \r\nOK\r\n; Abfrageform AT+GATTSTART?\r: \r\nERROR\r\n
Parameter
count: die Anzahl der bei diesem Aufruf erfolgreich im Protokollstack registrierten Services
Hinweise
Registriert alle genutzten Services, die noch nicht registriert sind und mindestens eine Charakteristik besitzen, im Protokollstack. Ein registrierter Service kann zur Laufzeit weder entfernt noch neu konfiguriert werden. Die Abfrageform wird nicht unterstützt.
svc: Service-Slot-Nummer. chr: Charakteristik-Index. conn_hdl: BLE-Verbindungs-Handle, hexadezimal und 1-basiert; kann weggelassen werden. hex: zu sendende Daten als Hex-Zeichenkette mit gerader Zeichenzahl. Die übertragbare Datenmenge ist außerdem durch die maximale Länge eines ASCII-AT-Frames begrenzt.
Hinweise
Wird conn_hdl weggelassen, verwendet der Befehl die erste aktuell aktive BLE-Verbindung. Der Ziel-Service muss bereits registriert und der Charakteristik-Index gültig sein. Hat die Charakteristik die Eigenschaft Indicate (I), wird eine Indication verwendet; andernfalls wird eine Notification gesendet.
Benutzerdefinierte GATT-Konfiguration in Flash speichern¶
Tabelle: Benutzerdefinierte GATT-Konfiguration in Flash speichern
Speichert die aktuelle Konfiguration aller Services und Charakteristiken dauerhaft im Flash. Nur Konfigurationsdaten werden gespeichert — Laufzeitinformationen wie der Registrierungsstatus werden nicht gespeichert. Gibt ERROR zurück, wenn KVDB nicht bereit ist oder der Schreibvorgang fehlschlägt. Die Abfrageform wird nicht unterstützt
Benutzerdefinierte GATT-Konfiguration im Flash löschen¶
Tabelle: Benutzerdefinierte GATT-Konfiguration im Flash löschen
Löscht die im Flash gespeicherte GATT-Konfiguration. Wirkt sich nicht auf die aktuelle Konfiguration im RAM aus. Die Abfrageform wird nicht unterstützt.
Automatisches Laden der GATT-Konfiguration beim Einschalten abfragen¶
Tabelle: Automatisches Laden der GATT-Konfiguration beim Einschalten abfragen
Element
Inhalt
Befehl
AT+GATTAUTOSTART?\r
Antwort
\r\n+GATTAUTOSTART:<v>\r\n\r\nOK\r\n
Parameter
v: aktueller Wert; 0 = aus, 1 = ein. Standardwert: 1.
Hinweise
Keine
Automatisches Laden der GATT-Konfiguration beim Einschalten einstellen¶
Tabelle: Automatisches Laden der GATT-Konfiguration beim Einschalten einstellen
Element
Inhalt
Befehl
AT+GATTAUTOSTART=<v>\r
Antwort
Erfolg: \r\nOK\r\n; Fehlschlag: \r\nERROR\r\n
Parameter
v: 0 = aus, 1 = ein. Standardwert: 1.
Hinweise
Das Setzen aktualisiert die Konfiguration. Bei Aktivierung lädt das Gerät die gespeicherte GATT-Service-Konfiguration beim Einschalten automatisch.
Die folgenden Statusmeldungen gibt das Modul selbst aus; der Host muss sie nicht anfordern. Ihre Ausgabe wird über AT+EVT gesteuert. Im stillen Modus gibt das Modul keine Statusmeldungen aus.
Keiner (wird von der Firmware selbst gemeldet, nicht vom Benutzer gesendet)
Antwort
Meldungstext: \r\nIM_READY\r\n
Parameter
Keine
Hinweise
Wird einmal ausgegeben, wenn das Modul die Initialisierung abgeschlossen hat und betriebsbereit ist. Eine weitere Meldung erfolgt, sobald alle Verbindungen getrennt sind und die Anzahl aktiver Verbindungen wieder null beträgt. Die Ausgabe wird über AT+EVT gesteuert; AT+EVT=1 unterdrückt diese Meldungen.
hdl: Verbindungs-Handle, 4 Hex-Ziffern (Großbuchstaben, feste 4 Ziffern, mit Nullen aufgefüllt). BLE-Verbindungen zeigen ein 1-basiertes Handle an (internes Handle plus 1); andere Typen zeigen den rohen Wert an. addr: Bluetooth-Adresse der Gegenstelle, 12 Hex-Ziffern, höchstwertiges Byte zuerst. mtu: MTU der aktuellen Verbindung, dezimal.
Hinweise
Im Befehlsmodus wird jede neu hergestellte Verbindung einmal mit Handle, Adresse der Gegenstelle und MTU gemeldet. Im Transparenzmodus wird die Meldung nur bei der ersten Verbindung ausgegeben (wenn die Anzahl aktiver Verbindungen 1 beträgt) und enthält keine Parameter. Die Ausgabe wird über AT+EVT gesteuert; AT+EVT=1 unterdrückt diese Meldungen.
Keiner (wird von der Firmware selbst gemeldet, wenn eine Verbindung getrennt wird)
Antwort
Befehlsmodus: \r\nIM_DISCONN:<hdl>\r\n
Parameter
hdl: das Handle der getrennten Verbindung, 4 Hex-Ziffern (Großbuchstaben, feste 4 Ziffern, mit Nullen aufgefüllt). BLE-Verbindungen zeigen ein 1-basiertes Handle an (rohes Handle plus 1); andere zeigen den rohen Wert an.
Hinweise
Enthält nur das Handle und wird ausschließlich im Befehlsmodus ausgegeben, nicht im Transparenzmodus. Sobald alle Verbindungen getrennt sind und die Anzahl aktiver Verbindungen wieder null beträgt, wird in beiden Modi zusätzlich \r\nIM_READY\r\n ausgegeben. Die Ausgabe wird über AT+EVT gesteuert; AT+EVT=1 unterdrückt diese Meldungen.
opcode ist fest 0x0101; body = conn_hdl (2-Byte-Little-Endian) + data. BLE-Verbindungs-Handles verwenden den 1-basierten externen Wert; SPP-Verbindungen verwenden das rohe ACL-Handle.
Hinweise
Im Befehlsmodus meldet das Modul dem Host im obigen Format, wenn Daten in eine benutzerdefinierte BLE-Charakteristik geschrieben oder über Classic-Bluetooth-SPP empfangen werden; im Transparenzmodus werden die Daten direkt ausgegeben.
Daten im PDU-Modus senden (automatische Auswahl der Notify-Charakteristik, Opcode 0x0101)¶
Tabelle: Daten im PDU-Modus senden (automatische Auswahl der Notify-Charakteristik, Opcode 0x0101)
Element
Inhalt
Befehl
Ein binärer Frame (keine Text-AT-Zeile): AT> + opcode(2-Byte-Little-Endian) + len(2-Byte-Little-Endian) + body + \r. Hierbei ist opcode = 0x0101 (Bytefolge 01 01); len ist die Bytezahl von body; body = conn_hdl(2-Byte-Little-Endian) + data. data sind die zu sendenden Nutzdaten.
Antwort
Keine Textantwort-Zeichenkette. Die Firmware leitet data je nach Verbindungstyp an die Gegenstelle weiter, ohne mit OK/ERROR zu antworten.
Parameter
opcode: fest 0x0101. len: Länge des Body in Byte, Bereich 2–508 (Frames unter 2 oder über AT_RX_BUF_SIZE-4 werden verworfen; AT_RX_BUF_SIZE = 512). conn_hdl: Ziel-Verbindungs-Handle; 1-basiert (externer Anzeigewert) für BLE-Verbindungen, rohes ACL-Handle für SPP-Verbindungen. data: Nutzdatenbytes, Länge = len-2, kann 0 sein.
Hinweise
Bei der Auflösung von conn_hdl sucht das Modul zuerst nach dem 1-basierten BLE-Handle (conn_hdl-1 entspricht dem internen BLE-Slot). Gibt es keinen Treffer, sucht es nach dem rohen Handle eines SPP-Slots. Wird keine Verbindung gefunden, verwirft es den Frame. Bei einer BLE-Verbindung durchsucht die Firmware die benutzerdefinierten GATT-Services und wählt automatisch die erste Charakteristik mit Notify- oder Indicate-Eigenschaft aus. Gibt es keine solche Charakteristik, werden keine Daten gesendet. Bei einer SPP-Verbindung (BR/EDR) sendet die Firmware data über den SPP-Kanal. Unmittelbar auf den Frame muss \r folgen; andernfalls wird er verworfen. Treffen zwischen zwei Frames länger als das PDU-Timeout keine neuen Bytes ein, setzt die Firmware den PDU-Empfangszustand zurück.
Daten im PDU-Modus senden (Service und Charakteristik angeben, Opcode 0x0102)¶
Tabelle: Daten im PDU-Modus senden (Service und Charakteristik angeben, Opcode 0x0102)
Element
Inhalt
Befehl
Ein binärer Frame (keine Text-AT-Zeile): AT> + opcode(2-Byte-Little-Endian) + len(2-Byte-Little-Endian) + body + \r. Hierbei ist opcode = 0x0102 (Bytefolge 02 01); len ist die Bytezahl von body; body = conn_hdl(2-Byte-Little-Endian) + svc_idx(1 Byte) + char_idx(1 Byte) + data.
Antwort
Keine Textantwort-Zeichenkette. Die Firmware sendet data über den angegebenen Service und die Charakteristik an die Gegenstelle, ohne mit OK/ERROR zu antworten.
Parameter
opcode: fest 0x0102. len: Länge des Body-Felds, 4–508 Byte. Die allgemeine Untergrenze der Empfangsschicht beträgt 2 Byte; dieser Opcode erfordert jedoch mindestens 4 Byte einschließlich svc_idx und char_idx. Andernfalls wird der Frame verworfen. conn_hdl: Ziel-BLE-Verbindungs-Handle, 1-basiert (externer Anzeigewert). svc_idx: Index des benutzerdefinierten GATT-Service. char_idx: Charakteristik-Index innerhalb dieses Service. data: Nutzdatenbytes, Länge = len-4; eine Länge von 0 ist zulässig.
Hinweise
Der Befehl gilt nur für BLE-Verbindungen. Wird das Handle einer SPP-Verbindung zugeordnet, verwirft die Firmware den Frame. svc_idx muss einem registrierten benutzerdefinierten Service entsprechen und char_idx kleiner als die Anzahl seiner Charakteristiken sein; andernfalls wird der Frame verworfen. Die angegebene Charakteristik muss die Eigenschaft Notify oder Indicate besitzen. Andernfalls wird der Frame ebenfalls verworfen. conn_hdl wird wie bei 0x0101 aufgelöst: zuerst als 1-basiertes BLE-Handle, danach als rohes Handle. Unmittelbar auf den Frame muss \r folgen.
AT+DISCONN\r (ohne Parameter) oder AT+DISCONN=<conn_hdl>\r
Antwort
Erfolg: \r\nOK\r\n; Fehlschlag: \r\nERROR\r\n
Parameter
conn_hdl: das zu trennende Verbindungs-Handle, hex. BLE-Verbindungen sind 1-basiert (externer Anzeigewert); der Wert darf nicht 0 sein (0 wird als ungültige Eingabe behandelt und gibt ERROR zurück). SPP-Verbindungen verwenden das rohe ACL-Handle.
Hinweise
Ohne Parameter werden alle aktuellen Verbindungen getrennt; der Befehl gibt OK zurück. Mit Parameter sucht das Modul zuerst nach dem 1-basierten BLE-Handle (conn_hdl-1 entspricht dem internen BLE-Slot). Gibt es keinen Treffer, sucht es nach dem rohen Handle eines SPP-Slots. Wird keine Verbindung gefunden, gibt der Befehl ERROR zurück. Bei BLE-Verbindungen wird die Trennung mit Grundcode 0x13 eingeleitet; bei SPP-Verbindungen erfolgt sie anhand der Adresse der Gegenstelle. Die Abfrageform AT+DISCONN? gibt ERROR zurück.
Wird vom Modul selbst gemeldet — kein Befehl vom Host erforderlich. IM_CONN wird gemeldet, wenn eine Verbindung hergestellt wird, IM_DISCONN, wenn eine getrennt wird.
Antwort
Befehlsmodus, Verbindung hergestellt: \r\nIM_CONN <hdl>,<mac>,<mtu>\r\n, wobei <hdl> ein 4-stelliges Hex-Handle, <mac> eine 12-stellige Hex-Adresse (höchstwertiges Byte zuerst) und <mtu> eine dezimale MTU ist. Befehlsmodus, Verbindung getrennt: \r\nIM_DISCONN:<hdl>\r\n (<hdl> sind 4 Hex-Ziffern). Der Transparenzmodus meldet \r\nIM_CONN\r\n (ohne Parameter) nur, wenn die erste Verbindung hergestellt wird, und meldet IM_DISCONN bei Trennung nicht. Beide Modi melden \r\nIM_READY\r\n, sobald alle Verbindungen getrennt wurden.
Parameter
<hdl>: Verbindungs-Handle; BLE-Verbindungen werden 1-basiert angezeigt (intern 0-basiert plus 1), SPP-Verbindungen zeigen das rohe Handle an. <mac>: Bluetooth-Adresse der Gegenstelle. <mtu>: ausgehandelte MTU.
Hinweise
Die Ausgabe wird über AT+EVT gesteuert: Bei 0 (Standard) werden die Meldungen normal ausgegeben; bei 1 werden IM_READY, IM_CONN und IM_DISCONN unterdrückt. Format und Inhalt richten sich nach dem aktuellen Betriebsmodus (Befehlsmodus oder Transparenzmodus), wie oben beschrieben.