Control-loop and data pipeline for the Deimos data acquisition system
Project description
Deimos
Control program and data integrations for the Deimos data acquisition ecosystem.
See the project readme for contact details as well as commentary about the goals and state of the project.
The control program and the firmware-software shared library share a changelog at the workspace level.
Install - Rust
cargo add deimos
Install - Python
pip install deimos-daq
Features & Roadmap
✅ Implemented | 💡 Planned
| Feature Category | Features |
|---|---|
| Control Loop | ✅ Fixed-dt roundtrip control loop ✅ Network scanning for available hardware ✅ Planned loop termination ✅ Global event logging ✅ Reconnection ✅ Low-CPU-usage background operation |
| Control Calcs | ✅ User-defined custom calcs ✅ Explicit (acyclic) calc expression ✅ Low-pass filters ✅ Sequenced state machines ✅ Polynomial calibration curves 💡 Cyclic expressions with explicit time-delay 💡 Prototype calc w/ rhai script-defined inner function |
| Data Integrations | ✅ User-defined custom targets ✅ Manual read/write ✅ CSV ✅ In-memory dataframe ✅ TimescaleDB 💡 InfluxDB 💡 Zarr file/bucket 💡 Generic sqlite, postgres, etc. |
| Hardware Peripherals | ✅ Deimos DAQs ✅ User-defined custom hardware ✅ User-defined hardware drivers ✅ Hardware-out-of-the-loop wrapper |
| Socket Interfaces (peripheral I/O) |
✅ User-defined custom interfaces ✅ UDP/IPV4 ✅ Unix socket ✅ Thread channel sideloading 💡 TCP 💡 UDP/IPV6 |
Concept of Operation
The control program follows the hardware peripheral state machine,
which is linear except that an error in any peripheral state results
in returning to Connecting.
Peripheral states:
Connecting(no communication with the control machine)Binding(waiting to associate with a control machine)Configuring(waiting for operation-specific configuration from control machine)Operating(roundtrip control)
The controller initialization schedule is:
--------------------binding timeout windows
/ /
/ Controller init /
|====|=====================|====| timeout to operating
scan for| |==============|
peripherals| | \
(broadcast| sent binding| \
binding)| | configuring window
peripherals|
transition|
to configuring|
In words,
- Scan network for peripherals available to bind
- Broadcast binding request, but do not send configuration; allow Configuring to time out back to Connecting
- Initialize controller (set up data integrations, initialize internal state, etc)
- Send binding request
- Wait for binding responses
- Send configuration
- Wait for start of Operating
Peripherals acknowledge binding and transition to configuring on their next internal cycle (usually 1ms) after receiving a request to bind. They will then wait for configuration input until the timeout
to operating, and either proceed to Operating if configuration was
successful, or return to Connecting (and likely return immediately to Binding) if configuration was not successful.
The control loop then follows a fixed schedule on each cycle:
- Send control input to peripherals
- Wait for outputs from peripherals
- Target synchronization to middle of cycle
- Update time-sync control
- Run calculations on peripheral outputs
Control loop timing uses the control machine's best available monotonic clock. Both system time in UTC with nanoseconds and monotonic clock time are stored in order to support post-processing adjustments to account for the slow drift of the monotonic clock relative to system time.
Example: 200Hz Control Program w/ 2 DAQs
use std::time::Duration;
use deimos::calc::{Constant, Sin};
use deimos::peripheral::{PluginMap, analog_i_rev_3::AnalogIRev3};
use controller::context::ControllerCtx;
use deimos::*;
// The name of the operation will be used as the table name for databases,
// or as the file name for local storage.
let op_name = "test_op".to_owned();
// An optional dictionary mapping user-defined custom hardware
// peripheral model numbers to initializer functions.
let peripheral_plugins: Option<PluginMap> = None;
// Configure the controller
// Sample interval is taken as integer nanoseconds
// so that any rounding and loss of precision is visible to the user
let rate_hz = 200.0;
let dt_ns = (1e9_f64 / rate_hz).ceil() as u32; // Control cycle period
// Define idle controller
let mut ctx = ControllerCtx::default();
ctx.op_name = op_name;
ctx.dt_ns = dt_ns;
let mut controller = Controller::new(ctx);
// Set up any number of data integrations,
// all of which will receive the same data at each cycle of the control loop
// TSDB-flavored postgres database
let buffer_window = Duration::from_nanos(1); // Non-buffering mode
let retention_time = Duration::from_secs(60 * 60);
let timescale_dispatcher: Box<dyn Dispatcher> = TimescaleDbDispatcher::new(
"<database name>", // Database name
"<database address>", // URL or unix socket interface
"<username>", // Login name; for unix socket, must match OS username
"<token env var>", // Environment variable containing password or token
buffer_window,
retention_time,
);
controller.add_dispatcher("tsdb", timescale_dispatcher);
// A 50MB CSV file that will be wrapped and overwritten when full
let csv_dispatcher: Box<dyn Dispatcher> =
CsvDispatcher::new(50, dispatcher::Overflow::Wrap);
controller.add_dispatcher("csv", csv_dispatcher);
// Associate hardware peripherals that we expect to find on the network
// The controller can also run with no peripherals at all, and simply do
// calculations on a fixed time interval.
controller.add_peripheral("p1", Box::new(AnalogIRev3 { serial_number: 1 }));
controller.add_peripheral("p2", Box::new(AnalogIRev3 { serial_number: 2 }));
// Set up calcs that will be run at each cycle
// Add a constant for duty cycle and a sine wave for frequency
let freq = Sin::new(1.0 / (rate_hz / 100.0), 0.25, 100.0, 250_000.0, true);
let duty = Constant::new(0.5, true);
controller.add_calc("freq", freq);
controller.add_calc("duty", duty);
// Set a PWM on the first peripheral to change its frequency in time
controller.set_peripheral_input_source("p1.pwm0_freq", "freq.y"); // A value to be written to the hardware
controller.set_peripheral_input_source("p1.pwm0_duty", "duty.y");
// Set a PWM frequency on one peripheral based on a measured temperature from the other peripheral
controller.set_peripheral_input_source("p2.pwm0_duty", "duty.y"); // Values can be referenced any number of times
controller.set_peripheral_input_source("p2.pwm0_freq", "p1_rtd_5.temperature_K");
// Serialize and deserialize the controller (for demonstration purposes).
// All of the configuration up to this point, including any custom peripheral plugins
// or user-defined calcs, are serialized with the controller and can be written to and read from a json file.
let serialized_controller: String = serde_json::to_string_pretty(&controller).unwrap();
let _deserialized_controller: Controller = serde_json::from_str(&serialized_controller).unwrap();
// Run the control program
// (skipped here because there are no peripherals
// or databases on the network in the test environment).
// controller.run(&peripheral_plugins, None);
Direct-to-PC Ethernet Connection and Statically-Addressed Networks
Deimos DAQs can be connected directly to your computer by ethernet, bypassing the need for a router or network switch. They can also be used on networks with a switch but no router.
When a Deimos DAQ connects to a network without a DHCP server to provide dynamic IP address assignments,
it will automatically self-assign an IP address in the 169.254.x.[2-254]/16 range.
It will attempt up to 3 candidate addresses, which limits the maximum amount of address resolution spam on the network, while also yielding a trivially small probability that no candidate address is available.
The rev7 firmware's IPv4 address manager follows this state machine:
stateDiagram-v2
direction LR
[*] --> Unconfigured
Unconfigured --> TentativeFallback: Claim next MAC-derived<br>static address candidate
Unconfigured --> ActiveDhcp: DHCP configured
TentativeFallback --> ActiveFallback: No ARP conflict
TentativeFallback --> Unconfigured: ARP conflict
TentativeFallback --> ActiveDhcp: DHCP configured
ActiveFallback --> ActiveDhcp: DHCP configured
ActiveDhcp --> Unconfigured: DHCP deconfigured
To connect directly without a router,
- Connect the DAQ's ethernet cable to your computer's ethernet port.
- (or to a shared network switch with no router).
- If your computer does not have an ethernet port, an ethernet-to-USB adapter can be used at the expense of added latency.
- Check your computer's network settings.
- Make sure that a static IP address was assigned in the 169.254.X.Y range.
- This should occur automatically on MacOS and Windows.
- On linux, you may need to manually set a static IPV4 address:
169.254.254.1/16
Make sure the netmask for your computer's static address is set to exactly /16 (255.255.0.0).
Otherwise, the DAQ will not recognize your computer as being on the same link-local network, and will not respond to your attempts to scan or bind it.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file deimos_daq-0.16.1.tar.gz.
File metadata
- Download URL: deimos_daq-0.16.1.tar.gz
- Upload date:
- Size: 313.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1eaaa473f2546908f9e81e754e89c6444ac592a7d5ead7bf791d5e1333e5c055
|
|
| MD5 |
272e0be9e3589b5521094cbee5135949
|
|
| BLAKE2b-256 |
6f528b08b9423d2e20bfd6cd7e07fda18f43674cd3d12d753587e7ad76ba877c
|
File details
Details for the file deimos_daq-0.16.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: deimos_daq-0.16.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: PyPy, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
882f5120e30565753138e3db2cbb040760be430045aa3b9b75f21320a978baf2
|
|
| MD5 |
864843b77926dbe0321acdc525ae1bc3
|
|
| BLAKE2b-256 |
ecd5e22fbe595d689512f752d591afcdecaf34d338c00f1b9b073ce52e353fe2
|
File details
Details for the file deimos_daq-0.16.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl.
File metadata
- Download URL: deimos_daq-0.16.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl
- Upload date:
- Size: 2.7 MB
- Tags: PyPy, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cc230bd7605860365cadd9a076f6abdb9adc406d5d4535740463588bdbe9fdb
|
|
| MD5 |
3199965fe53c9220699cd262aa43513a
|
|
| BLAKE2b-256 |
080f368b5feadf9c9776eab31474190c6349e2cbc69e6ce408d4ed47d103de6e
|
File details
Details for the file deimos_daq-0.16.1-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl.
File metadata
- Download URL: deimos_daq-0.16.1-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 2.8 MB
- Tags: PyPy, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0de6b6f3fa641474d823e8846d2286dba332b2615d16ea1826f6f13875a869ba
|
|
| MD5 |
0f24f82fc81d8bc743c9d3eb33fc5b46
|
|
| BLAKE2b-256 |
93c4b301bc3b6b5967a8553f01da6e731068902c6a9fe1670c3ab2955541466c
|
File details
Details for the file deimos_daq-0.16.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: deimos_daq-0.16.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 2.6 MB
- Tags: PyPy, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a5b0313243d9f944e4ea485c80312b047bc2c478bfcd605559c58d0f2b71f7f
|
|
| MD5 |
53966a5200b2ce4630f98c3d8c9066a5
|
|
| BLAKE2b-256 |
e985fa3cd05fafa10e79ee0f984aa1af62184675164718d836dc6388f1bd9be1
|
File details
Details for the file deimos_daq-0.16.1-cp314-cp314t-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp314-cp314t-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.14t, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3dadaf52da83fb37cc35659ffc2564e9958d54a1a934d5d9150b1781a3a6593
|
|
| MD5 |
4baf7f30c92a7c07f68b2f3187905ef8
|
|
| BLAKE2b-256 |
c2a4deb8feea6445c8c253707cf6c6cd3ed80eb4b8950035f857ebbab5cbc6a4
|
File details
Details for the file deimos_daq-0.16.1-cp314-cp314t-musllinux_1_2_i686.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp314-cp314t-musllinux_1_2_i686.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.14t, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ee05deb5c0dc913d72611a811430eb1def472bcf4ed918ee9f4d5bf67972a53
|
|
| MD5 |
11b9ceb6c35277763dd07b75d719fec6
|
|
| BLAKE2b-256 |
6b24ca1281776414733bb5478a10e6e5bf81cfae3b8a698fc954ec689f499fcc
|
File details
Details for the file deimos_daq-0.16.1-cp314-cp314t-musllinux_1_2_armv7l.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp314-cp314t-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 2.8 MB
- Tags: CPython 3.14t, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67585722457efb9780c6bd2422548be79cdcdf5ec9945f66b07ff898edf9b66b
|
|
| MD5 |
6c1745480c5d8170aa00584af74e9489
|
|
| BLAKE2b-256 |
d4553fea6c342c02edda7a9373066c4dd561add242b943dce3b7abec7575d05f
|
File details
Details for the file deimos_daq-0.16.1-cp314-cp314t-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp314-cp314t-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.14t, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e942f9bb7acb5e34a8963afa4f7cb88cd17a3910706be98c090db0904faceeee
|
|
| MD5 |
6fbf635961eae68ba5a07f6ddc4e1a79
|
|
| BLAKE2b-256 |
a6dc029dd67178c057bbb61ec9de3706a74b1600dac095448ed3ff7ff9864aac
|
File details
Details for the file deimos_daq-0.16.1-cp313-cp313t-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp313-cp313t-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.13t, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3dff1380492fc829f75287b9edc6546f59ac586951dec16c21abdebd4e57009
|
|
| MD5 |
e8e06988b8d303945948da3333af04cb
|
|
| BLAKE2b-256 |
a57caa59f218b1cd768f9998255c4adec0e038991c7e795612a0268dfcdbdb16
|
File details
Details for the file deimos_daq-0.16.1-cp313-cp313t-musllinux_1_2_i686.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp313-cp313t-musllinux_1_2_i686.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.13t, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6f335cb59055600e3fb1486c5ae69453dfecd256a8599ac94cba3a4b7bed886
|
|
| MD5 |
9b7cc5dd7f6ee34794f735802193612a
|
|
| BLAKE2b-256 |
cb35f21b8f51cc6c03cabc29c4e129cf61e00d635a1f06681eee3f5ee1b32a97
|
File details
Details for the file deimos_daq-0.16.1-cp313-cp313t-musllinux_1_2_armv7l.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp313-cp313t-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 2.8 MB
- Tags: CPython 3.13t, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
640dc7a8b2a9cd7136aba6984245507a15f50410c821ccecebaf133e5ac54c97
|
|
| MD5 |
4540dd21982e500c7bbe7286d9b4c143
|
|
| BLAKE2b-256 |
4d899c7420c8dd23d4632a6d5364d6b5c1d17d29aa4a451b5165191f0f45f596
|
File details
Details for the file deimos_daq-0.16.1-cp313-cp313t-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp313-cp313t-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.13t, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d2a6e7fe6815109ef4e86577883757a733941709d71ca97bca8e09d27aa1b21
|
|
| MD5 |
2d2f66f2a323ccbebad268d7ca890854
|
|
| BLAKE2b-256 |
fc135e537d8179338f11781eea58ef7b0509d890dbcd079964c870c3998e8d03
|
File details
Details for the file deimos_daq-0.16.1-cp311-abi3-win_amd64.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp311-abi3-win_amd64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.11+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef7f06491383ad426e91fa6370707d3043edf805cb9ff9cd3a996d9eeeaad1e3
|
|
| MD5 |
83d5d030ab6208394cc8f13fda068198
|
|
| BLAKE2b-256 |
984f87ac02c26175183c6ee611c7a4d9c996e717f339b379fc06af31bd5eb7c0
|
File details
Details for the file deimos_daq-0.16.1-cp311-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp311-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.11+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef88aa03d43845060a213faea6b9b2b27cb43e3460869b631e9860e28cf13d5d
|
|
| MD5 |
e8ac5dcb6a48de207060754bcd90318e
|
|
| BLAKE2b-256 |
49e05e7cf365c460edb62b30d2a5a179c82bf6287b575f2ed5df56346fb6f008
|
File details
Details for the file deimos_daq-0.16.1-cp311-abi3-musllinux_1_2_i686.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp311-abi3-musllinux_1_2_i686.whl
- Upload date:
- Size: 2.7 MB
- Tags: CPython 3.11+, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38ea0714c063d0f9d7048c14b5d88e169b7fec41be43e77bdee04fa774c0bcea
|
|
| MD5 |
08787844f5b75b7a9bd9b2651a53d288
|
|
| BLAKE2b-256 |
8933cbbc476d4a2186171e9a5e1d3ad6db8e4247cedfdaaa04b6a2fabfea1abd
|
File details
Details for the file deimos_daq-0.16.1-cp311-abi3-musllinux_1_2_armv7l.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp311-abi3-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 2.8 MB
- Tags: CPython 3.11+, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a44dc54bfc64a0d5001991c8700e4ee1b915b70fa0ea6a5d38e5e33f8b5c0ca
|
|
| MD5 |
f61a684f7f8905af9e851a8b443442e0
|
|
| BLAKE2b-256 |
2a768bd7c18ce434e2e636757ee9a4dd738a33efb8ac0f2e7e6ee6d978fc79d5
|
File details
Details for the file deimos_daq-0.16.1-cp311-abi3-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp311-abi3-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.11+, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bac8721ce964328a42d756c64cc75a34f74066efcb71d50dd348684e3812e876
|
|
| MD5 |
225fc5af629d3f18ed2577c3f00613b9
|
|
| BLAKE2b-256 |
c116121a52d1b715ae040e1537a90989775468b4c7d6b2c1ceb32a41eccb2a63
|
File details
Details for the file deimos_daq-0.16.1-cp311-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp311-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.11+, manylinux: glibc 2.17+ s390x
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e11227bd9653fe092534d4bfbe32d002167d056270d6de26741953866004c7d2
|
|
| MD5 |
3dae78e7eab138a2897c2f0a413a4c7f
|
|
| BLAKE2b-256 |
8e24c315bc45a905e96da3ea152d348abc7e1ed20fc5f807e6c0f33acd30e999
|
File details
Details for the file deimos_daq-0.16.1-cp311-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp311-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
- Upload date:
- Size: 2.6 MB
- Tags: CPython 3.11+, manylinux: glibc 2.17+ ppc64le
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0eb2b4513722f1faeb694988dddf9470f8e456ec7251689845d6b55735aa4a1a
|
|
| MD5 |
8650b3dc73f373ef8c286f6c689f5443
|
|
| BLAKE2b-256 |
aaf37d17d88eac9b4c3718b3e60ecbf83da9dc96e1118e78cbb9b514ae3db3c6
|
File details
Details for the file deimos_daq-0.16.1-cp311-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp311-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.11+, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a19f65ab0fe03db5b7789ef6b36c8135fffde13ea7edac2318e712b1614fda8
|
|
| MD5 |
89345f0658d7b9e43a1499b4306fdc9a
|
|
| BLAKE2b-256 |
3342b3a96c92a6e07a59c9722fc5385c425353a417ab691d5145dd73f42b77cd
|
File details
Details for the file deimos_daq-0.16.1-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.11+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8eee324c1b58643eca5b061b02f6021d31efabf0f3468a206ab801b8997b0b02
|
|
| MD5 |
cf11db9840505da438b435bf683eb51d
|
|
| BLAKE2b-256 |
0b96478459ef7a1336b9a9c27933fbc37293672b7e09837e015b10565b923b91
|
File details
Details for the file deimos_daq-0.16.1-cp311-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp311-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.11+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59121387419b15745a0b4a847e8b2fe61f49450de4cbbe2b3af5dac05c91a9a3
|
|
| MD5 |
6c172c4c5f33a2f2d9011b66da1a52e9
|
|
| BLAKE2b-256 |
efcdd5c0bf675d788ef922f47c9c217466b35618ba93e92d334c5e2b1776021a
|
File details
Details for the file deimos_daq-0.16.1-cp311-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp311-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.11+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d36f318cf3b297dd62d798cac590ad78707dd8b9cf59ea0cf2dcbca11ebacdf1
|
|
| MD5 |
4f5f8e7d9c1250a81b5c0294c71fe98b
|
|
| BLAKE2b-256 |
f0bc5c66478451f77246288a1bb6dcec8d62d6c704dceeda40701a596760d418
|
File details
Details for the file deimos_daq-0.16.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: deimos_daq-0.16.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.5 MB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aefaa30319eaca36c97f600eae8d364a17007a8bb11993843e035c35fbd006c2
|
|
| MD5 |
382d49c23b25d7dcbfb2ffb7edfb6cb3
|
|
| BLAKE2b-256 |
fdf9ab57190122d2e68dc0b7b013b23fd21ec64c1e586bd9583d661f6abe1769
|