2013-08-22 32 views
8

Tôi đang cố gắng tạo một số tập lệnh để khám phá và ghép nối thiết bị bluetooth trên nền tảng linux được nhúng và dường như không thể nhận được bất kỳ câu trả lời nào cho lệnh dbus-send.Không thể nhận được bất kỳ câu trả lời nào cho dbus-gửi

Thông báo lỗi là khá nhiều luôn giống nhau (phương pháp không tồn tại), tuy nhiên cú pháp của gửi có vẻ đúng.

Tôi đã googled và tìm kiếm ở đây để biết cú pháp chính xác và lỗi, nhưng không thể tìm thấy bất kỳ giải pháp nào.

[[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 được cài đặt, và tôi có thể sử dụng các tiện ích hcitool và bluetoothctl tự khám phá và các thiết bị cặp, tuy nhiên phương pháp đó không phải là hoàn toàn khả thi cho một người dùng cuối và tôi cần phải tạo ra một giao diện web cho họ để thực hiện khám phá và ghép nối.

Dường như dbus là phương pháp ưu tiên để thực hiện việc này, vì bluetoothctl không chấp nhận đối số dòng lệnh để cho phép nó ghép nối địa chỉ thiết bị.

Bất kỳ trợ giúp/đề xuất nào sẽ được đánh giá cao.

+0

hcitool không sử dụng bluez, nó trực tiếp giao tiếp với hạt nhân, kiểm tra xem bluez đang chạy (bluetoothd) như tôi nghĩ rằng daemon bluetoothd không chạy – ashish

+0

Cảm ơn, có nó đang chạy: [root @ alarmpi ~] # ps aux | grep bluetooth gốc 134 0.0 0.4 4220 1908? Ss Aug21 0:00/usr/lib/bluetooth/bluetoothd – crankshaft

+0

1 kiểm tra thêm, là "sdptool duyệt địa phương" cung cấp cho bạn các o/p – ashish

Trả lời

4
  1. Xác minh rằng bluetoothd đang chạy,
  2. Cài đặt một chương trình gọi là d-feet mà là một debugger D-Bus và xem nếu org.bluez có mặt trên tab bus hệ thống,
  3. Nếu đó là điều hướng đến đích đối tượng, giao diện và phương pháp đó là "/", "org.bluez.Manager" và "GetProperties" tương ứng,
  4. kích đúp vào tên phương pháp (GetProperties) và nhấp vào thực thi mà không bất kỳ đối số
  5. Đầu ra phải có dạng như {u'Adapters': ['/org/bluez/709/hci0']}, nếu không - bạn gặp sự cố với bluetoothd,

Btw. lệnh của bạn là chính xác.

Các vấn đề liên quan