python系列008

发布时间 2023-04-14 10:21:25作者: zlib001

至于是否可以采用自定义协议包,这取决于HID设备是否支持该协议。

如果HID设备支持自定义协议包,则可以使用.write()方法将自定义协议包发送到设备。

具体来说,您需要将自定义协议包转换为字节数组,并将其作为.write()方法的参数发送到设备。

例如,以下代码将自定义协议包[0x01, 0x02, 0x03]发送到HID设备:

import hid

# Open the HID device
device = hid.device()
device.open(0x1234, 0x5678)

# Convert the custom protocol packet to a byte array
packet = [0x01, 0x02, 0x03]    //自定义协议包
packet_bytes = bytes(packet)   //将自定义协议包转换为字节数组后的结果,这是因为.write()方法只能接受字节数组作为参数,而不能直接接受自定义协议包。

# Send the custom protocol packet
device.write(packet_bytes)

# Close the HID device
device.close()

bytes()是用于将一个可迭代对象转换为字节数组的方法。在上面的代码中,packet是一个列表,它包含自定义协议包的字节。
使用bytes(packet)将packet转换为字节数组,以便可以将其作为.write()方法的参数发送到HID设备。

# 将列表[1,2,3]转换为字节
test1 = bytes([0x01, 0x02, 0x03])        #转换为不可修改类型的字节
test2 = bytearray([0x01, 0x02, 0x03])    #转换为可修改类型的字节

bytes([0x01, 0x02, 0x03]) 是一个字节数组,其中包含3个十六进制值:0x01,0x02 和 0x03。
这个字节数组可以用于存储二进制数据,例如图像、音频或视频文件。
在Python中,字节数组是不可变的,这意味着您不能修改它们的值。
如果您想要一个可变的字节数组,可以使用bytearray()函数。