เชื่อมต่อกับอุปกรณ์บลูทูธที่จับคู่ iOS8.1

มือใหม่กับทุกสิ่ง CoreBlooth ที่นี่ ฉันเขียนแอปขนาดเล็กเพื่อเชื่อมต่อกับเครื่องวัดอัตราการเต้นของหัวใจ Wahoo Blue HR ได้สำเร็จ และดึงข้อมูล bpm สำหรับอัตราการเต้นของหัวใจของฉัน ฯลฯ ฉันใช้บทช่วยสอนด้านล่าง แต่เขียนโค้ดใหม่ให้รวดเร็ว

ลิงก์ไปยังบทช่วยสอน

ตอนนี้ฉันกำลังพยายามเขียนแอปง่ายๆ เพื่อดึงข้อมูลการอ่านค่าความดันโลหิตจากเครื่องอ่าน 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 เป็นจอภาพ BP และตรวจสอบโดยใช้ iPad ที่ใช้ LightBlue และเริ่มบริการความดันโลหิต ทำงานได้ดีกับ iPad ที่จำลองบริการ BP แต่ไม่ใช่อุปกรณ์ BP5 เอง

ฉันได้อ่านบางอย่างเกี่ยวกับผู้ผลิตที่สามารถซ่อนอุปกรณ์ได้ นี่อาจเป็นสิ่งที่เกิดขึ้น

ฉันสังเกตเห็นว่าอุปกรณ์ BP5 จะต้อง 'จับคู่' จริงๆ ผ่านการตั้งค่าบลูทูธของ iOS เพื่อทำงานกับแอปอย่างเป็นทางการ ในขณะที่เครื่องวัดอัตราการเต้นของหัวใจไม่รองรับ สิ่งนี้แนะนำให้เครื่องวัดอัตราการเต้นของหัวใจออกอากาศให้ใครก็ตามยกเว้น BP5 มีประเภทการเชื่อมต่อที่ปลอดภัยกว่าหรือไม่

ขออภัยหากคำศัพท์ปิดอยู่ แต่ฉันยังใหม่กับโลกบลูทูธ

ความช่วยเหลือหรือคำแนะนำใด ๆ ที่ชื่นชม

ความนับถือ

ออลลี่

PS หลังจากที่ตรวจสอบว่าอุปกรณ์ 'เชื่อมต่อ' ในแอปการตั้งค่าบลูทูธแล้ว และโดยไฟบลูทูธบนอุปกรณ์ที่เปลี่ยนจากกะพริบเป็นไฟนิ่ง ฉันใช้วิธีการต่อไปนี้แต่กลับผลลัพธ์เป็นศูนย์

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

person CpBulletSponge    schedule 20.11.2014    source แหล่งที่มา
comment
คุณสามารถโพสต์รหัสที่เขียนใหม่ที่ไหนสักแห่งได้ไหม? เช่น GitHub? :)   -  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

อุปกรณ์ประเภทนี้ได้รับการจัดการโดย External Accessory Framework คุณจะต้องระบุ ID ผู้ขายที่พวกเขาลงทะเบียนภายใต้โปรแกรม MFi จากนั้นค้นหาเอกสารประกอบเกี่ยวกับโปรโตคอลหรือวิศวกรรมย้อนกลับโปรโตคอล เนื่องจากจะไม่เหมือนกับจอภาพ BLE BP ซึ่งใช้โปรโตคอล GATT

person Paulw11    schedule 20.11.2014
comment
ขอบคุณสำหรับคำตอบ มันสมเหตุสมผลมาก จะยอมแพ้สิ่งนั้นแล้ว! ไชโย - person CpBulletSponge; 21.11.2014
comment
โดยสรุป อุปกรณ์ BLE จะไม่ปรากฏในแอปการตั้งค่าจนกว่าแอปที่กำหนดเองจะสแกนและเชื่อมต่อกับอุปกรณ์เหล่านั้นแล้ว ในขณะที่อุปกรณ์ BT 'ดั้งเดิม' สามารถมองเห็นได้จากแอปการตั้งค่า ยกเว้นอุปกรณ์ BLE ที่ร้องขอเช่น การเชื่อมต่อบริการ ANCS Jeez - ลองทำแอปที่เป็นมิตรต่อผู้ใช้ดูสิ!! - person Nick T; 01.12.2014