格式化来自串行设备的 return 值
Formatting a return value from a serial device
我正在通过串口从设备读取一个值,return 值的格式为:
[理论位置mm,编码器位置mm],例如b'\r#-0.001504,-0.001516\n'
我想格式化这个 return 值并将第二个值保存到一个数组中。有谁知道我该怎么做?非常感谢任何建议。
谢谢。
新编辑:这是我的代码和输出。此时我只需要从这个字符串中提取浮点值。
ser.write(b'1POS?\r') #command to query position
pos = ser.readline() #read the position
pos_str = str(pos)
pos_splt = pos_str.split(",")
enc_pos = pos_splt[1]
print(enc_pos)
输出:“-0.028970\n'”
好的,抱歉,我刚刚了解到您的:
error "a bytes-like object is required, not 'str'"
意思是
这是因为您要拆分的是一个字节数组,虽然它有一个 split()
方法,但它需要一个字节数组作为参数。
现在试试这个:
pos = b'\r#-0.001504,-0.001516\n' # Sample data from serial port
pos_splt = pos.strip().split(b",") # the param b"," is the bytes version of ","
enc_pos = pos_splt[1]
print(float(enc_pos))
输出
-0.001516
我正在通过串口从设备读取一个值,return 值的格式为:
[理论位置mm,编码器位置mm],例如b'\r#-0.001504,-0.001516\n'
我想格式化这个 return 值并将第二个值保存到一个数组中。有谁知道我该怎么做?非常感谢任何建议。
谢谢。
新编辑:这是我的代码和输出。此时我只需要从这个字符串中提取浮点值。
ser.write(b'1POS?\r') #command to query position
pos = ser.readline() #read the position
pos_str = str(pos)
pos_splt = pos_str.split(",")
enc_pos = pos_splt[1]
print(enc_pos)
输出:“-0.028970\n'”
好的,抱歉,我刚刚了解到您的:
error "a bytes-like object is required, not 'str'"
意思是
这是因为您要拆分的是一个字节数组,虽然它有一个 split()
方法,但它需要一个字节数组作为参数。
现在试试这个:
pos = b'\r#-0.001504,-0.001516\n' # Sample data from serial port
pos_splt = pos.strip().split(b",") # the param b"," is the bytes version of ","
enc_pos = pos_splt[1]
print(float(enc_pos))
输出
-0.001516