Skip to main content

xylem

A modular, parallel-ready data acquisition framework

Xylem systems consist of a collection of software components connected to represent the flow of information (data and commands) through the experiment. Each component has a particular relation to data (e.g. Producer, Consumer, Aggregator) which determines the available connections and functionality. For example, Producers introduce new data into the xylem system, and Consumers remove data from the system (e.g. into offline storage). The components work together to get data through the pipeline as smoothly as possible.

Xylem components are designed to fit into code that you already have which controls your experimental equipment and processes your data. For example, if you have code which interfaces with an instrument and prints the data to the console, you can replace the print statement with a call to Producer.produce(). Then, the xylem Producer will send off the data to the downstream xylem components while your code continues running.

The xylem Core is a special component which monitors and commmunicates with all of the other components in the system. It determines if a component has crashed or otherwise become unresponsive, and it also can send state updates and arbitrary messages to the components.

Human operators can access the functionality of the Core component using the Controller component. This component does not participate in the data flow; rather, it allows the human operator to send commands to the system (via the Core) and query its state (also via the Core). You can design your system to respond to any set of commands you'd like, such as "Begin run," "Initialize instrumentation," "Perform calibration," or anything else that makes sense in your system. Internally, your code would translate your commands into state updates that will be sent to the Core. You provide the logic; xylem simply makes sure the messages reach their intended destination.

DAQ Components

Fundamental building blocks for basic setups:

  • Data producer: produces data. Example: digitizers

  • Data consumer: accepts data inputs and sends no output to other xylem components. Examples: offline data storage, live data display

  • Data aggregator: collects data from multiple data producers and supplies the data to multiple data consumers

Compound building blocks for more advanced setups:

  • Data producer group: a collection of data producers whose output is aggregated before being sent to the data aggregator, so that the collection can be treated as a single data producer. Example: an array of identical sensors

Example basic architecture

  • Data producer
  • Data aggregator
  • Data consumer

Example complex architecture

  • Data producer group 1*
    • Data producer
    • Data producer
    • ...
  • Data producer group 2*
    • Data producer
    • Data producer
    • ...
  • Data aggregator 1
    • Data consumer 1+
    • Data consumer 2
    • ...
  • Data aggregator 2
    • Data consumer 1+
    • Data consumer 3
    • ...

*: The data producer groups are located after the data producers in the data flow.

+: A single data consumer instance can receive data from multiple data aggregators.

Metadata

Release files for xylem-daq 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xylem-daq 0.3.2
File Size Uploaded Provenance Actions
xylem-daq-0.3.2.tar.gz 15.1 kB Without provenance Details for xylem-daq-0.3.2.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for xylem-daq 0.3.2
File Interpreter ABI Platform Actions
xylem_daq-0.3.2-py3-none-any.whl Python 3 none any Details for xylem_daq-0.3.2-py3-none-any.whl
xylem_daq-0.3.2-py2-none-any.whl Python 2 none any Details for xylem_daq-0.3.2-py2-none-any.whl

Total release size: 53.8 kB

Release files / xylem-daq-0.3.2.tar.gz

Download URL xylem-daq-0.3.2.tar.gz
Size 15.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7a9924f82d52cb3db226ef4e46762b45f6db53dc5e44bd8a50af17b5ac645be8
BLAKE2b-256 checksum
How to use checksums
80e8137096ef303afe4be81acc1143b21e683bbb7edc7fbfb850a546c063f43e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.19.4 CPython/3.6.4

Release files / xylem_daq-0.3.2-py3-none-any.whl

Download URL xylem_daq-0.3.2-py3-none-any.whl
Size 19.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cf3369c9fce7bc4af59a8c9018d741eb5bb6c7d2a2b5d2bc2dc0bcc05e32132d
BLAKE2b-256 checksum
How to use checksums
c2354f259a81098b3d7834559aeebe33fa7df37a16b1b0e1a7b453de15e7eb04
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.19.4 CPython/3.6.4

Release files / xylem_daq-0.3.2-py2-none-any.whl

Download URL xylem_daq-0.3.2-py2-none-any.whl
Size 19.4 kB
Tags Python 2
SHA-256 checksum
How to use checksums
c514ed882b224133bc82ca83ef0b994792e74af54d1d547010a400ce0fc4d895
BLAKE2b-256 checksum
How to use checksums
4481d6338b5adf132399e40432e12dd53beab6daf634e0c007fec08a2bf1c8f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.4

Security for xylem-daq 0.3.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page