# instrulink
This python package provides built-in classes to interface diverse laboratory instruments, including:
- **waveform generators**: [Rigol DG 1022Z](https://www.rigolna.com/products/waveform-generators/dg1000z/) (`RigolDG1022Z`)
- **oscilloscopes**: [B&K Precision 2555](https://www.bkprecision.com/products/oscilloscopes/2555) (`BK2555`), [Rigol DS 1054Z](https://www.rigolna.com/products/digital-oscilloscopes/1000z/) (`RigolDS1054Z`)
- **micro-manipulators**: [Sutter Instruments MP-285A](https://www.sutter.com/MICROMANIPULATION/mp285_frame.html) (`SutterMP285A`)
- **infrared cameras**: FLIR cameras (`Camera`)
- **acquisition systems**: [NI DAQmx](https://www.ni.com/docs/en-US/bundle/ni-daqmx/page/daqhelp/nidaqoverview.html) for pulse triggers
## Software dependencies
To interface VISA instruments (i.e., waveforms generators and oscilloscopes), you will need to:
- Download and install [IVI Compliance Package 21.0](https://www.ni.com/en-us/support/downloads/drivers/download.ivi-compliance-package.html#460618)
When installing, opt to include .NET Adapters and COM adapters as well (these are not selected by default)
- Download and install the [NI Package Manager](https://www.ni.com/en-us/support/downloads/software-products/download.package-manager.html#322516). Through the NI package manager, also install the NI-VISA Driver.
To interface Rigol instruments specifically, you will also need to download and install the associated [Rigol driver](https://www.rigolna.com/products/waveform-generators/dg1000z/)
To interface FLIR cameras, you will need to download and install the [FlyCapture SDK](https://www.flir.com/products/flycapture-sdk/)
You will also need to install `Python 3.6` (for compliance with FlyCapture SDK), preferably as part of an environment manager such as [Anaconda](https://www.anaconda.com/products/individual).
## Installation
This package can be directly installed from PyPI:
```pip install instrulink```
However, if you wish to amend the package code, you can also clone this repo and install it locally as an editable package:
```
git clone https://github.com/tjjlemaire/instrulink.git
cd instrulink
pip install -e .
```
## Usage
### Connecting to instruments
Instruments can be easily connected to via generic `grab_camera`, `grab_generator`, `grab_oscilloscope` and `grab_manipulator` functions. By default, these functions will automatically detect the first available instrument connected to the PC. Optionally, you can also provide an instrument `key` to connect to a specific model type (e.g. `grab_osciloscope(key='bk')` to specifically connect to a B&K Precision oscilloscope).
### Using instruments
Example scripts are located in the `/scripts` subfolder.
Raw data
{
"_id": null,
"home_page": "https://github.com/tjjlemaire/instrulink",
"name": "instrulink",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "laboratory instrument interface python",
"author": "Theo Lemaire",
"author_email": "theo.lemaire1@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/7e/92/bd935e67752ae6e89af2e013d4fb4409739d4eb7528fa39580a87b272385/instrulink-1.0.3.tar.gz",
"platform": null,
"description": "# instrulink\n\nThis python package provides built-in classes to interface diverse laboratory instruments, including:\n- **waveform generators**: [Rigol DG 1022Z](https://www.rigolna.com/products/waveform-generators/dg1000z/) (`RigolDG1022Z`)\n- **oscilloscopes**: [B&K Precision 2555](https://www.bkprecision.com/products/oscilloscopes/2555) (`BK2555`), [Rigol DS 1054Z](https://www.rigolna.com/products/digital-oscilloscopes/1000z/) (`RigolDS1054Z`)\n- **micro-manipulators**: [Sutter Instruments MP-285A](https://www.sutter.com/MICROMANIPULATION/mp285_frame.html) (`SutterMP285A`)\n- **infrared cameras**: FLIR cameras (`Camera`)\n- **acquisition systems**: [NI DAQmx](https://www.ni.com/docs/en-US/bundle/ni-daqmx/page/daqhelp/nidaqoverview.html) for pulse triggers\n\n## Software dependencies\n\nTo interface VISA instruments (i.e., waveforms generators and oscilloscopes), you will need to:\n- Download and install [IVI Compliance Package 21.0](https://www.ni.com/en-us/support/downloads/drivers/download.ivi-compliance-package.html#460618)\n When installing, opt to include .NET Adapters and COM adapters as well (these are not selected by default)\n- Download and install the [NI Package Manager](https://www.ni.com/en-us/support/downloads/software-products/download.package-manager.html#322516). Through the NI package manager, also install the NI-VISA Driver.\n\nTo interface Rigol instruments specifically, you will also need to download and install the associated [Rigol driver](https://www.rigolna.com/products/waveform-generators/dg1000z/)\n\nTo interface FLIR cameras, you will need to download and install the [FlyCapture SDK](https://www.flir.com/products/flycapture-sdk/)\n\nYou will also need to install `Python 3.6` (for compliance with FlyCapture SDK), preferably as part of an environment manager such as [Anaconda](https://www.anaconda.com/products/individual).\n\n## Installation\n\nThis package can be directly installed from PyPI:\n\n```pip install instrulink```\n\nHowever, if you wish to amend the package code, you can also clone this repo and install it locally as an editable package: \n\n```\ngit clone https://github.com/tjjlemaire/instrulink.git\ncd instrulink\npip install -e .\n```\n\n## Usage\n\n### Connecting to instruments\n\nInstruments can be easily connected to via generic `grab_camera`, `grab_generator`, `grab_oscilloscope` and `grab_manipulator` functions. By default, these functions will automatically detect the first available instrument connected to the PC. Optionally, you can also provide an instrument `key` to connect to a specific model type (e.g. `grab_osciloscope(key='bk')` to specifically connect to a B&K Precision oscilloscope).\n\n### Using instruments\n\nExample scripts are located in the `/scripts` subfolder.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python package to interface diverse laboratory instruments",
"version": "1.0.3",
"project_urls": {
"Homepage": "https://github.com/tjjlemaire/instrulink"
},
"split_keywords": [
"laboratory",
"instrument",
"interface",
"python"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f443958af88b8be625f75565596073d3fa4959d140c6ebde267570c1084a21e0",
"md5": "8d161e311dfb3df42a2432306837f893",
"sha256": "a9684eb655ea695308330cc29cab1f3d2a34b4e9afb82a1f75ec32abf01c6c68"
},
"downloads": -1,
"filename": "instrulink-1.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8d161e311dfb3df42a2432306837f893",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 71985,
"upload_time": "2023-08-09T21:14:44",
"upload_time_iso_8601": "2023-08-09T21:14:44.118122Z",
"url": "https://files.pythonhosted.org/packages/f4/43/958af88b8be625f75565596073d3fa4959d140c6ebde267570c1084a21e0/instrulink-1.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7e92bd935e67752ae6e89af2e013d4fb4409739d4eb7528fa39580a87b272385",
"md5": "ac9a45ccc6481ba1092f2f457e2c4374",
"sha256": "75410532d5ad8ba28b0e3c808785f63f092b5a5c504e506db30c2c07c09c19ea"
},
"downloads": -1,
"filename": "instrulink-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "ac9a45ccc6481ba1092f2f457e2c4374",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 63343,
"upload_time": "2023-08-09T21:14:46",
"upload_time_iso_8601": "2023-08-09T21:14:46.030636Z",
"url": "https://files.pythonhosted.org/packages/7e/92/bd935e67752ae6e89af2e013d4fb4409739d4eb7528fa39580a87b272385/instrulink-1.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-09 21:14:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tjjlemaire",
"github_project": "instrulink",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "instrulink"
}