对于BLE,我在Raspberry pi 3设备上使用BLUEZ5堆栈, 对于运行gatt服务器,我在我的主板(服务器)中使用了example-gatt-server.py,并将移动设备用于中央设备(客户端) 当我从我的手机的特征中写入值时,它在我的设备中收到(回调)是字节数组格式,如“dbus.Array([dbus.Byte(1),dbus.Byte(35)],signature = dbus.Signature ( 'Y'))” 我无法解码,
如何从返回字节数组的dbus bluez api中提取任何有用信息
我使用以下链接例如-gatt-server.py: https://github.com/RadiusNetworks/bluez/blob/master/test/example-gatt-server
答案 0 :(得分:1)
以下python代码是打印参数的回调函数。在我的例子中,数组的每个字节代表一个ASCII字符。)
def notification_callback(*args, **kwargs):
"""
Function that will receive DBus notifications signals (properties_changed signals)
when the temperature is updated
"""
#Get the byte array
byte_array = args[1]['Value']
#Convert the byte array into a string
received_value = ''.join(chr(byte) for byte in byte_array)
print ("Received value " + received_value)