发送serialport数据以进行响应的后台python线程

2024-05-17 07:16:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个带有Flask后端的React应用程序,我希望能够通过串行端口接收数据,处理这些数据,并将其绘制成图形。目前,我正在使用后端发送某些数据(当前时间和可用端口)以作出反应。我想设置一个后台Python线程,该线程将连续运行,使用pyserial从串行端口读取数据,对其进行处理,并将其发送到React,但我不确定实现这一点的最佳方法是什么。我最初的搜索把我带到了Celery;然而,我不确定这是否是一个连续任务的好选择。非常感谢您的帮助


Tags: 数据方法端口应用程序图形flask时间绘制
1条回答
网友
1楼 · 发布于 2024-05-17 07:16:14

问题是,从串行端口读取数据通常是以阻塞方式完成的。这意味着您不定期轮询,而是打开端口一次,然后一直读取,等待新数据的到来

您需要的是一个单独的thread。这是与普通web服务器并行运行的程序的一部分。然后,您需要某种数据库来在该线程和web服务器之间进行通信。如果您希望在设备和服务器重启之间保持数据的持久性,那么应该安装一个真正的数据库,如Postgres。如果没有,您可以简单地在应用程序内存中使用数组

在线程中,从串行端口读取并将值写入数据库/阵列

在REST端点中,输出最后的X值

然后,您的客户端可以对此端点进行轮询

(如果您真的想这样做,您可以使用更事件驱动的方法,但实现起来会更复杂)

相关问题 更多 >