Skip to content
Snippets Groups Projects
Commit 352f71b2 authored by Nadeem Shehzad's avatar Nadeem Shehzad
Browse files

added: xfel station 2 to 26 with 32 cavities each.

parent 336fe743
No related branches found
No related tags found
No related merge requests found
Showing
with 505 additions and 0 deletions
SERVERNAME="tripeventLogger_server"
EXECUTABLE_IN_PACKAGE="/export/doocs/server/tripeventLogger_server/tripeventLogger_server"
FILES_TO_SYMLINK_BETWEEN_INSTANCES=""
WORKDIR="/export/doocs/server/"+SERVERNAME
USE_DOOCS_WATCHDOG="true"
SYSTEM_UID="doocsadm"
SYSTEM_GID="doocsadm"
DEVICE="LLRF.TRIPEVENT_LOGGER"
(ACCELERATOR,STATION,MASTER_OR_SLAVE)=INSTANCE_CONFIG
if ACCELERATOR == 'XFEL' :
FULL_STATION_NAME= 'A' + STATION + MASTER_OR_SLAVE
elif (ACCELERATOR == 'FLASH') and STATION[:1].isnumeric() :
FULL_STATION_NAME= 'ACC' + STATION
else :
FULL_STATION_NAME= STATION
FACILITY=ACCELERATOR+".RF"
# host name S accelerator list of stations (space separated)
UKNOWN.desy.de S xfel 2/M
CAVITIES = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
CAVITY_COUNTER=[[0],[0,1,2,3,4,5,6,7],[8,9,10,11,12,13,14,15],[0,1,2,3,4,5,6,7],[8,9,10,11,12,13,14,15]]
CRYO_STATIONS=[]
CRYO_STATIONS.extend(["0"])
CRYO_STATIONS.extend(map(str,range(2,27)))
CRYO_STATIONS.extend(["2SP"])
OPER_GID=6194
if ACCELERATOR == "XFEL" :
#if STATION != "VS" :
# RPC_NUMBER = 610493149
#else:
RPC_NUMBER = 610493148
SECTION_NAME = ""
#if STATION in map(str,range(2,27)):
if STATION == "2" :
SECTION_NAME="L1"
elif STATION in map(str,range(3,6)):
SECTION_NAME="L2"
elif STATION in map(str,range(6,27)):
SECTION_NAME="L3"
NR_OF_MODULES=4
NR_OF_CAVITIES=8
CRATE_NAME="A"+STATION+MASTER_OR_SLAVE
#HOSTNAME="xfelcpull"+CRATE_NAME.lower()
STATION_LOCATION_SUFFIX="A"+STATION
if STATION != "0":
STATION_LOCATION_SUFFIX=STATION_LOCATION_SUFFIX+"."+SECTION_NAME
SVR_LOCATION=HOSTNAME.upper()+"._SVR"
TIMING_SDM="XFEL.RF/TIMER/LL"+CRATE_NAME
#WATCHDOG_ADDRESS=ACCELERATOR+".SYSTEM/"+HOSTNAME.upper()+".WATCH/SVR.LLRF_DIAGNOSTIC"
CRYOMODULES=[1,2,3,4]
#As per Jan Timm only master controller is used.
CONTROLLER="M12."
def MODULE_LOCATION_SUFFIX(CRYOMODULE):
return "M"+str(CRYOMODULE)+"."+str(STATION_LOCATION_SUFFIX)
File added
File added
File added
##mako
${RPC_NUMBER}
##mako
<?xml version="1.0" encoding="UTF-8"?>
<catalogue version="1.0">
% if ACCELERATOR == "XFEL" :
% for CRYOMODULE in CRYOMODULES :
% for CAVITY in range(NR_OF_CAVITIES):
<register>
<name>/C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/PROBE.AMPL</name>
<length>16384</length>
<access_mode>wait_for_new_data</access_mode>
<doocs_type_id>19</doocs_type_id>
<!--doocs id: SPECTRUM-->
</register>
<register>
<name>/C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/PROBE.PHASE</name>
<length>16384</length>
<access_mode>wait_for_new_data</access_mode>
<doocs_type_id>19</doocs_type_id>
<!--doocs id: SPECTRUM-->
</register>
<register>
<name>/C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/VREFL.AMPL</name>
<length>16384</length>
<access_mode>wait_for_new_data</access_mode>
<doocs_type_id>19</doocs_type_id>
<!--doocs id: SPECTRUM-->
</register>
<register>
<name>/C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/VREFL.PHASE</name>
<length>1</length>
<access_mode></access_mode>
<doocs_type_id>2</doocs_type_id>
<!--doocs id: FLOAT-->
</register>
<register>
<name>/C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/VFORW.AMPL</name>
<length>16384</length>
<access_mode>wait_for_new_data</access_mode>
<doocs_type_id>19</doocs_type_id>
<!--doocs id: SPECTRUM-->
</register>
<register>
<name>/C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/VFORW.PHASE</name>
<length>16384</length>
<access_mode>wait_for_new_data</access_mode>
<doocs_type_id>19</doocs_type_id>
<!--doocs id: SPECTRUM-->
</register>
<register>
<name>/C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/NAME</name>
<length>1</length>
<access_mode>wait_for_new_data</access_mode>
<doocs_type_id>19</doocs_type_id>
<!--doocs id: SPECTRUM-->
</register>
% endfor
% endfor
<register>
<name>/MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/F0</name>
<length>1</length>
<access_mode></access_mode>
<doocs_type_id>2</doocs_type_id>
<!--doocs id: FLOAT-->
</register>
<register>
<name>/MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/FS</name>
<length>1</length>
<access_mode></access_mode>
<doocs_type_id>2</doocs_type_id>
<!--doocs id: FLOAT-->
</register>
<register>
<name>/MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/QL</name>
<length>1</length>
<access_mode></access_mode>
<doocs_type_id>2</doocs_type_id>
<!--doocs id: FLOAT-->
</register>
<register>
<name>/MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/PULSE_DELAY</name>
<length>1</length>
<access_mode></access_mode>
<doocs_type_id>2</doocs_type_id>
<!--doocs id: FLOAT-->
</register>
<register>
<name>/MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/PULSE_FILLING</name>
<length>1</length>
<access_mode></access_mode>
<doocs_type_id>2</doocs_type_id>
<!--doocs id: FLOAT-->
</register>
<register>
<name>/MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/PULSE_FLATTOP</name>
<length>1</length>
<access_mode></access_mode>
<doocs_type_id>2</doocs_type_id>
<!--doocs id: FLOAT-->
</register>
<register>
<name>/MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/MACRO_PULSE_NUMBER</name>
<length>1</length>
<access_mode></access_mode>
<doocs_type_id>2</doocs_type_id>
<!--doocs id: FLOAT-->
</register>
% endif
</catalogue>
##mako
<?xml version="1.0" encoding="UTF-8"?>
<device_server xmlns="https://github.com/ChimeraTK/ControlSystemAdapter-DoocsAdapter">
% if ACCELERATOR == "XFEL" :
% if STATION == "VS" :
% for Station in range(2,27) :
% if Station == "2" :
Section="L1"
% elif Station in range(3,6):
Section="L2"
% elif Station in range(6,27):
Section="L3"
% endif
<location name="VS.A${Station}.${Section}">
<property source="/VS.A${Station}.${Section}/TRIPEVENT.REPORT" name="TRIPEVENT.REPORT"></property>
<property source="/VS.A${Station}.${Section}/TRIPEVENT.WARNING" name="TRIPEVENT.WARNING"></property>
<property source="/VS.A${Station}.${Section}/TRIPEVENT.STATE" name="TRIPEVENT.STATE"></property>
</location>
% endfor
% endif
% for CRYOMODULE in CRYOMODULES :
% for CAVITY in range(NR_OF_CAVITIES):
<location name="C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}">
<property source="C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/TRIPEVENT.REPORT" name="TRIPEVENT.REPORT"></property>
<property source="C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/TRIPEVENT.WARNING" name="TRIPEVENT.WARNING"></property>
<property source="C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/TRIPEVENT.STATE" name="TRIPEVENT.STATE"></property>
</location>
% endfor
% endfor
% endif
</device_server>
##mako
# Conf file created by the LLRF configCreator
# eq_fct_type's are defined in eq_fct_code.h
eq_conf:
oper_uid: -1
oper_gid: ${OPER_GID}
xpert_uid: 0
xpert_gid: 0
ring_buffer: 500000
memory_buffer: 500
eq_fct_name: "${SVR_LOCATION}"
eq_fct_type: 1
{
SVR.NAME: "${SVR_LOCATION}"
STS.ONLINE: 1
FCT_CODE: 1
SVR.RATE: 1 0 0 0
SVR.DESC: ""
SVR.PROGRAMMER: "Jan Timm"
SVR.STORE.RATE: 60
SVR.STORE.AUTO: 10
SVR.RPC_NUMBER: ${RPC_NUMBER}
SVR.FACILITY: "${ACCELERATOR}.RF"
SVR.DEVICE: "LLRF.TRIPEVENT_LOGGER"
SVR.BPN: 0
SVR.SPR: 0
}
% if ACCELERATOR == "XFEL" :
% if STATION == "VS" :
% for Station in range(2,27) :
% if Station == 2 :
Section="L1"
% elif Station in range(3,6):
Section="L2"
% elif Station in range(6,27):
Section="L3"
% endif
eq_fct_name: "VS.A${Station}.${Section}"
eq_fct_type: 10
{
NAME: "VS.A${Station}.${Section}"
}
% endfor
% else:
% for CRYOMODULE in CRYOMODULES :
% for CAVITY in range(NR_OF_CAVITIES):
eq_fct_name: "C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}"
eq_fct_type: 10
{
NAME: "C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}"
}
% endfor
% endfor
% endif
% endif
##mako
DOOCS (doocs:${ACCELERATOR}.RF/LLRF.CONTROLLER?cacheFile=llrf_controller.cache)
Cavity (logicalNameMap?map=tripeventLogger.xlmap)
Timer (doocs:${TIMING_SDM}?cacheFile=x2timer.cache)
##mako
<logicalNameMap><%COUNTER=0%>
% if ACCELERATOR == "XFEL":
% if STATION == "VS":
% for Station in range (2,27) :
<module name="VS.A${Station}.${SECTION_NAME}">
<redirectedRegister name="amplitude">
<targetDevice>DOOCS</targetDevice>
<targetRegister>VS.A${Station}.${SECTION_NAME}/AMPL.TD</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="name">
<targetDevice>DOOCS</targetDevice>
<targetRegister>VS.A${Station}.${SECTION_NAME}/NAME</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="trigger">
<targetDevice>Timer</targetDevice>
<targetRegister>LL${FULL_STATION_NAME}/MACRO_PULSE_NUMBER</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="macroPulseNumber">
<targetDevice>DOOCS</targetDevice>
<targetRegister>MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/MACRO_PULSE_NUMBER</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
% endfor
% else :
% for CRYOMODULE in CRYOMODULES :
% for CAVITY in range(NR_OF_CAVITIES):
<module name="C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}_PS">
<redirectedRegister name="amplitude">
<targetDevice>DOOCS</targetDevice>
<targetRegister>C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/PROBE.AMPL</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="phase">
<targetDevice>DOOCS</targetDevice>
<targetRegister>C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/PROBE.PHASE</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="amplitudeRefl">
<targetDevice>DOOCS</targetDevice>
<targetRegister>C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/VREFL.AMPL</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="phaseRefl">
<targetDevice>DOOCS</targetDevice>
<targetRegister>C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/VREFL.PHASE</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="amplitudeForw">
<targetDevice>DOOCS</targetDevice>
<targetRegister>C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/VFORW.AMPL</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="phaseForw">
<targetDevice>DOOCS</targetDevice>
<targetRegister>C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/VFORW.PHASE</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="name">
<targetDevice>DOOCS</targetDevice>
<targetRegister>C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/NAME</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="fs">
<targetDevice>DOOCS</targetDevice>
<targetRegister>MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/FS</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="f0">
<targetDevice>DOOCS</targetDevice>
<targetRegister>MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/F0</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="ql">
<targetDevice>DOOCS</targetDevice>
<targetRegister>MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/QL</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="delay">
<targetDevice>DOOCS</targetDevice>
<targetRegister>MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/PULSE_DELAY</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="filling">
<targetDevice>DOOCS</targetDevice>
<targetRegister>MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/PULSE_FILLING</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="flattop">
<targetDevice>DOOCS</targetDevice>
<targetRegister>MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/PULSE_FLATTOP</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="macroPulseNumber">
<targetDevice>DOOCS</targetDevice>
<targetRegister>MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/MACRO_PULSE_NUMBER</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="trigger">
<targetDevice>Timer</targetDevice>
<targetRegister>LL${FULL_STATION_NAME}/MACRO_PULSE_NUMBER</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
</module><%COUNTER += 1%>
% endfor
% endfor
% for CRYOMODULE in CRYOMODULES :
% for CAVITY in range(NR_OF_CAVITIES):
<module name="C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}">
<redirectedRegister name="amplitude">
<targetDevice>DOOCS</targetDevice>
<targetRegister>C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/PROBE.AMPL</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="name">
<targetDevice>DOOCS</targetDevice>
<targetRegister>C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}/NAME</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="trigger">
<targetDevice>Timer</targetDevice>
<targetRegister>LL${FULL_STATION_NAME}/MACRO_PULSE_NUMBER</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
<redirectedRegister name="macroPulseNumber">
<targetDevice>DOOCS</targetDevice>
<targetRegister>MAIN.${CONTROLLER}${STATION_LOCATION_SUFFIX}/MACRO_PULSE_NUMBER</targetRegister>
<plugin name="forceReadOnly"/>
</redirectedRegister>
</module>
% endfor
% endfor
% endif
% endif
</logicalNameMap>
##mako
<configuration>
<variable name="enableFlatTopFaulStates" type="int32" value="1"/>
<variable name="enableParitySpaceFaultStates" type="int32" value="1"/>
<variable name="enablePublicConfiguration" type="int32" value="1"/>
<variable name="printDebugInformation" type="int32" value="1"/>
<variable name="writeLocalData" type="int32" value="1"/>
<variable name="maxHistorySize" type="uint32" value="10"/>
<variable name="deadEdgeSamples" type="uint32" value="2000"/>
<variable name="maxFlatTopSigma" type="float" value="6"/>
<variable name="minFlatTopMean" type="float" value="2.0"/><!--below cavity is presumed to be off-->
<variable name="maxTripDownSpeed" type="float" value="4.0"/>
<variable name="pulseLength" type="uint32" value="16384"/>
<module name="FaultStateCollector">
<variable name="preTripLength" type="uint32" value="10"/>
<variable name="postTripLength" type="uint32" value="20"/>
</module>
<variable name="cavityLocations" type="string"><%COUNTER = 0%>
% if STATION == 'VS' :
% for Station in range (2,27) :
% if Station == 2 :
Section="L1"
% elif Station in range(3,6):
Section="L2"
% elif Station in range(6,27):
Section="L3"
% endif
<value i="0" v="VS.A${Station}.${Section}"/>
% endfor
% else:
% for CRYOMODULE in CRYOMODULES :
% for CAVITY in range(NR_OF_CAVITIES):
<value i="${COUNTER}" v="C${CAVITY+1}.${MODULE_LOCATION_SUFFIX(CRYOMODULE)}"/><%COUNTER += 1;%>
% endfor
% endfor
% endif
</variable>
</configuration>
##mako
<?xml version="1.0" encoding="UTF-8"?>
<catalogue version="1.0">
<register>
<name>/MACRO_PULSE_NUMBER</name>
<length>1</length>
<access_mode>wait_for_new_data</access_mode>
<doocs_type_id>114</doocs_type_id>
<!--doocs id: A_LONG-->
</register>
</catalogue>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment