Блютуз кейрин что значит

Связь Bluetooth – как она работает и как использовать технологию связи

Блютуз кейрин что значит. 70850083. Блютуз кейрин что значит фото. Блютуз кейрин что значит-70850083. картинка Блютуз кейрин что значит. картинка 70850083.

Электронные устройства, несмотря на то, что производятся тысячами различных производителей должны использовать одну технологию/стандарт, чтобы соединяться друг с другом. Именно по этой причине по всему миру используют сети 4G LTE (с недавнего времени также 5G), а современные устройства подключаются к сети с помощью беспроводного стандарта Wi-Fi.

Bluetooth, в свою очередь, это стандарт беспроводной связи малой дальности. Это решение используется на портативных компьютерах, планшетах, смартфонах, автомобилях, колонках, саундбарах, домашних кинотеатрах, умных часах, фитнес-браслетах, устройствах smart home, в беспроводных клавиатурах и других устройствах. Возможности использования Bluetooth практически безграничны.

Технология Bluetooth, как правило, проста в настройке и использовании, но, к сожалению, иногда случаются различного рода проблемы.

Блютуз кейрин что значит. bluetooth 5 standart. Блютуз кейрин что значит фото. Блютуз кейрин что значит-bluetooth 5 standart. картинка Блютуз кейрин что значит. картинка bluetooth 5 standart.

В следующей статье мы объясним, что такое Bluetooth, для чего можно использовать эту технологию и как использовать. Приведены также возможные способы решения наиболее частых проблем, возникающих при использовании Bluetooth.

Что такое связь Bluetooth

В самом начале следует объяснить, что такое Bluetooth. Это стандарт беспроводной связи между устройствами малого радиуса действия, который для передачи данных использует радиосвязь. С помощью Bluetooth мы можем передавать файлы, документы, видео и музыку. Из-за особенности подключения Bluetooth – низкая пропускная способность и значительной энергоэффективности Bluetooth используется, в основном, для связи между аксессуарами и передачи звука.

Bluetooth является открытым стандартом, который был описан в спецификации IEEE 802.15.1. Она включает в себя три основных класса мощности с пределами дальности действия 1 метр, 10 метров и 100 метров.

Разработка стандарта Bluetooth была инициирована компанией Ericsson, которая вместе с IBM, Intel, Nokia и Toshiba создали в 1994 году группу SIG (Special Interest Group), целью которой была разработка универсального стандарта беспроводной связи малого радиуса действия. Идея избавиться от проводов быстро эволюционировала к сети LAN и превратилась в известную нам сегодня сеть WLAN (Wi-Fi).

Первая версия стандарта Bluetooth 1.0 была представлена в 1999 году. Описание решения занимало до 1500 страниц.

В настоящее время стандарт – это Bluetooth 5.0 (+ новый Bluetooth 5.1), а также популярный старый стандарт Bluetooth 4.2.

В самых простых случаях Bluetooth соединяет два устройства, например, смартфон с гарнитурой в легковом автомобиле. Подключение создается с помощью PAN (Personal Area Network), в котором есть одно соединение типа «точка-точка». Любое устройство, имеющее Bluetooth, имеет уникальный AMA (Active Member Address), т.е. идентификатор, который позволяет легко узнавать устройство. Производители могут также называть свои устройства понятными именами, что облегчает поиск выбранного оборудования в списке Bluetooth-устройств поблизости. Пользователь часто может изменить это название на другое.

Bluetooth также позволяет подключать большее количество устройств (до 8) в одной сети. В этом случае используется подключение типа «точка-много точек», когда одно устройство выполняет роль сервера, а остальные роль узлов.

Кроме того, устройства Bluetooth имеют функции standby (режим ожидания), благодаря которой пользователю не нужно каждый раз подключать между собой устройства. Например, мышь, связанная с устройством, будет автоматически подключаться после перезагрузки. Комплект громкой связи в информационно-развлекательной системе автомобиля при каждом запуске двигателя будет пытаться подключиться к последнему сопряженному смартфону.

Теоретическая спецификация Bluetooth предусматривает возможность использования до 256 устройств в режиме ожидания. Это возможно благодаря адресации PMA (Passive Member Adres), которая имеет разрядность 8 бит (2 8 = 256 устройств).

Классы и диапазоны Bluetooth

В сети можно найти информацию о трёх классах Bluetooth. Их основной задачей является определение максимальной дальности передачи и мощности беспроводного соединения.

Самые популярные версии Bluetooth

В настоящее время на рынке тяжело найти устройства с Bluetooth 1-2.1. Доступные на рынке устройства используют одну из следующих версий Bluetooth:

