prologix_usb_gpib.py
73 lines
| 1.8 KiB
| text/x-python
|
PythonLexer
/ lppinstru / prologix_usb_gpib.py
Alexis Jeandet
|
r3 | #!/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?") | ||||