Skip to content

Commit

Permalink
DEVICES.BBB.FIX: Use 2 RFCavs in sweep_rf_phase of BbB
Browse files Browse the repository at this point in the history
  • Loading branch information
murilobalves committed Oct 11, 2024
1 parent 893016c commit e7004c5
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions siriuspy/siriuspy/devices/bbb.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.SIA, 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)
Expand All @@ -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)
Expand Down Expand Up @@ -194,24 +195,31 @@ 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'):
def sweep_rf_phase(self, values, wait=2, mon_type='mean', cavity='A'):
"""Sweep RF Phase for each `value` in `values`."""
mon_values = []
ctrl, mon = 'RF Phase', 'SRAM Mean'
print(f'Idx: {ctrl:15s} {mon:15s}')

llrf = self.rfcav.dev_llrf
if cavity.upper() == 'A':
rfcav = self.rfcav_a
if cavity.upper() == 'B':
rfcav = self.rfcav_b
else:
raise ValueError("cavity must be 'A' or 'B'.")

llrf = rfcav.dev_llrf
init_val = llrf.phase
for i, val in enumerate(values):
self.rfcav.set_phase(val)
rfcav.set_phase(val)
_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
llrf.phase = init_val
return _np.array(mon_values)


Expand Down

0 comments on commit e7004c5

Please sign in to comment.