Если производитель решит ограничить передачу скоростью 125 КБ/сек, то возможно увеличение дальности до 200 метров (на открытых пространствах). Они также могут повысить скорость за счет энергоэффективности или сделать медленнее, но повысить энергоэффективность передачи данных.

Профили Bluetooth

Технология Bluetooth поддерживает различные профили. Они отвечают за то, как и могут ли вообще устройства общаться друг с другом с помощью Bluetooth.

Существует множество различных профилей, которые предназначены для конкретных применений. Ниже приведены самые популярные из них:

Как передаются данные с помощью Bluetooth?

Bluetooth использует полосу частот ISM (Industrial, Scientific and Medical Band) в диапазоне от 2,402 до 2,480 Ггц. В этом интервале доступно до 79 каналов. Каждый из них имеет ширину полосы частот равную 1 Мгц. Диапазон частот 2,4 Ггц, очень близкий к 2,402 Ггц используется связь Wi-Fi, совместимую со стандартом IEEE 802.11.

Bluetooth поддерживает функции изменения частоты «на лету» (FHSS), благодаря которой в течение секунды каналы могут быть изменены 1600 раз. Эти изменения, а также передача небольших пакетов данных приводят к тому, что Bluetooth-соединения остаются стабильны.

Bluetooth и WLAN (Wi-Fi) – какие различия?

Bluetooth и WLAN исходят из одной идеи и работают аналогично, но используются для совершенно других действий.

Bluetooth использует два различных метода передачи данных: SCOSynchronous Connection Oriented и ACLAsynchronous Connectionless Link. SCO используется для передачи голоса в режиме реального времени с максимальной скоростью 64 Кбит/с. Остальные данные передаются с помощью ACL и требует, чтобы передающее устройство имело встроенную память для хранения данных.

Блютуз кейрин что значит. kuda sokhran fotograf. Блютуз кейрин что значит фото. Блютуз кейрин что значит-kuda sokhran fotograf. картинка Блютуз кейрин что значит. картинка kuda sokhran fotograf.

Сеть WLAN (Wi-Fi) в состоянии передавать данные только в асинхронном режиме. Кроме того, Wi-Fi работает на других частотах и при имеет гораздо более высокую пропускную способность.

Где искать настройки Bluetooth на устройстве

Место, в котором находятся настройки для Bluetooth, зависит только и исключительно от производителя конкретного устройства. К счастью, в настоящее время смартфоны и компьютеры используют несколько операционных систем, в которых параметры находятся в одном месте.

В Android необходимо запустить приложения Настройки и найти раздел ПодключенияBluetooth. Кроме того, можно воспользоваться поисковой системой внутри Настроек или перейти к настройкам Bluetooth, после длительного нажатия значка Bluetooth в строке уведомлений.

В системе iOS запустите приложение Настройки и выберите раздел Bluetooth, который находится практически на самом верху.

В системе Windows 10 запустите приложение ПараметрыУстройстваBluetooth. Кроме того, вы можете перейти к настройкам Bluetooth с помощью быстрых действий в центре уведомлений операционной системы Windows 10.

В системе macOS необходимо запустить приложение Системные настройкиBluetooth.

Как определить версию Bluetooth на устройстве

В течение 20 лет на рынок вышло несколько версий Bluetooth, которые несмотря на то, что совместимы друг с другом, имеют различные возможности и технические параметры. В мобильных устройствах из-за их небольшого размера модуль Bluetooth интегрирован с процессором в рамках одной системы SoC (System on a Chip).

В случае компьютеров с Windows, необходимо запустить Диспетчер устройств (его можно найти через системный поиск) и перейдите в меню Bluetooth. При выборе модуля следует перейти в раздел «Дополнительно». Там вы увидите строку LMP с числом.

Ниже информация о том, какое число соответствует какому стандарту Bluetooth:

На компьютерах Mac, перейдите в FinderОб этом MacОтчет о системеBluetooth. Параметр Bluetooth Core Spec показывает, какую версию Bluetooth имеет компьютер.

Информации о типе используемой версии Bluetooth можно найти в технической спецификации данного устройства. Кроме того, все оборудование с Bluetooth имеет специальный сертификат.

Как соединить устройства с помощью Bluetooth

Само подключение устройств с помощью Bluetooth с виду простое, но на практике оказывается, что пользователи имеют с ним немалые проблемы.

Чтобы соединить между собой два устройства, они должны иметь активный модуль Bluetooth. Параметры Bluetooth, как правило, находятся в настройках подключения. В случае смартфонов с Android можно запустить Bluetooth с помощью быстрых настроек на панели уведомлений. Пользователи устройств с iOS/iPadOS могут воспользоваться «Центром Управления».

