diff --git a/conv-ttl-blo-gw b/conv-ttl-blo-gw index adbbd31b1af412639786a8478fbeec9b78188dc2..da5914420a7d0731f6bc8e262f78148008fa936a 160000 --- a/conv-ttl-blo-gw +++ b/conv-ttl-blo-gw @@ -1 +1 @@ -Subproject commit adbbd31b1af412639786a8478fbeec9b78188dc2 +Subproject commit da5914420a7d0731f6bc8e262f78148008fa936a diff --git a/software/utils/pulsegen.py b/software/utils/pulsegen.py index 5f46d94a09960b155c1ed7d75ec4fbc15d2dd0ee..358c7b03e7937acc6b5e83c12b5f8046d2fb3259 100755 --- a/software/utils/pulsegen.py +++ b/software/utils/pulsegen.py @@ -52,6 +52,7 @@ class PulseGen: """ def __init__(self, device="/dev/ttyUSB0", baud=115200): + self.initialized = False self.ser = serial.Serial(device, baud, timeout=1, rtscts=1) # generator limits @@ -74,9 +75,10 @@ class PulseGen: sys.exit(2) self.reset() + self.initialized = True def __del__(self): - if self.ser is not None: + if self.initialized: # disable generator output self.ser.write(b'OUTP OFF\r\n') self.ser.close() @@ -223,6 +225,14 @@ class PulseGen: ############################################################################### 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(): print('(c) CERN 2017') print('Maciej Suminski <maciej.suminski@cern.ch>') @@ -239,14 +249,6 @@ if __name__ == '__main__': print('') 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') # parse options @@ -284,7 +286,16 @@ if __name__ == '__main__': 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.pulse(count, freq, width, samples) gen.wait()