我目前正在编写一个Python脚本,它从Numato板读取ADC数据,对接收到的字节进行切片以检索数据,这将是一个介于0和1023之间的整数,并更改该值以给出一个电流值。此值与读取的时间一起插入到Numpy数组中。你知道吗
此代码引发错误“TypeError:字节索引必须是整数或片,而不是元组”。你知道吗
检索数据所涉及的脚本片段如下:
def readdata(a, serPort):
global elapsed
serPort.write(str.encode("adc read 0 " +v "\r"))
response = serPort.read(25)
current = response[8,-8]*0.0322265625
b = numpy.array([elapsed, current])
感谢所有的帮助。非常感谢。你知道吗
更新:回复[8,-8]的打字错误已修改为:
response[8,:-8]
现在抛出另一个错误,如:
TypeError: can't concat into bytes
问题在于
response[8,-8]
。您已经使用元组(8,-8)作为索引,这不能用于字节数组。(Numpy对象确实支持此索引和其他类型的复杂索引。另一方面,字节数组只接受整数或片作为索引)。你知道吗要获取从设备接收到的部分数据,请使用切片,例如:
注意
bytes
类型的片也是bytes
,您将不能在算术运算中使用它,例如将它乘以浮点数。您必须首先将字节转换为Python整数值。使用struct
模块完成此操作。7.1. struct — Interpret bytes as packed binary data。下面是如何获得4字节big endian整数(从偏移量4开始,仅作为示例):相关问题 更多 >
编程相关推荐