Оборудование, к которому мы хотим подключить другое устройство, например, комплект громкой связи, должны находиться в режиме сопряжения. К сожалению, часто получается, что каждый производитель «скрывает» функцию активации режима сопряжения в своём месте меню. Иногда оборудование можно подключить сразу после включения Bluetooth, другое через какое-то время, а третье только после включения соответствующей опции. В этом случае лучше всего проверить инструкцию по эксплуатации данного оборудования.

При попытке подключения оба устройства отображают четырехзначный код PIN-код (обычно 0000 или 1234), который позволяет дополнительно убедиться, что мы связываем выбранные устройства. Только после подтверждения PIN-кодом начинается процесс сопряжения.

Подключение через Bluetooth с использованием NFC

Значительная часть новых смартфонов и планшетов имеет встроенный модуль NFCNear Field Communication. Это решение используется для оплаты с помощью Google Pay, Apple Pay и других платежных систем.

Мало кто знает, что NFC может также использоваться для быстрого сопряжения двух устройств. В случае, если у вас есть смартфон с NFC и другое устройство с поддержкой NFC, например, звуковая панель или наушники, поднесите устройства друг к другу и начнётся автоматическое сопряжение. В этом случае вам не нужно вводить код PIN-код или дополнительно подтверждать соединение.

Почему смартфон не обнаруживает всех устройств?

Как мы уже писали ранее, не все устройства обнаруживаются даже в случае, когда модуль Bluetooth активен. Очень большое влияние на работу этой технологии имеет операционная система, примененная в данном оборудовании.

В настоящее время проблема с определением доступных устройств является самым большим «проклятием» технологии Bluetooth. Часть таких производителей, как Samsung изменяет драйверы Bluetooth, как и меню настроек, чтобы доступ к ним был более понятным по отношению к обычному Android.

К сожалению, на противоположной стороне есть компании, которые препятствуют доступу к меню Bluetooth. Здесь речь идёт, в основном, о производителях автомобилей и комплектов громкой связи. Если в случае смартфонов и компьютеров можно научиться пользоваться Bluetooth в нескольких системах (Android, iOS, Windows и macOS), то каждый производитель автомобилей использует совершенно иную систему, в которой функции Bluetooth иногда глубоко скрыты.

Устройство было обнаружено, но не может подключиться

Иногда может случиться так, что устройство будет правильно обнаружено, но не может подключиться. К сожалению, нет универсального решения этой проблемы, но, к счастью, она касается, в основном, старых устройств.

Возможно, что смартфон или другое устройство уже подключено к другому оборудованию с помощью Bluetooth (например, smartwatch), и при попытке соединения с домашним кинотеатром Bluetooth отклонит вызов. Это происходит потому, что не все устройства поддерживают множественные подключения по Bluetooth.

Более ранние версии операционной системы Android (4.4 Kitkat включительно) имеют проблемы, если в списке подключенных устройств есть много записей. В этом случае лучше всего удалить устройства, которыми вы не пользуетесь.

В случае переноса данных со старого смартфона Android на новый, могут быть перенесены также сопряженные устройства. Решение это редко когда работает так, как должно. После покупки нового телефона, советуем очистить список сопряженных устройств Bluetooth и приступить к повторной установке.

Иногда проблема с подключением возникает из-за значительного расстояния между устройствами. Убедитесь, что оборудование находится рядом.

Соединение Bluetooth разрывается через некоторое время

К сожалению, разрыв связи – это всё ещё актуальная проблема, даже в последних смартфонах. Проблемы с подключением Bluetooth являются большой проблемой владельцев всевозможных фитнес-браслетов и умных часов, которые должны быть постоянно соединены с телефоном в течение всего дня. В этом случае решением проблемы может быть удаление из списка сопряженных устройств неиспользуемого оборудования, но у нас есть другие, более эффективные решения.

Новые смартфоны под управлением Android имеют сложные алгоритмы, используемые для экономии заряда батареи. Производители телефонов и Google ввели агрессивное управление процессами. Это приводит к тому, что когда телефон переходит в спящий режим – так называемый Deep Sleep, «засыпает» также процесс, отвечающий за соединение Bluetooth. В результате smartwatch сообщает нам об отсутствии соединения с телефоном.

Решением этой проблемы является отключение энергосбережения для приложений управления фитнес-браслетом или smartwatch. Это можно сделать в настройках в разделе «Приложения». Точное положение параметра зависит от используемого интерфейса. Для часов Samsung Gear/Galaxy необходимо отключить экономичный режим в приложениях Samsung Gear, Gear Plugin (опционально – если отображается в списке), а также Samsung Health.

За проблемы с подключением могут быть ответственны также запуск режимов энергосбережения в самом smartwatch или фитнес-браслете.

Сопряжение носимых устройств с помощью Bluetooth

