Tin xấu: Python dường như không hỗ trợ những gì bạn muốn làm ngoài hộp. (Ít nhất không phải trong socketmodule.c).
Hầu hết các python người dùng/bluetooth Tôi đã nhìn thấy sử dụng pybluez
mặc dù nó chưa được cập nhật kể từ năm 2009.
Tin tốt: tôi đã đi qua nguồn của họ (cho các kết nối Linux), và tìm thấy các bit liên quan cho các dịch vụ quảng cáo. Hầu hết mã được sao chép cơ bản từ phiên bản python 2.2 của socketmodule.c
.
pybluez
sẽ xác định một số chức năng bổ sung cho đối tượng socket
để triển khai tất cả các tính năng bluetooth đó. Nó không quá thấp, và thay vào đó phụ thuộc vào BlueZ
cho điều đó. Từ những gì tôi có thể nói, về cơ bản nó có các đối tượng python và tạo ra các cấu trúc dữ liệu được mong đợi bởi BlueZ
và chỉ cần gọi đó. Nếu bạn không muốn/không thể sử dụng pybluez
, bạn sẽ phải bằng cách nào đó triển khai chức năng bị thiếu này. Tôi nghĩ rằng bạn có thể làm điều đó với c-loại. Các phần có liên quan để quảng cáo dịch vụ nằm trong số btmodule.c, dòng 2562-2642.
Có một nhánh python-3 trong nguồn cho pybluez
, mặc dù tôi không biết liệu nó có hoạt động hay không.
Nếu bạn quyết định sử dụng pybluez
, một ví dụ lấy từ their source
server_sock=BluetoothSocket(RFCOMM)
server_sock.bind(("",PORT_ANY))
server_sock.listen(1)
port = server_sock.getsockname()[1]
uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee"
advertise_service(server_sock, "SampleServer",
service_id = uuid,
service_classes = [ uuid, SERIAL_PORT_CLASS ],
profiles = [ SERIAL_PORT_PROFILE ],
)
Như google code đang đóng cửa, mã cũng có thể được tìm thấy trên github here.
Dường như chúng tích hợp pybluez cơ bản. Hãy xem các ví dụ sau: https://code.google.com/p/pybluez/source/browse/trunk/examples/simple/rfcomm-server.py – TJD
'advertising_service' không tồn tại trong mô-đun ổ cắm cũng như trong socket máy chủ và tìm kiếm 'advert' trong mã nguồn của python chỉ tìm thấy ba chú thích không liên quan. –
Tôi gặp phải vấn đề tương tự. Tôi có thể tạo một máy chủ đơn giản nhưng không thể thực hiện các tác vụ như dịch vụ quảng cáo. Bạn có thể thấy mã cho ứng dụng máy khách-khách tại đây, nếu bạn quan tâm: http://kevindoran1.blogspot.co.nz/2013/04/bluetooth-programming-with-python-3.html – Kevin