diff --git a/.gitignore b/.gitignore index 9fad30c2..bed8428a 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,7 @@ doc/_build # pyinstaller dist/ + +*.cfg +*.bk.tnt +*.tps \ No newline at end of file diff --git a/cfg/psi_nmr_setup_cfg.py b/cfg/psi_nmr_setup_cfg.py index 46e73cd3..108d144f 100644 --- a/cfg/psi_nmr_setup_cfg.py +++ b/cfg/psi_nmr_setup_cfg.py @@ -25,7 +25,7 @@ if('Capacitance' in enabled_modules): Mod('io_capacitance', 'frappy_psi.capacitance_readings.TSSOP16.TSSOP16_IO', 'communication', - uri='serial://COM4?baudrate=9600+bytesize=8+parity=none+stopbits=1') + uri='serial://COM5?baudrate=9600+bytesize=8+parity=none+stopbits=1') Mod('TSSOP16', 'frappy_psi.capacitance_readings.TSSOP16.TSSOP16', 'Capacitance-reading Arduino (with TSSOP16)', io='io_capacitance') diff --git a/frappy_psi/capacitance_readings/TSSOP16.py b/frappy_psi/capacitance_readings/TSSOP16.py index 91d1011a..1290cffb 100644 --- a/frappy_psi/capacitance_readings/TSSOP16.py +++ b/frappy_psi/capacitance_readings/TSSOP16.py @@ -5,7 +5,7 @@ import traceback from frappy.core import Readable, Parameter, FloatRange, HasIO, StringIO, Property, IntRange, IDLE, BUSY, WARN, ERROR, Drivable, BoolType, Attached class TSSOP16_IO(StringIO): - end_of_line = '\r\n' + end_of_line = '\r' wait_before = 3.0 timeout=1 identification = [ ('*IDN?', r'0x48,ACM1219,.*') ] @@ -22,10 +22,9 @@ class TSSOP16(HasIO, Readable): l = self.communicate('readCVT') vals = l.split(',') vals = [ float(v) for v in vals ] - print(vals) return vals[0] except: - return self.custom_read_off_cvt(recursive_layer=recursive_layer+1) + print('Retrying: ', recursive_layer+1) traceback.print_exc() self.io.closeConnection() self.io.connectStart() diff --git a/frappy_psi/network_analysers/ZVL/ZVLNode.py b/frappy_psi/network_analysers/ZVL/ZVLNode.py index 6cc6e1ac..cb15c562 100644 --- a/frappy_psi/network_analysers/ZVL/ZVLNode.py +++ b/frappy_psi/network_analysers/ZVL/ZVLNode.py @@ -21,7 +21,10 @@ class ZVLNode(fc.Readable): analyser_ip: the IP address of the network analyser. Best to set in the config! """ - value = fc.Parameter('value', fc.ArrayOf(fc.FloatRange(unit='dB'), minlen=1000, maxlen=1000), readonly=True) + value = fc.Parameter('value', + fc.StructOf(magnitudes=fc.ArrayOf(fc.FloatRange(unit='dB'), minlen=1000, maxlen=1000), + frequencies=fc.ArrayOf(fc.FloatRange(unit='Hz'), minlen=1000, maxlen=1000)), + readonly=True) status = fc.Parameter(datatype=frappy.datatypes.StatusType(fc.Readable, "DISABLED", 'PREPARED', 'BUSY'), default=('IDLE', 'idle')) pollinterval = fc.Parameter(default=1) central_freq = fc.Parameter('central_freq', fc.FloatRange(min=9_000, max=13_600_000_000, unit='Hz'), default=10_000_000, readonly=False) @@ -41,16 +44,25 @@ class ZVLNode(fc.Readable): @fc.Command(description="Update data") def acq(self): self.status = ('BUSY', 'acquiring') + #print('acq') self.NA.set_freq_span(self.central_freq, self.freq_span) freq, vals = self.NA.get_data() self.value = { 'frequencies': freq, 'magnitudes': vals } self.status = ('IDLE', 'idle') - def write_calibration(self, f): - self.calibration = f - self.NA.load_calibration(self.calibration) - return self.read_calibration() + #@fc.Command(description='Save current calibration') + #def write_calibration(self, f): + # self.calibration = f + # self.NA.load_calibration(self.calibration) + # return self.read_calibration() + @fc.Command(description='Reload last used calibration') + def reload_calibration(self): + self.NA.reload_calibration() + freq_start, freq_stop = self.NA.get_freq_range() + self.freq_span = freq_stop - freq_start + self.central_freq = freq_start + self.freq_span/2.0 + def write_central_freq(self, f): self.central_freq = (f) self.acq() diff --git a/frappy_psi/tnmr/OTFModule.py b/frappy_psi/tnmr/OTFModule.py index 3212af69..1222ce71 100644 --- a/frappy_psi/tnmr/OTFModule.py +++ b/frappy_psi/tnmr/OTFModule.py @@ -245,15 +245,15 @@ class ProgrammedSequence(fc.Drivable): # Drivable only for kill() funcitonality def read_value(self): newvals = {} - #try: - d = self.tnmr().get_data() - newvals['reals'] = d[0] - newvals['imags'] = d[1] - newvals['t'] = [ self.compiled_parameters['acquisition_time'] * i/len(d[0]) for i in range(0, len(d[0])) ] - #except: - # newvals['reals'] = [] - # newvals['imags'] = [] - # newvals['t'] = [] + try: + d = self.tnmr().get_data() + newvals['reals'] = d[0] + newvals['imags'] = d[1] + newvals['t'] = [ self.compiled_parameters['acquisition_time'] * i/len(d[0]) for i in range(0, len(d[0])) ] + except: + newvals['reals'] = [] + newvals['imags'] = [] + newvals['t'] = [] return newvals def read_num_acqs_actual(self):