BLE ΠΏΠΎΠ΄ микроскопом (ATTΡ‹ GATTΡ‹…)

BLE ΠΏΠΎΠ΄ микроскопом (ATTΡ‹ GATTΡ‹...)

BLE ΠΏΠΎΠ΄ микроскопом (ATTΡ‹ GATTΡ‹…)

Π§Π°ΡΡ‚ΡŒ 1, обзорная

Π£ΠΆΠ΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎ довольно большоС врСмя, с Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ΡˆΠ»Π° пСрвая спСцификация Π½Π° Bluetooth 4.0. И, хотя Ρ‚Π΅ΠΌΠ° BLE ΠΎΡ‡Π΅Π½ΡŒ интСрСсна, ΠΎΠ½Π° Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΎΡ‚Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈΠ·-Π·Π° своСй слоТности. Π’ своих ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… я рассматривал Π² основном самый Π½ΠΈΠΆΠ½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Link Layer ΠΈ Physical Layer. Π­Ρ‚ΠΎ позволяло Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ слоТным ΠΈ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ понятиям ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²(ATT) ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² (GATT). Однако Π΄Π΅Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΡƒΠ΄Π°, Π½Π΅ понимая ΠΈΡ…, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ совмСстимыС устройства. БСгодня я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Π²Π°ΠΌΠΈ этими знаниями. Π’ своСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Π±ΡƒΠ΄Ρƒ ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ Π½Π° ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… с сайта Nordic-Π°. Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ приступим.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ всё Ρ‚Π°ΠΊ слоТно?

На ΠΌΠΎΠΉ взгляд, сразу Π±Ρ‹Π»ΠΎ понятно, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ устройствами Ρ‡Π΅Ρ€Π΅Π· смартфоны β€” Ρ‚Π΅ΠΌΠ° ΠΎΡ‡Π΅Π½ΡŒ пСрспСктивная ΠΈ Π΄ΠΎΠ»Π³ΠΎΠΈΠ³Ρ€Π°ΡŽΡ‰Π°Ρ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΅Ρ‘ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сразу ΠΈ ΠΏΠΎ-максимуму. Π§Ρ‚ΠΎ Π±Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π³Π°Π΄ΠΆΠ΅Ρ‚ΠΎΠ² Π½Π΅ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈ свои ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π΅ совмСстимы. ΠžΡ‚ΡΡŽΠ΄Π° ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. Π£ΠΆΠ΅ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» BLE ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ Π²Ρ‚ΠΈΡΠ½ΡƒΡ‚ΡŒ всё Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Ρ‹Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. И Π½Π΅ Π²Π°ΠΆΠ½ΠΎ пригодится это Π² послСдствии ΠΈΠ»ΠΈ Π½Π΅Ρ‚. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, прСдусмотрСли Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ списка устройств Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ взглянСм Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ, Π³Π΄Π΅ нарисована схСма ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° BLE. Он состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… слоСв. Π‘Π°ΠΌΡ‹ΠΉ Π½ΠΈΠΆΠ½ΠΈΠΉ, физичСский слой (PHY) ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ€Π°Π΄ΠΈΠΎΠΊΠ°Π½Π°Π» устройства. Link Layer(LL) содСрТит всю ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±Π°ΠΉΡ‚ΠΎΠ² Π² ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ сообщСнии. Π’ ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ. Host Controller Interface (HCI) β€” это ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΠ±ΠΌΠ΅Π½Π° ΠΌΠ΅ΠΆΠ΄Ρƒ слоями ΠΈΠ»ΠΈ микросхСмами BLE, Ссли Controller ΠΈ Host Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‡ΠΈΠΏΠ°Ρ…. Π—Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°Π΄Ρ€Ρ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ ошибок ΠΈ сборку ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Logical Link Control and Adaptation Protocol (L2CAP). Π—Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Security Manager Protocol (SMP). ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΎΠ±Ρ‰Π΅Π³ΠΎ доступа (GAP) ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами, для опрСдСлСния Β«Who is whoΒ». К Π½Π΅ΠΌΡƒ Ρ‚Π°ΠΊ ΠΆΠ΅ относятся scanning ΠΈ advertising. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΎΡΡ‚Π°Π½ΠΎΠ²Π»ΡŽΡΡŒ Π½Π° Π΄Π²ΡƒΡ… ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ частях ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° β€” GATT ΠΈ ATT. GATT являСтся надстройкой Π½Π°Π΄ ATT, поэтому ΠΎΠ½ΠΈ сильно ΠΏΠ΅Ρ€Π΅ΠΏΠ»Π΅Ρ‚Π΅Π½Ρ‹.

