如何解决如何从python中的十六进制数据绘制波形
我想请求帮助我解决这个问题:我有一个设备通过 RS232 连接到电脑并正确配置,所以我根据制造商获取数据。我得到的数据是十六进制格式,我想从中绘制 5 个波形。我的数据如下所示:
import serial
ser = serial.Serial('/dev/ttyUSB0',timeout=4,bytesize=8,baudrate=115200,parity='N',stopbits=1)
x = ser.read(1000)
print(x) # x1c\x00\x00\xe0p\xf0\xe0\x00\xe0\x80\xfcp\x80\xfcpp\x00\x00\xe0\x00\xe0\x8e\xe0\x9e\x1c\x9e\xe0\xe0p\xf0\xe0\xfe\xfcp\xf0\xfcp\xfe\xfcp\x80\x1c\x00\xe0\x0e\xf0\xe0\x8e\xe0\x8e\x1c\x8e\xe0\xe0p\xf0\xe0\xfe\xfcp\xf0\xfcp\xfe\xfcp\x80\x1c\x00\xe0p\xf0\xe0\x8e\xe0\x8e\x1c\x8e\xe0\xe0p\xf0\xe0\xfe\xfcp\xf0\xfcp\xfe\xfcp\x80\x1c\x00\xe0~\xf0\xe0\x8e\xe0\x9e\x1c\x8e\xe0\xe0p\xf0\xe0\xfe\xfcp\xf0\xfcp\xfe\xfcp\x80\x1c\x00\xe0\x80\xfcp\x8e\xe0\x8e\x1c\x8e\xe0\xe0p\xf0\xe0\xfe\xfcp\xf0\xfcp\xfe\xfcp\x80\x1c\x00\xe0\x8e\xfcp\x8e\xe0\x8e\x1c\x8e\xe0\xe0p\xf0\xe0\xfe\xfc\xf0\xe0\xfcp\xfe\xfcp\x80\x1c\x00\xe0\xf0\xfcp\x8e\xe0\x8e\x1c\x8e\xe0\xe0p\xf0\xe0\xfe\xfcp\xf0\xfc\xf0\xfe\xfcp\x80\x1c\x00\xe0\xfe\xfcp\x8e\xe0\x8e\x1c\x8e\xe0\xe0\xf0\xf0\xe0\xfe\xfcp\xf0\xfcp\xfe\xf
我从制造商那里得到了一些说明,他们如下: 设备在定义的时间间隔内提交数据。时间间隔为 2 秒。 数据的传输是自主的,意味着主机不必发送“请求”。 数据作为格式化字符串中的数据包传输。每 400 毫秒传输一个波数据包,样本为 5 个波。样本为“SHORT”类型,间隔为8毫秒,因此波形数据频率为125赫兹。:
第一波、第二波、第三波、第四波、第五波
5个波的波样传输如下:
字节含义
- 1 开始序列 ESC(十六进制 0x1B)
- 2 CRC 校验和 Highbyte(与数字协议相同)
- 3 CRC 校验和 Lowbyte(与数字协议相同)
- 4 个字节的后续数据(高字节)
- 5 个字节的后续数据(低字节)
- 6 样本 1 Wave 1 Highbyte
- 7 Sample 1 Wave 1 Lowbyte
- 8 样本 1 Wave 2 Highbyte
- 9 样本 1 Wave 2 Lowbyte
- 10 样本 1 Wave 3 Highbyte
- 11 样本 1 Wave 3 Lowbyte
- 12 样本 1 Wave 4 Highbyte
- 13 样本 1 Wave 4 Lowbyte
- 14 样本 1 Wave 5 Highbyte
- 15 样本 1 Wave 5 Lowbyte
- 16 个样本 2 Wave 1 Highbyte
- 17 样本 2 Wave 1 Lowbyte
- 18 个样本 2 Wave 2 Highbyte
- 19 样本 2 Wave 2 Lowbyte
- 20 样本 2 Wave 3 Highbyte
- 21 样本 2 Wave 3 Lowbyte
- 22 样本 2 Wave 4 Highbyte
- 23 样本 2 Wave 4 Lowbyte
- 24 样本 2 Wave 5 Highbyte
- 25 样本 2 Wave 5 Lowbyte
- 26...
在设备上的曲线如下所示: Sample graph
感谢您的建议
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。