Новичок во всем, что касается 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)")