GithubHelp home page GithubHelp logo

alexjfecteau / slave Goto Github PK

View Code? Open in Web Editor NEW

This project forked from p3trus/slave

0.0 2.0 0.0 938 KB

A lightweight python package, designed to simplify instrument control.

License: GNU General Public License v3.0

Python 100.00%

slave's Introduction

Slave:

Slave is a micro framework designed to simplify instrument communication and control and comes with a variety of ready to use device drivers.

Overview

Slave provides an intuitive way of creating instrument api's, inspired by object relational mappers.

from slave.iec60488 import IEC60488, PowerOn
from slave.driver import Command
from slave.types import Integer, Enum

class Device(IEC60488, PowerOn):
    """An iec60488 conforming device api with additional commands."""
    def __init__(self, transport):
        super(Device, self).__init__(transport)
        # A custom command
        self.my_command = Command(
            'QRY?', # query message header
            'WRT',  # command message header
            # response and command data type
            [Integer, Enum('first', 'second')]
        )

Commands mimic instance attributes. Read access queries the device, parses and converts the response and finally returns it. Write access parses and converts the arguments and sends them to the device. This leads to very intuitive interfaces.

Several device drivers are already implemented, and many more are under development. A short usage example is given below:

import time
from slave.transport import Visa
from slave.srs import SR830

lockin = SR830(Visa('GPIB::08'))
# configure the lockin amplifier
lockin.reserve = 'high'
lockin.time_constant = 3
# take 60 measurements and print the result
for i in range(60):
    print lockin.x
    time.sleep(1)

Requirements

  • Python 2.6 or higher
  • Sphinx (optional, to build the documentation)
  • sphinx_bootstrap_theme(optional, default theme used for the documentation)
  • distribute (Python 3.x)

Installation

To install Slave, simply type

python setup.py install

Documentation

Slave is fully documented. Both the latest stable as well as the develop documentations are available online. To build the documentation manually, e.g. the html documentation, navigate into the /doc/ subfolder and execute make html. For a prettier theme, install sphinx_boostrap_theme first (pip install sphinx_bootstrap_theme).

Licensing

You should have received a copy of the GNU General Public License along with slave; see the file COPYING.

slave's People

Contributors

alexjfecteau avatar p3trus avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.