如何使用此十六进制数据向设备发送ble命令?

2024-05-29 10:37:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本关于ble继电器板的中文手册,其中似乎说明,为了激活继电器#1,发送的命令是:

C504作为前缀 密码部分为12345678 AA作为后缀

如何从python脚本发送此消息?我过去用过这个:

p = btle.Peripheral("bb:00:00:15:27:19")
s = p.getServiceByUUID("0000ffe0-0000-1000-8000-00805f9b34fb") #ffe0
c = s.getCharacteristics()[0]
c.write("e")
p.disconnect()

换一块不同的板。我知道bluepy代码很好,它只是我需要更改的命令

我粘贴了从手册翻译过来的图像: enter image description here

尝试此代码后:

  password = '12345678'
  response = c.write('\xC5\x04' + password + '\xAA', withResponse=True)

我得到这个错误:

Traceback (most recent call last):
  File "1on.py", line 54, in <module>
    letsgobaby()
  File "1on.py", line 46, in letsgobaby
    response = c.write('\xC5\x04' + password + '\xAA', withResponse=True)
  File "/usr/local/lib/python2.7/dist-packages/bluepy/btle.py", line 168, in write
    return self.peripheral.writeCharacteristic(self.valHandle, val, withResponse)
  File "/usr/local/lib/python2.7/dist-packages/bluepy/btle.py", line 520, in writeCharacteristic
    return self._getResp('wr')
  File "/usr/local/lib/python2.7/dist-packages/bluepy/btle.py", line 376, in _getResp
    resp = self._waitResp(wantType + ['ntfy', 'ind'], timeout)
  File "/usr/local/lib/python2.7/dist-packages/bluepy/btle.py", line 331, in _waitResp
    raise BTLEException(BTLEException.DISCONNECTED, "Device disconnected")
bluepy.btle.BTLEException: Device disconnected

Tags: inpyselflibpackagesusrlocaldist

热门问题