wie kann "MTU Exchange Request" von ESP32 Gatt Server senden?

OP #7268488
Lesenswert?

Ich mache gerade ein Projekt, das Ziel ist mit ESP32S3, ein Nuki Lock zu 
simulieren. Das simulierte NukiLock(ESP32S3) wird mit Nuki Fob 
verbinden.

Ich habe mit nrf52840 dongle und wireshark die Verbindung zwischen Nuki 
Lock und Nuki Fob beobachtet, bitte sehen Sie NukiLock-Fob.JPG, hier 
Nuki Lock ist Server/Slave und Nuki Fob ist Client/Master. es gibt MTU 
Exchange nach dem "LL_SLAVE_FEATURE_REQ", Es ist sehr interessant, dass 
"MTU Exchange Request" ist von Nuki Lock (Server/Slave) zu Nuki Fob 
(Client/Master). Weil "MTU Exchange Request" normalweise von Cilent zu 
Sever gesand ist.

Im zweite Bild ESP32-Fob.JPG, simulierte Nuki Lock(ESP32S3) ist 
Server/Slave, und Nuki Fob ist Client/Master. ich habe probiert mein 
simulierte Nuki Lock(ESP32S3) mit Nuki Fob zu verbinden, es fehlt "MTU 
Exchange" nachdem "LL_SLAVE_FEATURE_REQ".

meine Frage: wie kann ich im ESP32 Gatt Server das "MTU Exchange 
Request" senden?
Angehängte Dateien:
(Firma: Torrox.de) #7268932
Lesenswert?

Ich habe gerade mal die GATT-Server Dokumentation überflogen 
(https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/bluetooth/esp_gatts.html). 
Da scheint es keine Möglichkeit zu geben, den MTU Size Exchange 
anzustoßen.

Ist ja aber Open Source, damit könntest Du die fehlende Funktion 
einbauen. Vielleicht gibt es aber auch einen Automatismus, der den 
Exchange auslöst, wenn klar wird, dass es Characteristic values gibt, 
die größer 20 Byte sind.

Für LE Secure Connections wäre ein MTU > 23 auf jeden Fall nötig.
(Firma: Torrox.de) #7268961
Lesenswert?

> was meinen Sie :
>
> "vielleicht gibt es aber auch einen Automatismus, der den
> Exchange auslöst, wenn klar wird, dass es Characteristic values gibt,
> die größer 20 Byte sind."

Ich kenne die API nicht. Aber vielleicht kann man irgendwo bei der 
Beschreibung der GATT Tabelle angeben, dass bestimmte characteristics 
länger sein werden als 20 Byte. Wenn der BLE Stack auf der Server-Seite 
davon ausgeht, dass alle Characteristic values <= 20 Byte sein werden, 
dann bräuchte er keinen MTU Size Exchange initiieren.

Was würde den passieren, wenn Du LE secure connections einschaltest 
(falls das geht)?
OP #7269025
Lesenswert?

es wird ein Pairing passieren, und NukiLock(simulierte von ESP32S3) und 
Nuki Fob sollen zusammengekoppelt wwerden.

im Anhang gibt es ein API Dokuiment von Firma Nuki. auf der Seite 74 
gibt es ein Beispiel über Authorize App, also ein Schlüssel Koppollung 
zwischen Nuki Lock und Nuki APP. Ich habe schon mit NukiLock(simulierte 
von ESP32S3) und Nuki APP erfolgreich probiert.

Jetzt bin ich stoppt hier von "MTU Exchange request von Server zu 
Client" zwischen  NukiLock(simulierte von ESP32S3) und Nuki Fob.

ich freue mich auf Ihre weitere Rückmeldung.
Angehängte Dateien:
(Firma: Torrox.de) #7269041
Lesenswert?

Lidong W. schrieb:
> es wird ein Pairing passieren, und NukiLock(simulierte von ESP32S3) und
> Nuki Fob sollen zusammengekoppelt wwerden.

LE Secure connections setzt aber eine MTU von 65 voraus. Deswegen fände 
ich das mal interessant. Ich tippe aber mal, dass Du da an der Stelle 
nichts machen kannst, wenn Du den Client nicht ändern kannst und die API 
des Servers das Auslösen des MTU Size Exchange nicht implementiert hat.

Du könntest das natürlich als feature request einstellen und hoffen, 
dass sich das jemand anguckt. Bei 1200 offenen issues würde ich mir da 
allerdings wenig Hoffnung machen.

Wenn Du nicht auf ESP32 festgelegt bist, und z.B. auf nRF52 wechseln 
möchtest, würde ich das Feature in Bluetoe 
(https://github.com/TorstenRobitzki/bluetoe) einbauen ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren