2013-08-22 2 views
8

임베디드 아치 리눅스 플랫폼에서 블루투스 장치를 발견하고 페어링하기위한 스크립트를 작성하려고하는데 dbus-send 명령에 대한 응답을 얻지 못하는 것으로 보입니다.dbus-send에 대한 응답을 얻을 수 없습니다.

오류 메시지는 거의 항상 같지만 (메서드는 존재하지 않습니다.) 그러나 보내기 구문이 올바른 것 같습니다.

나는 올바른 구문과 오류를 찾기 위해 여기를 검색했지만 해결책을 찾지 못했습니다.

[[email protected] ~]# dbus-send --system --dest=org.bluez --print-reply/org.bluez.Manager.GetProperties 
Error org.freedesktop.DBus.Error.UnknownMethod: Method "GetProperties" with signature "" on interface "org.bluez.Manager" doesn't exist 


[[email protected] ~]# dbus-send --system --print-reply --dest=org.bluez /org/bluez/134/hci0 org.bluez.Adapter.GetProperties 
Error org.freedesktop.DBus.Error.UnknownObject: Method "GetProperties" with signature "" on interface "org.bluez.Adapter" doesn't exist 

Bluez가 설치되어, 나는 수동 쌍의 장치를 발견 할 수 hcitool 및 bluetoothctl 유틸리티를 사용할 수 있습니다, 그러나 그 방법은 최종 사용자에 대한 가능한 아니며, 나는 그들을 수행하기위한 웹 인터페이스를 작성해야 발견과 페어링.

bluetoothctl이 장치 주소를 쌍으로 지정할 수 있도록 명령 줄 인수를 허용하지 않기 때문에 dbus가이 방법을 선호합니다.

어떤 도움이나 제안이라도 대단히 감사하겠습니다. 이 목적지로 이동하는 경우

+0

hcitool은 bluez를 사용하지 않으며, 커널과 직접 통신하여 블루투스가 실행 중인지 (bluetoothd) 블루투스 데몬이 실행 중이 아닌지 확인합니다. – ashish

+0

감사합니다. 예 : [root @ alarmpi ~] # ps aux | grep 블루투스 루트 134 0.0 0.4 4220 1908? Ss Aug 21 0:00/usr/lib/bluetooth/bluetoothd – crankshaft

+0

"sdptool browse local"은 o/p를 제공합니다 – ashish

답변

4
  1. ,
  2. 는 D-버스 디버거 인 d-feet라는 프로그램을 설치하고 org.bluez는 시스템 버스 탭에 존재하는지, 그 bluetoothd가 실행
  3. 확인 "/", "org.bluez.Manager"이며 오브젝트, 인터페이스 및 방법 "GetProperties"각각
  4. 더블 메소드 이름 (GetProperties)을 클릭하고 인수없이 실행을 클릭합니다
  5. 출력은 {u'Adapters': ['/org/bluez/709/hci0']}과 같아야합니다 (블루투스에 문제가있는 경우).

Btw. 당신의 명령은 정확합니다.