import foton
import ezca

ezca = ezca.Ezca()

design_zp = f'zpk([10],[0.4],1,"n")'
design_toum = f'zpk([],[],0.0233333,"n")'
design_lp = f'butter("LowPass",4,0.1)'
fd_zp = foton.FilterDesign(design_zp,16384)
fd_toum = foton.FilterDesign(design_toum,16384)
fd_lp = foton.FilterDesign(design_lp,16384)

for iOptic in ['ZM4','ZM5','ZM6']:
    print(' ')
    print('    Starting with '+iOptic)
    print(' ')
    
    # foton_file_obj = foton.FilterFile('/opt/rtcds/userapps/release/sus/h1/filterfiles/H1SUS'+iOptic+'.txt');    
    foton_file_obj = foton.FilterFile('/opt/rtcds/userapps/release/sus/h1/filterfiles/H1SUSSQZOUT.txt');
    #for iStage in ['M1','M2','M3']:
    for iStage in ['M1']:
        if iStage == 'M1':
            #osemList = ['H1','H2','H3','V1','V2','V3']
            #osemList = ['LF','RT','SD']
            osemList = ['UL','LL','UR','LR']
            #osemList = ['T1','T2','T3','LF','RT','SD']
        else:
            osemList = ['UL','LL','UR','LR']
        for iOSEM in osemList:
            ezca['SUS-'+iOptic+'_'+iStage+'_WD_OSEMAC_RMSLP_'+iOSEM+'_GAIN'] = 1
            ezca.get_LIGOFilter('SUS-'+iOptic+'_'+iStage+'_WD_OSEMAC_RMSLP_'+iOSEM).only_on('INPUT','FM1','OUTPUT','DECIMATION')
            ezca.get_LIGOFilter('SUS-'+iOptic+'_'+iStage+'_WD_OSEMAC_BANDLIM_'+iOSEM).switch_on('FM6','FM10')
            ezca['SUS-'+iOptic+'_'+iStage+'_WD_OSEMAC_BANDLIM_'+iOSEM+'_GAIN'] = ezca['SUS-'+iOptic+'_'+iStage+'_OSEMINF_'+iOSEM+'_GAIN']
            ezca['SUS-'+iOptic+'_'+iStage+'_WD_OSEMAC_RMS_MAX'] = 150            

            foton_file_obj[iOptic+'_'+iStage+'_WD_OSEMAC_BANDLIM_'+iOSEM][5].set_filterdesign(fd_zp)
            foton_file_obj[iOptic+'_'+iStage+'_WD_OSEMAC_BANDLIM_'+iOSEM][9].set_filterdesign(fd_toum)
            foton_file_obj[iOptic+'_'+iStage+'_WD_OSEMAC_RMSLP_'+iOSEM][0].set_filterdesign(fd_lp)
            
            foton_file_obj[iOptic+'_'+iStage+'_WD_OSEMAC_BANDLIM_'+iOSEM][5].name = '10:0.4' 
            foton_file_obj[iOptic+'_'+iStage+'_WD_OSEMAC_BANDLIM_'+iOSEM][9].name = 'to_um'
            foton_file_obj[iOptic+'_'+iStage+'_WD_OSEMAC_RMSLP_'+iOSEM][0].name = '10secLP'
            
    foton_file_obj.write()
    print(' ')
    print('    Done with '+iOptic)
    print(' ')
    
