2017-02-07 3 views
1

BlueZ 5.19를 실행하는 Linux 시스템에서 GATT 클라이언트를 작동 시키려고합니다. 불행하게도이 시스템에서는 파이썬이나 glib를 사용할 수 없으므로 libdbus를 사용하는 것이 유일한 방법입니다. 그리고 전에 D- 버스를 사용한 적이 없다고 언급 했습니까? 필자는 16 바이트 UUID로 맞춤 서비스를 제공하고 광고하는 다른 시스템에 GATT 서버를 가지고 있습니다. BlueZ 기반 시스템에서이 서비스에 액세스하려고합니다. 나는 그것이 광고하는 UUID로 서버를 발견 할 수 있음을 확인했으며 BlueZ를 연결할 수 있습니다. 클라이언트 응용 프로그램이 Bluez의 RegisterProfile 메서드를 성공적으로 호출하여 서버에서 보급 된 UUID를 전달하지만 BlueZ는 결코 내 NewConnection 메서드를 호출하지 않습니다. RegisterProfile 호출 옵션에서 "Role"을 "client", "AutoConnect"를 TRUE로 설정하고 "RequireAuthorization"및 "RequireAuthentication"을 모두 거짓으로 설정합니다. 나는 -E (실험적) 옵션으로 블루투스를 실행 중이다.GATT 클라이언트가 BlueZ에서 작동하지 않습니다. 5.19

bluetoothd[2126]: src/profile.c:register_profile() sender :1.20 
bluetoothd[2126]: src/profile.c:create_ext() Created "myRemoteControlProfile" 
bluetoothd[2126]: src/profile.c:ext_device_probe() myRemoteControlProfile probed with UUID 119649b6-b656-22ae-e611-ba85a04effc5 
bluetoothd[2126]: src/service.c:change_state() 0x950d0: device 24:71:89:09:AD:09 profile myRemoteControlProfile state changed: unavailable -> disconnected (0) 

"myRemoteControlProfile"나는 등록 된 프로파일의 이름입니다 : 나는 -E 및 디버그 옵션을 모두 전경 bluetoothd을 실행하면

, 이쪽은 내 클라이언트 응용 프로그램을 시작할 때 내가 볼 것입니다 BlueZ에서 "119649b6-b656-22ae-e611-ba85a04effc5"는 RegisterProfile 호출과 24 : 71 : 89 : 09에 전달한 UUID입니다. AD : 09는 상호 작용하려는 GATT 서버이므로 BlueZ 이 원격 장치가 내가 찾는 서비스를 제공한다는 것을 알고있는 것 같습니다. 서버 장치에서 볼 때 BlueZ가 연결되지 않습니다. BlueZ가 장치가 RegisterProfile에서 전달한 서비스를 제공하는 것을 볼 때 장치에 연결해야합니까? 왜 NewConnection 메서드 호출을 얻지 못합니까? 등록 된 프로필이 절대로 "연결 끊김"상태를 벗어나지 않는다는 것은 무엇을 의미합니까? GATT API는 여전히 BlueZ 5.19에서 실험으로 간주됩니다. 이게 효과가 있을까? 감사!

참고로이 문제는 https://stackoverflow.com/questions/36480516/bluez5-37-org-bluez-profilemanager1-registerprofile-cant-detect-green-throttle에 설명 된 것과 거의 동일합니다. 불행히도 그곳에는 아무 대답도 없었습니다.

답변

0

BlueZ 5.43으로 업그레이드하면이 문제를 해결할 수 있습니다. 나는 여전히 NewConnection 메서드 호출을 얻지 못한다. 그러나 그것이 원격 장치를 광고하고 그것을 수동으로 연결하는 서비스의 UUID로 감지하면, org.bluez에서 GetManagedObjects를 수행 할 때 서비스의 모든 특성이 나타난다. BlueZ 5.19에서는 발생하지 않았습니다.

+0

BlueZ의 최신 버전을 사용하십시오. 특히 5.4x 이전 버전은 LE의 기능과 안정성면에서 매우 나빴습니다. 'bluetoothd '를 사용하는 동안 DBus와 대화 한 적이 있습니까? – Zimano