2016-04-13 4 views

Antwort

0

Durch Aufruf der Funktion btsnd_hcic_ble_upd_ll_conn_params() [in l2c_ble.c] Funktion wird in hciblecmds.c definiert

Wenn Slave und Master unterstützen beide Connection Parameter Update Procedure in BLUETOOTH SPECIFICATION Version 4.2 spec in 9.3.9 definiert und in LL_FEATURE_REQ (2.4.2.9) und LL_FEATURE_RSP (2.4.2.10) deklariert, sendet Link Layer LL_CONNECTION_PARAM_REQ (2.4.2.16).

Wenn entweder der Rechner diese Funktion nicht unterstützt, sendet LL LL_CONNECTION_UPDATE_REQ 2.4.2.1

Von 9.3.9.2 Conditions in BLUETOOTH SPECIFICATION Version 4.2:

Eine Zentrale der Verbindungsparameter Update-Vorgang einleiten will die Link Layer-Verbindung aktualisieren Prozedur verwenden definiert in [Vol. 6], Teil B Abschnitt 5.1.1 mit den erforderlichen Verbindungsparametern, wenn entweder das Zentralgerät oder das Peripheriegerät die Verbindungsparameter-Anforderungs-Verbindungsschicht nicht unterstützt.

Wenn sowohl die zentrale und periphere Unterstützung der Verbindungsparameter anfordern Link Layer Kontrollverfahren, dann ist die zentrale oder peripheren Initiieren der Verbindungsparameter-Aktualisierungsverfahren werden die Verbindungsparameter Link-Layer-Control-Verfahren definiert in [Vol verwenden. 6], Teil B Abschnitt 5.1.7 mit den erforderlichen Verbindungsparametern.

Obwohl ich hier hinzufügen würde, dass btsnd_hcic_ble_upd_ll_conn_params() dauert nur Min- und Max-Verbindung Intervalle und verwendet sie als Hinweis.

Wenn ein Wertebereich überschritten wird, wählt LL nach meiner Erfahrung einen Wert innerhalb des Bereichs.

Ich habe nur begrenzte Tests gemacht, also bin ich mir nicht sicher, ob LL IMMER aus dem gelieferten Bereich wählen wird, oder kann es unter bestimmten Bedingungen, z. wenn ein bereits angeschlossenen Slave-CI außerhalb dieses Bereichs

Von 5.1.1 Connection Update Procedure hat, wird LL immer Verbindungsintervall von Bereich von Host geliefert wählen. Danke @Emil für den Hinweis darauf.

+0

Die Steuerung darf kein Verbindungsintervall außerhalb des Lieferbereichs wählen. – Emil

+0

@Emil eine Referenz dafür in Spec? Ich habe eine Ahnung, das ist richtig, aber ich konnte es nicht in der Spezifikation finden. Sah aber nicht zu hart aus. – GPS

+1

In der Spezifikation: "Die Verbindungsschicht des Masters bestimmt das connInterval aus dem vom Host angegebenen Intervallbereich (connInterval_min und connInterval_max). Die Verbindungsschicht muss dem Host den ausgewählten Intervallwert anzeigen." Mit den normalen Definitionen von "soll", das heißt "müssen". – Emil