#!/usr/bin/env python #-*- coding: utf-8 -*- """Simple python library to communicate with Prologix USB GPIB module. """ import time import sys import os import matplotlib.pyplot as plt import numpy as np import serial __author__ = "Alexis Jeandet" __copyright__ = "Copyright 2015, Laboratory of Plasma Physics" __credits__ = [] __license__ = "GPLv2" __version__ = "1.0.0" __maintainer__ = "Alexis Jeandet" __email__ = "alexis.jeandet@member.fsf.org" __status__ = "Development" class UsbGpib(object): modedic = {0:"DEVICE" , 1:"CONTROLLER" ,} revmodedic = {"DEVICE":"0" , "CONTROLLER":"1" ,} def __init__(self,port,address=0): self._port=serial.Serial(port,timeout=0.1) self._address=address self._mode=1 self.write("++ver") self.version=self.read() self.write("++auto 1") def set_as_device(self): self.write("++mode 0") def set_as_controller(self): self.write("++mode 1") @property def mode(self): self.write("++mode") self._mode= self.modedic[int(self.read())] return self._mode @mode.setter def mode(self,new_mode): self._mode=self.revmodedic[new_mode] self.write("++mode %d" % self._mode) @property def address(self): self._address=int(self.read("++addr")) return self._address @address.setter def address(self,value): self._address=int(value) self.write("++addr %d" % self._address) def write(self,command): self._port.write(b"%s\n\r" % command) self._port.flush() def read(self,command="",GPIB=False): if not command=="": self.write(command) if GPIB: self.write("++read") return self._port.readall() def idn(self): return self.read("*IDN?")