我将建立一个基于raspberry pi的设备,它从传感器总线(串口)读取数据,对其进行分析并显示在触摸屏上。触摸屏也将用于配置。设备需要具有同等功能的web接口。
我计划做的是将2或3个单独(python)应用程序的应用程序拆分,以数据库作为交换数据的媒介。用于网络接口的烧瓶和触摸屏的基维。为了不选择读取传感器总线的“主人”,我正在考虑引入第三种(无头),即主要工作--获取数据、分析、生成事件并将它们存储到数据库(MongoDB或MySQL)。
理论上,所有框架都可以在单独的线程中工作,具有公共数据空间,但它似乎不那么灵活,而且更难维护和添加另一个接口(例如,另一个串行总线来与其他设备对话),而没有提到与nginx的集成。
这样做对吗?
发布于 2017-01-13 10:06:46
您的方法很好,在这种情况下,“分而治之”在我看来是处理不同输入和输出时的最佳方法。
我会这样设计:
一个应用程序充当API,而另一个应用程序只负责收集输入。
我将把在网页或/和触摸屏上显示信息的责任留给API应用程序(烧瓶应用)。
在烧瓶应用程序上有触摸屏代码。做完之后,看看能不能把它分开。因为它将在一个不同的线程下运行,所以代码将以某种方式编写,这将允许稍后进行相当容易的分离。
我看到的唯一问题是,数据库作为一种通信手段。
使用DB作为应用程序之间通信的一种方式通常不是一个好主意。对于您的烧瓶API应用程序的持久数据,您可以保留一个数据库,但不是为了通信。
我看到两种在您的服务/应用程序之间进行通信的选项。
https://softwareengineering.stackexchange.com/questions/339821
复制相似问题