From 287131c3ed9352fe2c47125016c3eaad338fc8e1 Mon Sep 17 00:00:00 2001 From: x10daop Date: Thu, 19 Jan 2017 08:38:30 +0100 Subject: [PATCH] Startup --- config/devices.properties | 1 + config/jcae.properties | 11 +++++++++++ script/crlogic.py | 35 +++++++++++++++++++++++++++++++++++ script/local.py | 14 +++++++++++++- 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 config/devices.properties create mode 100644 config/jcae.properties create mode 100644 script/crlogic.py diff --git a/config/devices.properties b/config/devices.properties new file mode 100644 index 0000000..db2e727 --- /dev/null +++ b/config/devices.properties @@ -0,0 +1 @@ +crystal=ch.psi.pshell.epics.ChannelDouble|X10DA-OP-MO3:Bragg2dSpacAO|||true diff --git a/config/jcae.properties b/config/jcae.properties new file mode 100644 index 0000000..95e9ec8 --- /dev/null +++ b/config/jcae.properties @@ -0,0 +1,11 @@ +#Tue Jan 10 16:17:44 CET 2017 +ch.psi.jcae.ContextFactory.addressList= +ch.psi.jcae.ContextFactory.serverPort= +ch.psi.jcae.ContextFactory.maxArrayBytes=20000000 +ch.psi.jcae.ChannelFactory.retries=1 +ch.psi.jcae.ChannelFactory.timeout=500 +ch.psi.jcae.impl.DefaultChannelService.retries= +ch.psi.jcae.impl.DefaultChannelService.timeout= +ch.psi.jcae.ContextFactory.autoAddressList=false +ch.psi.jcae.ContextFactory.useShellVariables=true +ch.psi.jcae.ContextFactory.addLocalBroadcastInterfaces=false diff --git a/script/crlogic.py b/script/crlogic.py new file mode 100644 index 0000000..bf03789 --- /dev/null +++ b/script/crlogic.py @@ -0,0 +1,35 @@ +caput("X10DA-ES-SCALER.CNT", 0) +caput("X10DA-ES-SCALER.G1", 0) +caput("X10DA-ES-SCALER.CONT", 0) +caput("X10DA-ES1:START-CSMPL", 1) +caput("X10DA-ES1:TOTAL-CYCLES", 5) +caput("X10DA-ES1:SMPL-BTN", 1) + + +bragg = CrlogicPositioner("bragg", "X10DA-OP-MO3:ROX", None); + i0 = CrlogicSensor("I0", "SCALER12", True) +i1 = CrlogicSensor("I1", "SCALER13", True) +i2 = CrlogicSensor("I2", "SCALER14", True) +ref = CrlogicSensor("ScalerRef", "SCALER15", True) + +class AbsCalc(Readable): + def read(self): + return math.log(math.fabs(i0.take()) /math.fabs(i1.take())) +abs_calc = AbsCalc() + +class ECalc(Readable): + def read(self): + return 12.39842 / ( crystal.take() * math.sin( math.radians(bragg.take())) ) +e_calc = ECalc() + + +sensors = [crystal, i0, i1, i2, ref, abs_calc, e_calc] + +pos.initialize() +pos.move(10.3) + +try: + r1 = hscan(crlogic_config, bragg, sensors, 10.3, 10.6, 0.002, 1, False) +finally: + pos.close() + \ No newline at end of file diff --git a/script/local.py b/script/local.py index f564001..d27a7bb 100644 --- a/script/local.py +++ b/script/local.py @@ -1,4 +1,16 @@ ################################################################################################### # Deployment specific global definitions - executed after startup.py ################################################################################################### - + + import ch.psi.pshell.crlogic.CrlogicPositioner as CrlogicPositioner +import ch.psi.pshell.crlogic.CrlogicSensor as CrlogicSensor + +crlogic_config = {} +crlogic_config["class"] = "ch.psi.pshell.crlogic.CrlogicScan" +crlogic_config["prefix"] = "X10DA-ES1-CRL" +crlogic_config["ioc"] = "X10DA-VME-ES1" +crlogic_config["integrationTime"] = 0.01 +crlogic_config["additionalBacklash"] = 0.0 + + +crystal.setTrustedMonitor(True) \ No newline at end of file