В случае носимых устройств, таких как smartwatch и фитнес-браслеты, нужно не только подключить устройство с помощью Bluetooth. Чтобы использовать возможности этого типа устройств следует установить на мобильном устройстве клиентское приложение. В случае часов с Android это Wear OS, smartwatch и браслеты Samsung используют Samsung Gear, а устройства Xiaomi – Mi Fit.

Сопряжение осуществляется с помощью приложения и отличается в зависимости от используемого устройства. Всё это тщательно описано в руководстве по эксплуатации устройства, а также клиентского приложения.

Возможно ли обновление через Bluetooth

Да, обновление с помощью Bluetotoh возможно. Чаще всего, так вы можете обновить устройства, которые не имеют Wi-Fi. Речь идёт о носимых устройствах, smartwatchach, а также комплектах громкой связи, ресиверах и смарт-колонках. В их случае микропрограмма загружается на мобильное устройство и передаётся с помощью Bluetooth на память подключенного оборудования.

Воспроизведение звука на двух устройствах Bluetooth

Bluetooth в течение длительного периода времени не позволял поддерживать соединение с двумя устройствами одновременно, а тем более одновременную передачу данных между всеми подключенными устройствами.

Ситуация изменилась с появлением стандарта Bluetooth 4.0. Он ввел дуальный режим (Dual Mode), который позволяет передавать звук на два устройства одновременно. Все три устройства должны поддерживать Bluetooth версии 4.0, а передающее устройство должно быть дополнительно совместимые с функцией Dual Mode.

В этом случае одно из устройств, подключенных использует Bluetooth Classic, в то время как второе Bluetooth Low Energy.

Функция Dual Audio дебютировала в Samsung Galaxy S8 и Galaxy S8+. С момента своего запуска в начале 2017 года в магазинах появились другие модели телефонов с возможностью одновременной передачи звука на два устройства Bluetooth.

Проблема с Bluetooth в Windows

В случае использования ПК иногда появляется проблема с активацией модуля Bluetooth. В настройках системы Windows 10 существует возможность включения и выключения Bluetooth, но она чисто программная.

В начале мы рекомендуем вам проверить модуль Bluetooth в Диспетчере устройств Windows. В случае, если его нет в списке, перезагрузите компьютер – возможно, что были обновлены драйверы. Когда после перезагрузки модуль Bluetooth по-прежнему невидимым, возможно, он был отключен с уровня BIOS/UEFI или физического переключателя на корпусе (в основном, старые модели ноутбуков). Если эти решения не помогут, возможно, что ваш компьютер не имеет модуля Bluetooth или он был поврежден.

Обновление драйвера Bluetooth в Windows

Драйверы в системе Windows 10 обновляется автоматически в службе Windows Update, но можно вручную принудительно проверить обновления и установить последнюю версию драйвера. Это полезное решение, когда по каким-то причинам после обновления модуль перестанет работать.

Чтобы обновить драйверы для модуля Bluetooth нужно перейти в Диспетчер устройствBluetooth и выберите устройство Bluetooth (например, Intel Wireless Bluetooth). Следующим шагом будет переход на вкладку Драйвер и выберите Обновить драйвер. В следующем шаге вы можете выбрать обновление в режиме онлайн или указать папку с драйверами.

В случае, если после обновления драйверов модуль Bluetooth по-прежнему будет доставлять проблемы, вы можете удалить устройство с помощью Диспетчера устройств и установить заново. Выполнение этого действия приведет к повторной установке драйверов.

Bluetooth-адаптер USB или PCI не распознается системой

Большинство фирменных и марочных адаптеров Bluetooth используют интерфейс USB или PCI, драйверы для которых Windows находит сама. Несмотря на это, на рынке по-прежнему встречаются адаптеры Bluetooth, к которым Windows сама не может найти драйверов.

В этом случае следует зайти в Диспетчер устройств и выбрать пункт локального обновления драйвера. Неизвестный модуль Bluetooth определяется как Неизвестное устройство. Драйверы, как правило, поставляются в комплекте с устройством. Кроме того, вы можете найти их на сайте службы поддержки производителя в интернете.

Источник

Bluetooth LE не так уж и страшен, или Как улучшить пользовательский опыт без особых усилий

Недавно мы в команде придумали и реализовали функцию передачи денег по воздуху с помощью технологии Bluetooth LE. Я хочу рассказать вам, как мы это сделали и что Apple предоставляет нам из инструментов. Многие разработчики думают что Bluetooth — это сложно, ведь это достаточно низкоуровневый протокол, и по нему не так много специалистов. Но всё не так страшно, и на самом деле использовать эту функцию очень просто! А те функции, которые можно реализовать с помощью Bluetooth LE, безусловно, интересны и впоследствии позволят выделить ваше приложение среди конкурентов.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Давайте сначала разберёмся, что это вообще за технология и в чём её отличие от классического Bluetooth.

