Metadata-Version: 1.1
Name: dcps
Version: 0.3
Summary: Control of DC Power Supplies through python
Home-page: https://github.com/sgoadhouse/dcps
Author: Stephen Goadhouse
Author-email: sgoadhouse@virginia.edu
License: MIT
Description-Content-Type: UNKNOWN
Description: dcps
        ====
        
        Control of DC Power Supplies through python
        
        This is intended to be a generic package to control various DC power
        supplies using various access methods with a common API. For now, this
        only supports the Rigol DP832A DC Power Supply through pyVISA and the
        SCPI command set. This should work with all Rigol DP8xx power supplies
        although it is only tested with the DP832A.
        
        As new power supplies are added, they should each have their own
        sub-package.
        
        Installation
        ============
        
        You need to install the pyvisa and pyvisa-py packages.
        
        To install the dcps package, run the command:
        
        ::
        
            python setup.py install
        
        Alternatively, can add a path to this package to the environment
        variable PYTHONPATH or even add the path to it at the start of your
        python script. Use your favorite web search engine to find out more
        details.
        
        Even better, dcps is now on PyPi, so you can simply use the following
        and the required depedancies should get installed for you:
        
        ::
        
            pip install dcps
        
        Requirements
        ------------
        
        -  `python <http://www.python.org/>`__ [Works with 2.7+ and 3+]
        -  `pyvisa 1.9 <https://pyvisa.readthedocs.io/en/stable/>`__
        -  `pyvisa-py 0.2 <https://pyvisa-py.readthedocs.io/en/latest/>`__
        
        With the use of pyvisa-py, should not have to install the National
        Instruments NIVA driver.
        
        WARNING!
        ========
        
        Be *really* careful since you are controlling a power supply that may be
        connected to something that does not like to go to 33V when you meant
        3.3V and it may express its displeasure by exploding all over the place.
        So be sure to do ALL testing without a device connected, as much as
        possible, and make use of the protections built into the power supply.
        For example, you can set voltage and current limits that the power
        supply will obey and ignore requests by these commands to go outside the
        allowable ranges. There are even SCPI commands to set these limits, but
        they are not in this class because I think it is safer that they be set
        manually. Of course, you can easily add those commands and do it
        programatically if you like living dangerously.
        
        Usage
        -----
        
        The code is a very basic class for controlling and accessing the Rigol
        DP832A and other power supplies in the DP800 family. Before running any
        example, be extra sure that the power supply is disconnected from any
        device in case voltsges unexpectedly go to unexpected values.
        
        If running the examples embedded in the individual package source files,
        be sure to set the resource string or VISA descriptor of your particular
        device. You can either set an environment variable, DP800_IP or change
        the code where the RigolDP800() is being instantiated.
        
        .. code:: python
        
            # Lookup environment variable DP800_IP and use it as the resource
            # name or use the TCPIP0 string if the environment variable does
            # not exist
            from dcps import RigolDP800
            from os import environ
            resource = environ.get('DP800_IP', 'TCPIP0::172.16.2.13::INSTR')
        
            # create your visa instrument
            rigol = RigolDP800(resource)
            rigol.open()
        
            # set to channel 1
            rigol.channel = 1
        
            # Query the voltage/current limits of the power supply
            print('Ch. {} Settings: {:6.4f} V  {:6.4f} A'.
                     format(rigol.channel, rigol.queryVoltage(),
                                rigol.queryCurrent()))
        
            # Enable output of channel
            rigol.outputOn()
        
            # Measure actual voltage and current
            print('{:6.4f} V'.format(rigol.measureVoltage()))
            print('{:6.4f} A'.format(rigol.measureCurrent()))
        
            # change voltage output to 2.7V
            rigol.setVoltage(2.7)
        
            # turn off the channel
            rigol.outputOff()
        
            # return to LOCAL mode
            rigol.setLocal()
        
            rigol.close()
        
        Taking it Further
        -----------------
        
        This implements a small subset of available commands. For information on
        what is possible for the Rigol DP8xx, see the `Rigol DP800 Programming
        Guide <http://beyondmeasure.rigoltech.com/acton/attachment/1579/f-03a1/1/-/-/-/-/DP800%20Programming%20Guide.pdf>`__
        
        For what is possible with general power supplies that adhere to the IEEE
        488 SCPI specification, like the Rigol DP8xx, see the `SCPI 1999
        Specification <http://www.ivifoundation.org/docs/scpi-99.pdf>`__ and the
        `SCPI
        Wikipedia <https://en.wikipedia.org/wiki/Standard_Commands_for_Programmable_Instruments>`__
        entry.
        
        Contact
        -------
        
        Please send bug reports or feedback to Stephen Goadhouse
        
Keywords: Rigol,DP800,DP832A,PyVISA,VISA,SCPI,INSTRUMENT
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
