Skip to content

Releases: GraysonBellamy/dtollib

Release list

v0.1.0

Choose a tag to compare

@GraysonBellamy GraysonBellamy released this 29 May 23:10
v0.1.0
ede0a3b

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 inputrecord() delivers hardware-clocked blocks through a Win32 message-pump callback bridge, with ErrorPolicy over/underrun handling and durable sinks.
  • Single-value outputwrite() for analog (AO) and digital (DO/port-shaped DIO) with a per-sample §18 safety gate (device-range, safe-band, and requires_confirm checks).
  • Counter / timer — edge counting, frequency, edge-to-edge, plus pulse-train / one-shot outputs via read_events() / measure_frequency().
  • Simultaneous startDtolManager.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 CLIsdtol-discover, dtol-diag, dtol-capture, dtol-read, dtol-info.
  • Cross-platform fake backendmake_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 raises DtolCapabilityError on 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 dtollib

Optional extras: dtollib[postgres], dtollib[parquet].

Full changelog: see CHANGELOG.md.