Что такое Bluetooth LE?


Почему разработчики Bluetooth назвали эту технологию именно Low Energy? Ведь с каждой новой версией Bluetooth энергопотребление и без того многократно снижалось. Ответ кроется в этой батарейке.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Её диаметр всего 2 см, а ёмкость около 220 мА*ч. Когда инженеры разрабатывали Bluetooth LE, они стремились к тому, чтобы устройство с такой батарейкой работало несколько лет. И у них это получилось! Bluetooth LE-устройства c таким элементом питания могут работать от года. Кто из вас еще по-старинке выключает Bluetooth на телефоне для экономии энергии, как это делали в 2000-м? Зря вы это делаете — экономия будет меньше 10 секунд работы телефона в день. А функциональность вы отключаете очень большую, такую как Handoff, AirDrop и другие.

Чего же инженеры добились, разработав Bluetooth LE? Они усовершенствовали классический протокол? Сделали его более энергоэфективным? Просто оптимизировали все процессы? Нет. Они полностью переделали архитектуру стека Bluetooth и добились того, что теперь, чтобы быть видимым для всех других устройств, необходимо меньше времени находиться в эфире и занимать канал. В свою очередь это позволило хорошо сэкономить на энергопотреблении. А с новой архитектурой теперь можно стандартизировать любое новое устройство, благодаря чему разработчики со всего мира могут коммуницировать с устройством, а значит, и с легкостью писать новые приложения для управления им. Кроме того, в архитектуру заложен принцип self-discovery: при подключении к устройству не нужно вводить никакие пин-коды, и если ваше приложение умеет общаться с этим устройством, подключение занимает считанные миллисекунды.

Частота осталась та же: 2,4 ГГц, не сертифицируемая и свободная для использования во многих странах. А вот задержка подключения стала меньше: 15-30 мс вместо 100 мс у классического Bluetooth. Расстояние работы осталось таким же — 100 м. Интервал передачи не сильно, но изменился — вместо 0,625 мс стало 3 мс.

Но не могло же из-за этого энергопотребление уменьшиться в десятки раз. Конечно же, что-то должно было пострадать. И это скорость: вместо 24 Мбит/с стало 0,27 Мбит/с. Вы, наверное, скажете, что это смешная скорость для 2018 года.

Где используется Bluetooth LE?


Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Технология эта немолодая, впервые она появилась в iPhone 4s. И уже успела завоевать много сфер. Bluetooth LE используется во всех устройствах умного дома и в носимой электронике. Сейчас уже есть даже чипы размером с кофейное зерно.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

А как эта технология применяется в программном обеспечении?

Поскольку Apple была первой, кто встроил в своё устройство Bluetooth и начал её использовать, то к настоящему времени они достаточно хорошо продвинулись и встроили технологию в свою экосистему. И сейчас вы можете встретить эту технологию в таких сервисах, как AirDrop, Devices quick start, Share passwords, Handoff. И даже уведомления в часах сделаны через Bluetooth LE. Вдобавок, Apple выложила в открытый доступ документацию, как сделать так, чтобы на ваши собственные устройства приходили уведомления из всех приложений. Какие бывают роли устройств в рамках Bluetooth LE?

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Broаdcaster. Отправляет сообщения всем, кто находится рядом, к этому устройству нельзя подключиться. По такому принципу работают iBeacons и навигация в помещениях.

Observer. Слушает, что происходит вокруг, и получает данные только от общедоступных сообщений. Соединения не создаёт.

А вот с Central и Peripheral интереснее. Почему их не назвали просто Server-Client? Логично же, судя по названию. А вот и нет.

Потому что Peripheral, на самом деле, выступает как сервер. Это периферийное устройство, которое потребляет меньше энергии и к которому подключается более мощный Central. Peripheral может извещать, что он находится рядом и какие у него есть службы. К нему может подключиться только одно устройство, и у Peripheral есть какие-то данные. А Central может сканировать эфир в поиске устройств, отправлять запросы на подключение, подключаться к любому количеству устройств, может читать, записывать и подписывать на данные у Peripheral.

Что же нам, как разработчикам, доступно в экосистеме Apple?

Что нам доступно?

Как работает протокол


Как происходит процесс поиска и подключения?

