Releases: GraysonBellamy/dtollib
Releases · GraysonBellamy/dtollib
Release list
v0.1.0
dtollib 0.1.0 — first public release
dtollib is an experiment-facing, async-first acquisition layer for Data Translation DT-Open Layers hardware (DT9805 / DT9806), wrapping the DataAcq SDK via ctypes. Built on AnyIO, typed end-to-end, and bench-verified against SDK V7.0.0.7.
⚠️ Alpha. Windows-only (Win32 message window +ctypes.WinDLL), Python ≥ 3.13. APIs may still shift before 1.0.
Highlights
- Continuous analog input —
record()delivers hardware-clocked blocks through a Win32 message-pump callback bridge, withErrorPolicyover/underrun handling and durable sinks. - Single-value output —
write()for analog (AO) and digital (DO/port-shaped DIO) with a per-sample §18 safety gate (device-range, safe-band, andrequires_confirmchecks). - Counter / timer — edge counting, frequency, edge-to-edge, plus pulse-train / one-shot outputs via
read_events()/measure_frequency(). - Simultaneous start —
DtolManager.start_synchronized()runs the SDK SS-list sequence (single-board, single-backend). - Thermocouples in software — NIST ITS-90 forward/inverse polynomials (Type K/J) with CJC compensation; the DT9805/06 don't linearize in firmware.
- Five CLIs —
dtol-discover,dtol-diag,dtol-capture,dtol-read,dtol-info. - Cross-platform fake backend —
make_fake_dt9805()/make_fake_dt9806()let the full software path be tested with no hardware or SDK present.
Hardware notes
- DT9805/06 A/D is fixed ±10 V, gain-selected (no per-channel range).
- DT9806 D/A is single-value only — no continuous waveform output.
play()ships and is fake-tested, but raisesDtolCapabilityErroron current boards; it's ready for a future streaming-DAC board. - Quadrature / tachometer / MEASURE counter modes raise
DtolCapabilityError(unsupported by these boards).
Install
pip install dtollibOptional extras: dtollib[postgres], dtollib[parquet].
Full changelog: see CHANGELOG.md.