PyBluez를 사용하여 Linux에서 HID 장치를 에뮬레이션해야합니다. HID 장치 (에뮬레이트 할 장치)가 있습니다. sdptool browse
명령은PyBluez로 HID 서비스 작성
Service Name: HID service
Service RecHandle: 0x10001
Service Class ID List:
"Human Interface Device" (0x1124)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 17
"HIDP" (0x0011)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Human Interface Device" (0x1124)
Version: 0x0101
그래서 나는이에 파이썬 동등한 서비스를 만드는 데 필요한 다음과 같은 서비스를 제공하는 것을 저에게 보여줍니다. 문제는 제가 제공하는 Service class ID list
을 절대적으로 무시한다는 것입니다. 내가 무엇을보고
from bluetooth import *
server_sock=BluetoothSocket(L2CAP)
server_sock.bind(("", 17))
server_sock.listen(1)
uuid = "1f16e7c0-b59b-11e3-95d2-0002a5d5c51b"
advertise_service(server_sock, "PyBluez TEST",
service_id = uuid,
service_classes = [ HID_CLASS ],
profiles = [ HID_PROFILE ])
print("Waiting for connection on L2CAP")
try:
client_sock, client_info = server_sock.accept()
print("Accepted connection from ", client_info)
while True:
data = client_sock.recv(1024)
if len(data) == 0:
break
print("received [%s]" % data)
except IOError:
pass
except KeyboardInterrupt:
print "Stopping..."
stop_advertising(server_sock)
sys.exit()
print("disconnected")
client_sock.close()
server_sock.close()
print("all done")
지금은 다른 블루투스 어댑터를 사용 sdptool
을 실행하고 여기
Service Name: PyBluez TEST
Service RecHandle: 0x10011
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 17
Profile Descriptor List:
"Human Interface Device" (0x1124)
Version: 0x0100
경우 서비스 클래스 ID 목록입니다 : 여기 코드인가?
this 책 (65 페이지)에 따르면이 책은 있어야하지만 그렇지 않습니다.
다음또한 내가 여기에 대한 도움을받을 드리겠습니다 HCI 구성
hci0: Type: BR/EDR Bus: USB
BD Address: 00:17:9A:3F:54:6F ACL MTU: 1017:8 SCO MTU: 64:0
UP RUNNING PSCAN
RX bytes:37882 acl:320 sco:0 events:949 errors:0
TX bytes:41443 acl:352 sco:0 commands:629 errors:0
Features: 0xff 0xff 0x8d 0xfe 0x9b 0xf9 0x00 0x80
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'My HID Device'
Class: 0x6e0100
Service Classes: Networking, Rendering, Capturing, Audio, Telephony
Device Class: Computer, Uncategorized
HCI Version: 2.0 (0x3) Revision: 0x403d
LMP Version: 2.0 (0x3) Subversion: 0x430e
Manufacturer: Broadcom Corporation (15)
입니다. HID 장치의 에뮬레이션에 도움이되는 책, 설명서, 예제 등 ... 나는 또한 연결 수준의 문제를 가지고있는 것처럼
는 ** UPDATE **
보인다. 페어링 후 내 HID 호스트는 자동으로 연결이 끊어집니다.
일반적으로 내 Bluetooth 어댑터를 HID 장치처럼 작동시키는 것은 가능합니까?
sdptool setseq 0x10011 0x0001 u0x1124
을하지만 기능이 제한되어 있습니다 :
만약에 당신이'인쇄 HID_CLASS'? '1124'값을 보시겠습니까? – Drewness
예. 그것은 1124를 인쇄하고 실제로 HID 클래스와 관련이 없습니다. 모든 서비스 클래스 ID를 설정하면 동일한 동작이 나타납니다. SERIAL_PORT_CLASS 또는 다른 것. 나는 또한'hciconfig hci0 reset'을 실행하려고 시도했으나 이것은 도움이되지 않습니다. – incognito