我正在尝试将从串行端口接收的数据转换为人类可读的格式
如果我运行以下命令
stdbuf -o0 cat /dev/ttyS0 >/tmp/ttyS0.log
我明白了
x▒▒x▒▒▒▒▒▒▒xx▒▒x▒▒▒▒▒▒▒xx▒▒x▒▒▒▒▒▒▒xx▒▒x▒▒▒▒▒▒▒xx▒▒
如果我跑
xxd < /dev/ttyS0
我明白了
0000010: 0080 0080 0080 0080 7800 0078 f8f8 7880 ........x..x..x.
0000020: 0080 0080 0080 0080 0080 0080 7800 0078 ............x..x
0000030: f8f8 7880 0080 0080 0080 0080 0080 0080 ..x.............
0000040: 7800 0078 f8f8 7880 0080 0080 0080 0080 x..x..x.........
0000050: 0080 0080 7800 0078 f8f8 7880 0080 0080 ....x..x..x.....
0000060: 0080 0080 0080 0080 7800 0078 f8f8 7880 ........x..x..x.
0000070: 0080 0080 0080 0080 0080 0080 7800 0078 ............x..x
0000080: f8f8 7880 0080 0080 0080 0080 0080 0080 ..x.............
0000090: 7800 0078 f8f8 7880 0080 0080 0080 0080 x..x..x.........
00000a0: 0080 0080 7800 0078 f8f8 7880 0080 0080 ....x..x..x.....
00000b0: 0080 0080 0080 0080 7800 0078 f8f8 7880 ........x..x..x.
00000c0: 0080 0080 0080 0080 0080 0080 7800 0078 ............x..x
我尝试了不同的波特率,但只得到9600的响应
数据来自一个工业体重秤,我没有任何文档
范围是读取数据并将其存储在文件中
任何帮助都将不胜感激
谢谢, 克里斯
乐:我需要以人类可读的形式存储数据。我认为标尺将以测量数量和测量单位(ex-5 kg)的形式返回数据
我试过的代码
import serial
import time
import csv
ser = serial.Serial('/dev/ttyS0')
ser.flushInput()
while True:
try:
ser_bytes = ser.readline()
decoded_bytes = float(ser_bytes[0:len(ser_bytes)-8].decode("utf-8"))
print(decoded_bytes)
with open("/tmp/test_data.csv","a") as f:
writer = csv.writer(f,delimiter=",")
writer.writerow([time.time(),decoded_bytes])
except:
print("Keyboard Interrupt")
break
代码不返回/存储任何内容
我得到的唯一“结果”是上面的bash命令,但不知道如何将返回的数据转换为人类可读的形式
目前没有回答
相关问题 更多 >
编程相关推荐