BLE ΠΏΠΎΠ΄ микроскопом (ATTΡ‹ GATTΡ‹...)

Для упрощСния повСствования, я Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π» ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ. Π― Π΅Ρ‘ Π³Π΄Π΅ Ρ‚ΠΎ ΡΠ»Ρ‹ΡˆΠ°Π» ΠΈ Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСбС BLE устройство Π² качСствС ΠΊΠ½ΠΈΠΆΠ½ΠΎΠ³ΠΎ ΡˆΠΊΠ°Ρ„Π° с нСсколькими ΠΏΠΎΠ»ΠΊΠ°ΠΌΠΈ. КаТдая ΠΏΠΎΠ»ΠΊΠ° β€” это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»ΠΊΠΈ с фантастикой, ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ, энциклопСдиями. На ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ»ΠΊΠ΅ стоят ΠΊΠ½ΠΈΠ³ΠΈ с ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠΎΠΉ. А Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠ½ΠΈΠ³Π°Ρ… Π΅ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Π±ΡƒΠΌΠ°ΠΆΠ½Ρ‹Π΅ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ с записями. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρƒ нас Π΅ΡΡ‚ΡŒ нСбольшой Π±ΡƒΠΌΠ°ΠΆΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ всСх ΠΊΠ½ΠΈΠ³. Если ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΡˆΠΊΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ β€” это ΡƒΠ·ΠΊΠΈΠΉ ящик с Π±ΡƒΠΌΠ°ΠΆΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ ΡˆΠΊΠ°Ρ„ β€” это ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ нашСго устройства. Полки β€” это сСрвисы, ΠΊΠ½ΠΈΠ³ΠΈ β€” характСристики, Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ β€” это Ρ‚Π°Π±Π»ΠΈΡ†Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². Π—Π°ΠΊΠ»Π°Π΄ΠΊΠΈ Π² ΠΊΠ½ΠΈΠ³Π°Ρ… β€” это дСскрипторы, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… я Ρ‚Π°ΠΊ ΠΆΠ΅ расскаТу ΠΏΠΎΠ·ΠΆΠ΅, Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

ВсС, ΠΊΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π» устройства, Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Π΅ΡΡ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ куски ΠΊΠΎΠ΄Π°. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ устройства ΠΈΠΌΠ΅ΡŽΡ‚ сходный Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π». К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ссли устройства Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΡ‚ аккумуляторов, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° зарядки ΠΈ контроля ΠΈΡ… уровня, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ. Π’ΠΎ ΠΆΠ΅ касаСтся ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ². БобствСнно, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ «прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ свойства ΠΈ повСдСния Π² ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ союз, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡ€Π°Π·ΠΎΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΒ». На ΠΌΠΎΠΉ взгляд, Π² BLE Π±Ρ‹Π»Π° прСдпринята ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΡ…ΠΎΠΆΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. Π“Ρ€ΡƒΠΏΠΏΠΎΠΉ Bluetooth Special Interest Group (SIG) Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ. Устройства ΠΎΡ‚ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ состоят ΠΈΠ· сСрвисов, Π° сСрвисы ΠΈΠ· характСристик, дополняСмых дСскрипторами. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС это ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

BLE ΠΏΠΎΠ΄ микроскопом (ATTΡ‹ GATTΡ‹...)

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, рассмотрим схСму профиля heart rate monitor (фитнСс браслСт). Он состоит ΠΈΠ· Π΄Π²ΡƒΡ… сСрвисов ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… характСристик. Из Π½Π΅Ρ‘ сразу становится понятна иСрархия профиля. Π₯арактСристика ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ сбрасываСт ΠΎΠ±Ρ‰ΠΈΠΉ подсчСт расходов ΠΊΠ°Π»ΠΎΡ€ΠΈΠΉ Π² ноль.

