{"id":31931283,"url":"https://github.com/patrickbaus/pyasyncgpib","last_synced_at":"2025-10-14T04:33:29.895Z","repository":{"id":42499034,"uuid":"326275340","full_name":"PatrickBaus/pyAsyncGpib","owner":"PatrickBaus","description":"An AsyncIO wrapper for linux-gpib","archived":false,"fork":false,"pushed_at":"2025-09-04T15:45:21.000Z","size":207,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-17T01:49:22.950Z","etag":null,"topics":["asyncio","asyncio-api-wrapper","gpib","linux-gpib","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PatrickBaus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-01-02T21:36:33.000Z","updated_at":"2025-09-04T15:44:35.000Z","dependencies_parsed_at":"2023-12-07T12:28:51.371Z","dependency_job_id":"ee3994bc-1058-483c-a531-b7bd3c81e1bd","html_url":"https://github.com/PatrickBaus/pyAsyncGpib","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/PatrickBaus/pyAsyncGpib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PatrickBaus%2FpyAsyncGpib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PatrickBaus%2FpyAsyncGpib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PatrickBaus%2FpyAsyncGpib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PatrickBaus%2FpyAsyncGpib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PatrickBaus","download_url":"https://codeload.github.com/PatrickBaus/pyAsyncGpib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PatrickBaus%2FpyAsyncGpib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017942,"owners_count":26086213,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asyncio","asyncio-api-wrapper","gpib","linux-gpib","python"],"created_at":"2025-10-14T04:33:26.788Z","updated_at":"2025-10-14T04:33:29.887Z","avatar_url":"https://github.com/PatrickBaus.png","language":"Python","readme":"[![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\u003e :warning: **Concurrency with multiple devices**: Note, that when using a single adapter to control multiple devices,\n\u003e there is no concurrency on the GPIB bus. This means, there is **no** speed increase, when making asynchronous reads\n\u003e 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","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickbaus%2Fpyasyncgpib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatrickbaus%2Fpyasyncgpib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickbaus%2Fpyasyncgpib/lists"}