#!/usr/bin/env python

import sys
from ezca import Ezca
import time 
import cdsutils
sys.path.append('/ligo/cdscfg')
import stdenv as cds;
cds.INIT_ENV()
Ezca().export()

#this is a series of commands that can be copied and pasted into a guardian terminal to transition from the Low noise ESD state locked on ETMX to ETMX L2/L1 +ITMX ESD.  In order to partially transition you can change the ratios on lines 29 and 30

itmx_da_gain = -108.4  #ezca['SUS-ITMX_L3_DRIVEALIGN_L2L_GAIN']
etmx_da_gain = ezca['SUS-ETMX_L3_DRIVEALIGN_L2L_GAIN']

ezca['SUS-ITMX_L3_DRIVEALIGN_L2L_TRAMP'] = 10
ezca['SUS-ITMX_L3_DRIVEALIGN_L2L_GAIN']=0
ezca['SUS-ITMX_L3_LOCK_BIAS_TRAMP'] =120
time.sleep(10)
ezca['SUS-ITMX_L3_LOCK_BIAS_GAIN'] =1
time.sleep(120)
ezca.get_LIGOFilter('SUS-ITMX_M0_LOCK_L').turn_off('INPUT')
ezca['SUS-ITMX_L1_LOCK_OUTSW_L'] = 0
ezca['SUS-ITMX_L2_LOCK_OUTSW_L'] = 0
ezca['SUS-ITMX_L3_LOCK_OUTSW_L'] = 1
ezca.get_LIGOFilter('SUS-ITMX_L3_DRIVEALIGN_L2L').only_on('INPUT', 'FM4', 'FM5', 'OUTPUT', 'DECIMATION') 
ezca['LSC-ARM_OUTPUT_MTRX_3_1'] = 1
# we also need to make the swap for the MICH and SRCL FF output matrix

ezca['LSC-OUTPUT_MTRX_3_10']= 1
ezca['LSC-OUTPUT_MTRX_3_11']= 1

ezca['SUS-ITMX_L3_LOCK_L_GAIN']=1
ezca.get_LIGOFilter('SUS-ITMX_L3_ISCINF_L').only_on('INPUT', 'FM5', 'FM8','FM9', 'FM10', 'OUTPUT', 'DECIMATION') 

time.sleep(5)
#make the swap half way or three quarters

ezca['SUS-ITMX_L3_DRIVEALIGN_L2L_TRAMP'] = 20
ezca['SUS-ETMX_L3_DRIVEALIGN_L2L_TRAMP'] = 20

ezca['SUS-ITMX_L3_DRIVEALIGN_L2L_GAIN']=itmx_da_gain*1
ezca['SUS-ETMX_L3_DRIVEALIGN_L2L_GAIN']=etmx_da_gain*0

time.sleep(20)
print('Transitioned from the Low noise ESD state locked on ETMX to ETMX L2/L1 +ITMX ESD')

#To switch it back just run Switch_DARM_from_ITMX_ESD_to_ETMX_ESD.py



