gpt4 book ai didi

python - 串行数据记录器,即时解析

转载 作者:行者123 更新时间:2023-11-28 18:50:30 26 4
gpt4 key购买 nike

我正在尝试组装一个 Python 数据记录器并寻求一些建议。这是我的情况。我不希望任何用户干预。只需插入并记录。到目前为止,我正在使用 PySerial 模块,并且能够将所有串行数据记录到一个文本文件中。我读取一行,存储在一个变量中,然后将该变量以追加模式写入文件。

现在我想将此数据传输到网络以进行绘图。这就是我头疼的地方。我应该尝试将其发送到 SQL 服务器还是仅发送到文本文件?我使用的是 3g 模块,但速度/带宽有限。数据以每 .25 秒 1 个样本的速度流式传输到记录器这是一个示例:

1 324 23454 2342 0 233 0 0 12223 66453 443 33 33 20 0 0 0 0

所以我认为我不需要发送每个样本,也许只需每秒或每隔一秒发送一行。

记录器只会运行大约 5 天,然后会记录所有数据。现在我的问题是,是否有关于我应该如何/向何处发送数据的建议? SQL 还是文本文件?接下来,如果我有这些在线数据,是否有一种简单的方法可以在流式传输时实时绘制这些数据?

为了锦上添花,有时原始数据将以空格分隔,有时以制表符分隔,有时以逗号分隔。

如有任何意见,我们将不胜感激!

最佳答案

好的,您在这里有很多问题。我将尝试解决每个问题:

数据库

将每一行保存在数据库的一个表中。它会让你的生活更轻松。我建议使用可以处理大负载的东西,例如 MySQL 或 Postgres。我可以建议下表设计。 line 是你的数据,uploaded 是一个标志,表示该行是否已经上传到服务器。 line_date 可以记录读取读数的确切日期时间,这可能有助于捕获。如果您的数据行是可变的并且您不想设置固定长度,请将 varchar(200) 更改为文本。我建议您将此表保留在客户端,并使用上传字段作为标志来指示此行是否已上传到服务器。这样您就不会在任何网络连接问题期间丢失任何数据,并且您可以跟踪哪些线路仍在等待上传。然后,您可以让一个脚本只插入行,另一个脚本或线程读取未上传行的列表并每隔一秒左右上传一次。为简单起见,您还可以在服务器上使用几乎相同的表设计。

CREATE TABLE data_lines (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
line VARCHAR(200),
uploaded INT,
line_date DATETIME
);

解析行

您提到原始数据将以空格分隔,有时以制表符分隔,有时以逗号分隔。这行简单的代码可以处理所有这些情况。

>>> line = "1,2 3\t4"
>>> print line.replace(',', ' ').split()
['1', '2', '3', '4']

实时图表

Flot是要走的路。他们制作非常棒的基于网络的实时图表。你可以看到一个 example of one here .

关于python - 串行数据记录器,即时解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13706012/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com