á¡áá¯ááŒáá·áºááŸááºáá®áá°ážá¡á±á¬ááºááœáẠBLE (ATTÑ GATTÑâŠ)
á¡ááá¯ááºáž áá ááŒá¯á¶áá¯á¶áá¯á¶ážáááºáá»ááº
Bluetooth 4.0 á¡ááœáẠááááá¯á¶áž specification ááœááºáá¬ááŒá®ážááááºážá á¡áá»áááºá¡áá±á¬áºááŒá¬áá²á·áá«ááŒá®á BLE áá±á«ááºážá
ááºááẠá¡ááœááºá
áááºáááºá
á¬ážá
áá¬áá±á¬ááºážáá±á¬áºáááºážá áááºážááẠáááºážáááŸá¯ááºááœá±ážááŸá¯ááŒá±á¬áá·áº developer á¡áá»á¬ážá¡ááŒá¬ážááᯠáááºáá¬ážáá²ááŒá
áºáááºá áá»áœááºá¯ááºáááááºáá±á¬ááºážáá«ážáá»á¬ážááœááºá á¡áááá·áºáá¯á¶ážá¡ááá·áºááŒá
áºáá±á¬ Link Layer ááŸáá·áº Physical Layer ááᯠá¡áááá¡á¬ážááŒáá·áº ááŒáá·áºáá²á·áá«áááºá áááºážááẠáá»áœááºá¯ááºááá¯á·á¡á¬áž Attribute Protocol (ATT) ááŸáá·áº General Attribute Profile (GATT) áá²á·ááá¯á·áá±á¬ ááŸá¯ááºááœá±ážááŒá®áž ááŸá¯ááºááœá±ážáá±á¬ á¡áá°á¡ááá»á¬ážááᯠááŸá®ááá¯á¡á¬ážáá¬ážááẠááŸá±á¬ááºááŸá¬ážááá¯ááºá
á±áá²á·áááºá ááá¯á·áá±á¬áº áááºážááá¯á·ááᯠáá¬ážááááºáá² ááá¯ááºáááºáá®áá±á¬ áááááá¬áá»á¬ážááᯠáá®ááœááºááẠáááŒá
áºááá¯ááºááá·áº áá±áá¬áááºáž áááŸááá«á áá®áá±á· áá®ááá¯áá¯ááá±ážááᯠáá»áŸáá±áá±ážáá»ááºáá«áááºá áá«á·áá±á¬ááºážáá«ážááŸá¬ áá«á¡á¬ážááá¯ážáááºá
á¡áá¬á¡á¬ážáá¯á¶ážááá¬ááŒá±á¬áá·áºáá®áá±á¬ááºáááºáá²áá±ááá¬áá²á
áá»áœááºáá±á¬á·áºá¡ááŒááºá¡áá á áááºáá¯ááºážáá»á¬ážááŸáá áºááá·áº á ááºáá á¹á ááºážáá»á¬ážááᯠá á®áá¶ááá·áºááœá²ááŒááºážááẠá¡ááœááºá¡áá¬ážá¡áá¬ááŸáááŒá®áž ááŒá¬ááŸááºáá¶ááá·áºá¡ááŒá±á¬ááºážá¡áá¬áá áºáá¯ááŒá áºááŒá±á¬ááºáž áá»ááºáá»ááºážááẠááŸááºážáá«áááºá ááá¯á·ááŒá±á¬áá·áº áááºážááá¯á·ááẠáá»ááºáá»ááºážááŸáá·áº á¡ááŒáá·áºáá¯á¶ážá¡áá áááºáá±á¬ááºááẠáá¯á¶ážááŒááºáá²á·ááŒáááºá ááá¯á·ááŒá±á¬áá·áº á¡áá»áá¯ážáá»áá¯ážáá±á¬ gadget áá»á¬ážáá¯ááºáá¯ááºáá°áá»á¬ážááẠáááºážááá¯á·áááá¯ááºááá¯áẠprotocols áá»á¬ážááá¯ááááŸáááá¯ááºá á±áááºá ááá¯á·áá±á¬áẠáááá¬ááááŒá áºáá±á¬á·áá«á áá«ááŒá±á¬áá·áº á¡áááºá¡áá² ááŒá áºáááºá áááá¡ááá·áºááœááºááŸáááŒá®ážáá¬ážá ááŒá áºááá¯ááºááá»áŸá¡á¬ážáá¯á¶ážááᯠBLE áááá¯ááá¯áá±á¬ááá¯á· ááŸá áºáááºááŒáá¯ážá á¬ážáá²á·áááºá áá±á¬ááºááŸá¡áá¯á¶ážáááºááŸá¬áá¬áž áááá¯ááºáá°ážáá¬ážááá¯áᬠá¡áá±ážáááŒá®ážáá«áá°ážá ááá¯á·á¡ááŒááºá áááºážááá¯á·ááẠá¡áá¬áááºá¡ááœáẠá ááºáá á¹á ááºážáá»á¬ážá á¬áááºážááᯠááá¯ážáá»á²á·ááá¯ááºááŒá±á¡ááœáẠáá¶á·ááá¯ážáá±ážáá¬ážáááºá
BLE protocol diagram áá±ážááœá²ááá·áºáá¯á¶ááᯠááŒáá·áºááŒáá«á áá¯á·á á¡ááœáŸá¬áá±á«ááºážáá»á¬ážá áœá¬ áá«áááºáááºá á¡áááá·áºáá¯á¶ážá áá¯ááºááá¯ááºážááá¯ááºáá¬á¡ááœáŸá¬ (PHY) ááẠá ááºáá á¹á ááºážá áá±áá®ááá¯áá»ááºáááºá¡ááœáẠáá¬áááºááŸááááºá ááá·áºááºá¡ááœáŸá¬(LL) ááẠááá¯á·ááœáŸááºáá±á¬ áááºáá±á·áá»áºááœáẠááá¯ááºá¡á á®á¡á á¥áº áá áºáá¯áá¯á¶ážáá«ááŸááááºá á¡áááºáá±á¬ááºážáá«ážááœá±ááŸá¬áááºáž áá«ááᯠá¡ááá¡áá» áá±á·áá¬áá²á·áá«áááºá Host Controller Interface (HCI) ááẠController ááŸáá·áº Host ááᯠááá°áá®áá±á¬ áá»á áºááºáá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯áá«á BLE á¡ááœáŸá¬áá»á¬áž ááá¯á·ááá¯áẠáá»á áºááºáá»á¬ážá¡ááŒá¬áž áááŸááºááá·áº áááá¯ááá¯áá±á¬áá áºáá¯ááŒá áºáááºá Logical Link Control ááŸáá·áº Adaptation Protocol (L2CAP) ááẠpacket ááœá²á·á ááºážááŒááºážá áá±á¬ááºááœááºážááŒááºážá á¡ááŸá¬ážá¡ááœááºáž ááááºážáá»á¯ááºááŒááºážááŸáá·áº áááºáááºá ááºážááŒááºážá¡ááœáẠáá¬áááºááŸááá«áááºá áá¯á¶ááŒá¯á¶áá±ážáááºáá±áá»á¬áááá¯ááá¯áá±á¬ (SMP) ááẠáááºáááºáá»á¬ážááᯠá á¬ááŸááºááŒááºážá¡ááœáẠáá¬áááºááŸááááºá á¡ááœá±ááœá±á¡áá¯á¶ážááŒá¯ááœáá·áºáááá¯ááá¯áẠ(GAP) ááẠâáááºáá°ááŒá áºáááºâ ááá¯áá¯á¶ážááŒááºááẠá ááºáá»á¬ážá¡ááŒá¬áž áááŠážáá±áá¬áááŸááºááŸá¯á¡ááœáẠáá¬áááºááŸááááºá á áááºááºáááºááŒááºážááŸáá·áº ááŒá±á¬áºááŒá¬ááŒááºážááá¯á·áááºáž áá«áááºáááºá á€áá±á¬ááºážáá«ážááœáẠáá»áœááºá¯ááºááẠáááá¯ááá¯áá±á¬á áá»ááºááŸáááá·áº á¡á áááºá¡ááá¯ááºážááŸá áºáá¯ááŒá áºááá·áº GATT ááŸáá·áº ATT ááᯠá¡á¬áá¯á¶á áá¯ááºáá«áááºá GATT ááẠATT á superstructure áá áºáá¯ááŒá áºáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááẠáá®ážáááºá áœá¬áá±á¬ááŸááºáá±áááºá
áá¬ááºáááºážááᯠááá¯ážááŸááºážá
á±áááºá á¥ááá¬áá
áºáá¯ááá¯á· ááŸáá·áºááŒáá·áºááá¯áá«áááºá áá
áºáá±áá¬áá¬ááŸá¬ ááŒá¬ážááŒá®áž áá±á¬ááºáá¶áá»ááºáá«áááºá á
ááºáá»á¬ážá
áœá¬áá«áá±á¬ BLE á
ááºááᯠá
á¬á¡á¯ááºá
ááºá¡ááŒá
Ạááœá±ážáá«á á
ááºáá
áºáá¯á
á®ááẠáá®ážááŒá¬ážáá±á¬ááºáá¯ááºáá
áºáá¯ááŒá
áºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááœáẠáááá¹áá¶á
áááºáá°ážáááºá áááºá¹áá»á¬ááŸáá·áº á
áœááºá
á¯á¶áá»ááºážáá»á¬ážáá«ááŸááááºá á
ááºáá
áºáá¯á
á®ááœáẠáááºááŸááºáá¬ážáá±á¬ á¡ááŒá±á¬ááºážá¡áá¬áá
áºáá¯áá«áá±á¬ á
á¬á¡á¯ááºáá»á¬ážááŸááááºá á¡áá»áá¯á·á
á¬á¡á¯ááºáá»á¬ážááœáẠááŸááºá
á¯áá»á¬ážáá«áá±á¬ á
á¬ááœááºá
á¬áááºážáá»á¬ážáá«ááŸááááºá ááá¯á·á¡ááŒáẠáá»áœááºá¯ááºááá¯á·ááœáẠá
á¬á¡á¯ááºá¡á¬ážáá¯á¶ážá á
áá¹áá°áááºááá±á¬ááºáááºáá
áºáá¯ááŸááááºá ááŸááºáááá»áŸáẠáá»á±á¬ááºážá
á¬ááŒáá·áºááá¯ááºáá»á¬ážááẠá
áá¹áá°áááºáá»á¬ážáá«áá±á¬ áá»ááºážááŒá±á¬ááºážáá±á¬ áá±áá¹áá¬áá
áºáá¯ááŒá
áºáááºá á€á¥ááá¬ááŒáá·áºá áááºáááááºááẠáá»áœááºá¯ááºááá¯á·áá
ááºáá
á¹á
ááºážá áááá¯ááá¯ááºááŒá
áºáááºá á
ááºáá»á¬ážááẠáááºáá±á¬ááºááŸá¯áá»á¬ážá á
á¬á¡á¯ááºáá»á¬ážááẠáá°ážááŒá¬ážáá»ááºáá»á¬ážááŒá
áºááŒá®áž áááºááá±á¬ááºááẠáááºááœáŸááºážáá»ááºááá¬ážáá
áºáá¯ááŒá
áºáááºá á
á¬á¡á¯ááºáá»á¬ážááŸá á
á¬ááŸááºáá»á¬ážááẠááá¯ááºáá±á¬áºáá°áá»á¬ážááŒá
áºááŒá®ážá áá±á¬ááºááá¯ááºážááœáẠáá»áœááºá¯ááºáááºáž á¡áá±ážá
ááẠáááºáá¶ááŒá±á¬ááŒáá«áááºá
ááá±á¬áá»ááºáá»á¬ážá áœá¬ááœáẠá¡áá¬ážáá°áá¯ááºá¡ááá¯ááºážá¡á áá»á¬áž áá«ááŸááááºááᯠá ááºáá á¹á ááºážáá»á¬ážááᯠáá®ááœááºáá°ážáá°ááá¯ááºáž áááá«áááºá á¡ááŸááºááŸá¬ á ááºáá»á¬ážá áœá¬ááœáẠá¡áá¬ážáá°áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááŸááááºá á¥ááá¬á¡á¬ážááŒáá·áºá á ááºáá á¹á ááºážáá»á¬ážááᯠáááºááá®ááŒáá·áº á¡á¬ážááœááºážáá«á á¡á¬ážááœááºážááŒááºážááŸáá·áº á á±á¬áá·áºááŒáá·áºááŒááºážááá¯ááºáᬠááŒá¿áá¬ááẠáá°áá®áááºááŒá áºáááºá á¡á¬áá¯á¶áá¶áááááá¬ááœá±ááŸá¬áááºáž á¡áá¬ážáá°áá«áá²á ááááºáá±á¬á·á áááá¯ááááºážáááºážááᯠobject-oriented áá»ááºážáááºááŸá¯ "áá¯ááºááá¹áááá»á¬ážááŸáá·áº á¡ááŒá¯á¡áá°áá»á¬ážááᯠáá±á«ááºážá ááºááŒá®ážáá±á¬áẠááŒááºáááºá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº ááá¯ááºááá¯ááºáá«ááŸááá±á¬ ááŒááºáá±á¬ááºá á¯áá áºáá¯á¡ááŒá Ạá¡áá¬ááá¹áá¯áá»á¬ážááᯠáááºáá®ážááá¯ááºáááº". áá»áœááºáá±á¬á·áºá¡ááŒááºá¡ááá±á¬á· BLE á á¡áá¬ážáá°áá»ááºážáááºááŸá¯ááᯠááŒáá¯ážá á¬ážáá²á·áá«áááºá áááá¯ááá¯ááºáá»á¬ážááᯠBluetooth Special Interest Group (SIG) á០áááºáá®ážáá¬ážáá«áááºá áá°áá®áá±á¬ áááá¯ááá¯ááºáá»á¬ážáá«ááá·áº ááá°áá®áá±á¬ áá¯ááºáá¯ááºáá°á០á ááºáá á¹á ááºážáá»á¬ážááẠá¡áááºá¡áá²áááŸááá² áá áºáá¯ááŸáá·áºáá áºáᯠáá¯ááºáá±á¬ááºááá·áºáááºá áá áºááẠáááá¯ááá¯ááºáá»á¬ážááœáẠáááºáá±á¬ááºááŸá¯áá»á¬ážá áá±á¬áºááŒáá»ááºáá»á¬ážááŒáá·áº ááŒáá·áºá áœááºáá¬ážáá±á¬ áááá±áááá¹ááá¬áá»á¬áž áááºáá±á¬ááºááŸá¯áá»á¬áž áá«áááºáá«áááºá áá±áá°áá»á¡á¬ážááŒáá·áºáááºážáááºá€áá²á·ááá¯á·áá±á¬áá¯á¶ááááº-
á¥ááá¬á¡á¬ážááŒáá·áºá ááŸáá¯á¶ážáá¯ááºááŸá¯ááºážáá±á¬áºáá®áᬠ(ááŒá¶á·ááá¯ááºááŸá¯áááºáá±á¬ááº) á áááá¯ááá¯ááºáá¯á¶ááŒááºážááᯠáá¯á¶ážáááºááŒáá·áºáá«á áááºážááœáẠáááºáá±á¬ááºááŸá¯ááŸá
áºáá¯ááŸáá·áº ááá¹ááá¬áá»á¬ážá
áœá¬ áá«áááºáááºá áááºážá០áááá¯ááá¯áẠá¡áááºá¡á±á¬áẠáá»ááºááŒááºáž ááŸááºážáááºážáá¬áááºá á
á
áºáá±ážáá±ážááááºááá¹ááá¬ááẠá
á¯á
á¯áá±á«ááºážáááºááá¯áá®á¡áá¯á¶ážá
ááááºááᯠáá¯áááá¯á· ááŒááºáááºáááºááŸááºáááºá
1. ááŸáá¯á¶ážáá¯ááºááŸá¯ááºážáááºáá±á¬ááºááŸá¯ááœáẠááá¹ááá¬áá¯á¶ážááẠ(0x180D) áá«áááºáááºá
á) áááŒá
áºááá± ááŸáá¯á¶ážáá¯ááºááŸá¯ááºáž ááá¹ááᬠ(0x2A37)
á) ááœá±ážáá»ááºááá¯ááºáá±á¬ ááá¯ááºááẠá¡á¬áá¯á¶áᶠá¡áá±á¡áá¬áž ááá¹ááᬠ(0x2A38)
á) ááŸáá¯á¶ážáá¯ááºááŸá¯ááºážááááºážáá»á¯ááºááŸá¯á¡ááŸáẠ(0x2A39) áá¡ááŒá±á¡áá±ááá¯ááºáá¬ááá¹ááá¬áá»á¬áž
2. áááºááá® ááŒá¯ááŒááºááááºážááááºážááŒááºáž áááºáá±á¬ááºááŸá¯ (0x180F):
á) áááŒá
áºááá± á¡á¬ážááœááºážáááá·áº áááºááá® á¡ááá·áº ááá¹ááᬠ(0x2A19)
UUID
áá»áœááºá¯ááºááá¯á·ááẠáááá¯ááá¯ááºááŒááºá
ááºáá»á¬áž (áááºáá±á¬ááºááŸá¯áá»á¬ážá ááá¹ááá¬áá»á¬ážááŸáá·áº áá±á¬áºááŒáá»ááºáá»á¬áž) ááá¯á·ááᯠááá°áá°ážááŒá¬ážá
áœá¬ áááºáá±á¬ááºááá¯ááºá
á±áááºá¡ááœáẠáááºážááá¯á·á¡á¬ážáá¯á¶ážááᯠáá
áºáááºážáá
áºáá¯á¶ ááááºážááœááºááẠááá¯á¡ááºáá«áááºá á€áááºááœááºáá»ááºá¡ááœááºá Universally Unique ID (UUID) ááá¯á·ááá¯áẠUniversally Unique Identifier áá²á·ááá¯á·áá±á¬ ááá±á¬ááá¬ážááᯠááááºáááºáá±ážáá²á·áááºá UUID ááᯠá
á¬ááŒá±á¬ááºážáá
áºáá¯á
á®á ááœááºážá
ááœááºáá»á¬ážááœáẠááœáŸááºááŒáá¬ážáááºá ááŒá®ážáá±á¬á· áá®áá±áá¬ááŸá¬ áá°ážááŒá¬ážáá»ááºáá
áºáá¯ááŸááááºá UUID á¡ááœááºá á¡ááŸáẠ16 ááŸáá·áº 128 bits ááŸááá±á¬ áá¯ááºáá
áºáá¯ááᯠá¡áá¯á¶ážááŒá¯ááẠáá¯á¶ážááŒááºáá²á·áááºá áááºážáá¬ááá¯á·áá±ážáá¬áá²á BLE áááá¯ááá¯áá±á¬ááœááºá á¡áá¬á¡á¬ážáá¯á¶ážááẠá
áœááºážá¡ááºááááºážááááºážááŸá¯ááŸáá·áºáááºáááºáááºá ááá¯á·ááŒá±á¬áá·áº 16 bits áá¡ááá¯ááºážá¡áá¬ááẠá¡ááœááºááá·áºáá»á±á¬áºáá«áááºá ááá±ážáá±á¬á·áá±á¬á¡áá¬áááºááœáẠ65 áá»á±á¬áºááá¯áááºáá®ážááá¯ááºáááá·áºáááºááááºáá«á áá°ážááŒá¬ážáá±á¬áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áºáááá±áááá¹ááá¬áá»á¬ážá áá±á¬áá±á¬áááºááŸá¬ áá°ááá¯á·á¡á¬ážáá¯á¶áž áá±ááœááºááŒá®ážááœá¬ážááŒá® (áá«á áááºááá¬áá¬áá² áááááá« - "áá°áááºáž áááºážááᯠáá±ááœááºáááº" :-)) áá¶áá«ááºáááºáá¬ážáá²á· á¡áá»ááºááœá±á
áá«áá±ááá·áº á¡ááºáá¬áááºááŸá¬ IP ááááºá ᬠ4 bytes áá«áá²á· áá¬ááºáááºážááᯠáá°ááá¯ááºážááŸááºááááŒáááºáááºáááºá á¡á áá¯ááºážááá±á¬á· áá¯á¶áá±á¬ááºáááºááá¯á· áááºáá²á·áá±ááá·áº á¡áᯠ6-byte ááááºá á¬ááᯠááŒá±á¬ááºážááá¯á·áááá±ážáá«áá°ážá á€á¡ááŸá¬ážááᯠáááºáá«ááá²áá²ááá¯ááºáááºááŸáá·áº áá±á¬á·áá á¬ážáááºáá±á¬ DIYers áá»á¬ážáᶠá¡ááá²á· áá»á¯ááºááŸá±á¬ááºááŸá¯áááŒá¯ááẠSIG ááẠ128-bit UUID áá»á¬ážááᯠááááºáááºááẠáá»ááºáá»ááºážáá¯á¶ážááŒááºáá²á·áááºá áááºážááẠáá±áá®ááá¯áá»ááºáááºá០Kulibins á¡áá»áá¯ážá¡á á¬ážá¡á¬ážáá¯á¶ážááᯠáá±ážá¡ááºáá¬ážááá·áº ááá¯ááºá ááºáá²á· 433 MHz áá®ážááá¯ááºážá¡ááŒá±á¬ááºáž áá»áœááºá¯ááºá¡á¬áž ááá¯ááºááá¯ááºááá¯ááºáá» á¡ááŸááºáá á±áááºá áá»áœááºá¯ááºááá¯á·áááá á¹á ááœááºá áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº ááá¹ááá¬áááºáá»á¬ážá 128-bit ááœá²ááŒá¬ážáááºááŸááºááŸá¯ááᯠáá±á¬áºáá¯ááºáá²á·áááºá ááá¯ááá¯áááºááŸá¬ áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·ááááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº á ááºáá»á¬ážá¡ááœáẠ128-bit áááºááá¯ážááá¯áááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá á¡á¬ážáá¯á¶ážá¡áá°áá°áá«áá²á áá°áá®áá²á· UUID áá²á·áááºáá¬ááá¯ááºááŒá±áᬠáá¯ááá«áá²á
ááááºáá±á¬á·á ááá¯áá±á¬ááºážáá±á¬ 16-bit UUID áá»á¬ážááẠáááºážááá¯á·á extension ááᯠ128-bit áááºááá¯ážááá¯á· ááŸááááºá áááºááŸááºáá»ááºááœááºá á€ááá¯ážáá»á²á·ááŸá¯ááᯠBluetooth Base UUID áá¯áá±á«áºááŒá®áž áááºááá¯áž 00000000-0000-1000-8000-00805F9B34FB ááŸááááºá á¥ááá¬á¡á¬ážááŒáá·áºá 16-bit áááºááœáŸááºážáá»áẠUUID ááœáẠáááºááá¯áž 0x1234 ááŸááá«áá áá®áá»áŸáá±á¬ 128-bit UUID ááœáẠáááºááá¯áž 00001234-0000-1000-8000-00805F9B34FB ááŸááá«áááºá áááºá ááºáá±á¬áºááŒá°áá¬ááá¯ááẠáá±ážáááº-
128_bit_value = 16_bit_value * 2^96 + Bluetooth_Base_UUID
áá®ááŸá±á¬áºáá¶áá«ááºá áááºááá¬ááŸááºážááááá°ážá á
á¬áááºáá°áá»á¬áž ááááŸááá«á ááŸááºáá»ááºáá»á¬ážááœáẠáá±ážáá±ážááŒáá« (Sinopteek áá°áá±á¬ á¡áááºááŒá±á¬ááºááŒáá·áº á¡áá¯á¶ážááŒá¯áá°áá
áºáŠážá áááºážááᯠáá¯ááºáá±á¬ááºááŒá®ážááŒá
áºáááºá ááŸááºáá»ááºáá»á¬ážááᯠááŒáá·áºáá«)á 128-bit UUID áá»á¬ážááŸáá·áºá¡áá° ááœááºáá±á«áºáá¬ááŒááºážá¡ááœááºáá°á¡á áááºááẠá¡áá°ážáá
áºáá¯ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
ATTy GATty...
ááááºáá±á¬á·, ááá¯á·áá±á¬ááºáá»á±á¬áºá áá¬á áááºá ATT ááẠáá±á¬ááºáááº-áá¬áᬠáááºáá¶áá±ážá¡áá±á«áº á¡ááŒá±áá¶áá¬ážááŒá±á¬ááºáž ááááá±ážáá«áá á±á ááá¯áá»áœááºá¯ááºááá¯á·áááºáá¬áá¬áááááá¬ááá¯ááŒáá·áºááŸá¯áá±áááºá áááºážááœáẠá¡á¬áá¯á¶áá¶áááºááá¯ážáá»á¬ážá á¡áááºážááá¯ááºá¡ááŒá±á¡áá±á áááºáá±áá¬áá±áá¬á ááá·áº á¡áá»ááºá¡áááºáá»á¬ážáá«ááŸááááºá ááᯠ"áá»áœááºá¯ááºááá¯á·ááá»á®áááºááœá²ááœááºáá«áááºáá°áá»á¬áž" á¡á¬ážáá¯á¶ážááᯠáá±ááœááºááŒá®ážáá±á¬á¡áá«á áááºážááá¯á·ááᯠá ááºáááŸááºáá¬ááºááœáẠáá áºáááºážáááºážááŒáá·áº áá¬ážááŸáááẠááá¯á¡ááºáá«áááºá áá«ááá¯áá¯ááºááá¯á·á áá°ááá¯á·ááᯠattribute table ááá¯á·áá±á«áºáá«áááºá áá«ááᯠáá±á¬ááºážáá±á¬ááºážááŸááºáá¬ážáá«á áá«á BLE áá²á· ááŸáá¯á¶ážáá¬ážáá«á áá«á áá»áá±á¬áºááá¯á· áá±á¬ááºááẠá ááºážá á¬ážáááá·áºá¡áá»ááºáá«á ááᯠáá»áœááºá¯ááºááá¯á·ááẠá á¬ááŒá±á¬ááºážáá áºááŒá±á¬ááºážá á®ááᯠattribute áá¯áá±á«áºáá«áááºá á€ááá¬ážááẠstack ááœááºáááºááŸáá¯ááºážá áœá¬áááºááŸáááŒá®ážá ááºážáá»ááºážá¡áá áá»áœááºá¯ááºááá¯á·ááẠáááºážááá¯ááá¯ááºááá¯ááºáááºáá±á¬ááºááœáá·áºáááŸááá«á áá»áœááºá¯ááºááá¯á· áááºážááᯠá¡á ááŒá¯ááŒá®áž áááºážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯ááá¯ááºáá±á¬áºáááºáž á¡ááœááºážá ááŒá áºáá»ááºáá±ááá·áºá¡áá¬ááẠáá¶ááááºáá¯áá áºáá¯áá±á¬ááºááœááºááœáẠáá»áœááºá¯ááºááá¯á·áá¶á០ááŸááºáá¬ážáááºá
áááºááŸááºáá»ááºá០áá¯ááºáá¯á¶á¡á¬áž ááŒáá·áºááŒáá«á
áá¯á·á ááá¯á·áá±á¬áº ááá¯áááá¯ááºáá®ááœááºá áá±á¬áºááŒáá»ááºáá»á¬ážá áááŒá¬áá ááŸá¯ááºááœá±ážáá±áá±á¬ áá±á«áá¬ááá»á¬ážááᯠáá»ááºáá»ááºážá¡á¬áá¯á¶á
áá¯ááºá
á±ááá¯áá«áááºá ááá¯ááºáá±á¬áºáá°á á¡áááºážááá¹áááẠáááá±áá áá±á¬áºááŒáá»ááºááᯠááŒáá·áºá
áœááºááẠááŒá
áºáááºá áááºážáá
áœááºážáááºáá»á¬ážááᯠáá»á²á·ááœááºááẠááá¯á¡ááºáá±á¬á¡áá«ááœáẠáá±á¬áºááŒáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááºá áááºážááá¯á·ááẠattribute áá»á¬ážááŒá
áºááŒá®áž áááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº ááá¹ááá¬áá»á¬ážáá²á·ááá¯á·áááºá áááºážááá¯á·ááẠattribute table ááœááºáááºááŸááá«áááºá áá±á¬ááºážáá«ážá áá¯áááá¡ááá¯ááºážááœáẠáááºážááá¯á·ááᯠá¡áá±ážá
ááẠá
á
áºáá±ážáá«áááºá ááá¯á·áá±á¬áº áá
áºáá«áá
áºáá¶ááœáẠáá±á¬áºááŒáá°áá»á¬ážááẠattribute ááá¬ážááŸá á¡áááºážáá¶áá«ááºááᯠáááºááœáŸááºážáá«áááºá áá«ááᯠá
áááºáá²ááŸá¬ áá¬ážááááºá ááŸá¯ááºááœá±ážááŸá¯áá»á¬ážááᯠááŸá±á¬ááºááŸá¬ážááẠá€áááºááœááºáá»ááºáá»á¬ážá¡ááœáẠ"attribute pointer" áá°áá±á¬ áá±á«áá¬áááᯠá¡áá¯á¶ážááŒá¯áá«áááºá
ááá¯á·ááŒá±á¬áá·áº attribute ááẠáááºážááŸáá·áºáááºá
ááºáá±áá±á¬ á¡á±á¬ááºáá«áá¯ááºááá¹áááá»á¬ážáá«ááŸááá±á¬ áá®ážááŒá¬ážáááºááá¯ážáá
áºáá¯ááŒá
áºáááºá
1. Attribute Handle ááẠattribute ááŸáá·áº áááºááá¯ááºáá±á¬ table index ááŒá
áºáááºá
2. Attribute Type ááẠáááºážáá¡áá»áá¯ážá¡á
á¬ážááá¯áá±á¬áºááŒáá±á¬ UUID áá
áºáá¯ááŒá
áºáááºá
3. Attribute Value ááẠattribute pointer á០indexed data ááŒá
áºáááºá
4. Attribute Permissions áá»á¬ážááẠattribute protocol ááᯠá¡áá¯á¶ážááŒá¯á áááºááŒááºáž ááá¯á·ááá¯áẠáá±ážáá¬ážááááá±á¬ ááœáá·áºááŒá¯áá»ááºáá»á¬ážá
áá«ááœá±á¡á¬ážáá¯á¶ážááᯠáááºááá¯áá¬ážáááºáááá²á attribute pointer ááẠáá»áœááºá¯ááºááá¯á·ááá¬ážááŸá áááºážááá¶áá«ááºááŒá
áºáááºá
áááºážááẠáá¯á¶ážá
áœá²áá°áá
áºáŠážá¡á¬áž áááºááŸá¯ááẠááá¯á·ááá¯áẠá
á¬áá±ážáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááœáẠá¡áááºá¡áá»ááºážáá
áºáá¯á¡á¬áž ááá¯ážáá¬ážáááºááœáá·áºááŒá¯áááºá 0x0001 á០0xFFFF á០áá»áœááºá¯ááºááá¯á·áááá¯ááºážáá»á¬áž (attributes) ááᯠáá±ááœááºááá¯ááºáá«áááºá á
á¬á¡á¯ááºá
ááºááŸáá·áº áá»áœááºá¯ááºááá¯á·ááááºá
ááºááŸá¯ááœááºá á€áááºááŸá¬ á
á¬ááœááºáááºááá±á¬ááºááŸá áááºáá¶áá«ááºááŒá
áºáááºá á¡áá¬ážáá°á á
á¬ááŒáá·áºááá¯ááºáááºááá±á¬ááºááœááºáá²á·ááá¯á· áááºáá»á¬ážááᯠá¡áá±á¡ááœáẠááá¯ážáá¬á
á±ááẠá
á®á
á¥áºáá¬ážáááºá áá±á¬ááºáááºááœá²á
á¬ááŒá±á¬ááºážáá
áºáá¯á
á®á á¡áá±á¡ááœááºááẠááááºá
á¬ááŒá±á¬ááºážááẠááá¯áá»á¬ážáá±ááá«áááºá á
á¬ááŒáá·áºááá¯ááºááœááºáá²á·ááá¯á·ááẠáá
áºáá«áá
áºáá¶ááœáẠá¡áá»áá¯á·áá±á¬áááºáá»á¬áž áá»á±á¬ááºáá¯á¶ážááœá¬ážáá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááŸáá·áºá¡áá°á ááá¯ááºážáá¶áá«ááºáááºááŒááºážááœáẠááœá¬ááá»ááºááŸáááá¯ááºáá«áááºá áá«ááᯠááœáá·áºááŒá¯áááºá á¡ááá ááá±á¬á· áá°ááá¯á·á á¡ááá·áºááá·áº áá»áŸá±á¬ááºááœá¬ážáá±áá¬á
áááºááœáŸááºážáá»ááºá¡áá»áá¯ážá¡á
á¬ážááẠáááºááœáŸááºážáá»ááºá¡á¬áž ááá¯ááºá
á¬ážááŒá¯ááá·áºá¡áá¬ááᯠáá¯á¶ážááŒááºáááºá C language áá²á· ááŸááºááŒáá·áºááŒááºážá¡á¬ážááŒáá·áºá
booleaná numeric variables ááŸáá·áº strings áá»á¬ážááŸááá¬á á€áá±áá¬ááœáẠááŸááá±áá«áááºá áááºááœáŸááºážáá»ááºá¡áá»áá¯ážá¡á
á¬ážá¡á¬ážááŒáá·áº áá»áœááºá¯ááºááá¯á·á¡ááá¡ááŸááºááŒá¯áá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠá¡áááºá¡áá¬ááŸáá·áº áááºáá¶áá±áááááºážá á€á¡áááºá¡áá»ááºážááŒáá·áº áá»áœááºá¯ááºááá¯á· áááºááá¯á·áááºáááºáá¯ááºáá±á¬ááºááá¯ááºáááºáááºážá á¡á±á¬ááºááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¡áá»áá¯á·áá±á¬ áá®ážááŒá¬áž attribute á¡áá»áá¯ážá¡á
á¬ážáá»á¬ážááᯠááŒáá·áºáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá "áááºáá±á¬ááºááŸá¯ááŒá±ááŒá¬áá»ááº" (0x2800)á "áá°ážááŒá¬ážáá±á¬ááŒá±ááŒá¬áá»ááº" (0x2803)á "áá±á¬áºááŒáá»ááºááŒá±ááŒá¬áá»ááº" (0x2902)á
attribute áá áºáá¯ááááºááá¯ážááẠáááºážáá¡ááŸááºááááºá¡áááá¹áá¬ááºááŒá áºááŒá®áž tautology ááᯠááœáá·áºááœáŸááºáá«á attribute á¡áá»áá¯ážá¡á á¬ážááẠstring áá áºáá¯ááŒá áºáá«áá attribute value ááẠá¥ááá¬á áá±á¬ááºáá¯áẠâHello World !!!â ááŒá áºááá¯ááºáá«áááºá á¡áááºá attribute á¡áá»áá¯ážá¡á á¬ážááẠ"áááºáá±á¬ááºááŸá¯ááŒá±ááŒá¬áá»ááº" ááŒá áºáá«á áááºážááááºááá¯ážááẠáááºáá±á¬ááºááŸá¯ááá¯ááºááá¯ááºááŒá áºáááºá áá áºáá«áá áºáá¶ááœáẠáááºážááẠá¡ááŒá¬áž attribute áá»á¬ážááŸáá·áº áááºážááá¯á·á áá¯ááºááá¹áááá»á¬ážááᯠáááºááá·áºáá±áá¬ááœáẠááŸá¬ááœá±ááááºáááºážá
áááºááœáŸááºážáá»ááºááœáá·áºááŒá¯áá»ááºáá»á¬ážááẠáá¬áá¬á¡á¬áž áááºááẠááá¯á·ááá¯áẠá
á¬áá±ážáááºáá±á¬ááºááœáá·áºááᯠááœáá·áºááŒá¯áá¬ážááŒááºážááŸááááŸá áá¬ážáááºááá¯ááºá
á±áá«áááºá
á€ááœáá·áºááŒá¯áá»ááºáá»á¬ážááẠá¡ááŸááºá¡áá¬ážá á¡áá»áá¯ážá¡á
á¬áž ááá¯á·ááá¯áẠááœáá·áºááŒá¯áá»ááºá¡ááœááºááœááºáá¬ááá¯ááºáá² áááºááœáŸááºážáá»ááºáááºááá¯ážááŸáá·áºáᬠáááºááá¯ááºááŒá±á¬ááºáž áááááŒá¯áá«á á¡á²áá«ááœá±á attribute recording ááᯠááœáá·áºááŒá¯áá«áá á¥ááá¬á âHello World!!!â ááá¯ááºážááᯠááŒá±á¬ááºážááá¯ááºáááºá "áááºá¹ááá¬áá¶áááºáááºážáá«" ááá¯ááºážááá¯á· ááá¯á·áá±á¬áº áá»áœááºá¯ááºááá¯á·ááẠá
á¬ááŒá±á¬ááºážá¡áá
áºáá±ážáá¬ážááŒááºáž ááá¯á·ááá¯áẠattribute á¡áá»áá¯ážá¡á
á¬ážááᯠááŒá±á¬ááºážáá²ááŒá®áž ááá¯ááºážááᯠ"áááºáá±á¬ááºááŸá¯ááŒá±ááŒá¬áá»ááº" á¡ááŒá
ẠáááºááŸááºááááá«á áá±á¬ááºáááºáá
áºáŠážááẠáá¬áá¬ááᯠáááºááœááºáá±á¬á¡áá«á áá±á¬ááºáááºááẠáááºážá á¡áááºá¡áá»ááºážáá»á¬ážááᯠáá±á¬ááºážááá¯áááºá áááºážááẠáá¯á¶ážá
áœá²áá°á¡á¬áž áá¬áá¬á០áá±ážáá±á¬ááºááá¯ááºáááºáá»á¬ážááᯠááááá¯ááºá
á±áá«áááºá áááºááá¯ážááœá±ááᯠáá±ážáááºáááºáááºááá¯á· áááá¯á¡ááºáá±ááá·áºá
áááºááá¯áá¯á¶á á¶áá²á
GATT á ááá±á¬ááá¬ážááẠá¡ááœááºáááá»ááŒá®áž áá¯áá¹ááááŸááá±á¬ á¡á á®á¡á á¥áºáá áºáá¯ááŒáá·áº attribute ááá¬ážáá áºáá¯ááœáẠattribute áá»á¬ážááᯠá¡á¯ááºá á¯ááœá²á·áááºááŒá áºáááºá á¡á±á¬ááºáá±á¬áºááŒáá« ááŸáá¯á¶ážáá¯ááºááŸá¯ááºážáááá¯ááá¯ááºááᯠá¡áá®ážáááºáá±á·áá¬ááŒáá·áºáá¡á±á¬ááºá á€ááá¬ážá áááºáááºáá¯á¶ážáá±á¬áºáá¶ááẠá áááºááŒáá¯ááºááœá±ážáá»ááºááá¯ááºáááºá á€á á¬ááŒá±á¬ááºáž (attribute) ááẠáá»áœááºá¯ááºááá¯á·á¡á¬áž ááá¯ážááŸááºážá áœá¬ áá±á¬áºááŒáááºá á¡ááŒá¬ážáá±á¬áºáá¶áá»á¬ážá¡á¬ážáá¯á¶ážááẠáá»áœááºá¯ááºááá¯á·ááŸáá·áºáááºážááŸá®ážááŒá®ážáá¬ážááŒá áºáááºá
á¡ááœá²á·áá
áºáá¯á
á®áááááºááœáẠáá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯ááŒá±ááŒá¬ááŒááºážáááºááœáŸááºážáá»ááºáá
áºáᯠá¡ááŒá²ááŸááááºá áááºážá á¡áá»áá¯ážá¡á
á¬ážááẠá¡ááŒá²áááºáž 0x2800 ááŒá
áºááŒá®áž ááœáŸááºááŒáá»ááºááẠááá¬ážááœáẠááŸááá±ááŒá®ážáá¬áž á¡áááºá¡áá»ááºážáá»á¬áž áááºáá»áŸááŸááááºá¡áá±á«áº áá°áááºáááºá áááºážáááœáá·áºááŒá¯áá»ááºáá»á¬ážááẠá
á
áºááŸááºááŒá±á¬ááºáž ááá¯á·ááá¯áẠááœáá·áºááŒá¯áá»ááºáááŸááá² á¡ááŒá²áááºážáááºáááºáá¬ááŒá
áºáááºá áá®ááá±á¬ááá¬ážááœá±á¡ááŒá±á¬ááºáž áááºážáááºážááŒá¬á០ááŒá±á¬áá«áááºá áááºááá¯ážááẠáááºáá±á¬ááºááŸá¯ááᯠááœá²ááŒá¬ážááááŒááºááá¯ááºáá±á¬ á¡ááŒá¬áž UUID ááŒá
áºáááºá ááá¬ážááœááºá áááºááá¯ážááẠ0x180D ááŒá
áºááŒá®ážá Bluetooth SIG á០ááŸáá¯á¶ážáá¯ááºááŸá¯ááºážáááºáá±á¬ááºááŸá¯á¡ááŒá
ẠáááºááŸááºáááºá
áááºáá±á¬ááºááŸá¯ááŒá±ááŒá¬ááŒá®ážáá±á¬ááºá á¡ááºá¹áá«áááºáááŒá±ááŒá¬áá»ááºááœááºáá±á«áºáá¬áááºá áááºážááẠáááºáá±á¬ááºááŸá¯ááŒá±ááŒá¬áá»ááºáá¯á¶á á¶ááŸáá·áº áááºáá°áááºá áááºážá UUID ááẠá¡ááŒá²áááºáž 0x2803 ááŒá áºááŒá®áž áááºážáááœáá·áºááŒá¯áá»ááºáá»á¬ážááẠá á áºááŸááºááŒá±á¬ááºáž ááá¯á·ááá¯áẠááœáá·áºááŒá¯áá»ááºáááŸááá² á¡ááŒá²áááºážáááºáááºáá¬ááŒá áºáááºá á¡áá»ááºá¡áááºá¡áá»áá¯á·áá«áááºááá·áº Attribute Value á¡ááœááºááᯠááŒáá·áºááŒáá«á áá¯á·á áááºážááœáẠááœáŸááºááŒáá»ááºáá áºáá¯á UUID ááŸáá·áº áá¯ááºááá¹ááá¡á á¯á¶áá«ááŸááááºá á€á¡áá»ááºáá¯á¶ážáá»ááºááẠáááºááá¯ážááá±á¬ááºáááºááœá²áá±á¬áºááŒáá»ááºááᯠáá±á¬áºááŒáááºá ááœáŸááºááŒáá»ááºááẠattribute ááá¬ážááŸá áááá±ááááºááá¯ážááŒá±ááŒá¬áá»ááºááááºáá±áá¬ááᯠááá¬ááá»áá»áá±á¬áºááŒáááºá UUID ááẠáá»áœááºá¯ááºááá¯á·áá»áŸá±á¬áºááá·áºááá¯ááºááá·áº á¡áá»ááºá¡áááºá¡áá»áá¯ážá¡á á¬áž ááá¯á·ááá¯áẠáááºááá¯ážááᯠáá±á¬áºááŒáááºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡áá°áá»áááºáááºááá¯ážá á¡áááºážááá¯ááºá á¡ááŒá±á¡áá± ááá¯á·ááá¯áẠá¡ááŒá¬ážáááºáááá¯áááºááá¯ážá¡áá»áá¯á·á áá±á¬ááºáá¯á¶ážááœáẠáááá±ááááºááá¯ážááŸáá·áº áááºáá²á·ááá¯á· á¡áá»áá¯ážáááºáá±á¬ááºááá¯ááºáááºááᯠáá±á¬áºááŒááá·áº áá¯ááºááá¹áááá»á¬ážá
áá±á¬ááºááẠáá»áá¯á·ááœááºážáá»ááºáá áºáá¯á áá»áœááºá¯ááºááá¯á·ááᯠá€áá±áá¬ááœáẠá á±á¬áá·áºááŒáá¯áá±áá«áááºá áááºážááẠattribute ááœáá·áºááŒá¯áá»ááºáá»á¬ážááŸáá·áº áááá±ááá¯ááºááá¹áááá»á¬ážááŸáá·áº áááºá ááºáá±áááºá Specification á០bit field properties ááá¯á¶ááᯠááŒáá·áºáá¡á±á¬ááºá
áááºááœá±á·ááŒááºáááá·áºá¡ááá¯ááºážá á€áá±áá¬ááœáẠá
á¬áá±ážááŒááºážá
áœááºážáááºááᯠáá±ážá
áœááºážááá¯ááºáá±á¬ áááºáááºáá»á¬ážáááºáž ááŸááá«áááºá áá»áœááºá¯ááºááá¯á·ááœáẠáááºááœáŸááºážáá»ááºááŸáá·áº áá
á¹á
ááºážá¥á
á¹á
á¬ááá¯ááºááá¯ááºááŸá¯á¡ááœáẠá¡áááºááŒá±á¬áá·áº áááº/áá±ážááœáá·áºááŒá¯áá»ááºáá»á¬áž ááŸááááºááᯠáááºá¡á¶á·ááŒáá±áá±áááºá
ááá¹ááá¬áááºááá¯ážá¡ááœáẠáááº/áá±ážááá¬ážá á¡ááŒá²áááºáž áá°áá±ááá·áºááá¬ážá á¡ááŸááºááŸá¬ áááá±ááááºááá¯ážáá»á¬ážá¡ááœáẠáá¯ááºááá¹áááá»á¬ážááẠá¡ááŸááºááááºááœáẠGATT ááŸáá·áº á¡ááá®áá±ážááŸááºážá¡ááœáŸá¬áá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯ááá·áº client á¡ááœáẠá¡ááŒá¶ááŒá¯áá»ááºáá»á¬ážáá¬ááŒá
áºáááºá á€á¡áá¬áá»á¬ážááẠááá¹ááá¬ááŒá±áá¬ááŒááºáž áááºááœáŸááºážáá»ááºá០áá±á¬ááºáááºááẠáá»áŸá±á¬áºááá·áºááá¯ááºááœááºááŸáááá·áº á¡ááááºá¡ááŒáœááºáá»á¬ážááŒá
áºáááºá áá«ááᯠááá¯ááŒá®ážá¡áá±ážá
áááºááŒáá·áºáá¡á±á¬ááºá áááºááœáŸááºážáá»ááºáá
áºáá¯ááœáẠáááºááá·áºááœáá·áºááŒá¯áá»ááºá¡áá»áá¯ážá¡á
á¬ážáá»á¬áž ááŸáááááºážá
1. á¡áá¯á¶ážááŒá¯ááœáá·áºáá»á¬áž-
- á
á¬áááºááŒááºáž
- ááŸááºáááºáž
- á¡áá±ážá¡áááº
2. á¡áá±á¬ááºá¡áá¬ážá
áá
á
áºááŒááºážááœáá·áºááŒá¯áá»ááº-
- á
á
áºááŸááºááŒá±á¬ááºážá¡áá±á¬ááºá¡áá¬ážááá¯á¡ááºáááºá
- á
á
áºááŸááºááŒá±á¬ááºážá¡áá±á¬ááºá¡áá¬ážáááá¯á¡ááºáá«á
3. ááœáá·áºááŒá¯áá»ááºááœáá·áºááŒá¯áá»ááº-
- ááœáá·áºááŒá¯áá»ááºááá¯á¡ááºáááºá
- ááœáá·áºááŒá¯áá»ááºáááá¯á¡ááºáá«á
attribute resolution ááŸáá·áº characteristic properties áá»á¬ážááŒá¬áž á¡ááá ááœá¬ááŒá¬ážáá»ááºááŸá¬ áááẠservers áá»á¬ážááœáẠáááºáá±á¬ááºááŒá®áž áá±á¬ááºááá¯ááºáž clients áá»á¬ážá¡ááœáẠááŒá áºáááºá áá¬áá¬ááẠááá¹ááá¬áááºááá¯ážááᯠáááºááẠááœáá·áºááŒá¯áá¬ážáá±á¬áºáááºáž á á áºááŸááºááŒá±á¬ááºáž ááá¯á·ááá¯áẠááœáá·áºááŒá¯áá»áẠááá¯á¡ááºááá¯ááºáááºá ááá¯á·ááŒá±á¬áá·áºá áá±á¬ááºáááºááẠáááá±áááá¯ááºááá¹áááá»á¬ážááᯠáá±á¬ááºážááá¯áá±á¬á¡áá«á áá»áœááºá¯ááºááá¯á·ááẠáááºážááᯠáááºááŸá¯ááœáá·áºááᯠáááŸááááºááŒá áºáááºá áá«áá±ááá·áº áááºááá¯á·ááŒáá¯ážá á¬ážáá²á·á¡áá« á¡ááŸá¬ážá¡ááœááºážááœá± ááŒá¯á¶áá¬ááááºá ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠááá¯ááºááá¯ááºááŸá¯áá»á¬ážááẠááœáá·áºááŒá¯áá»ááºáá»á¬ážá áŠážá á¬ážáá±ážá¡ááŒá±á¬ááºáž áá¯á¶ááŒá¯á¶á áœá¬ ááŒá±á¬ááá¯ááá¯ááºáá«áááºá áááá¯ááºážááá·áºáááºááœááºá áááºááœáŸááºážáá»ááºáá áºáá¯ááœáẠáááºááá·áºááœáá·áºááŒá¯áá»ááºáá»á¬ážáá«ááŸááááºááᯠáá»áœááºá¯ááºááá¯á· áááááŸáááá¯ááºáá«á
áá±á¬áºááŒáá»ááº
áá«ááá¯á·á
á¬ážááœá²ááá¯ááŒááºááŒáá¡á±á¬ááºá áááá±ááá
áºáá¯ááááºááá¯ážááᯠááŒá±ááŒá¬ááŒá®ážáá±á¬ááºá á¡á±á¬ááºáá« attribute ááŒá±ááŒá¬áá»ááºáá»á¬ážááᯠááŒá
áºááá¯ááºáááº-
1. áááá±áááá¹ááá¬áá»á¬áž ááŒá±ááŒá¬áá»ááºá¡áá
Ạ(áááºáá±á¬ááºááŸá¯áá
áºáá¯ááœáẠááá¹ááá¬áá»á¬ážá
áœá¬ááŸáááá¯ááºáááº)
2. áááºáá±á¬ááºááŸá¯ááŒá±ááŒá¬áá»ááºá¡áá
Ạ(ááá¬ážááœáẠáááºážááá¯á·á¡áá»á¬ážá¡ááŒá¬ážááŸáááá¯ááºáááº)
3. áááºááá¯ááºáá
áºáá¯ááŒá±ááŒá¬ááŒááºážá
ááŸáá¯á¶ážáá¯ááºááŸá¯ááºážááá¯ááºážáá¬ááŒááºážááá¯ááºáᬠáááá±áááá á¹á ááœááºá áá»áœááºá¯ááºááá¯á·áááá¬ážááœááºá ááá¹ááá¬áááºááá¯ážáááŒá±ááŒá¬áá»ááºááᯠáá±á¬áºááŒáá°áááŒá±ááŒá¬áá»ááºááŒáá·áº ááá¯ááºáá«ááœá¬ážáá«áááºá áá±á¬áºááŒáá»ááºááẠá¡ááºá¹áá«áááºáá áºáá¯á¡ááŒá±á¬ááºáž áááºáá±á¬ááºážá¡áá»ááºá¡áááºáá»á¬ážáá«ááŸááá±á¬ á¡áááºá¡áá»ááºážáá áºáá¯ááŒá áºáááºá áá±á¬áºááŒáá»ááºá¡áá»áá¯ážá¡á á¬ážáá»á¬ážá áœá¬ááŸááááºá á€áá±á¬ááºážáá«ážá áá¯áááá¡ááá¯ááºážááœáẠáááºážááá¯á·á¡ááŒá±á¬ááºáž á¡áá±ážá ááẠááœá±ážááœá±ážáá«áááºá ááá¯á¡áá»áááºááœááºá áá»áœááºá¯ááºááá¯á·ááẠClient Characteristic Configuration Descriptor (CCCD) áá±á«áºááœááºáᬠááááœá±á·áá«áááºá áááºážááœáẠ0x2902 ááŸáá·áº áá®áá»áŸáá±á¬ UUI ááŸááááºá á€áá±á¬áºááŒáá»ááºááᯠá¡áá¯á¶ážááŒá¯á áá¯á¶ážá áœá²áá°ááẠáá¬áá¬áá±á«áºááœáẠááœáŸááºááŒááŸá¯ ááá¯á·ááá¯áẠá¡áááá±ážáá»ááºááᯠááœáá·áºááá¯ááºáááºá áá°ááá¯á·ááŒá¬ážá ááœá¬ááŒá¬ážáá»ááºá áá±ážáá±ážáá±ážáá²á á¡ááŒá±á¬ááºážááŒá¬ážáá»ááºááẠáá¯á¶ážá áœá²áá°áá¶á០ááŒá±á á¬á¡áááºááŒá¯áá»áẠáááá¯á¡ááºáá«á áááºážááẠGATT á¡ááá·áºááœááºááŒá áºáá±á«áºáá±á¬áºáááºáž áá»áŸá±á¬ááºááœáŸá¬á¡ááá·áºááá¯á·ááá±á¬ááºááŸááá² ááœáŸááºááŒáááºááá¯á¡ááºáááºá áá¬ááá¯á·á¡á²ááá¯áá±ážáá¬áá²á ááŒá±á¬áº áá« áá«ááᯠááááá°ážá Nordic ááá¬ááŸááºáá»á¬ážá á¡áááá±ážáá»ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááŒá¶ááŒá¯áá¬ážááŒá±á¬ááºáž ááŒá±á¬áá«áá á±á ááá¯á·á¡ááŒááºá áááºáá±á·áá»áº (CRC ááá¯áá¯á¶ážá) áááá¯ááºáá¬ááŸá¯ááá¯á á áºáá±ážááŒááºážááẠááá á¹á áááºááŸá áºáá¯á áá¯á¶ážááœáẠááŒá áºáá±á«áºáá«áááºá
áá±á¬ááºáá»ááº
áá±á¬ááºážáá«ážáá²á· á¡áá¯á¶ážááŸá¬áá±á¬á· áá®ááá¯ááŒá±á¬áá»ááºáá«áááºá áá±á¬ááºáá¯á¶áž á
á¬ážááœá²á áááºážáááºážáá±á¬á· ááŸá¯ááºáááºá áá«áá±ááá·áº áá±ážáá¬ážáá¬ááá¯áá±á¬á· ááœá±ážááá¯ááºáááºá
áá¯áá¹ááá®á¡á¯ááºá
á¯á áááºáááºáž
Pecherskikh ááá¬áá®áá¬
source: www.habr.com