模块化数据采集系统
xylem-daq的Python项目详细描述
木质部
模块化并行数据采集框架
木质部系统由连接的软件组件集合组成 表示信息流(数据和命令)通过 实验。每个组件都与数据有特定的关系 (例如生产商、消费者、聚合商)确定可用的 连接和功能。例如,生产者引入新的数据 进入木质部系统,消费者从系统中移除数据(例如 进入离线存储)。这些组件一起工作以获得数据 管道尽可能的顺畅。
Xylem组件的设计适合于您已经拥有的代码
它控制你的实验设备并处理你的数据。为
例如,如果您有与仪器接口并打印的代码
在控制台的数据中,可以用
调用Producer.produce()
。然后,木质部生产商将
当代码继续运行时,将数据发送到下游的木质部组件
跑步。
木质部核心是一个特殊的组成部分,用来监视和沟通 以及系统中的所有其他组件。它决定 组件已崩溃或变得无响应,并且它还可以 向组件发送状态更新和任意消息。
人工操作员可以使用 控制器组件。此组件不参与 数据流;相反,它允许人工操作员向 系统(通过核心)并查询其状态(也通过核心)。你可以 设计您的系统以响应任何一组您想要的命令,例如 作为“开始运行”、“初始化仪器”、“执行校准”或 任何在你的系统中有意义的东西。在内部,你的代码 将您的命令转换为将发送到的状态更新 核心。你提供了逻辑;xylem只是确保消息 到达目的地。
DAQ组件
基本设置的基本构造块:
数据生成器:生成数据。示例:数字化仪
数据使用者:接受数据输入,不向其他用户发送输出 木质部成分。示例:脱机数据存储、实时数据显示
数据聚合器:从多个数据生成器和 将数据提供给多个数据使用者
用于更高级设置的复合构造块:
- 数据生产者组:数据生产者的集合 其输出在 发送到数据聚合器,以便可以将集合视为 一个单一的数据生产者。示例:一组相同的传感器
基本架构示例
- 数据生产者
- 数据聚合器
- 数据使用者
复杂体系结构示例
- 数据生产者组1
- 数据生产者
- 数据生产者
- 。
- 数据生产者组2
- 数据生产者
- 数据生产者
- 。
- 数据聚合器1
- 数据使用者1
- 数据使用者2
- 。
- 数据聚合器2
- 数据使用者1
- 数据使用者3
- 。
*:数据生成器组位于 数据流。
+:单个数据使用者实例可以从多个数据接收数据 聚合器。