Attribute Profile. Physical Layer Link Layer Host Controller Interface L2CAP Attribute Protocol...

Post on 05-Apr-2015

139 views 0 download

transcript

Attribute Profile

Physical Layer

Link Layer

Host Controller Interface

L2CAP

Attribute Protocol

Attribute Profile

PUID

Rem

ote

Cont

rol

Prox

imity

Batt

ery

Ther

mos

tat

Hea

rt R

ate

• Attribute Protokoll hat nur eine flache Struktur– Profile erfordern eine hierachische Struktur

• Definiert, wie Attribute zu gruppieren sind– Gruppenattribute in einem “Service”– Gruppenattribute in einem “Service” – Sub-

Services– Gruppenattribute von Clients

Attribute Profile

Beispiele für Attributegruppen

Beispiele für Attributegruppen

Beispiele für Attributegruppen

Beispiele für Attributegruppen

Attribut Sicherheit

• Jedes Attribut auf einem Server hat Rechte (Permissions)– Die werden einem Client nicht angezeigt

• Ein Attributprotokoll Request kann fehlerhaft sein (Error Response)– Wenn es ein Authentifizierungsproblem gibt– SMP (Security Manager Protocol) wird verwendet, um

Geräte zu authentifizieren• Wenn die Authentifizierung beendet ist– werden auch die anderen Attribute innerhalb der Gruppe

“Service” authentifiziert

Attribute über Attribute• Attribute zeigen nur an: – Handle : Type : Value

• Woher wissen Sie, – Ob Sie Attribute lesen dürfen– Ob Sie Attribute schreiben dürfen– Ob sie Erlaubnis haben, auf das Attribut zuzugreifen– Ob Sie Indication und Broadcast konfigurieren dürfen

• Man benötigt ein Attribut, das Informationen über dieses Attribut enthält: wird als Meta-Attribut bezeichnet

Meta-Attribute

• Meta-Attribute ist ein Attribut für Attribute• Meta-Attribute gruppieren:– Meta-Attribute – “Data Dictionary, Readable, 10-2”

– Auxililary Data – “°C”, “Outside”– Configuration – Enable Indications– Triggers- Indicate x > 25°C OR x < 16°C

• Meta-Attribut Referenzen– Data Dictionaries – “Temperatur °C”, “Battery Level”,

“Email Support”

Data Dictionaries

TemperaturEntfernung

GeschwindigkeitGewicht

OrtHöhe

Relative ZeitAbsolute ZeitWanduhrzeit

RichtungBi-StateTri-State

Linearer BereichProzentAnzahlReset

KalibrierungHerzrate

KörperfettBatterieladezustand

BatteriekapazitätBatteriezeit

Alarm

• Das sind Attributtypen

• Sie werden alle durch eine 16-Bit Bluetooth UUID repräsentiert

Meta-Attribute Datentypen

• Data dictionary gibt Auskunft über den Typ des Wertes– Es gibt keine Auskunft darüber, wie es formatiert

ist

• z.B. Temperature 22.5°C = 225*10-1

• z.B. Temperature 22.50°C = 2250*10-2

• Datentyp und Exponent geben Auskunft darüber

Datentypen

Exponenten

• Result_Value = Attribute_Value * 10Exponent

• z.B. wenn der Attribute_Value =225, Exponent =-1– 225 * 10-1 = 225 * 0,1 = 22,5

Hilfsattribute

• Description – wird verwendet, um den Userinterface einen populären Namen zu geben– “Temperatur”

• Postfix – wird hinter dem Wert verwendet– “- °C”

• User Information – vom Nutzer konfigurierbaer Information– “außen” “outside”

Beispiel Meta-Attribut

• Meta-Attribut (Temperature_DD, Signed Integer 16 bit, -1)– Attributwert (225)– Description (“Temperatur”)– Postfix (“°C”)– User information (“außen”)

• Das User Interface stellt dar:– “Außen Temperatur 22.5 °C”

Konfiguration von Indication / Broadcast

• Ein Hilfsattribut wird verwendet, um Indications zu konfigurieren– Der optimale Weg, um Updates zu erhalten, wenn sich Daten zufällig

ändern

• Set “configuration attribute” , – um Indication ein- bzw. Auszuschalten– um reliable / unreliable indications

• Set “broadcast configuration”, um Broadcasts zu konfigurieren– Was soll gesendet werden per Broadcast– Wie häufig es gesendet werden soll

Triggers

• Daten werden nur gesendet, wenn Schwellwerte (Threshold) über/unterschritten werden– Verwendet Vergleichsoperationen /-werte

• Vergleichsoperationen sind:– Kleiner als / Kleiner als oder gleich– Grösser als / Grösser als oder gleich– Gleich / ungleich– Geändert mehr als x-mal– Nicht indiziert in der angegebenen Zeit

Was passiert, wenn die Daten sich zu häufg ändern

• Server kann die Werte speichern und sendet langsam / batched up– Wird gemacht mit First In –First Out Puffer

• Wenn verwendet, werden Daten im FIFO-Puffer gespeichert– Lesen oder indicated in der Reihenfolge

• Erlaubt Speicherung von Werten zwischen Connection Events– z.B. Herzrate gemessen bei 3 Hz, Connection Event ist 1 Hz

• Bis zu 3 Werten werden bei jedem Connection Event gelesen

Meta-Meta-Attribute

• Manchmal ist es wünschenswert, mehre Attribute in einen Wert zu packen– z.B. Zeit der Gewichtsmessung und Gewicht– z.B. Druck in einem Behälter, Temperatur in einem

Behälter

• Das bezeichnet man als Aggregation

• Wie beim Meta-Attribut– Referenziert aber andere Meta-Attribute

Meta-Meta-Attribute

• Meta-Meta-Attribute (Zeitstempel, Temperatur)– Wert (20100114:24)

• Zeitstempel: Meta-Attribut (WallClockDD,blob,0)

• Temperatur: Meta-Attribut (TemperaturDD, sint16, -1)

Das bedeutet:– Am 14 Januar 2010 betrug die Temperatur 2,4 °C