Commit b82b9b4f authored by Projects's avatar Projects

pulsegen: Catch exceptions when initializing the serial port

parent 425f16cd
conv-ttl-blo-gw @ da591442
Subproject commit adbbd31b1af412639786a8478fbeec9b78188dc2 Subproject commit da5914420a7d0731f6bc8e262f78148008fa936a
...@@ -52,6 +52,7 @@ class PulseGen: ...@@ -52,6 +52,7 @@ class PulseGen:
""" """
def __init__(self, device="/dev/ttyUSB0", baud=115200): def __init__(self, device="/dev/ttyUSB0", baud=115200):
self.initialized = False
self.ser = serial.Serial(device, baud, timeout=1, rtscts=1) self.ser = serial.Serial(device, baud, timeout=1, rtscts=1)
# generator limits # generator limits
...@@ -74,9 +75,10 @@ class PulseGen: ...@@ -74,9 +75,10 @@ class PulseGen:
sys.exit(2) sys.exit(2)
self.reset() self.reset()
self.initialized = True
def __del__(self): def __del__(self):
if self.ser is not None: if self.initialized:
# disable generator output # disable generator output
self.ser.write(b'OUTP OFF\r\n') self.ser.write(b'OUTP OFF\r\n')
self.ser.close() self.ser.close()
...@@ -223,6 +225,14 @@ class PulseGen: ...@@ -223,6 +225,14 @@ class PulseGen:
############################################################################### ###############################################################################
if __name__ == '__main__': if __name__ == '__main__':
# default parameters
device = '/dev/ttyUSB0'
baud = 115200
count = 2000000
freq = 2e6 # Hz
width = 250e-9 # s
samples = 500 # number of samples for arbitrary waveform
def usage(): def usage():
print('(c) CERN 2017') print('(c) CERN 2017')
print('Maciej Suminski <maciej.suminski@cern.ch>') print('Maciej Suminski <maciej.suminski@cern.ch>')
...@@ -239,14 +249,6 @@ if __name__ == '__main__': ...@@ -239,14 +249,6 @@ if __name__ == '__main__':
print('') print('')
print('-h|--help shows this information') print('-h|--help shows this information')
# default parameters
device = '/dev/ttyUSB0'
baud = 115200
count = 2000000
freq = 2e6 # Hz
width = 250e-9 # s
samples = 500 # number of samples for arbitrary waveform
print('pulsegen: Agilent 33250A pulse burst generator\r\n') print('pulsegen: Agilent 33250A pulse burst generator\r\n')
# parse options # parse options
...@@ -284,7 +286,16 @@ if __name__ == '__main__': ...@@ -284,7 +286,16 @@ if __name__ == '__main__':
print('Connecting to %s @ %s' % (device, baud)) print('Connecting to %s @ %s' % (device, baud))
gen = PulseGen(device, baud)
try:
gen = PulseGen(device, baud)
except serial.SerialException as err:
print(err.strerror)
sys.exit(2)
except:
print('Error occurred')
sys.exit(2)
gen.reset() gen.reset()
gen.pulse(count, freq, width, samples) gen.pulse(count, freq, width, samples)
gen.wait() gen.wait()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment