1

블루투스 저에너지 관련 문제가 있습니다. 나는 iPhone (iOS 6.1)과 nRF51822 칩을 사용하는 북유럽 보드를 사용하고 있습니다. 현재 iPhone과 nRF51822가 특정 서비스를 사용하여 연결하는 시스템을 개발 중입니다. 그런 다음 다시 연결을 끊었다가 다시 연결하십시오. 그러나 두 번째 연결에서 nRF51822는 첫 번째 연결과 다른 서비스를 사용합니다.iOS : Bluetooth 저에너지 : 하나의 물리적 장치, 서로 다른 연결을위한 다른 서비스 -> 문제?

문제는 두 번째 연결에서 iPhone이 첫 번째 연결의 이전 서비스를 발견한다는 것입니다. 필자는 TI CC2540 개발 보드를 테스트했으며 새로운 서비스를 잘 발견합니다. 내가 찾은 유일한 해결책은 중앙 관리자를 없애고 다시 작동 시키도록 할당하는 것입니다. 그럼에도 불구하고 이런 종류의 상황을 처리하는 표준 (깨끗한) 방법이 있습니까?

답변

0

수신 장치로 페어링 요청을 시작하고 서비스/특성을 발견하면 서비스 및 특성이 iOS쪽에 캐시됩니다. 걱정되는 경우 페어링 요청을하지 마십시오. 그런 다음 실제로 검색하고자하는 서비스 배열을 전달하십시오 (0이 아님).

(사이드 참고 :. 서비스가 iOS 장비에 볼 수있는 상상력 장치 제어를 갖는 모든 것은 정말 muddled..you는 아이폰 OS 측에서 그 제어 해봐야 할 것 같습니다)

+0

https://devzone.nordicsemi.com/

BR 에 위치한 포럼에서 그들을 게시 할 수있는 장치가있다 페어링 된 장치에 저장되지 않습니다. 나는 iOS에 문제가있을 것이라고 생각합니다. 어제 찾은 또 다른 "버그"는 때때로 nRF51822에서 BLE 스택을 다운시킨 경우에도 iPhone을 재부팅하지 않으면 iPhone이 (어떤 앱을 죽이고 nRF51822를 재부팅해도) 서비스를 찾을 수 없게됩니다. & +의 고통의 종류! ... – matt21121

+0

나는 이것에 익숙하지 않고 나의 주요 개발은 nrf51에 있었다 ... 당신의 펌웨어에 문제가 될 가능성이 더 높다. –

1

당신이 할 수없는 경우 어떤 본딩이나 페어링 만하면이 문제가 발생하지 않습니다.

본딩이 필요한 경우이 문제를 해결하는 가장 좋은 방법은 SDK에있는 본드 관리자를 사용하는 것입니다. bond manager을 사용하지 않는 경우 Service Changed 기능을 사용하고 시작 핸들을 0x000C로 설정하고 끝 핸들을 0xFFFF로 설정할 수 있습니다. 이렇게하면 iOS에서 재발견 될 가능성이 높아져 새로운 서비스와 특성을 찾습니다. iOS는 항상 서비스가 변경된 것을 확인하고 주변 기기에서이를 활성화합니다.

어떤 북유럽 관련 질문이있는 경우에, 당신은 Q & 사실, 내가 어떤 페어링 요청을하지 않는 친구

관련 문제