将串行端口数据发送到React的后台python线程

问题描述

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

解决方法

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

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

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

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

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

(如果您确实想花点时间,可以使用更多的事件驱动方法,但是实现起来会更加复杂)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...