tektronix / TekHSI

Transfer waveforms from Tektronix Oscilloscopes using the High-Speed Interface
https://tekhsi.readthedocs.io
Apache License 2.0
5 stars 4 forks source link
| | | | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Testing** | [![Code testing status](https://github.com/tektronix/TekHSI/actions/workflows/test-code.yml/badge.svg?branch=main)](https://github.com/tektronix/TekHSI/actions/workflows/test-code.yml) [![Docs testing status](https://github.com/tektronix/TekHSI/actions/workflows/test-docs.yml/badge.svg?branch=main)](https://github.com/tektronix/TekHSI/actions/workflows/test-docs.yml) [![Coverage status](https://codecov.io/gh/tektronix/TekHSI/branch/main/graph/badge.svg)](https://codecov.io/gh/tektronix/TekHSI) | | **Code Quality** | [![CodeQL status](https://github.com/tektronix/TekHSI/actions/workflows/codeql-analysis.yml/badge.svg?branch=main)](https://github.com/tektronix/TekHSI/actions/workflows/codeql-analysis.yml) [![CodeFactor grade](https://www.codefactor.io/repository/github/tektronix/TekHSI/badge)](https://www.codefactor.io/repository/github/tektronix/TekHSI) [![pre-commit status](https://results.pre-commit.ci/badge/github/tektronix/TekHSI/main.svg)](https://results.pre-commit.ci/latest/github/tektronix/TekHSI/main) | | **Package** | [![PyPI: Package status](https://img.shields.io/pypi/status/TekHSI?logo=pypi)](https://pypi.org/project/TekHSI/) [![PyPI: Latest release version](https://img.shields.io/pypi/v/TekHSI?logo=pypi)](https://pypi.org/project/TekHSI/) [![PyPI: Supported Python versions](https://img.shields.io/pypi/pyversions/TekHSI?logo=python)](https://pypi.org/project/TekHSI/) [![PyPI: Downloads](https://static.pepy.tech/badge/TekHSI)](https://pepy.tech/project/TekHSI) [![License: Apache 2.0](https://img.shields.io/pypi/l/tekhsi)](https://github.com/tektronix/TekHSI/blob/main/LICENSE.md) [![Package build status](https://github.com/tektronix/TekHSI/actions/workflows/package-build.yml/badge.svg?branch=main)](https://github.com/tektronix/TekHSI/actions/workflows/package-build.yml) [![PyPI upload status](https://github.com/tektronix/TekHSI/actions/workflows/package-release.yml/badge.svg?branch=main)](https://github.com/tektronix/TekHSI/actions/workflows/package-release.yml) | | **Documentation** | [![ReadtheDocs Status](https://img.shields.io/readthedocs/tekhsi/stable?logo=readthedocs)](https://tekhsi.readthedocs.io) | | **Code Style** | [![Test style: pytest](https://img.shields.io/badge/test%20style-pytest-blue)](https://github.com/pytest-dev/pytest) [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-black)](https://docs.astral.sh/ruff/formatter/) [![Docstring style: google](https://img.shields.io/badge/docstring%20style-google-tan)](https://google.github.io/styleguide/pyguide.html) | | **Linting** | [![pre-commit enabled](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit) [![Docstring formatter: docformatter](https://img.shields.io/badge/docstring%20formatter-docformatter-tan)](https://github.com/PyCQA/docformatter)[![Linter: pylint](https://img.shields.io/badge/linter-pylint-purple)](https://github.com/pylint-dev/pylint) |

TekHSI: Tektronix High Speed Interface

TekHSI is a Python library that provides a low latency, high-speed data link between Tektronix scopes and host computer using gRPC. This library is designed to provide a reliable and efficient way to transfer data between devices, especially when dealing with large amounts of data.

With TekHSI, you can easily connect your Tektronix scope to other devices, such as host computers or other test equipment, and transmit data quickly and efficiently. This library is especially useful for applications that require real-time data acquisition and analysis, such as in the fields of electronics, telecommunications, and signal processing.

TekHSI uses gRPC, a high-performance, open-source framework that provides a platform-independent way to communicate between applications. This means you can use TekHSI with any platform supporting gRPC, including Windows, Linux, and macOS.

Key Features

  1. Low latency - TekHSI provides a fast and efficient data link between devices, with minimal delay between data transmission and reception.
  2. High speed - TekHSI can transfer large amounts of data quickly and efficiently.
  3. Easy to use - TekHSI is designed to be easy to use, with a simple and intuitive API that makes it easy to connect your Tektronix scope.
  4. Consistent sets - TekHSI guarantees that data arrives in "consistent sets." This means that data is all from the same acquisition. This is true when the instrument is stopped and when it is running. When using SCPI commands, this is only guaranteed when the instrument is stopped.
  5. Richer Synchronization - TekHSI allows a rich set of synchronization options. This includes accepting any arriving acquisition, accepting acquisitions with vertical or horizontal changes, or only accepting acquisitions after a certain time.

In summary, if you need a reliable and efficient way to transfer data between your Tektronix scope and host computer, TekHSI is the library for you. With its low latency, high speed, and easy-to-use API, TekHSI provides a powerful solution for data acquisition and analysis.

Installation

[!IMPORTANT] TekHSI requires a 64-bit Python installation due to its external dependencies

pip install tekhsi

Device Support

| Type | Series/Model | | ------ | --------------------- | | Scopes | **4 Series B MSO** | | | **5 Series MSO** | | | **5 Series B MSO** | | | **5 Series MSO (LP)** | | | **6 Series MSO** | | | **6 Series B MSO** | | | **6 Series LPD** |

Documentation

See the full documentation at https://TekHSI.readthedocs.io

Maintainers

Before reaching out to any maintainers directly, please first check if your issue or question is already covered by any open issues. If the issue or question you have is not already covered, please file a new issue or start a discussion and the maintainers will review and respond there.

Contributing

Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

TekHSI was created by Tektronix. It is licensed under the terms of the Apache License 2.0.

Security

The signatures of the files uploaded to PyPI and each GitHub Release can be verified using the GitHub CLI attestation verify command. The artifact attestations can also be directly downloaded from the GitHub repo attestations page if desired.

gh attestation verify --owner tektronix <file>