Подключиться к сопряженному Bluetooth-устройству iOS8.1

Новичок во всем, что касается CoreBlooth. Я успешно написал небольшое приложение для подключения к монитору сердечного ритма Wahoo Blue HR и получения ударов в минуту для моего сердечного ритма и т. д. Я использовал приведенный ниже учебник, но переписал код в swift.

Ссылка на руководство

Сейчас я пытаюсь написать простое приложение для получения показаний артериального давления из имеющегося у меня считывателя Bluetooth LE BP. Речь идет о модели iHealth BP5.

Когда я сканирую это устройство, используя следующий код, я ничего не получаю.

func centralManagerDidUpdateState(central: CBCentralManager!) {

    if central.state == CBCentralManagerState.PoweredOff {
        println("CoreBluetooth BLE hardware is powered off")
    }
    else if central.state == CBCentralManagerState.PoweredOn {
        println("CoreBluetooth BLE hardware is powered on and ready")
        let IHEALTHBP5_BP_DEVICE_INFO_SERVICE_UUID = CBUUID(string:"1810")
        let services = [IHEALTHBP5_BP_DEVICE_INFO_SERVICE_UUID]
        centralManager!.scanForPeripheralsWithServices(services, options: nil)
    }

}

Я, очевидно, изменил UUID службы на монитор АД и проверил с помощью iPad с LightBlue и запуском службы артериального давления. Он отлично работает с iPad, имитирующим службу BP, но не с самим устройством BP5?

Я что-то читал о том, что производители могут скрывать устройства? Может ли это быть тем, что происходит.

Я заметил, что устройство BP5 должно быть фактически «сопряжено» через настройки iOS Bluetooth для работы с официальным приложением, тогда как монитор сердечного ритма этого не делает. Означает ли это, что монитор сердечного ритма вещает кому угодно, но у BP5 более безопасный тип соединения?

Извините, если терминология неверна, но я новичок в мире Bluetooth.

Любая помощь или руководство приветствуются.

С Уважением

Олли

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

let connectedPeripherals =   centralManager!.retrieveConnectedPeripheralsWithServices(services)
        println("Number of Connected Devices : \(connectedPeripherals.count)")

person CpBulletSponge    schedule 20.11.2014    source источник
comment
Можете ли вы опубликовать свой переписанный код где-нибудь? Гитхаб например? :)   -  person Niek Nijland    schedule 18.06.2015
comment
Привет, Олли, ты можешь решить эту проблему? Если да, не могли бы вы поделиться кодом? Спасибо!   -  person Jorge    schedule 02.05.2017


Ответы (1)


На веб-странице продукта указано, что он использует связь: Bluetooth V3.0+EDR Class 2 SPP», который является «устаревшим» протоколом последовательного порта Bluetooth, а не Bluetooth Low Energy/Bluetooth 4.0. Это соответствует вашему описанию необходимости сопряжения устройства и того, что устройство не отображается для Core Bluetooth.

Этот тип устройства управляется внешней платформой аксессуаров. Вам нужно будет определить идентификатор поставщика, который они зарегистрировали в рамках программы MFi, а затем либо найти документацию по их протоколу, либо перепроектировать их протокол, поскольку он не будет таким же, как монитор BLE BP, который использует протокол GATT.

person Paulw11    schedule 20.11.2014
comment
Спасибо за ответ, это имеет большой смысл. Тогда откажусь от этого! Ваше здоровье - person CpBulletSponge; 21.11.2014
comment
Подводя итог, можно сказать, что устройства BLE никогда не отображаются в приложении «Настройки» до тех пор, пока пользовательское приложение не отсканирует их и не подключится к ним. Принимая во внимание, что «устаревшие» устройства BT видны из приложения «Настройки». За исключением устройств BLE, которые запрашивают, например. Подключение службы ANCS. Боже, попробуй сделать среди них удобное приложение!! - person Nick T; 01.12.2014