Skip to main content

Module for communicating with TDT's System 3 hardware

Project description

https://zenodo.org/badge/doi/10.5281/zenodo.17651.svg

TDTPy is a Python wrapper around Tucker-Davis Technologies ActiveX library [PDF link] (known as RPcoX) for communicating with their System 3 hardware (e.g. the RP2.1, RX6, RZ6, etc.).

In addition to the standard operations (loading circuits, configuring tags and reading/writing to hardware buffers), TDTPy offers a number of high-level features that are not included in the ActiveX library:

  • Handling type conversion between analog and digital units (e.g. converting seconds to number of DSP cycles based on the CPU frequency of the hardware).

  • Remote procedure call (RPC) server for allowing multiple processes and/or programs to communicate with the hardware across the same connection. The drivers provided by TDT do not handle concurrency issues. To handle these issues, we have created a RPC server that handles concurrency issues, allowing multiple programs to talk to the hardware simultaneously. The programs can either run on the same computer or on a separate computer.

  • If you use the RPC server, your client code can run on any platform (e.g. Mac OSX, Unix, Solaris, etc); however, the server must run on a Windows-based computer.

  • Simple reads and writes. The hardware buffers are implemented as “ring buffers” with various features such as multichannel storage and data compression. TDTPy automatically detects the configuration of the hardware buffer and returns a buffer object (DSPBuffer) that you can read/write to without having to deal with the intricacies of the hardware buffer itself.

  • Robust error handling. Some methods in the ActiveX library will fail silently (e.g. if you try to access a nonexistent tag, attempt to write more data than the hardware buffer can hold, or wire up a tag to a static port). When the RPvds circuit is first loaded to the hardware, TDTPy will inspect the microcode (i.e. the RPvds circuit) and store some information about the tags and buffers available. All subsequent operations are validated against this metadata before being passed to the ActiveX library. If an invalid operation is attempted, a DSPError is raised with the appropriate message.

The minimum required dependencies to run the software are:

  • Python >= 2.7

  • NumPy >= 1.8

  • pywin32

  • six

License

TDTPy is distributed under the BSD license.

Contributors

  • Brad Buran (New York University, Oregon Health & Science University)

  • Eric Larson (University of Washington)

  • Decibel Therapeutics, Inc.

Source code: http://github.com/LABSN/tdtpy

Documentation: http://tdtpy.readthedocs.org

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

TDTPy-0.8.0.tar.gz (346.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

TDTPy-0.8.0-py3-none-any.whl (357.9 kB view details)

Uploaded Python 3

File details

Details for the file TDTPy-0.8.0.tar.gz.

File metadata

  • Download URL: TDTPy-0.8.0.tar.gz
  • Upload date:
  • Size: 346.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/41.1.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.7.5

File hashes

Hashes for TDTPy-0.8.0.tar.gz
Algorithm Hash digest
SHA256 0d0dc0cf9467abba4d44dab4c244eae66c916e88d0b3448fd6351f9b1a91f729
MD5 177da07ec4b397d77a2827478e722a5d
BLAKE2b-256 bf42057db5bc187182c62742f6e072d3f45a9910e52bad50f0b9084ae4831536

See more details on using hashes here.

File details

Details for the file TDTPy-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: TDTPy-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 357.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/41.1.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.7.5

File hashes

Hashes for TDTPy-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bdaa43b35284ead8be35b9b53f2b4390afb2c2d5ad649090b9b4dff931fba32d
MD5 51903793362fd82460a871b292c636f2
BLAKE2b-256 d0f7fa0120fcc4322d75e950d8ddff0f783b123bd5b93faee8d7cbd85244132c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page