{ "info": { "author": "S.V. Matsievskiy", "author_email": "matsievskiysv@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: X11 Applications :: Qt", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Topic :: Scientific/Engineering :: Physics" ], "description": "# Description\n\nThis is a measurement software for particle acceleration structures using bead pulling method.\nIt utilizes [*PyVISA*](https://pyvisa.readthedocs.io/en/latest/) device communication library as an intermediate device communication layer in order to support multiple platforms.\nDevice specific code is isolated in driver objects; adding new device driver is a matter of implementing a set of object methods.\n\nThis program includes drivers for motors:\n\n- Fake motor (placeholder driver)\n- Randomly failing software motor (for program debugging)\n- [UIRobot motor driver](http://www.uirobot.com/html/products/944.html)\n\nThis program includes drivers for vector analyzers:\n\n- Fake analyzer (placeholder driver)\n- Randomly failing software analyzer (for program debugging)\n- [Agilent8753et](https://www.keysight.com/en/pd-1000002292%3Aepsg%3Apro-pn-8753ES/)\n\n\n# Installation\n\n## Get python and pip\n\nDownload and install python and pip.\n\nYou may use a package manager for this. For example, in Debian installation command looks like this:\n\n`sudo apt-get install python3 python3-pip`\n\nIf you don't have a package manager, download installer from the [python web site](https://www.python.org/downloads/).\n\nYou will need to install either *NI* drivers (for Windows installations) or *Linux-GPIB* drivers.\n\n## Install *NI* drivers\n\nIf you need to use *NI* drivers, use [this manual](https://pyvisa.readthedocs.io/en/latest/faq/getting_nivisa.html#faq-getting-nivisa) for installation.\n\n## Install *Linux-GPIB* drivers\n\nIn order to use [*Linux-GPIB*](https://linux-gpib.sourceforge.io/) drivers, one must compile them and install python bindings.\n\n*Note. Drivers are build for current *Linux* kernel. So, after kernel update one needs to recompile GPIB drivers.*\n\n### Getting sources\n\nIn order to proceed, you will need to install additional programs:\n```bash\napt install -y git git-svn\n```\n\nGetting the latest sources:\n```bash\ngit svn clone -r HEAD https://svn.code.sf.net/p/linux-gpib/code/trunk linux-gpib-code\n```\n\nNow you have the latest sources of *Linux-GPIB*:\n```bash\ncd linux-gpib-code\n```\n\n### Compiling drivers\n\nFor driver compilation you will need Linux sources:\n```bash\nsudo apt install linux-source\n```\n\n```bash\ncd linux-gpib-kernel\n```\n\nIssue following command to start compilation:\n\n```bash\nmake\n```\n\nAnd then:\n\n```bash\nmake install\n```\n\nThat's it for driver compilation. Return one folder back.\n\n```bash\ncd ..\n```\n\n### Compiling userspace utilities\n\n```bash\ncd linux-gpib-user\n```\n\nSince we use source from project repo, we need to prepare [autotools](https://www.gnu.org/software/automake/) installation scripts:\n\n```bash\napt install autotools-dev\n./bootstrap\n./configure --sysconfdir=/etc\nmake\nmake install\n```\n\n### Installing Python3 bindings\n\nGo to python bindings folder:\n```bash\ncd language/python\n```\n\nCreating and installing Python3 module:\n```bash\npython3 setup.py sdist\npip3 install dist/*.tar.gz\n```\n\n### Configuring GPIB device\n\nDownload GPIB board firmware form .\n\nLater in this document `agilent_82350a` device will be used.\nFirmware archive is assumed to be located in `~/Downloads/` folder.\n\nConfigure your board in `/etc/gpib.conf`. Consult [configuration manual](https://linux-gpib.sourceforge.io/doc_html/configuration-gpib-conf.html).\nConfiguration will look something like this:\n```ini\ninterface {\n minor = 0 /* board index, minor = 0 uses /dev/gpib0, minor = 1 uses /dev/gpib1, etc. */\n board_type = \"agilent_82350b\" /* type of interface board being used */\n name = \"violet\" /* optional name, allows you to get a board descriptor using ibfind() */\n pad = 0 /* primary address of interface */\n sad = 0 /* secondary address of interface */\n timeout = T3s /* timeout for commands */\n\n eos = 0x0a /* EOS Byte, 0xa is newline and 0xd is carriage return\n*/\n set-reos = yes /* Terminate read if EOS */\n set-bin = no /* Compare EOS 8-bit */\n set-xeos = no /* Assert EOI whenever EOS byte is sent */\n set-eot = yes /* Assert EOI with last byte on writes */\n\n/* settings for boards that lack plug-n-play capability */\n base = 0 /* Base io ADDRESS */\n irq = 0 /* Interrupt request level */\n dma = 0 /* DMA channel (zero disables) */\n}\n\ndevice {\n minor = 0 /* minor number for interface board this device is connected to */\n name = \"analyzer\" /* device mnemonic */\n pad = 7 /* The Primary Address */\n sad = 0 /* Secondary Address */\n timeout = T3s\n\n eos = 0xa /* EOS Byte */\n set-reos = no /* Terminate read if EOS */\n set-bin = no /* Compare EOS 8-bit */\n}\n```\n\nUpload board firmware, if necessary:\n```bash\nsudo gpib_config --init-data ~/Downloads/gpib_firmware-2008-08-10/hp_82350a/agilent_82350a.bin\n```\n\n### Configure udev rules\n\nSome boards require firmware upload on every start.\nAlso, superuser privileges are required for communication with device.\nIn order to remove these problems, lets add udev rule for device.\n\nFirstly, lets create new group, which will be able to use GPIB devices:\n```bash\naddgroup gpib\n```\n\nCopy your device's firmware to `/usr/local/sbin`.\nCommand will look something like this:\n```bash\ncp Downloads/gpib_firmware-2008-08-10/hp_82350a/agilent_82350a.bin /usr/local/sbin/\n```\nThen, create a file `/usr/local/sbin/load_agilent` with contents:\n```bash\n#!/bin/bash\n\ngpib_config --init-data /usr/local/sbin/agilent_82350a.bin\n```\n\nAnd allow its execution:\n```bash\nchmod 755 /usr/local/sbin/load_agilent\n```\n\nAdd the following line to the `/etc/udev/rules.d/99-gpib.rules` file:\n```udev\nKERNEL==\"gpib0\", SUBSYSTEM==\"gpib_common\", GROUP=\"gpib\", MODE=\"0660\", RUN+=\"/usr/local/sbin/load_agilent\"\n```\n\nNow device will be available for users in group `gpib`, its firmware will be automatically loaded.\n\n## Install *BeadPull*\n\nFrom the terminal issue the command\n\n`pip3 install beadpull`\n\nfor system-wide installation, or\n\n`pip3 install --user beadpull`\n\nfor the local installation.\n\n### Add user to device communication groups [Optional]\n\n*Gnu/Linux* distributions restrict access to peripheral devices.\n\nTo grant access to serial devices to user, issue command:\n```\nadduser user dialout\n```\nUSB devices:\n```\nadduser user plugdev\n```\nGPIB devices (if configured):\n```\nadduser user gpib\n```\n\n# Run\n\nIn order to run the program, from the terminal issue the command\n\n`beadpull`\n\nIf it's not found, you have to modify the `PATH` environment variable to include the python scripts folder ([unix guide](https://stackoverflow.com/a/3402176/5745120),[windows guide](https://superuser.com/a/143121/736971)) or supply the full path to the program.\n\n# Other\n\n## Update *beadpull*\n\nTo update program, from the terminal issue the command\n\n`pip3 install --upgrade beadpull`\n\nfor system-wide installation, or\n\n`pip3 install --upgrade --user beadpull`\n\nfor the local installation.\n\n## Reset *beadpull* settings to defaults\n\nProgram saves its settings under\n`APPDATA/beadupll` on Windows and `$XDG_CONFIG_HOME/beadpull` or `$HOME/.config/beadpull` on other systems.\nIn order to reset settings, simply delete saved settings folder.\n\n## Issue submission\n\nIn case of a problem with the program, create an issue in the [issue tracker](https://gitlab.com/matsievskiysv/beadpull/issues).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/matsievskiysv/beadpull", "keywords": "accelerators particles measurements", "license": "GPLv3+", "maintainer": "S.V. Matsievskiy", "maintainer_email": "matsievskiysv@gmail.com", "name": "beadpull", "package_url": "https://pypi.org/project/beadpull/", "platform": "", "project_url": "https://pypi.org/project/beadpull/", "project_urls": { "Homepage": "https://gitlab.com/matsievskiysv/beadpull" }, "release_url": "https://pypi.org/project/beadpull/19.10/", "requires_dist": [ "PyQt5", "PyQtWebEngine", "PyVISA", "PyYAML", "matplotlib", "numpy", "pysmithplot-fork", "pyvisa-py", "check-manifest ; extra == 'dev'" ], "requires_python": "", "summary": "Bead pulling measurement software for RF cavity measurements", "version": "19.10" }, "last_serial": 5992014, "releases": { "19.10": [ { "comment_text": "", "digests": { "md5": "6f047d0ed7ece76f7a3eea051cf9c321", "sha256": "882dfaadae123b31c2ae9aea974f630c315686daab2bab2376e2b24bf16a78dd" }, "downloads": -1, "filename": "beadpull-19.10-py3-none-any.whl", "has_sig": false, "md5_digest": "6f047d0ed7ece76f7a3eea051cf9c321", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 105550, "upload_time": "2019-10-17T19:43:25", "url": "https://files.pythonhosted.org/packages/41/16/19d4a0f20cfea086cca1e80a131454b26d60cccbdd0dbc315982aba22e38/beadpull-19.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c72c680a5d984d0061fdeffe10fa226b", "sha256": "9e255ca35cb302eb7b7ee1366953a502b63b0ec6f528cd4f2f0d3dd352731033" }, "downloads": -1, "filename": "beadpull-19.10.tar.gz", "has_sig": false, "md5_digest": "c72c680a5d984d0061fdeffe10fa226b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 94835, "upload_time": "2019-10-17T19:43:27", "url": "https://files.pythonhosted.org/packages/a8/b8/9886ff99ac807fc854558ef31643c8dd8e6f224abad6fcf59f1f99a9915b/beadpull-19.10.tar.gz" } ], "19.8": [ { "comment_text": "", "digests": { "md5": "d41c1c82bfa033054c25249dcc5dd01a", "sha256": "877370264ad00a5dfb31dedba746a26e8f64a248719277520b5e5ae52a6715e8" }, "downloads": -1, "filename": "beadpull-19.8-py3-none-any.whl", "has_sig": false, "md5_digest": "d41c1c82bfa033054c25249dcc5dd01a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 88728, "upload_time": "2019-08-16T19:27:29", "url": "https://files.pythonhosted.org/packages/3d/b7/fd51d3c24d181d15c950e98adbec35d4c1cab062a38bd1f6bbad1fc80edf/beadpull-19.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "65dcb1871acf5f7cacb37075b01b3667", "sha256": "47bd07cb2cc4418237514c8781800ee21e62d2a37f1a68f0fcc276252c4df2b0" }, "downloads": -1, "filename": "beadpull-19.8.tar.gz", "has_sig": false, "md5_digest": "65dcb1871acf5f7cacb37075b01b3667", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76897, "upload_time": "2019-08-16T19:27:32", "url": "https://files.pythonhosted.org/packages/5c/0f/9f4c4ba801cf6b4394abd351155a9281141a4b60ff8eaad820e48cdd54b7/beadpull-19.8.tar.gz" } ], "19.8.post1": [ { "comment_text": "", "digests": { "md5": "31741bc4b3afc362fa13cc987d6fb0be", "sha256": "ef338e2633798bf8957012dbedffc8e28a618c4554549ceae43b4a2942c96831" }, "downloads": -1, "filename": "beadpull-19.8.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "31741bc4b3afc362fa13cc987d6fb0be", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 88867, "upload_time": "2019-08-19T08:17:11", "url": "https://files.pythonhosted.org/packages/48/43/c3b13a827f7dbc5577b8cdadbc2ed71bbbf242f6bc605fffbfb13e9b98bb/beadpull-19.8.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e70d7de03aea532131e501bd9e873d0", "sha256": "6fcd2d1d128c9ad1eb124b3508275e8c41d9ea5a244e8e4c1619c5506ccc74e0" }, "downloads": -1, "filename": "beadpull-19.8.post1.tar.gz", "has_sig": false, "md5_digest": "2e70d7de03aea532131e501bd9e873d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77106, "upload_time": "2019-08-19T08:17:13", "url": "https://files.pythonhosted.org/packages/4e/b6/7787d555a23be25d79d4af89ddae33de0cf37f29ec1646ecf210020b8ac5/beadpull-19.8.post1.tar.gz" } ], "19.8.post2": [ { "comment_text": "", "digests": { "md5": "12e8c6849f560273cabea584268ea4b2", "sha256": "ef02f40dc7821e5ac185dc43e99d2a1d13697e28f64515bf460e7318a5641f21" }, "downloads": -1, "filename": "beadpull-19.8.post2-py3-none-any.whl", "has_sig": false, "md5_digest": "12e8c6849f560273cabea584268ea4b2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 88896, "upload_time": "2019-08-19T10:22:24", "url": "https://files.pythonhosted.org/packages/a4/30/b1570a5a75fc8a7816b14d1f8f132fbb4175ef533256a2cc1856fe0945f6/beadpull-19.8.post2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b32c5e2762ff2804d4d7e0721edccd8", "sha256": "422251146a9d111cca7f0fb1ab4b82e30abebdb38e8ffd678faf78b888de95e3" }, "downloads": -1, "filename": "beadpull-19.8.post2.tar.gz", "has_sig": false, "md5_digest": "9b32c5e2762ff2804d4d7e0721edccd8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 77144, "upload_time": "2019-08-19T10:22:26", "url": "https://files.pythonhosted.org/packages/bc/72/d8624dadef52b9d9867de0a724379a5914924f4018bc6ae6126ff0dd767f/beadpull-19.8.post2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6f047d0ed7ece76f7a3eea051cf9c321", "sha256": "882dfaadae123b31c2ae9aea974f630c315686daab2bab2376e2b24bf16a78dd" }, "downloads": -1, "filename": "beadpull-19.10-py3-none-any.whl", "has_sig": false, "md5_digest": "6f047d0ed7ece76f7a3eea051cf9c321", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 105550, "upload_time": "2019-10-17T19:43:25", "url": "https://files.pythonhosted.org/packages/41/16/19d4a0f20cfea086cca1e80a131454b26d60cccbdd0dbc315982aba22e38/beadpull-19.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c72c680a5d984d0061fdeffe10fa226b", "sha256": "9e255ca35cb302eb7b7ee1366953a502b63b0ec6f528cd4f2f0d3dd352731033" }, "downloads": -1, "filename": "beadpull-19.10.tar.gz", "has_sig": false, "md5_digest": "c72c680a5d984d0061fdeffe10fa226b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 94835, "upload_time": "2019-10-17T19:43:27", "url": "https://files.pythonhosted.org/packages/a8/b8/9886ff99ac807fc854558ef31643c8dd8e6f224abad6fcf59f1f99a9915b/beadpull-19.10.tar.gz" } ] }