模块化数据采集系统

xylem-daq的Python项目详细描述


木质部

模块化并行数据采集框架

木质部系统由连接的软件组件集合组成 表示信息流(数据和命令)通过 实验。每个组件都与数据有特定的关系 (例如生产商、消费者、聚合商)确定可用的 连接和功能。例如,生产者引入新的数据 进入木质部系统,消费者从系统中移除数据(例如 进入离线存储)。这些组件一起工作以获得数据 管道尽可能的顺畅。

Xylem组件的设计适合于您已经拥有的代码 它控制你的实验设备并处理你的数据。为 例如,如果您有与仪器接口并打印的代码 在控制台的数据中,可以用 调用Producer.produce()。然后,木质部生产商将 当代码继续运行时,将数据发送到下游的木质部组件 跑步。

木质部核心是一个特殊的组成部分,用来监视和沟通 以及系统中的所有其他组件。它决定 组件已崩溃或变得无响应,并且它还可以 向组件发送状态更新和任意消息。

人工操作员可以使用 控制器组件。此组件不参与 数据流;相反,它允许人工操作员向 系统(通过核心)并查询其状态(也通过核心)。你可以 设计您的系统以响应任何一组您想要的命令,例如 作为“开始运行”、“初始化仪器”、“执行校准”或 任何在你的系统中有意义的东西。在内部,你的代码 将您的命令转换为将发送到的状态更新 核心。你提供了逻辑;xylem只是确保消息 到达目的地。

DAQ组件

基本设置的基本构造块:

  • 数据生成器:生成数据。示例:数字化仪

  • 数据使用者:接受数据输入,不向其他用户发送输出 木质部成分。示例:脱机数据存储、实时数据显示

  • 数据聚合器:从多个数据生成器和 将数据提供给多个数据使用者

用于更高级设置的复合构造块:

  • 数据生产者组:数据生产者的集合 其输出在 发送到数据聚合器,以便可以将集合视为 一个单一的数据生产者。示例:一组相同的传感器

基本架构示例

  • 数据生产者
  • 数据聚合器
  • 数据使用者

复杂体系结构示例

  • 数据生产者组1
    • 数据生产者
    • 数据生产者
  • 数据生产者组2
    • 数据生产者
    • 数据生产者
  • 数据聚合器1
    • 数据使用者1
    • 数据使用者2
  • 数据聚合器2
    • 数据使用者1
    • 数据使用者3

*:数据生成器组位于 数据流。

+:单个数据使用者实例可以从多个数据接收数据 聚合器。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
maven字段#getGenericType()抛出java。lang.TypeNotPresentException   用java绘制三角形的几何图形   java无法下载主题和发件人地址(rediff)   java如何使代码线程安全   java在尝试转换FileInputStream中的文件时,我遇到了一个FileNotFound异常   java Moxy和Jackson如何将Json映射到Pojo   在foreach循环中使用BufferedWriter生成新行的java问题   java为什么我的测试在单次执行中运行时间小于1秒,而在maven构建中运行时间大于20秒?   java如何显示下载附件的进度条   了解java rmi的良好实践   .net可以将Java portlet嵌入ASP。网页?   循环如何多次执行Java方法?   java如何确保用户输入在给定的有效范围内?   java单元测试定理   java如何在IntelliJ上运行外部构建项目?   JAVA:试图编写一个检查字符串是否为数字的方法。总是返回错误   javahadoop将特定键的所有map方法生成的所有值都发送到一个reduce方法,对吗?   在java中读取和使用文件