# ``Srsgui`` - Organize instrument-controlling Python scripts as a GUI application
`Srsgui` is a simple framework:
- To define instrument classes for instruments that use remote communication, based on the
[`Instrument`](https://thinksrs.github.io/srsgui/srsgui.inst.html#module-srsgui.inst.instrument)
class and the communication
[`Interface`](https://thinksrs.github.io/srsgui/srsgui.inst.communications.html) classes.
(By default, serial and TCPIP is available. VXI11, GPIB and USB-TMC are optional).
- To write Python scripts (tasks) that run in graphic user interface (GUI) environment using simple
application programming interfaces (APIs) provided in
[``Task``](https://thinksrs.github.io/srsgui/srsgui.task.html) class.
- To organize instrument classes and task scripts presented in a GUI application
using a configuration
[(.taskconfig)](https://thinksrs.github.io/srsgui/create-project.html#populating-the-taskconfig-file)
file for a project.
![screenshot](https://thinksrs.github.io/srsgui/_images/example-screen-capture-2.png " ")
## Installation
To run ``srsgui`` as an GUI application, create a virtual environment, if necessary,
and install using ``pip`` with the `[full]` option:
python -m pip install srsgui[full]
``Srsgui`` package has the following 3 main dependencies:
[pyserial](https://pypi.org/project/pyserial/),
[matplotlib](https://pypi.org/project/matplotlib/) and
[PySide6](https://pypi.org/project/PySide6/)
(or [PySide2](https://pypi.org/project/PySide2/)). If the installation above fails,
you have to install the failed pacakge manually. Using a virtual environment will
eliminate possible conflicts between packages in the main Python installation and
the packages. Some Linux distributions offer certain Python packages from their
repositories only (not from ``pip``).
Run a web search for more information on system-specific installation.
Once pyserial, matplotlib and PySide6 (or PySide2) are installed properly, or if you plan to use
`srsgui` for instrument drivers only without GUI support,
you can install ``srsgui`` without the `[full]` option:
python -m pip install srsgui
## Start ``srsgui`` application
If the Python Script directory is in the PATH environment variable,
launch the application by typing the module name into the command line:
srsgui
If the script directory is not in PATH, run the srsgui module with Python.
python -m srsgui
## Run the example project
By default, the `srsgui` application starts with the project that was running when it was closed the last time.
To open the [**oscilloscope example project**](https://thinksrs.github.io/srsgui/example.html)
included in the `srsgui` package
(if `srsgui` does not start with the example project), select File/Open config,
go to the `srsgui` package directory, find the examples directory, and select the
`oscilloscope example project.taskconfig` file in the example project folder.
You can run the **Plot example** and **FFT of simulated waveform** tasks from
the Task menu without any instruments connected.
## Create a project
`Srsgui` is a framework to help you to write your own instrument-controlling
Python scripts and run them from a GUI application. Using its APIs, you can write
scripts running in GUI with the same amount of code as writing console-based
scripts. For programming using the API, refer to the
[`srsgui` documentation](https://thinksrs.github.io/srsgui).
Raw data
{
"_id": null,
"home_page": null,
"name": "srsgui",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "instrument control, data acquisition, data visualization",
"author": "Chulhoon Kim",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/49/aa/95a678ad51f8ed30725018eea68a1fc76063f94b54d2ca7ff093879e8ccc/srsgui-0.4.6.tar.gz",
"platform": null,
"description": "# ``Srsgui`` - Organize instrument-controlling Python scripts as a GUI application\r\n\r\n`Srsgui` is a simple framework:\r\n\r\n - To define instrument classes for instruments that use remote communication, based on the \r\n [`Instrument`](https://thinksrs.github.io/srsgui/srsgui.inst.html#module-srsgui.inst.instrument) \r\n class and the communication \r\n [`Interface`](https://thinksrs.github.io/srsgui/srsgui.inst.communications.html) classes. \r\n (By default, serial and TCPIP is available. VXI11, GPIB and USB-TMC are optional).\r\n\r\n - To write Python scripts (tasks) that run in graphic user interface (GUI) environment using simple\r\n application programming interfaces (APIs) provided in \r\n [``Task``](https://thinksrs.github.io/srsgui/srsgui.task.html) class.\r\n\r\n - To organize instrument classes and task scripts presented in a GUI application\r\n using a configuration \r\n [(.taskconfig)](https://thinksrs.github.io/srsgui/create-project.html#populating-the-taskconfig-file)\r\n file for a project.\r\n\r\n![screenshot](https://thinksrs.github.io/srsgui/_images/example-screen-capture-2.png \" \")\r\n\r\n## Installation\r\n\r\nTo run ``srsgui`` as an GUI application, create a virtual environment, if necessary, \r\nand install using ``pip`` with the `[full]` option: \r\n\r\n python -m pip install srsgui[full]\r\n\r\n``Srsgui`` package has the following 3 main dependencies: \r\n[pyserial](https://pypi.org/project/pyserial/), \r\n[matplotlib](https://pypi.org/project/matplotlib/) and\r\n[PySide6](https://pypi.org/project/PySide6/) \r\n(or [PySide2](https://pypi.org/project/PySide2/)). If the installation above fails, \r\nyou have to install the failed pacakge manually. Using a virtual environment will\r\neliminate possible conflicts between packages in the main Python installation and \r\nthe packages. Some Linux distributions offer certain Python packages from their \r\nrepositories only (not from ``pip``). \r\nRun a web search for more information on system-specific installation. \r\n\r\nOnce pyserial, matplotlib and PySide6 (or PySide2) are installed properly, or if you plan to use \r\n`srsgui` for instrument drivers only without GUI support, \r\nyou can install ``srsgui`` without the `[full]` option:\r\n\r\n python -m pip install srsgui\r\n\r\n## Start ``srsgui`` application\r\n \r\nIf the Python Script directory is in the PATH environment variable,\r\nlaunch the application by typing the module name into the command line:\r\n\r\n srsgui\r\n\r\nIf the script directory is not in PATH, run the srsgui module with Python. \r\n\r\n python -m srsgui\r\n\r\n\r\n## Run the example project\r\n\r\nBy default, the `srsgui` application starts with the project that was running when it was closed the last time.\r\n \r\nTo open the [**oscilloscope example project**](https://thinksrs.github.io/srsgui/example.html)\r\nincluded in the `srsgui` package \r\n(if `srsgui` does not start with the example project), select File/Open config, \r\ngo to the `srsgui` package directory, find the examples directory, and select the \r\n`oscilloscope example project.taskconfig` file in the example project folder. \r\n\r\nYou can run the **Plot example** and **FFT of simulated waveform** tasks from \r\nthe Task menu without any instruments connected.\r\n\r\n## Create a project\r\n\r\n`Srsgui` is a framework to help you to write your own instrument-controlling \r\nPython scripts and run them from a GUI application. Using its APIs, you can write \r\nscripts running in GUI with the same amount of code as writing console-based \r\nscripts. For programming using the API, refer to the\r\n[`srsgui` documentation](https://thinksrs.github.io/srsgui).\r\n",
"bugtrack_url": null,
"license": "MIT license",
"summary": "Framework to run instrument-controlling Python scripts in GUI",
"version": "0.4.6",
"project_urls": {
"changelog": "https://thinksrs.github.io/srsgui/changelog.html",
"documentation": "https://thinksrs.github.io/srsgui",
"homepage": "https://github.com/thinkSRS/srsgui",
"repository": "https://github.com/thinkSRS/srsgui.git"
},
"split_keywords": [
"instrument control",
" data acquisition",
" data visualization"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "fc9bbbed2b8471324b363c30a1029ab4975d99771c90ac28b2e2755d9c48f0d8",
"md5": "7412feca86109e43413491fb55c48968",
"sha256": "c2f94501343f82df513a9dac0cf1fe87099200c8b008a26291fde8ec5b60181c"
},
"downloads": -1,
"filename": "srsgui-0.4.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7412feca86109e43413491fb55c48968",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 123449,
"upload_time": "2024-08-31T00:40:00",
"upload_time_iso_8601": "2024-08-31T00:40:00.688109Z",
"url": "https://files.pythonhosted.org/packages/fc/9b/bbed2b8471324b363c30a1029ab4975d99771c90ac28b2e2755d9c48f0d8/srsgui-0.4.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "49aa95a678ad51f8ed30725018eea68a1fc76063f94b54d2ca7ff093879e8ccc",
"md5": "243a9147fe4f179b32ed846c3d0099a0",
"sha256": "633e3b479bece07511abef62e63f3a3898a8a8450bba221f5d0065f22cf66ac3"
},
"downloads": -1,
"filename": "srsgui-0.4.6.tar.gz",
"has_sig": false,
"md5_digest": "243a9147fe4f179b32ed846c3d0099a0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 753880,
"upload_time": "2024-08-31T00:40:02",
"upload_time_iso_8601": "2024-08-31T00:40:02.179870Z",
"url": "https://files.pythonhosted.org/packages/49/aa/95a678ad51f8ed30725018eea68a1fc76063f94b54d2ca7ff093879e8ccc/srsgui-0.4.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-31 00:40:02",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "thinkSRS",
"github_project": "srsgui",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "pyserial",
"specs": []
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "pyside6",
"specs": []
}
],
"lcname": "srsgui"
}