async-gpib


Nameasync-gpib JSON
Version 2.1.3 PyPI version JSON
download
home_pageNone
SummaryPython3 AsyncIO Linux GPIB wrapper
upload_time2024-06-22 11:43:53
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseGNU General Public License v3 (GPLv3)
keywords linux-gpib gpib api
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![pylint](../../actions/workflows/pylint.yml/badge.svg)](../../actions/workflows/pylint.yml)
[![PyPI](https://img.shields.io/pypi/v/async-gpib)](https://pypi.org/project/async-gpib/)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/async-gpib)
![PyPI - Status](https://img.shields.io/pypi/status/async-gpib)
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](LICENSE)
[![code style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
# async_gpib
Python3 asyncio [Linux GPIB Wrapper](https://linux-gpib.sourceforge.io/). The library requires Python
[asyncio](https://docs.python.org/3/library/asyncio.html) and is a thin wrapper for the threaded Linux GPIB Wrapper
library.

The library is fully type-hinted.

## Supported Devices

### Instruments
|Device|Supported|Tested|Comments|
|--|--|--|--|
|[Fluke 5440B](https://github.com/PatrickBaus/pyAsyncFluke5440B)|:heavy_check_mark:|:heavy_check_mark:|  |
|[HP 3478A](https://github.com/PatrickBaus/pyAsyncHP3478A)|:heavy_check_mark:|:heavy_check_mark:|  |

## Setup
There are currently no packages for Linux GPIB available on all platforms. To install the library it is required to
install Linux GPIB.

### Linux GPIB:
These instructions are for Ubuntu:
```bash
sudo apt install subversion build-essential autoconf libtool flex bison python3-dev
svn checkout svn://svn.code.sf.net/p/linux-gpib/code/trunk linux-gpib-code
cd ~/linux-gpib-code/linux-gpib-kernel
make
sudo make install  # ignore the signing errors
sudo groupadd gpib  # seems not to be installed
sudo modprobe ni_usb_gpib
cd ~/linux-gpib-code/linux-gpib-user
./bootstrap
./configure --sysconfdir=/etc
make
sudo make install
sudo ldconfig
```

### Linux GPIB Python module:
Once Linux GPIB is installed, you can either install the python package or use the `gpib-ctypes` package.
```bash
python3 -m venv env  # virtual environment, optional
source env/bin/activate
pip install -e ~/linux-gpib-code/linux-gpib-user/language/python/
```

### async_gpib Python module
The package can be directly installed via Pypi:
```bash
python3 -m venv env  # virtual environment, optional
source env/bin/activate
pip install async-gpib
```

## Usage
Initialize the GPIB adapter
```python
from async_gpib import AsyncGpib

# Create a controller and talk to device address 22
async with AsyncGpib(name=0, pad=22) as gpib_device:
    # Add your code here
    ...
```
See [examples/](examples/) for more working examples.

## Support for Multiple Devices
> :warning: **Concurrency with multiple devices**: Note, that when using a single adapter to control multiple devices,
> there is no concurrency on the GPIB bus. This means, there is **no** speed increase, when making asynchronous reads
> from multiple devices on the bus regarding the transfer time.

## Versioning
I use [SemVer](http://semver.org/) for versioning. For the versions available, see the
[tags on this repository](../../tags). 

## Documentation
I use the [Numpydoc](https://numpydoc.readthedocs.io/en/latest/format.html) style for documentation.

## Authors
* **Patrick Baus** - *Initial work* - [PatrickBaus](https://github.com/PatrickBaus)

## License
This project is licensed under the GPL v3 license - see the [LICENSE](LICENSE) file for details

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "async-gpib",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "linux-gpib, GPIB, API",
    "author": null,
    "author_email": "Patrick Baus <patrick.baus@physik.tu-darmstadt.de>",
    "download_url": "https://files.pythonhosted.org/packages/e3/14/1ec925d8b6fc12a02e107235c687f2d927006e29ce6bb59cb283b63497b1/async_gpib-2.1.3.tar.gz",
    "platform": null,
    "description": "[![pylint](../../actions/workflows/pylint.yml/badge.svg)](../../actions/workflows/pylint.yml)\n[![PyPI](https://img.shields.io/pypi/v/async-gpib)](https://pypi.org/project/async-gpib/)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/async-gpib)\n![PyPI - Status](https://img.shields.io/pypi/status/async-gpib)\n[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](LICENSE)\n[![code style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n# async_gpib\nPython3 asyncio [Linux GPIB Wrapper](https://linux-gpib.sourceforge.io/). The library requires Python\n[asyncio](https://docs.python.org/3/library/asyncio.html) and is a thin wrapper for the threaded Linux GPIB Wrapper\nlibrary.\n\nThe library is fully type-hinted.\n\n## Supported Devices\n\n### Instruments\n|Device|Supported|Tested|Comments|\n|--|--|--|--|\n|[Fluke 5440B](https://github.com/PatrickBaus/pyAsyncFluke5440B)|:heavy_check_mark:|:heavy_check_mark:|  |\n|[HP 3478A](https://github.com/PatrickBaus/pyAsyncHP3478A)|:heavy_check_mark:|:heavy_check_mark:|  |\n\n## Setup\nThere are currently no packages for Linux GPIB available on all platforms. To install the library it is required to\ninstall Linux GPIB.\n\n### Linux GPIB:\nThese instructions are for Ubuntu:\n```bash\nsudo apt install subversion build-essential autoconf libtool flex bison python3-dev\nsvn checkout svn://svn.code.sf.net/p/linux-gpib/code/trunk linux-gpib-code\ncd ~/linux-gpib-code/linux-gpib-kernel\nmake\nsudo make install  # ignore the signing errors\nsudo groupadd gpib  # seems not to be installed\nsudo modprobe ni_usb_gpib\ncd ~/linux-gpib-code/linux-gpib-user\n./bootstrap\n./configure --sysconfdir=/etc\nmake\nsudo make install\nsudo ldconfig\n```\n\n### Linux GPIB Python module:\nOnce Linux GPIB is installed, you can either install the python package or use the `gpib-ctypes` package.\n```bash\npython3 -m venv env  # virtual environment, optional\nsource env/bin/activate\npip install -e ~/linux-gpib-code/linux-gpib-user/language/python/\n```\n\n### async_gpib Python module\nThe package can be directly installed via Pypi:\n```bash\npython3 -m venv env  # virtual environment, optional\nsource env/bin/activate\npip install async-gpib\n```\n\n## Usage\nInitialize the GPIB adapter\n```python\nfrom async_gpib import AsyncGpib\n\n# Create a controller and talk to device address 22\nasync with AsyncGpib(name=0, pad=22) as gpib_device:\n    # Add your code here\n    ...\n```\nSee [examples/](examples/) for more working examples.\n\n## Support for Multiple Devices\n> :warning: **Concurrency with multiple devices**: Note, that when using a single adapter to control multiple devices,\n> there is no concurrency on the GPIB bus. This means, there is **no** speed increase, when making asynchronous reads\n> from multiple devices on the bus regarding the transfer time.\n\n## Versioning\nI use [SemVer](http://semver.org/) for versioning. For the versions available, see the\n[tags on this repository](../../tags). \n\n## Documentation\nI use the [Numpydoc](https://numpydoc.readthedocs.io/en/latest/format.html) style for documentation.\n\n## Authors\n* **Patrick Baus** - *Initial work* - [PatrickBaus](https://github.com/PatrickBaus)\n\n## License\nThis project is licensed under the GPL v3 license - see the [LICENSE](LICENSE) file for details\n",
    "bugtrack_url": null,
    "license": "GNU General Public License v3 (GPLv3)",
    "summary": "Python3 AsyncIO Linux GPIB wrapper",
    "version": "2.1.3",
    "project_urls": {
        "Bug Tracker": "https://github.com/PatrickBaus/pyAsyncGpib/issues",
        "Download": "https://github.com/PatrickBaus/pyAsyncGpib/releases",
        "Homepage": "https://github.com/PatrickBaus/pyAsyncGpib"
    },
    "split_keywords": [
        "linux-gpib",
        " gpib",
        " api"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "feb94783ea86a7bab4f353c9fb3b6fcfcf847bf3039bc8e6b61754451277cde8",
                "md5": "5236528d4c0adc11fd131b212ed8ffad",
                "sha256": "bc2e9a81cb7ef46fdb0bab3f6a5284ae651263fdcdfffea438390a6428103d0d"
            },
            "downloads": -1,
            "filename": "async_gpib-2.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5236528d4c0adc11fd131b212ed8ffad",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 19137,
            "upload_time": "2024-06-22T11:43:51",
            "upload_time_iso_8601": "2024-06-22T11:43:51.526551Z",
            "url": "https://files.pythonhosted.org/packages/fe/b9/4783ea86a7bab4f353c9fb3b6fcfcf847bf3039bc8e6b61754451277cde8/async_gpib-2.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e3141ec925d8b6fc12a02e107235c687f2d927006e29ce6bb59cb283b63497b1",
                "md5": "aee91f735b3f2380f2b2d31612c61744",
                "sha256": "4fd4fe9ba9ddcf75023bfc7195afb06c5fc40a0245fb71ce942e5dcdd0e58472"
            },
            "downloads": -1,
            "filename": "async_gpib-2.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "aee91f735b3f2380f2b2d31612c61744",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 19577,
            "upload_time": "2024-06-22T11:43:53",
            "upload_time_iso_8601": "2024-06-22T11:43:53.151170Z",
            "url": "https://files.pythonhosted.org/packages/e3/14/1ec925d8b6fc12a02e107235c687f2d927006e29ce6bb59cb283b63497b1/async_gpib-2.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-22 11:43:53",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "PatrickBaus",
    "github_project": "pyAsyncGpib",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "async-gpib"
}
        
Elapsed time: 2.62859s