Metadata-Version: 2.1
Name: PyVISA-proxy
Version: 0.1.3
Summary: PyVISA remote proxy server and client in order to address "remote" hardware as local
Home-page: https://github.com/casabre/pyvisa-proxy
Author: Carsten Sauerbrey
Author-email: carsten.sauerbrey@gmail.com
Maintainer: Carsten Sauerbrey
Maintainer-email: carsten.sauerbrey@gmail.com
License: MIT
Keywords: Remote,VISA,GPIB,USB,serial,RS232,measurement,acquisition,zmq
Platform: Linux; Windows; Mac
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Programming Language :: Python
Classifier: Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: AUTHORS
Requires-Dist: pyvisa>=1.12.0
Requires-Dist: pyvisa-py
Requires-Dist: pyzmq
Requires-Dist: jsonschema
Requires-Dist: tblib
Requires-Dist: dill
Requires-Dist: six
Requires-Dist: packaging
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx-rtd-theme; extra == "docs"
Requires-Dist: myst-parser; extra == "docs"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: coverage[toml]; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: pytest-asyncio; extra == "test"
Requires-Dist: pyvisa-sim; extra == "test"

# PyVISA-proxy

[![Documentation](https://readthedocs.org/projects/pyvisa-proxy/badge/?version=latest)](https://pyvisa-proxy.readthedocs.io/) [![Build Status](https://github.com/casabre/pyvisa-proxy/actions/workflows/tests.yml/badge.svg)](https://github.com/casabre/pyvisa-proxy/actions/) [![PyPI Versions](https://img.shields.io/pypi/pyversions/pyvisa-proxy.svg)](https://pypi.python.org/pypi/pyvisa-proxy) ![PyPI - Downloads](https://img.shields.io/pypi/dm/pyvisa-proxy)  [![PyPI Status](https://img.shields.io/pypi/status/pyvisa-proxy.svg)](https://pypi.python.org/pypi/pyvisa-proxy) [![PyPI License](https://img.shields.io/badge/License-MIT-green)](LICENSE)

This plugin should extend PyVISA's funtionality mainly in order to address local hardware which is attached to a remote node, e.g. USB or GPIB. In the end, you can decouple your VISA instrument hosting where you need bare metal nodes and the test script runner.

## Getting started

### Installation

Using pip:

```shell
pip install pyvisa-proxy
```

### Server

In order to make devices remotely available, just run the PyVISA-remote server on your node. The server will open new VISA resources per request. Just run

```shell
python -m pyivsa_proxy --port 5000
```

in order to host your "local" connections. Use any available port for network sharing.

### Client

Use a client like a normal PyVISA class. The calls will be forwarded by reflection to the server. In order to get started, use the following snippet in your code.

```python
import pyvisa

rm = pyvisa.ResourceManager("YourProxyServerIp:YourProxyServerPort@proxy")
instr = rm.open_resource(resource="GPIB0::1::INSTR")
print(instr.query("*IDN?"))
```

## Contributing

I welcome any contributions, enhancements, and bug-fixes.  [Open an issue](https://github.com/casabre/pyvisa-remote/issues) on GitHub and [submit a pull request](https://github.com/casabre/pyvisa-remote/pulls).

## License

pyvisa-remote is 100% free and open-source, under the [MIT license](LICENSE). Use it however you want.

This package is [Treeware](https://treeware.earth). If you use it in production, then we ask that you [**buy the world a tree**](https://plant.treeware.earth/casabre/pyvisa-remote) to thank us for our work. By contributing to the Treeware forest you’ll be creating employment for local families and restoring wildlife habitats.
