2011-06-15 130 views
0

我正在使用名为pyUSB版本1.6的模块,并试图与传感器进行通信。使用pyusb与usb设备进行通信

我已经建立了连接并可以从传感器上的ROM中读取。传感器在连接时具有主/从关系,因此我需要向传感器发送消息以接收我需要的数据。

现在,write函数只能接受一个字符串或只读缓冲区。我需要发送USB设备的十六进制字节0xFE,0x04,0x00,0x03,0x00, 0x01,0xD5,0xC5
我不确定如何将其编码为字符串或只读缓冲区。

下面是如何调用写入方法。这是他们提供的示例代码。

# write bytes (serial mode) 

print h.write('Hello world!\r\n") 

我该如何传输十六进制字节?

回答

6
byte_ints = [0xFE, 0x04, 0x00, 0x03, 0x00, 0x01, 0xD5, 0xC5] # Python recognises these as hex. 
byte_str = "".join(chr(n) for n in byte_ints) 

或者,你可以把\ X字符串中的每一对十六进制数字之前:

'\xfe\x04\x00\x03\x00\x01\xd5\xc5' 

在Python 3,需要进行:

b'\xfe\x04\x00\x03\x00\x01\xd5\xc5' 

(即一个字节串,不是unicode)

相关问题