Peripheral сообщает о своем присутствии с частотой advertisement-интервала, его пакет очень маленький и содержит всего несколько идентификаторов сервисов, которые предоставляет устройство, а также имя устройства. Интервал может быть достаточно большим и способен варьироваться в зависимости от текущего статуса устройства, режима энергосбережения и других настроек. Apple советует разработчикам внешних устройств привязывать длину интервала к акселерометру: увеличивать интервал, если устройством не пользуются, а когда оно активно — уменьшать, чтобы быстро находить устройство. Advertisement-интервал никак не коррелирует c интервалом подключения и определяется самим устройством в зависимости от энергопотребления и своих настроек. Нам он в экосистеме Apple недоступен и неизвестен, им полностью управляет система.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

После того, как мы нашли устройство, отправляем запрос на подключение, и вот тут на сцену выходит интервал подключения — время, через которое второе устройство может ответить на запрос. Но это при подключении, а что же происходит при чтении/записи?

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Интервал подключения также фигурирует и при чтении данных — его уменьшение в 2 раза увеличивает скорость передачи данных. Но нужно понимать, что если оба устройства не поддерживают одинаковый интервал, то будет выбран максимальный из них.

Давайте рассмотрим, из чего состоит пакет с информацией, который передает Peripheral.

MTU (maximum transmission unit) такого пакета определяется в процессе подключения и варьируется от устройства к устройству и в зависимости от операционной системы. В протоколе версии 4.0 MTU был около 30, и размер полезных данных не превышал 20 байтов. В версии 4.2 всё поменялось, теперь можно передавать около 520 байтов. Но, к сожалению, эту версию протокола поддерживают только устройства младше IPhone 5s. Размер накладных расходов, независимо от размера MTU, составляет 7 байтов: сюда входят ATT и L2CAP заголовков. С записью, в целом, похожая ситуация.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Есть только два режима: с ответом и без. Режим без ответа значительно ускоряет передачу данных, поскольку нет интервала ожидания перед следующей записью. Но этот режим доступен не всегда, не на всех устройствах и не на всех системах. Доступ к этому режиму записи может ограничить сама система, потому что он считается менее энергоэкономичным. В iOS eсть метод, в котором можно проверить перед записью, доступен ли такой режим.

Теперь давайте рассмотрим, из чего состоит протокол.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Протокол состоит из 5 уровней. Слой приложения — эта ваша логика, описанная поверх CoreBluetooth. GATT (Generic Attributes Layer) служит для обмена сервисами и характеристиками, которые есть на устройствах. ATT (Attributes Layer) используется для управления вашими характеристиками и передачей ваших данных. L2CAP — низкоуровневый протокол обмена данными. Controller — это уже сам BT-чип.

Вы, наверное, спросите, что такое GATT и как мы можем с ним работать?

GATT состоит из характеристики и сервисов. Характеристика — это объект, в котором хранятся ваши данные, словно переменная. А сервис — это группа, в которой находятся ваши характеристики, словно пространство имён. У сервиса есть название — UUID, вы сами его выбираете. Сервис может содержать в себе дочерний сервис.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

У характеристики тоже есть свой UUID — фактически, имя. Значение (Value) характеристики — это NSData, сюда вы можете записывать и хранить данные. Дескрипторы — это описание вашей характеристики, вы можете описать, какие данные вы ожидаете в этой характеристике, или что они означают. В протоколе Bluetooth есть много дескрипторов, но в Apple-системах пока доступно только два: человеческое описание и формат данных. Также есть уровни доступа (Permissions) для вашей характеристики:

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Попробуем сами


У нас появилась идея сделать возможность передачи денег по воздуху, ничего не требуя от получателя. Представьте, вот ломаете голову над очень интересной задачей, пишете идеальный код, и тут коллега предлагает сходить за кофе. А вы так увлечены задачей, что не можете отлучиться, и просите его купить вам чашечку вкусного капучино. Он приносит вам кофе, и нужно вернуть ему деньги. Можно перевести по номеру телефона, работает отлично. Но вот неловкая ситуация — вы не знаете его номера. Ну вот так, три года работаете, а номерами не обменялись 🙂

Поэтому мы решили сделать возможность передачи денег тем, кто находится рядом, без ввода каких-либо пользовательских данных. Как в AirDrop. Просто выбрать пользователя и отправить нужную ему сумму. Давайте посмотрим, что нам для этого нужно.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Отображение PUSH


Нам нужно, чтобы отправитель:

Для начала нужно придумать названия нашего сервиса и характеристик. Как я говорил, это UUID. Просто генерируем их и сохраняем на Peripheral и Central, чтобы на обоих устройствах были одинаковые.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Далее нам нужно будет создать менеджеры: один для передачи денежных средств, другой для получения. Нужно просто указать делегатов. Передавать у нас будет Central, получать Peripheral. Мы создаем оба, потому что и отправителем, и получателем может быть одно лицо в разное время.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Теперь нам нужно сделать возможность обнаружения получателя и записать в нашу характеристику реквизиты получателя.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Для начала создадим сервис. Пропишем UUID и укажем, что он primary — то есть сервис является главным для этого устройства. Хороший пример: пульсомер, для которого главным сервисом будет текущее состояние пульса, а состояние батареи — это второстепенная информация.

