{ "info": { "author": "Stephen Goadhouse", "author_email": "sgoadhouse@virginia.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Physics", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "msox3000\n========\n\nControl of HP/Agilent/Keysight MSO-X/DSO-X 3000A Oscilloscope through\npython via PyVisa\n\nUsing my previous work on dcps as a guide, this is intended to be a\ngeneric package to control various Oscilloscopes. However, it is\nexpected that very few oscilloscopes share the same commands so start\noff as a python Class specifically for the MSO-X/DSO-X 3000A\nOscilloscope. So will start targeted toward that family of oscilloscope\nwith a common SCPI.py Class. If it proves useful for other\noscilloscopes, then will create a new project but at least this one\nwould have started with that in mind.\n\nIt may also work on the MSO-X/DSO-X 2000A oscilloscope but I have not\nlooked into the differences ot know for sure. Try it out and let me\nknow.\n\nLike dcps, this will use the brilliant PyVISA python package along with\nthe PyVisa-PY access mode which eliminates the need for the (very buggy)\nVISA library to be installed on your computer.\n\nInstallation\n============\n\nYou need to install the pyvisa and pyvisa-py packages.\n\nTo install the msox3000 package, run the command:\n\n::\n\n python setup.py install\n\nAlternatively, can add a path to this package to the environment\nvariable PYTHONPATH or even add the path to it at the start of your\npython script. Use your favorite web search engine to find out more\ndetails.\n\nEven better, msox3000 is on PyPi. So you can simply use the following\nand the required depedancies should get installed for you:\n\n::\n\n pip install msox3000\n\nRequirements\n------------\n\n- `python `__ [Works with 2.7+ and 3+]\n- `pyvisa 1.9 `__\n- `pyvisa-py 0.2 `__\n- `quantiphy 2.3.0 `__\n\nWith the use of pyvisa-py, should not have to install the National\nInstruments NIVA driver.\n\nUsage\n-----\n\nThe code is a very basic class for controlling and accessing the\nsupported oscilloscopes.\n\nIf running the examples embedded in the individual package source files,\nbe sure to edit the resource string or VISA descriptor of your\nparticular device. For MSOX3000.py, you can also set an environment\nvariable, MSOX3000_IP to the desired resource string before running the\ncode.\n\n.. code:: python\n\n # Lookup environment variable MSOX3000_IP and use it as the resource\n # name or use the TCPIP0 string if the environment variable does\n # not exist\n from msox3000 import MSOX3000\n from os import environ\n resource = environ.get('MSOX3000_IP', 'TCPIP0::172.16.2.13::INSTR')\n\n # create your visa instrument\n instr = MSOX3000(resource)\n instr.open()\n\n # set to channel 1\n #\n # NOTE: can pass channel to each method or just set it\n # once and it becomes the default for all following calls. If pass the\n # channel to a Class method call, it will become the default for\n # following method calls.\n instr.channel = 1\n\n # Enable output of channel, if it is not already enabled\n if not instr.isOutputOn():\n instr.outputOn()\n\n # Install measurements to display in statistics display and also\n # return their current values here\n print('Ch. {} Settings: {:6.4e} V PW {:6.4e} s\\n'.\n format(instr.channel, instr.measureVoltAverage(install=True),\n instr.measurePosPulseWidth(install=True)))\n\n # Add an annotation to the screen before hardcopy\n instr._instWrite(\"DISPlay:ANN ON\")\n instr._instWrite('DISPlay:ANN:TEXT \"{}\\\\n{} {}\"'.format('Example of Annotation','for Channel',instr.channel))\n instr._instWrite(\"DISPlay:ANN:COLor CH{}\".format(instr.channel))\n\n # Change label of the channel to \"MySig\"\n instr._instWrite('CHAN{}:LABel \"MySig\"'.format(instr.channel))\n instr._instWrite('DISPlay:LABel ON')\n\n # Make sure the statistics display is showing\n instr._instWrite(\"SYSTem:MENU MEASure\")\n instr._instWrite(\"MEASure:STATistics:DISPlay ON\")\n\n ## Save a hardcopy of the screen to file 'outfile.png'\n instr.hardcopy('outfile.png')\n\n # Change label back to the default\n instr._instWrite('CHAN{}:LABel \"{}\"'.format(instr.channel, instr.channel))\n instr._instWrite('DISPlay:LABel OFF')\n\n # Turn off the annotation\n instr._instWrite(\"DISPlay:ANN OFF\")\n\n # turn off the channel\n instr.outputOff()\n\n # return to LOCAL mode\n instr.setLocal()\n\n instr.close()\n\nTaking it Further\n-----------------\n\nThis implements a small subset of available commands.\n\nFor information on what is possible for the HP/Agilent/Keysight\nMSO-X/DSO-X 3000A, see the `Keysight InfiniiVision 3000 X-Series\nOscilloscopes Programming\nGuide `__\n\nFor what is possible with general instruments that adhere to the IEEE\n488 SCPI specification, like the MSO-X 3000A, see the `SCPI 1999\nSpecification `__ and the\n`SCPI\nWikipedia `__\nentry.\n\nContact\n-------\n\nPlease send bug reports or feedback to Stephen Goadhouse\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/sgoadhouse/msox3000", "keywords": "HP,Agilent,Keysight,MSO3000,MSOX3000,DSO3000,DSOX3000PyVISA,VISA,SCPI,INSTRUMENT", "license": "MIT", "maintainer": "Stephen Goadhouse", "maintainer_email": "sgoadhouse@virginia.edu", "name": "msox3000", "package_url": "https://pypi.org/project/msox3000/", "platform": "", "project_url": "https://pypi.org/project/msox3000/", "project_urls": { "Homepage": "https://github.com/sgoadhouse/msox3000" }, "release_url": "https://pypi.org/project/msox3000/0.2/", "requires_dist": [ "pyvisa", "pyvisa-py", "argparse", "QuantiPhy" ], "requires_python": "", "summary": "Control of HP/Agilent/Keysight MSO-X/DSO-X 3000A Oscilloscope through python via PyVisa", "version": "0.2" }, "last_serial": 4080087, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "c68b559cdfcf96d189a467e3051d1e55", "sha256": "13fc8378d68922b67477a4ee8022e7ed5760fe272e0ff91d0a54afd1ccfd2435" }, "downloads": -1, "filename": "msox3000-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c68b559cdfcf96d189a467e3051d1e55", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17129, "upload_time": "2018-07-18T19:36:57", "url": "https://files.pythonhosted.org/packages/a7/e4/0731ef1424587d60352aca5cf12eef33a32c87679d633525fc3e4a682199/msox3000-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3ebfd3baf6da696b85cf205cfd8ceb68", "sha256": "befe59204a1c8189a7d21e4baa7bddb1bac44889b73d7d065b306aa81df6303f" }, "downloads": -1, "filename": "msox3000-0.1.tar.gz", "has_sig": false, "md5_digest": "3ebfd3baf6da696b85cf205cfd8ceb68", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19534, "upload_time": "2018-07-18T19:36:58", "url": "https://files.pythonhosted.org/packages/65/b6/71c02d37fd3ef19e9d720624aed046df30a9496ff07714a14f50ab8dac91/msox3000-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "41b3520399f61258c1e200fe4cc9bbec", "sha256": "4b23bf37a312473c97610a45a7544cfc1d0759b75b2fc37ee9c8b35ab670e2fd" }, "downloads": -1, "filename": "msox3000-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "41b3520399f61258c1e200fe4cc9bbec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17631, "upload_time": "2018-07-18T22:30:55", "url": "https://files.pythonhosted.org/packages/9b/6f/f67a21635e71458d1564a3235cdf42a3e07682652b911793feea579a0e4d/msox3000-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6347572fd2121b930867c47b7c9422d3", "sha256": "be1bd85c4ea066d3045aac7e8aed314c4ccfadb2703b302c6d59cff67ebd9578" }, "downloads": -1, "filename": "msox3000-0.2.tar.gz", "has_sig": false, "md5_digest": "6347572fd2121b930867c47b7c9422d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20613, "upload_time": "2018-07-18T22:30:56", "url": "https://files.pythonhosted.org/packages/34/8b/46e5153121d3f090e9ea01cb7f4c9e1b6c1ea78c0fc366f64de2bfaba544/msox3000-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "41b3520399f61258c1e200fe4cc9bbec", "sha256": "4b23bf37a312473c97610a45a7544cfc1d0759b75b2fc37ee9c8b35ab670e2fd" }, "downloads": -1, "filename": "msox3000-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "41b3520399f61258c1e200fe4cc9bbec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17631, "upload_time": "2018-07-18T22:30:55", "url": "https://files.pythonhosted.org/packages/9b/6f/f67a21635e71458d1564a3235cdf42a3e07682652b911793feea579a0e4d/msox3000-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6347572fd2121b930867c47b7c9422d3", "sha256": "be1bd85c4ea066d3045aac7e8aed314c4ccfadb2703b302c6d59cff67ebd9578" }, "downloads": -1, "filename": "msox3000-0.2.tar.gz", "has_sig": false, "md5_digest": "6347572fd2121b930867c47b7c9422d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20613, "upload_time": "2018-07-18T22:30:56", "url": "https://files.pythonhosted.org/packages/34/8b/46e5153121d3f090e9ea01cb7f4c9e1b6c1ea78c0fc366f64de2bfaba544/msox3000-0.2.tar.gz" } ] }