attribute profile. physical layer link layer host controller interface l2cap attribute protocol...
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