##// END OF EJS Templates
analog discovery:...
analog discovery: added analog out status getter added wait, runDuration and symetry on analog_out method

File last commit:

r3:d444d1cc3fbf default
r8:438467acb8ed default
Show More
prologix_usb_gpib.py
73 lines | 1.8 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):
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?")