##// END OF EJS Templates
Added Discoply...
Added Discoply Added interface to discoply in discovery class Some fixes on prologix GPIB class

File last commit:

r9:142b4267322d default
r9:142b4267322d default
Show More
prologix_usb_gpib.py
88 lines | 2.3 KiB | text/x-python | PythonLexer
#!/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,baudrate=9600):
self._port=serial.Serial(port,timeout=0.1,baudrate=baudrate)
self._address=address
self.write("++auto 1")
self._auto=1
self.mode=1
self.write("++ver")
self.version=self.read()
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):
if type(new_mode) == type("str"):
self._mode=self.revmodedic[new_mode]
elif type(new_mode) == type(1):
self._mode=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(("%s\n\r" % command).encode())
self._port.flush()
def read(self,command=""):
if not command=="":
self.write(command)
if command[0:2]!="++" and self._auto==0:
self.write("++read")
return self._port.readall()
def idn(self):
return self.read("*IDN?")
@property
def auto_read_after_write(self):
self._auto=int(self.read("++auto"))
return self._auto
@auto_read_after_write.setter
def auto_read_after_write(self,enabled):
self._auto=enabled
self.write("++auto %d" % self._auto)