diff --git a/siriuspy/siriuspy/devices/bbb.py b/siriuspy/siriuspy/devices/bbb.py index 860dccd80..71a6d2bf4 100644 --- a/siriuspy/siriuspy/devices/bbb.py +++ b/siriuspy/siriuspy/devices/bbb.py @@ -42,7 +42,8 @@ def __init__(self, devname, props2init='all'): "props2init must be 'all' or bool(props2init) == False") self.dcct = DCCT(DCCT.DEVICES.SI_13C4, props2init=props2init) - self.rfcav = RFCav(RFCav.DEVICES.SI, props2init=props2init) + self.rfcav_a = RFCav(RFCav.DEVICES.SIA, props2init=props2init) + self.rfcav_b = RFCav(RFCav.DEVICES.SIB, props2init=props2init) self.info = SystemInfo(devname, props2init=props2init) self.timing = Timing(devname, props2init=props2init) self.sram = Acquisition(devname, acqtype='SRAM', props2init=props2init) @@ -61,7 +62,7 @@ def __init__(self, devname, props2init='all'): self.info, self.timing, self.sram, self.bram, self.coeffs, self.feedback, self.drive0, self.drive1, self.drive2, self.bunch_clean, self.fbe, self.dcct, - self.rfcav, self.single_bunch, self.phase_track] + self.rfcav_a, self.rfcav_b, self.single_bunch, self.phase_track] if devname.endswith('-L'): self.pwr_amp1 = PwrAmpL(devname, num=0, props2init=props2init) @@ -194,24 +195,26 @@ def sweep_feedback_phase(self, values, wait=2, mon_type='peak'): self.coeffs.cmd_edit_apply() return _np.array(mon_values) - def sweep_rf_phase(self, values, wait=2, mon_type='mean'): - """Sweep RF Phase for each `value` in `values`.""" + def sweep_rf_phase(self, delta_phases, wait=2, mon_type='mean'): + """Sweep RF Phase for each dphase in `delta_phases`.""" mon_values = [] ctrl, mon = 'RF Phase', 'SRAM Mean' print(f'Idx: {ctrl:15s} {mon:15s}') - llrf = self.rfcav.dev_llrf - init_val = llrf.phase - for i, val in enumerate(values): - self.rfcav.set_phase(val) + rfcavs = [self.rfcav_a, self.rfcav_b] + init_phases = [rfcav.dev_llrf.phase for rfcav in rfcavs] + for i, dphase in enumerate(delta_phases): + for phase0, rfcav in zip(init_phases, rfcavs): + rfcav.set_phase(phase0 + dphase) _time.sleep(wait) if mon_type.lower() in 'mean': mon_val = self.sram.data_mean else: mon_val = self.sram.spec_marker1_mag mon_values.append(mon_val) - print(f'{i:03d}: {val:15.6f} {_np.mean(mon_val):15.6f}') - llrf.value = init_val + print(f'{i:03d}: {dphase:15.6f} {_np.mean(mon_val):15.6f}') + for phase0, rfcav in zip(init_phases, rfcavs): + rfcav.set_phase(phase0) return _np.array(mon_values) diff --git a/siriuspy/siriuspy/devices/bpm_fam.py b/siriuspy/siriuspy/devices/bpm_fam.py index a4f921e61..12ed62c5d 100644 --- a/siriuspy/siriuspy/devices/bpm_fam.py +++ b/siriuspy/siriuspy/devices/bpm_fam.py @@ -264,8 +264,8 @@ def get_mturn_timestamps(self): (len(self._mturn_signals2acq), len(self.bpms)), dtype=float) for i, s in enumerate(self._mturn_signals2acq): for j, bpm in enumerate(self.bpms): - s = self.conv_signal2pvname_format(s) - pvo = bpm.pv_object(f'GEN{s}Data') + pname = self.conv_signal2pvname_format(s) + pvo = bpm.pv_object(f'GEN{pname}Data') tv = pvo.get_timevars(timeout=self.TIMEOUT) tsmps[i, j] = pvo.timestamp if tv is None else tv['timestamp'] return tsmps