Все ли устройства, поддерживающие BLE 4.0, могут быть подключены к моим устройствам iOS, поддерживающим BLE 4.0?

О Bluetooth с низким энергопотреблением. Я знаю, что iPhone 4S, iPhone 5, iPad 3 с iOS 5.1 и выше поддерживают BLE 4.0. И я прочитал пример кода TemperatureSensor от Apple. У меня вопрос: какие требования к датчикам? Другими словами, какие датчики можно подключить в этом приложении? Все ли устройства, поддерживающие BLE 4.0, могут быть подключены к моим устройствам iOS, поддерживающим BLE 4.0?


person Bagusflyer    schedule 18.10.2012    source источник


Ответы (2)


Коммуникация BLE основана на GATT (общие атрибуты), который, по сути, представляет собой обмен значениями различных характеристик в рамках услуги. Если вы читали пример кода TemperatureSensor, вы, должно быть, заметили, что он начинает обнаруживать устройства в соответствии с UUID службы, а затем считывает/записывает характеристики, все еще основанные на UUID, в службе. Следовательно, пока датчик поддерживает BLE и вы знаете о его службах (его UUID, его характеристики и свойства), вы можете запрограммировать свое приложение iOS для связи с ним. Некоторые службы «предопределены» Bluetooth SIG, поэтому информацию об этих службах можно найти на странице Веб-сайт Bluetooth SIG.

person blackhogz    schedule 18.10.2012
comment
Одна вещь не очень ясна в отношении UUID. Вы имеете в виду, что я должен знать UUID устройства BLE (датчика) перед подключением? У разных устройств BLE разные UUID? Или, другими словами, когда я покупаю новое устройство BLE, оно должно предоставить ему UUID, чтобы я мог добавить идентификатор в свою программу, прежде чем я смогу подключиться к нему? Спасибо. - person Bagusflyer; 19.10.2012
comment
@bagusflyer В BLE всему (устройству, сервису, характеристике) назначается UUID. Но вам не нужно знать UUID устройства, чтобы подключиться к ним. Вместо этого вы всегда можете сканировать близлежащие устройства и подключаться к ним, а затем сканировать службу на этом периферийном устройстве. Но вам будет разумно знать UUID службы, чтобы идентифицировать тех, кто предоставляет эту услугу. Например, если вы знаете, что UUID для СЛУЖБЫ «температура» равен 0xabcd, вы можете иметь дело только с теми периферийными устройствами, которые предоставляют услугу, вызвав «scanForPeripheralsWithServices:» с UUID 0xabcd в качестве аргумента для этой функции. - person blackhogz; 19.10.2012

Да, вы можете подключить любое устройство BLE к устройству iOS с поддержкой BLE.

Что касается примера кода, о котором вы говорите, он ищет конкретный сервисный UUID для датчиков температуры:

[centralManager scanForPeripheralsWithServices:uuidArray options:options];

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

[centralManager scanForPeripheralsWithServices:nil options:options];

Чтобы поэкспериментировать с этим, вы можете использовать приложение LightBlue. или ссылка на iTunes который позволяет превратить ваш iPhone в периферийное устройство с любыми сервисами / характеристиками, которые вы определите.

person ColinK    schedule 06.11.2012