1. БСрвис сСрдСчного Ρ€ΠΈΡ‚ΠΌΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ характСристики (0x180D):
    a) ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ характСристика частоты сСрдСчных сокращСний (0Ρ…2A37)
    Π±) ΠžΠΏΡ†ΠΈΠΎΠ½Π½Π°Ρ характСристика полоТСния Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π΅Π»Π° (0x2A38)
    Π²) Условная характСристика ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ сСрдСчного Ρ€ΠΈΡ‚ΠΌΠ° (0x2A39)
2. БСрвис обслуТивания Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ (0x180F):
    a) ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ характСристика уровня заряда Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ (0x2A19)

UUID

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ элСмСнтам профиля (сСрвисам, характСристикам ΠΈ дСскрипторам) Π½ΡƒΠΆΠ½ΠΎ всС ΠΈΡ… ΠΊΠ°ΠΊ Ρ‚ΠΎ ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Ρ‚ΡŒ. Для этой Ρ†Π΅Π»ΠΈ вводят Ρ‚Π°ΠΊΠΎΠ΅ понятиС ΠΊΠ°ΠΊ Universally Unique ID (UUID) ΠΈΠ»ΠΈ Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Π’ скобках ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ ΡƒΠΊΠ°Π·Π°Π½ UUID. И здСсь Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Для UUID Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π΄Π»ΠΈΠ½ΠΎΠΉ 16 ΠΈ 128 Π±ΠΈΡ‚. Π—Π°Ρ‡Π΅ΠΌ, спроситС Π²Ρ‹? Π’ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ BLE всё ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ энСргии. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Π² 16 Π±ΠΈΡ‚ Π²ΠΏΠΎΠ»Π½Π΅ Ρ€Π°Π·ΡƒΠΌΠ½Π°. Вряд Π»ΠΈ Π² блиТайшСм Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ создано большС 65тыс. ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… сСрвисов ΠΈ характСристик. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ всё Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Π»ΠΈ, ΡƒΠΆΠ΅ посчитали (ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΡƒΠ΄Π° это β€” Β«ΠΎΠ½ ΠΈ вас посчитал» :-)) ΠŸΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ элСмСнты ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ, сСрвисов, характСристик ΠΈ дСскрипторов Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎ ссылкам.

Однако, я Π΄ΡƒΠΌΠ°ΡŽ, всС помнят ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ с 4-мя Π±Π°ΠΉΡ‚Π°ΠΌΠΈ IP адрСса Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅. Π‘Π½Π°Ρ‡Π°Π»Π° Π΄ΡƒΠΌΠ°Π»ΠΈ Ρ‡Ρ‚ΠΎ Ρ…Π²Π°Ρ‚ΠΈΡ‚, Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всё Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π½Π° 6-Ρ‚ΠΈ Π±Π°ΠΉΡ‚Π½Ρ‹ΠΉ адрСс. Π§Ρ‚ΠΎ Π±Ρ‹ Π½Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ этой ошибки ΠΈ Π΄Π°Ρ‚ΡŒ простор ΡˆΠ°Π»ΠΎΠ²Π»ΠΈΠ²Ρ‹ΠΌ Ρ€ΡƒΡ‡ΠΊΠ°ΠΌ ΡΠ°ΠΌΠΎΠ΄Π΅Π»ΡŒΡ‰ΠΈΠΊΠΎΠ², SIG сразу Ρ€Π΅ΡˆΠΈΠ»Π° ввСсти Π΅Ρ‰Ρ‘ ΠΈ 128-ΠΌΠΈ Π±ΠΈΡ‚Π½Ρ‹Π΅ UUID. Π­Ρ‚ΠΎ Π»ΠΈΡ‡Π½ΠΎ ΠΌΠ½Π΅ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π½Π΅Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ 433ΠœΠ“Ρ†, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π΄Π°Π½ Π½Π° ΠΎΡ‚ΠΊΡƒΠΏ всСвозмоТным ΠšΡƒΠ»ΠΈΠ±ΠΈΠ½Ρ‹ΠΌ ΠΎΡ‚ Ρ€Π°Π΄ΠΈΠΎΠΊΠ°Π½Π°Π»Π°. Π’ нашСм случаС, Π½Π° ΠΎΡ‚ΠΊΡƒΠΏ Π±Ρ‹Π» ΠΎΡ‚Π΄Π°Π½ 128-ΠΌΠΈ Π±ΠΈΡ‚Π½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сСрвисов ΠΈ характСристик. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ ΠΌΡ‹, для своих сСрвисов ΠΈ устройств, ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ практичСски любоС 128 Π±ΠΈΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Всё Ρ€Π°Π²Π½ΠΎ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ UUID стрСмится ΠΊ Π½ΡƒΠ»ΡŽ.

