อุปกรณ์ต่อพ่วงระบุการเชื่อมต่อเสมอและไม่เชื่อมต่อหลังจากอัปเกรดเป็น IOS 11

ฉันใช้ CoreBluetooth สำหรับแอป IOS หลังจากอัปเกรดเวอร์ชัน IOS แล้ว ผู้จัดการกลางไม่สามารถเชื่อมต่อกับอุปกรณ์ต่อพ่วงได้และไม่แสดงข้อผิดพลาดใดๆ ก่อนที่จะเริ่มกระบวนการเชื่อมต่อ ฉันได้รับค่านี้จากอุปกรณ์:

CBPerpheral: 0x1c0106e40, ตัวระบุ = BE2B06BF-F385-82AC-95E6-65EA1CF8B11F, ชื่อ = icomon, สถานะ = ถูกตัดการเชื่อมต่อ

และหลังจากที่ฉันพยายามเชื่อมต่อกับอุปกรณ์ สถานะก็เปลี่ยนไป:

CBPeripheral: 0x1c411bea0, ตัวระบุ = BE2B06BF-F385-82AC-95E6-65EA1CF8B11F, ชื่อ = icomon, สถานะ = กำลังเชื่อมต่อ

และไม่มีอะไรเพิ่มเติม ไม่มีอะไรเกิดขึ้นต่อไป ฉันไม่ได้รับข้อมูลใด ๆ จากผู้จัดการกลางและสถานะของอุปกรณ์ไม่เคยเปลี่ยนแปลง


comment
โปรดแก้ไขคำถามของคุณเพื่อแสดงรหัสที่เกี่ยวข้อง   -  person Paulw11    schedule 23.09.2017


คำตอบ (1)


ฉันกำลังดิ้นรนกับปัญหาที่มีอาการเหมือนกันทุกประการ หวังว่ามันจะเป็นปัญหาเดียวกัน และคำตอบนี้มีประโยชน์

ในกรณีของฉัน ปัญหาเกิดจาก PDU ควบคุมเลเยอร์ลิงก์ที่อุปกรณ์ของฉันถูกส่งทันทีหลังจากสร้างการเชื่อมต่อ โดยเฉพาะฉันใช้ Apache Mynewt (http://mynewt.apache.org/) และ NimBLE คอนโทรลเลอร์จะเริ่มต้นขั้นตอนการแลกเปลี่ยนคุณสมบัติทันทีหลังจากทำการเชื่อมต่อ เนื่องจากอุปกรณ์ของฉันเป็นอุปกรณ์ต่อพ่วง ในขณะที่อุปกรณ์ iOS 11 เป็นศูนย์กลาง อุปกรณ์ของฉันจึงส่ง LL_SLAVE_FEATURE_REQ PDU

ฉันไม่รู้ว่ามันเป็นเรื่องของเวลาหรือ PDU เอง แต่ไม่ว่าในกรณีใด อุปกรณ์ iOS จะไม่ส่งข้อมูลเลเยอร์แอปพลิเคชันใด ๆ หลังจากการแลกเปลี่ยนคุณสมบัติ เมื่อฉันเปลี่ยน NimBLE เพื่อไม่ให้เริ่มการแลกเปลี่ยนคุณสมบัติ การสอบสวนอุปกรณ์จะเกิดขึ้นตามปกติ และการโทรกลับที่เชื่อมต่อ CoreBluetooth จะถูกเรียก

person Christopher Collins    schedule 17.10.2017