Далее создаем две характеристики: одну для чтения реквизитов получателя, вторую для записи, чтобы получатель мог узнать об отправке денег. Регистрируем их в нашем сервисе, потом добавляем в менеджер, запускаем обнаружение и указываем UUID сервиса, чтобы все устройства, которые находятся рядом, могли узнать о нашем сервисе до подключения к нему. Эти данные помещаются в пакет, который отправляет Central в ходе вещания.

Получатель готов, приступим к отправителю. Запустим поиск и подключение.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

При включении менеджера мы запускаем поиск устройств с нашим сервисом. При нахождении мы их получаем в методе делегата и сразу подключаемся. Важно: нужно сохранять strong-ссылку на все Peripheral, с которыми вы работаете, иначе они «утекут».

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

После успешного подключения настраиваем делегат, который будет работать с данным устройством, и получаем от устройства нужный нам сервис.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Мы успешно подключились к получателю, теперь нужно прочитать его реквизиты.

Мы после подключения уже запросили все сервисы с устройства. И после их получения будет вызван метод делегата, в котором будут перечислены все сервисы, доступные на данном устройстве. Находим нужный и запрашиваем его характеристики. Результат можно будет найти по UUID в методе делегата, в котором хранятся данные для перевода. Пробуем их прочитать, и получим искомое опять в методе делегата. Все сервисы, характеристики и их значения кешируются системой, так что запрашивать их впоследствии каждый раз необязательно.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Всё, мы отправили деньги за кофе, самое время показать получателю красивое уведомление, чтобы он ждал рубли на своем счёте. Для этого нужно реализовать процесс отправки сообщения.

У отправителя достаем нужную нам характеристику, в данном случае мы её взяли из сохраненного значения. Но до этого вам её нужно получить с устройства, как мы делали до этого. А дальше просто записываете данные в нужную характеристику.

После этого на другом устройстве получаем в методе делегата запрос на запись. Тут вы можете прочитать данные, которые вам отправляют, ответить на какую-либо ошибкой, например, нет доступа, или данной характеристики не существует. Всё будет работать, но только если оба устройства включены и приложения активны. А нам нужно, чтобы работало и в фоне!

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Apple позволяет использовать Bluetooth в фоне. Для этого нужно в info.plist указать ключ, в каком режиме мы хотим использовать, в Peripheral или Central.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Далее в менеджере нужно указать ключ восстановления и создать метод делегата. Теперь нам доступен и фоновый режим. Если приложение заснёт или будет выгружено из памяти, то при нахождении нужного Peripheral или при подключении Central оно проснётся, а менеджер восстановится с вашим ключом.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Всё отлично, уже готовы релизиться. Но тут к нам прибегают дизайнеры и говорят: «Хотим вставить фотографии пользователей, чтобы им было легче находить друг друга». Что же делать? У нас в характеристику можно записать всего какие-то 500 байтов, а на каких-то устройствах вообще 20 🙁

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Спустимся глубже


Чтобы решить эту проблему, нам пришлось спуститься глубже.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Сейчас мы общались устройствами на уровне GATT/ATT. Но в iOS 11 у нас есть доступ к протоколу L2CAP. Однако в этом случае придётся самостоятельно позаботиться о передаче данных. Пакеты отправляются с MTU 2 Кб, не нужно ни во что перекодировать, применяется обычный NSStream. Скорость передачи данных до 394 Килобит/с., по заверению Apple.

Допустим, вы передаёте какие-либо данные вашего сервиса от Peripheral к Central в виде обычных характеристик. И понадобилось открыть канал. Вы открываете его на Peripheral, в ответ получаете PSM — это номер канала, к которому можно подключиться, и нужно с помощью тех же характеристик передать его Central. Номер динамический, система сама выбирает, какой PSM открыть в данный момент. После передачи можно уже на Сentral подключиться к Peripheral и обмениваться данными в удобном для вас формате. Давайте рассмотрим, как это сделать.

Для начала на Peripheral открываем порт с шифрованием. Можно делать и без шифрования, тогда это немного ускорит передачу.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Далее мы в методе делегата получаем PSM и отправляем на другое устройство.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

После подключения другого устройства у нас вызовется метод, в котором из канала мы можем достать нужные нам для передачи NSStream.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

С Central еще проще, мы просто подключаемся к каналу с нужным номером…

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