На самом Π΄Π΅Π»Π΅, ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ 16-Ρ‚ΠΈ Π±ΠΈΡ‚Π½Ρ‹Π΅ UUID ΠΈΠΌΠ΅ΡŽΡ‚ своё Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π΄ΠΎ 128-ΠΌΠΈ Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ значСния. Π’ спСцификации это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ называСтся Bluetooth Base UUID ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 00000000-0000-1000-8000-00805F9B34FB. Если, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, 16-Ρ‚ΠΈ Π±ΠΈΡ‚Π½Ρ‹ΠΉ UUID Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0x1234, Ρ‚ΠΎ эквивалСнтный Π΅ΠΌΡƒ 128-ΠΌΠΈ Π±ΠΈΡ‚Π½Ρ‹ΠΉ UUID Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 00001234-0000-1000-8000-00805F9B34FB. И Π΄Π°ΠΆΠ΅ приводится ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°:

                                128_bit_value = 16_bit_value * 2^96 + Bluetooth_Base_UUID

ΠžΡ‚ΠΊΡƒΠ΄Π° взялось это магичСскоС число, ΠΌΠ½Π΅ Π½Π΅ извСстно. Если ΠΊΡ‚ΠΎ Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ· Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ Π·Π½Π°Π΅Ρ‚ β€” ΠΏΡƒΡΡ‚ΡŒ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π² коммСнтариях (ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ с Π½ΠΈΠΊΠΎΠΌ Sinopteek ΡƒΠΆΠ΅ сдСлал это. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ). Π§Ρ‚ΠΎ касаСтся придумывания 128-Ρ‚ΠΈ Π±ΠΈΡ‚Π½Ρ‹Ρ… UUID, Ρ‚ΠΎ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сдСлаСт это Π·Π° вас.

ATTΡ‹ GATTΡ‹…

БобствСнно дальшС начинаСтся самоС интСрСсноС. Π― напомню, Ρ‡Ρ‚ΠΎ ATT основан Π½Π° клиСнтском-сСрвСрном ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ. БСйчас ΠΌΡ‹ рассматриваСм устройство сСрвСра. Он содСрТит Ρ‚Π°ΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊΠ°ΠΊ значСния Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², состояниС Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ свСта, Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ мСстополоТСнии ΠΈ Ρ‚.Π΄. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° всС «участники нашСго ΠΏΠ°Ρ€Π°Π΄Π°Β» ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Ρ‹, Π½Π°Π΄ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎ ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² памяти устройства. Для этого ΠΌΡ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΈΡ… Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, которая называСтся Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ это Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π½ΡŒΠΊΠΎ. Π­Ρ‚ΠΎ самоС сСрдцС BLE. ИмСнно Π΅Π³ΠΎ ΠΌΡ‹ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π² дальнСйшСм. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строчку ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ. Π­Ρ‚Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° находится Π² Π³Π»ΡƒΠ±ΠΈΠ½Π΅ стСка ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΌΡ‹ Π½Π΅ ΠΈΠΌΠ΅Π΅ΠΌ ΠΊ Π½Π΅ΠΉ прямого доступа. ΠœΡ‹ Π΅Ρ‘ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈ ΠΊ Π½Π΅ΠΉ обращаСмся, Π½ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ происходит Π²Π½ΡƒΡ‚Ρ€ΠΈ, ΠΎΡ‚ нас скрыто Π·Π° сСмью пСчатями.

Рассмотрим ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΈΠ· спСцификации, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π΄ этим, Ρ…ΠΎΡ‡Ρƒ сразу ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ…, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² дСскрипторах. Роль дСскриптора β€” Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ описаниС характСристики. Когда Π½Π°Π΄ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Π΅Ρ‘ возмоТности, Ρ‚ΠΎΠ³Π΄Π° ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ дСскрипторы. Они Ρ‚Π°ΠΊ ΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ, ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅, Π½Π°Ρ€Π°Π²Π½Π΅ с сСрвисами ΠΈ характСристиками, Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². ΠœΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΈΡ… Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части ΡΡ‚Π°Ρ‚ΡŒΠΈ. Однако ΠΈΠ½ΠΎΠ³Π΄Π° дСскрипторами Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½ΠΎΠΌΠ΅Ρ€ строки Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². Π­Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π²ΠΈΠ΄Ρƒ. ΠœΡ‹ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ, Π±ΡƒΠ΄Π΅ΠΌ для этих Ρ†Π΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Β».
BLE ΠΏΠΎΠ΄ микроскопом (ATTΡ‹ GATTΡ‹...)

Π˜Ρ‚Π°ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ β€” это дискрСтноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ свойства, связанныС с Π½ΠΈΠΌ:
1. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° (Attribute Handle) β€” это индСкс Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ
2. Π’ΠΈΠΏ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° (Attribute Type) β€” это UUID, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСт Π΅Π³ΠΎ Ρ‚ΠΈΠΏ
3. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° (Attribute Value) β€” это Π΄Π°Π½Π½Ρ‹Π΅, индСксируСмыС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°
4. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² (Attribute Permissions) β€” это Ρ‡Π°ΡΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅     ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Ρ‹ ΠΈΠ»ΠΈ записаны с использованиСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²

Как всё это ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ? Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° β€” это, условно говоря, Π΅Π³ΠΎ Π½ΠΎΠΌΠ΅Ρ€ Π² нашСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅.
Он позволяСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π² запросах чтСния ΠΈΠ»ΠΈ записи. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Ρ‚ΡŒ наши строчки (Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹) ΠΎΡ‚ 0x0001 Π΄ΠΎ 0xFFFF. Π’ нашСй ассоциации с ΠΊΠ½ΠΈΠΆΠ½Ρ‹ΠΌ ΡˆΠΊΠ°Ρ„ΠΎΠΌ β€” это Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Π² Π±ΡƒΠΌΠ°ΠΆΠ½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. Аналогично, ΠΊΠ°ΠΊ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² порядкС увСличСния Π½ΠΎΠΌΠ΅Ρ€Π°. НомСр ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строчки Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ большС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ. Как ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, ΠΈΠ½ΠΎΠ³Π΄Π° Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΈ Ρƒ нас β€” Π² Π½ΡƒΠΌΠ΅Ρ€Π°Ρ†ΠΈΠΈ строк ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ допускаСтся. Π“Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠ½ΠΈ шли ΠΏΠΎ Π½Π°Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π΅ΠΉ.

Π’ΠΈΠΏ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° опрСдСляСт Ρ‡Ρ‚ΠΎ прСдставляСт собой Π΄Π°Π½Π½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚. По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с языком Π‘ΠΈ,
Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ Π±ΡƒΠ»Π΅Π²Ρ‹Π΅, числовыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ строки, Ρ‚Π°ΠΊ ΠΈ здСсь. По Ρ‚ΠΈΠΏΡƒ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ
с Ρ‡Π΅ΠΌ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ ΠΈ ΠΊΠ°ΠΊ Π½Π°ΠΌ дальшС с этим Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. НиТС ΠΌΡ‹ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ спСцифичныС Ρ‚ΠΈΠΏΡ‹ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². НапримСр «сСрвисная дСкларация» (0Ρ…2800), «дСкларация характСристики» (0Ρ…2803), «дСкларация дСскриптора» (0x2902).

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° β€” это собствСнно Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, проститС Π·Π° Ρ‚Π°Π²Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΡŽ. Если Ρ‚ΠΈΠΏ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° это строка, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ слоган Β«Hello World !!!Β». Если Ρ‚ΠΈΠΏ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° это «сСрвисная дСкларация», Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ являСтся сам сСрвис. А ΠΈΠ½ΠΎΠ³Π΄Π° это информация ΠΎ Ρ‚ΠΎΠΌ, Π³Π΄Π΅ Π½Π°ΠΉΡ‚ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΈΡ… свойства.

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ сСрвСру ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ Π»ΠΈ доступ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ запись.
ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ эти Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, Π° Π½Π΅ ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ, Ρ‚ΠΈΠΏΡƒ ΠΈ самому полю Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π’.Π΅. Ссли Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° запись Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, строчку Β«Hello World !!!Β» Π½Π° строчку Β«Good morningΒ». Но Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ запись Π½ΠΎΠ²ΠΎΠΉ строки ΠΈΠ»ΠΈ, ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ строку ΠΊΠ°ΠΊ «сСрвисная дСкларация». ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΊ сСрвСру, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π΅Π³ΠΎ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹. Π­Ρ‚ΠΎ позволяСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСрвСр. Π₯отя Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ значСния.

