cleanup part 2
This commit is contained in:
@ -0,0 +1,3 @@
|
||||
# Cristallina SLIC code
|
||||
|
||||
The basic setup to control the devices at the Cristallina endstation using mostly SLIC and EPICS behind the scenes.
|
@ -1,39 +1,47 @@
|
||||
#!/usr/bin/env python
|
||||
import sys
|
||||
import os
|
||||
import re
|
||||
import time
|
||||
from time import sleep
|
||||
|
||||
from tracemalloc import start
|
||||
import numpy as np
|
||||
|
||||
os.chdir("/sf/cristallina/applications/slic/cristallina_cleanup")
|
||||
|
||||
# at the moment this allows us to group the subdirectories as modules easily
|
||||
# TODO: a more general way would be to have this cristallina as a installed package
|
||||
os.chdir("/sf/cristallina/applications/slic/cristallina")
|
||||
|
||||
# setup logging
|
||||
from loguru import logger
|
||||
|
||||
logger.remove()
|
||||
logger.add(
|
||||
|
||||
def setup_logging():
|
||||
logger.remove()
|
||||
logger.add(
|
||||
sys.stderr,
|
||||
format="{time:YYYY-MM-DD at HH:mm:ss} | {level} | {message}",
|
||||
level="INFO",
|
||||
)
|
||||
logger.info("Loading started.")
|
||||
)
|
||||
logger.info("Loading started.")
|
||||
|
||||
# create file handler which logs
|
||||
# TODO: better directory for log files? should not be pgroup specific so that this always works
|
||||
try:
|
||||
# create file handler which logs
|
||||
# TODO: better directory for log files? should not be pgroup specific so that this always works
|
||||
try:
|
||||
logger.add(
|
||||
"/sf/cristallina/applications/slic/cristallina/log/cristallina.log",
|
||||
format="{time:YYYY-MM-DD at HH:mm:ss} | {level} | {message}",
|
||||
level="DEBUG",
|
||||
)
|
||||
except PermissionError as e:
|
||||
except PermissionError as e:
|
||||
logger.warning("Cannot write log file.")
|
||||
logger.warning(e)
|
||||
|
||||
|
||||
# We setup the logging before going further so that
|
||||
# other modules can write startup messages into the log file.
|
||||
setup_logging()
|
||||
|
||||
# TODO: this is later overwritten, probably not intended that way?
|
||||
from epics import PV
|
||||
|
||||
from devices.alignment_laser import AlignmentLaser
|
||||
@ -55,6 +63,7 @@ from slic.devices.timing.events import CTASequencer
|
||||
from channels.bs_channels import detectors, bs_channels, camera_channels
|
||||
from channels.pv_channels import pvs
|
||||
from spreadsheet import overview
|
||||
|
||||
# from channels_minimal import detectors_min, channels_min, pvs_min
|
||||
from devices.pp_shutter import PP_Shutter
|
||||
|
||||
@ -88,6 +97,7 @@ OWIS = Motor("SARES30-MOBI1:MOT_6") # small OWIS linear stage
|
||||
|
||||
attenuator = Attenuator("SAROP31-OATA150", description="Cristallina attenuator OATA150")
|
||||
|
||||
|
||||
def test_attenuator():
|
||||
tfundamental = attenuator.get_transmission()
|
||||
try:
|
||||
@ -98,7 +108,9 @@ def test_attenuator():
|
||||
|
||||
test_attenuator()
|
||||
|
||||
front_end_attenuator = Attenuator("SARFE10-OATT053", description="Front end attenuator OATT053")
|
||||
front_end_attenuator = Attenuator(
|
||||
"SARFE10-OATT053", description="Front end attenuator OATT053"
|
||||
)
|
||||
cta = CTASequencer("SAR-CCTA-ESC")
|
||||
|
||||
pbps113 = IntensityMonitorPBPS(
|
||||
@ -120,13 +132,16 @@ pbps149 = IntensityMonitorPBPS(
|
||||
from beamline import undulator
|
||||
|
||||
undulators = undulator.Undulators()
|
||||
logger.info(f"Using undulator (Aramis) offset to PSSS energy of {undulator.energy_offset} eV.")
|
||||
logger.info(
|
||||
f"Using undulator (Aramis) offset to PSSS energy of {undulator.energy_offset} eV."
|
||||
)
|
||||
|
||||
|
||||
# Shutter
|
||||
shutter = PP_Shutter(
|
||||
"SARES30-LTIM01-EVR0:RearUniv0-Ena-SP", name="Cristallina pulse picker shutter"
|
||||
) # Shutter buttton when using the pulse picker
|
||||
) # Shutter button when using the pulse picker
|
||||
|
||||
pulsepicker = PulsePicker(
|
||||
"SAROP31-OPPI151",
|
||||
"SARES30-LTIM01-EVR0:Pul3",
|
||||
@ -134,7 +149,9 @@ pulsepicker = PulsePicker(
|
||||
)
|
||||
|
||||
# Alignment laser
|
||||
alaser = AlignmentLaser("SAROP31-OLAS147:MOTOR_1", name="Cristallina alignment laser OLAS147")
|
||||
alignment_laser = AlignmentLaser(
|
||||
"SAROP31-OLAS147:MOTOR_1", name="Cristallina alignment laser OLAS147"
|
||||
)
|
||||
|
||||
## Slits
|
||||
from slic.devices.xoptics import slits
|
||||
@ -152,6 +169,7 @@ kbVer = KBVer("SAROP31-OKBV153", description="Cristallina vertical KB mirror")
|
||||
|
||||
# Bernina monochromator
|
||||
from beamline.bernina_mono import BerninaMono
|
||||
|
||||
BerninaDCM = BerninaMono("SAROP21-ODCM098")
|
||||
|
||||
|
||||
@ -190,6 +208,16 @@ daq = SFAcquisition(
|
||||
# There is a new EPICS buffer, so the archiver is no longer used. This makes sure we are taking PVs from the right place.
|
||||
daq.update_config_pvs()
|
||||
|
||||
slow_daq_test = SFAcquisition(
|
||||
instrument,
|
||||
"p19150",
|
||||
default_channels=bs_channels,
|
||||
default_pvs=pvs,
|
||||
default_detectors=detectors,
|
||||
rate_multiplicator=100,
|
||||
)
|
||||
|
||||
|
||||
# daq = FakeAcquisition(instrument, pgroup)
|
||||
# daqPV = PVAcquisition(instrument, pgroup, default_channels=channels_ks) # workaround for KS not going to DB
|
||||
|
||||
@ -208,24 +236,3 @@ gui = GUI(scan, show_goto=True, show_spec=True)
|
||||
|
||||
logger.info(f"Running at {instrument} with pgroup {pgroup}.")
|
||||
logger.info("Loading finished.")
|
||||
|
||||
|
||||
|
||||
slow_daq_test = SFAcquisition(
|
||||
instrument,
|
||||
"p19150",
|
||||
default_channels=bs_channels,
|
||||
default_pvs=pvs,
|
||||
default_detectors=detectors,
|
||||
rate_multiplicator=100,
|
||||
)
|
||||
|
||||
slow_daq = SFAcquisition(
|
||||
instrument,
|
||||
pgroup,
|
||||
default_channels=bs_channels,
|
||||
default_pvs=pvs,
|
||||
default_detectors=detectors,
|
||||
rate_multiplicator=100,
|
||||
)
|
||||
|
||||
|
2646
log/cristallina.log
2646
log/cristallina.log
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user