… и после этого получаем нужные нам стримы. В них вы можете передавать абсолютно любые данные любого размера, и строить поверх L2CAP свой протокол. Так мы и реализовали у себя передачу фотографий получателя.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Но есть подводные камни, куда же без них.

Подводные камни


Давайте рассмотрим подводные камни при работе в фоновом режиме. Поскольку вам доступны роли Peripheral и Central, вы можете подумать. что в фоне можете определять, какие устройства рядом находятся в фоновом режиме, а какие в активном. В теории так и должно было быть, но Apple ввела ограничение: телефоны, которые находятся в фоновом режиме, будь то Central или Peripheral, не доступны для других телефонов, которые тоже находятся в фоновом режиме. Также телефоны, которые находятся в фоновом режиме, не видны с неiOS-устройств. Давайте рассмотрим почему так происходит.

Когда ваше устройство активно, оно посылает обычный broadcast-пакет, в котором может быть имя устройства и список сервисов. которые предоставляет это устройство. И overflow данные — всё что не поместилось.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Когда же устройство переходит в фоновый режим, оно не передает название, а список поддерживаемых сервисов переносит в overflow-данные. Если приложение активно, то при сканировании с iOS-устройства оно читает эти данные, а при переходе в фон — игнорирует. Поэтому при переходе в фон вы не сможете видеть приложения, которые также находятся в фоне. Остальные операционные системы Apple всегда игнорируют overflow-данные, поэтому если вы будете искать устройства, поддерживающие ваш сервис, то получите пустой массив. А если подключиться к каждому устройству, которое находится рядом, и запросить поддерживаемые сервисы, то в списке, возможно, будет ваш сервис, и вы сможете с ним работать.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Дальше мы уже готовились передавать в тестирование, правили мелкие недочёты, занимались оптимизацией. И вдруг в какой-то момент мы стали получать в консоли эту ошибку:

Самое плохое было в том, что никакой метод делегата не вызывался, мы даже не могли никак обыграть эту ошибку для пользователя. Просто сообщение в лог — и тишина, всё замирало. Никаких особых изменений не вносилось, поэтому мы начали откатываться по коммитам. И обнаружили, что однажды оптимизировали код и переделали способ записи данных. Проблема крылась в том, что не все клиенты были обновлены, поэтому возникала такая ошибка.

Мы, счастливые, что всё исправили, побежали скорее передавать в тестирование, а они нам почти сразу возвращают: «Ваши модные фоточки не работают. Они все недогруженные приходят». Мы начали пробовать, и правда, иногда, на разных устройствах, в разное время приходят битые фотографии. Начали искать причину.

И тут снова увидели прежнюю ошибку. Сразу подумали, что дело в разных версиях. Но после полного удаления старой версии со всех тестовых устройств ошибка всё равно воспроизводилась. Мы взгрустнули…

Начали искать инструмент для отладки. Первое, что нам попалось, это Apple Bluetooth Explorer. Мощная программа, много всего умеет, но вот для отладки протокола Bluetooth LE одна маленькая вкладка с поиском устройств и получением характеристик. А нам-то нужно было анализировать L2CAP.

Потом нашли LightBlue Explorer. Оказалась вполне приличная программа, правда, с дизайном из iOS 7. Может делать то же самое, что и Bluetooth Explorer, а еще умеет подписываться на характеристики. И работает стабильнее. Всё хорошо, но опять без L2CAP.

И тут нам вспомнился всем известный сниффер WireShark.

Оказалось, он знаком с Bluetooth LE: может читать L2CAP, но только под Windows. Хотя это не страшно, что мы, не найдем винду, что ли. Самый большой минус — программа работает только с определенным устройством. То есть нужно было найти где-то устройство в официальном магазине. А вы сами понимаете, в большой компании вряд ли одобрят покупку непонятного устройства на барахолке. Мы даже начали просматривать зарубежные онлайн-магазины.

Но тут обнаружили в Additional Xcode Tools программу PacketLogger. Она позволяет смотреть траффик, которой идет на OS X-устройстве. А почему бы не переписать наш MoneyDrop под OS X? Он у нас уже был отдельной библиотеки. Мы просто заменили UIImage на NSImage, всё завелось само через 10 минут.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

Наконец-то мы могли читать пакеты, которыми обмениваются устройства. Сразу стало понятно, что в момент передачи данных по L2CAP записывалась одна из характеристик. А из-за того, что канал был полностью занят передачей фотографии, iOS игнорировала запись, а отправитель после игнора обрывал канал. После исправления проблем с передачей фотографии не было.

Блютуз кейрин что значит. image loader. Блютуз кейрин что значит фото. Блютуз кейрин что значит-image loader. картинка Блютуз кейрин что значит. картинка image loader.

На этом всё, спасибо за прочтение 🙂

Полезные ссылки

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *