数据流图片流监视器

该代码实现了一个基于 PyQt6 的应用程序,用于订阅和显示数据流或图像流。应用程序提供了一个可滚动的绘图窗口,用户可以通过多种交互方式来管理数据源和配置绘图属性。

功能介绍

该代码实现了一个基于 PyQt6 的应用程序,用于订阅和显示数据流或图像流。应用程序提供了一个可滚动的绘图窗口,用户可以通过多种交互方式来管理数据源和配置绘图属性。

代码结构

  1. 导入必要的模块和库
  2. 定义 PlotDataEditor
  3. 定义 ScrollPlot
  4. 定义 ScrollWindow
  5. 定义脚本入口

类:PlotDataEditor

功能介绍

PlotDataEditor 类是一个小部件,用于管理程序对数据流或图像流的订阅。

方法

  • __init__:初始化 PlotDataEditor 对象,设置布局和控件,更新可用流的列表。
    • 参数:props (属性对象)、data (初始数据字典)、category (流的类别)、parent (父对象)、preselect (预选择的流名称)。
  • update_streamlist:更新流选择框中的可用流列表。
  • updateDatachannel:更新选定的数据通道,并在父对象中设置相关属性。

类:ScrollPlot

功能介绍

ScrollPlot 类是一个绘图部件,用于订阅数据流并实时更新显示。

方法

  • __init__:初始化 ScrollPlot 对象,设置属性,订阅数据流,并配置绘图选项。
    • 参数:name (绘图的名称)、parent (父对象)。
  • initDataBuffer:初始化数据缓冲区,用于存储接收的数据。
  • feedData:将新数据块添加到数据缓冲区,并计算运行平均值(如果启用)。
  • clearPlot:清除绘图中的数据。
  • updatePlot:更新绘图,显示新的数据点和运行平均值。
  • updatePlotContent:更新绘图内容,删除当前内容以便显示新的数据。
  • updateTitle:更新绘图的标题。
  • updateSubscription:更新数据流的订阅,切换到新的数据流。
  • updateDataLists:更新数据列表和相关属性。
  • setnewData:接收新数据并更新绘图。
  • setScatterplot:设置散点图的绘图选项。
  • deletePlot:删除绘图并从属性中移除相关配置。
  • dataSelectDialog:打开数据选择对话框,用于选择新的数据源。
  • subscribe_window:打开订阅窗口,用于管理数据流的订阅。
  • configureWindow:打开配置窗口,用于修改绘图属性。
  • running_mean:静态方法,计算运行平均值。

类:ScrollWindow

功能介绍

ScrollWindow 类是主窗口类,包含多个滚动绘图,用于显示和管理数据流。

方法

  • __init__:初始化 ScrollWindow 对象,设置窗口和工具栏,并恢复之前保存的绘图。
    • 参数:name (窗口的名称)、parent (父对象)、n_plots (初始绘图数量)。
  • init_toolbar:初始化工具栏,添加操作按钮。
  • updateAllSubscriptions:更新所有绘图的订阅。
  • restorePlots:恢复之前保存的绘图。
  • addPlot:添加新绘图到窗口中。

脚本入口

功能介绍

脚本入口用于创建应用程序实例,显示主窗口并启动应用事件循环。

主要步骤

  1. 创建 QApplication 实例。
  2. 创建 ScrollWindow 实例。
  3. 显示主窗口。
  4. 启动应用事件循环。

总结

该代码实现了一个完整的 PyQt6 应用程序,用于管理和显示数据流。通过定义多个类和方法,用户可以方便地订阅数据流、配置绘图属性以及实时更新绘图。