Концепция ГАТТ
Для осуществления разработки, связанной с BLE, нам необходимы определенные базовые знания, конечно, они должны быть очень простыми.
ГАТТ Роль устройства:
Первое, что нужно понять, это то, что различие между этими двумя ролями находится на аппаратном уровне, и это относительные понятия, которые появляются парами:
«Центральное устройство»: относительно мощное, используется для сканирования и подключения периферийных устройств, таких как мобильные телефоны, планшеты и т. д.
«Периферийное устройство»: функция относительно проста, энергопотребление небольшое, а центральное устройство подключается для предоставления данных, таких как браслеты, интеллектуальные термометры и т. д.
Фактически, на самом фундаментальном уровне должно быть разграничение разных ролей в процессе установления связи. Мы знаем, что если устройство Bluetooth хочет сообщить другим о своем существовании, ему необходимо постоянно передавать информацию во внешний мир, в то время как другой стороне необходимо сканировать широковещательный пакет и отвечать на него, чтобы можно было установить соединение. В этом процессе за трансляцию отвечает Периферийное устройство, а за сканирование отвечает Центральное устройство.
Примечание о процессе соединения между ними:
Центральное устройство может одновременно подключаться к нескольким периферийным устройствам. Как только периферийное устройство будет подключено, оно немедленно прекратит вещание и продолжит вещание после отключения. Только одно устройство может попытаться подключиться в любой момент, ставя соединения в очередь.
ГАТТ протокол
Технология BLE обеспечивает связь на основе GATT. GATT — это протокол передачи атрибутов. Его можно рассматривать как протокол прикладного уровня для передачи атрибутов.
Его структура очень проста:
Вы можете понять это как XML:
Каждое ГАТТ состоит из Служб, выполняющих различные функции;
Каждая услуга состоит из различных характеристик;
Каждая характеристика состоит из значения и одного или нескольких дескрипторов;
Сервис и Характеристика эквивалентны тегам (Услуга эквивалентна своей категории, а Характеристика эквивалентна своему названию), тогда как значение фактически содержит данные, а Дескриптор является пояснением и описанием этого значения. Конечно, мы можем описывать и описывать это с разных сторон. Описание, поэтому дескрипторов может быть несколько.
Например: Обычный Xiaomi Mi Band — это устройство BLE, (предположительно) оно содержит три службы: службу, предоставляющую информацию об устройстве, службу, предоставляющую шаги, и службу, определяющую частоту сердечных сокращений;
Характеристика, содержащаяся в службе информации об устройстве, включает информацию о производителе, информацию об аппаратном обеспечении, информацию о версии и т. д.; Служба измерения частоты сердечных сокращений включает в себя характеристику частоты сердечных сокращений и т. д., а значение характеристики частоты сердечных сокращений фактически содержит данные частоты сердечных сокращений, а дескриптор является значением. Описание, например единица измерения, описание, разрешение и т. д.
ГАТТ К/С
Имея предварительное представление о ГАТТ, мы знаем, что ГАТТ — это типичный режим C/S. Поскольку это C/S, нам необходимо различать Сервер и клиент.
«Сервер GATT» и «клиент GATT». Этап существования этих двух ролей наступает после установления связи, и они различаются в зависимости от статуса диалога. Легко понять, что сторона, хранящая данные, называется сервером ГАТТ, а сторона, имеющая доступ к данным, называется клиентом ГАТТ.
Это концепция другого уровня, чем роль устройства, о которой мы упоминали ранее, и ее необходимо различать. Давайте воспользуемся простым примером для иллюстрации:
Для иллюстрации возьмем пример мобильного телефона и часов. Прежде чем соединение между мобильным телефоном и мобильным телефоном будет установлено, мы используем функцию поиска Bluetooth мобильного телефона для поиска устройства Bluetooth часов. Во время этого процесса очевидно, что часы транслируют BLE, чтобы другие устройства знали о его существовании. , это роль периферийного устройства в этом процессе, а мобильный телефон отвечает за задачу сканирования и, естественно, играет роль центра; после того, как двое установят соединение GATT, когда мобильному телефону необходимо прочитать данные датчиков, такие как количество шагов, с часов, два интерактивных данных сохраняются в часах, поэтому в это время часы играют роль GATT. сервер, а мобильный телефон, естественно, является клиентом ГАТТ; и когда часы хотят прочитать SMS-вызовы и другую информацию с мобильного телефона, хранителем данных становится мобильный телефон, поэтому мобильный телефон в это время является сервером, а часы — клиентом.
Сервис/Характеристика
У нас уже было перцептивное понимание их выше, а затем у нас есть некоторая практическая информация:
- Характеристика — это наименьшая логическая единица данных.
- Анализ данных, хранящихся в значении и дескрипторе, определяется серверным инженером, спецификаций нет.
- Сервис/Характеристика имеет уникальный идентификатор UUID, UUID имеет как 16-битный, так и 128-битный формат. Нам нужно понимать, что 16-битный UUID сертифицирован организацией Bluetooth и его необходимо приобрести. Конечно, есть некоторые общие 16-битный UUID. Например, UUID службы сердечного ритма — 0X180D, который в коде выражается как 0X00001800-0000-1000-8000-00805f9b34fb, а остальные биты фиксированы. 128-битный UUID можно настроить.
- Соединения ГАТТ являются эксклюзивными.