Как это выглядит

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ GATT Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² вмСстС Π² ΠΎΡ‡Π΅Π½ΡŒ спСцифичСском ΠΈ логичСском порядкС. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π±ΠΎΠ»Π΅Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ рассмотрим ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ частоты сСрдСчных сокращСний, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½ΠΈΠΆΠ΅. Π‘Π°ΠΌΡ‹ΠΉ Π»Π΅Π²Ρ‹ΠΉ столбик этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ. Он просто описываСт Π½Π°ΠΌ Ρ‡Π΅ΠΌ являСтся эта строчка (Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚). ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ столбцы Π½Π°ΠΌ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹.

BLE ΠΏΠΎΠ΄ микроскопом (ATTΡ‹ GATTΡ‹...)

Π’ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΌΡ‹ всСгда ΠΈΠΌΠ΅Π΅ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ объявлСния сСрвиса. Π•Π³ΠΎ Ρ‚ΠΈΠΏ всСгда Ρ€Π°Π²Π΅Π½ 0x2800, Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, сколько Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΡƒΠΆΠ΅ присутствуСт Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅. Π•Π³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ всСгда доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния, Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ подлинности ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. Об этих понятиях ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” это Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ UUID, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ это Π·Π° слуТба. Π’ Π’Π°Π±Π»ΠΈΡ†Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ 0x180D, Ρ‡Ρ‚ΠΎ опрСдСляСтся Bluetooth SIG ΠΊΠ°ΠΊ сСрвис частоты сСрдСчных сокращСний.

ВслСд Π·Π° объявлСниСм сСрвиса, слСдуСт объявлСниС характСристики. По Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎΠ½ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ объявлСнию сСрвиса. Π•Π³ΠΎ UUID всСгда ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0x2803, Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊ ΠΆΠ΅ всСгда доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ подлинности ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΠΎΠ»Π΅ Attribute Value, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Оно всСгда содСрТит ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, UUID ΠΈ Π½Π°Π±ΠΎΡ€ свойств. Π­Ρ‚ΠΈ Ρ‚Ρ€ΠΈ элСмСнта ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ объявлСниС значСния характСристики. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ СстСствСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ мСсто объявлСния значСния характСристики Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². UUID описываСт, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ значСния ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ. НапримСр, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, состояниС Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ свСта ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. И Π½Π°ΠΊΠΎΠ½Π΅Ρ† свойства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с характСристичСским Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

Π’ΡƒΡ‚ нас ΠΏΠΎΠ΄ΠΆΠΈΠ΄Π°Π΅Ρ‚ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹ΠΉ камСнь. Он связан с Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ свойствами характСристик. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΌΡ‹ посмотрим Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ свойств Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ поля ΠΈΠ· спСцификации.

BLE ΠΏΠΎΠ΄ микроскопом (ATTΡ‹ GATTΡ‹...)

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, здСсь Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ поля, Π΄Π°ΡŽΡ‰ΠΈΠ΅ возмоТности чтСния ΠΈ записи. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒΡΡ вопросом, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅/запись для Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΈ свойства
чтСния/записи для значСния характСристики? Π Π°Π·Π²Π΅ ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ всСгда ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ? Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ свойства для значСния характСристики, фактичСски ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ рСкомСндациями для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π² ГАВВ ΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… слоях. Π­Ρ‚ΠΎ просто подсказки ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° объявлСния характСристики. Π”Π°Π²Π°ΠΉΡ‚Π΅ с этим разбСрСмся ΠΏΠΎΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅. КакиС Π²ΠΈΠ΄Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρƒ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°?

1. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ доступа:
     β€” Ρ‡Ρ‚Π΅Π½ΠΈΠ΅
     β€” запись
     β€” Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись
2. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ:
     β€” аутСнтификация трСбуСтся
     β€” аутСнтификация Π½Π΅ трСбуСтся
3. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ:
     β€” авторизация трСбуСтся
     β€” авторизация Π½Π΅ трСбуСтся

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΎΡ‚ свойств характСристик состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ относятся ΠΊ сСрвСрам, Π° Π²Ρ‚ΠΎΡ€Ρ‹Π΅ ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ. Π£ сСрвСра ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ значСния характСристики, Π½ΠΎ ΠΏΡ€ΠΈ этом ΡΡ‚ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ запросС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ свойств характСристики, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ. Но ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ чтСния ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ смСло Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π°Π΄ свойствами. Π—Π½Π°Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΅ΡΡ‚ΡŒ Ρƒ Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, ΠΌΡ‹, со стороны ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ.

ДСскриптор

ВСрнСмся ΠΊ нашСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅. ПослС объявлСния значСния характСристики, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ объявлСния Π°Ρ‚Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²:
1. НовоС объявлСниС характСристики (Π² сСрвисС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ характСристик)
2. Новая дСкларация сСрвиса (Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎ)
3. ОбъявлСниС дСскриптора

Π’ случаС характСристики измСрСния частоты сСрдСчных сокращСний, Π² нашСй Ρ‚Π°Π±Π»ΠΈΡ†Π΅, объявлСниС значСния характСристики сопровоТдаСтся объявлСниСм дСскриптора. ДСскриптор β€” это Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ характСристикС. БущСствуСт нСсколько Π²ΠΈΠ΄ΠΎΠ² дСскрипторов. О Π½ΠΈΡ… ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части этой ΡΡ‚Π°Ρ‚ΡŒΠΈ. БСйчас ΠΆΠ΅ ΠΌΡ‹ коснСмся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ дСскриптора ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ характСристик ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Client Characteristic Configuration Descriptor β€” CCCD). Он ΠΈΠΌΠ΅Π΅Ρ‚ UUID Ρ€Π°Π²Π½ΡƒΡŽ 0Ρ…2902. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ этого дСскриптора ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π° сСрвСрС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ Π½ΠΎΡ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ. Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ нСбольшая, Π½ΠΎ всё Ρ‚Π°ΠΊΠΈ Π΅ΡΡ‚ΡŒ. Нотификация Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ подтвСрТдСния Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ со стороны ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π˜Π½Π΄ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΆΠ΅ этого Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, хотя ΠΎΠ½Π° ΠΈ происходит Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ GATT, Π½Π΅ доходя Π΄ΠΎ уровня прилоТСния. Π—Π°Ρ‡Π΅ΠΌ Ρ‚Π°ΠΊ, спроситС Π²Ρ‹? Π£Π²Ρ‹, это ΠΌΠ½Π΅ Π½Π΅ Π²Π΅Π΄ΠΎΠΌΠΎ. Π‘ΠΊΠ°ΠΆΡƒ лишь, Ρ‡Ρ‚ΠΎ спСциалисты Nordic-Π° Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΡ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ. Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° цСлостности ΠΏΠ°ΠΊΠ΅Ρ‚Π° (ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ CRC) происходит Π² ΠΎΠ±ΠΎΠΈΡ… случаях.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²ΠΎΡ‚ ΠΎ Ρ‡Π΅ΠΌ. ПослСдняя Ρ‚Π°Π±Π»ΠΈΡ†Π° нСсколько Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Π°. Однако я остановился Π½Π° Π½Π΅ΠΉ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° приводится Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я ΠΎΠΏΠΈΡ€Π°ΡŽΡΡŒ. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части своСй ΡΡ‚Π°Ρ‚ΡŒΠΈ я Π½Π°ΠΌΠ΅Ρ€Π΅Π½ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒΡΡ Π² ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ BlueTooth 4.0. Π’Π°ΠΌ нас ΠΆΠ΄ΡƒΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ схСмы ΠΈ рисунки. Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ части, я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π»ΠΎΠ³, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Wireshark ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π³Π°Π΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Β«Π² ΠΆΠΈΠ²ΡƒΡŽΒ» всю Ρ‚Ρƒ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ с Π²Π°ΠΌΠΈ ΠΈΠ·ΡƒΡ‡Π°Π΅ΠΌ.

Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ Π“Ρ€ΡƒΠΏΠΏΡ‹ Компаний Β«Π¦Π΅Π·Π°Ρ€ΡŒ Π‘Π°Ρ‚Π΅Π»Π»ΠΈΡ‚Β»
ΠŸΠ΅Ρ‡Π΅Ρ€ΡΠΊΠΈΡ… Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