Skip to main content

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.

Release files for slave 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for slave 0.4.0
File Size Uploaded
slave-0.4.0.tar.gz 136.5 kB Details

Release files / slave-0.4.0.tar.gz

Download URL slave-0.4.0.tar.gz
Size 136.5 kB
Tags Source
SHA-256 checksum
How to use checksums
11717d87d7ef2d289a792ed71b64aa8ba074a810e3d61b0ae657bfe49f136a92
BLAKE2b-256 checksum
How to use checksums
b5776830a81bad766034f34fbad9ae9543e1a905df60180a298ba287054f5bf5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.4.0 This release

1 release file

0.3.3

1 release file

0.3.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page