Python 套接字传感器 gui 系统

Python for sockets sensors gui system

我是套接字编程和 SW 架构的新手。

我的系统必须是:使用 python 的笔记本电脑中的 GUI。有许多具有相同传感器(GPS、温度、压力……)的嵌入式系统。每次你 select 一个嵌入式系统,我的程序需要与它建立连接,我需要在 GUI 中显示它的 GPS 位置和它的传感器的实时馈送(目前 GUI 不是问题,我可以用 Kivy 或 Tkinter 来做)。

这就是它必须运行的方式:

我正在考虑用这个架构来做:

在套接字线程中,我有 send_message() 和 receive_message() 等方法通过 TCP/IP 发送获取 GPS 和传感器数据或停止系统的请求.

在每个嵌入式系统上,我都会使用 python 放置一个服务器,每次系统启动时都会设置该服务器。 这样系统的ID就是服务器的ip,而我的笔记本电脑就是客户端,当我select一个系统时搜索ip地址。

我的问题是:

提前谢谢你,

总的来说,我觉得你的方法没问题。

但是,您应该记住以下几点:

在设计软件时,您应该首先确定所涉及的不同任务,并为每个任务定义单独的功能单元。这就是separation of concerns.

的概念

我还建议阅读 Model-View-Controller (MVC) pattern: In your case, the model would be your class containing the data structure for the measurements and the business logic (e.g. polling data from a source for example every second until the connection is stopped). The view and the controller might both be located in the GUI (which is absolutely fine).

GUI 不一定是显式线程,但许多框架更倾向于使用基于事件的概念,让您可以为给定的用户交互定义应用程序的行为。

为什么您实际上需要测量列表?是否需要在特定时间段内保留测量历史记录?这是一个会不断增长的列表还是一个滚动列表(例如,用于在 GUI 中显示最后 n seconds/minutes 个测量值)?为每个新连接启动一个新的 class 实例似乎有点矛盾,因为当您停止连接并终止实例时,您显然会丢失内容。

希望这能给您一些关于如何从那里开始的想法。