#!/usr/bin/env python import logging logger = logging.getLogger("slic") logger.setLevel(logging.INFO) logger.info("Loading started.") from time import sleep from datetime import datetime import numpy as np # from tqdm import trange from epics import PV #MODULE_PATH = "/sf/cristallina/applications/slic/slic/slic/__init__.py" #MODULE_NAME = "slic" #import importlib #import sys #spec = importlib.util.spec_from_file_location(MODULE_NAME, MODULE_PATH) #module = importlib.util.module_from_spec(spec) #sys.modules[spec.name] = module #spec.loader.exec_module(module) from slic.gui import GUI from slic.core.adjustable import Adjustable, PVAdjustable, DummyAdjustable from slic.core.acquisition import SFAcquisition, PVAcquisition from slic.core.condition import PVCondition from slic.core.scanner import Scanner from slic.core.device.simpledevice import SimpleDevice from slic.devices.general.motor import Motor from slic.utils import devices, Marker, as_shortcut from slic.utils import Channels, Config, Elog, Screenshot, PV from slic.core.acquisition.fakeacquisition import FakeAcquisition # from devices.attenuator import Attenuator from channels import detectors, channels, pvs from spreadsheet import overview # DEVICES ## example devices and adjustables from cool_motor import MyNewCoolThing cool_motor = MyNewCoolThing("cool_motor") dummy = DummyAdjustable(units="au") ## Attenuator from slic.devices.xoptics.aramis_attenuator import Attenuator from knife_edge import KnifeEdge attenuator_ID = "SAROP31-OATA150" attenuator = Attenuator( attenuator_ID, description="Attenuators with absolute encoders" ) def test_attenuator(): tfundamental = attenuator.get_transmission() try: assert tfundamental > 0 except TypeError: print("No transmission value reported from {attenuator.ID}") test_attenuator() ## Undulator import undulator undulators = undulator.Undulators() ## Slits from slic.devices.xoptics import slits # _old for Alvra codepath, recommended here # slits_ADC = slits.SlitPosWidth_old("SAROP31-OAPU149", name="Apertures - ADC") ## Smaract stage from smaract_device_def import smaract # from attocube_assignment import attocube ########################################### instrument = "cristallina" # pgroup = "p19739" # commissioning March 2022 -- July 2022 pgroup = "p20443" # commissioning Wavefront Sensor August 2022 daq = SFAcquisition( instrument, pgroup, default_channels=channels, default_pvs=pvs, default_detectors=detectors, rate_multiplicator=1, ) # daq = FakeAcquisition(instrument, pgroup) # daqPV = PVAcquisition(instrument, pgroup, default_channels=channels_ks) # workaround for KS not going to DB # scan = Scanner(scan_info_dir=f"/sf/{instrument}/data/{pgroup}/res/scan_info", default_acquisitions=[daq], condition=None) scan = Scanner(default_acquisitions=[daq]) gui = GUI(scan, show_goto=True, show_spec=True) logger.info(f"Running at {instrument} with pgroup {pgroup}.") logger.info("Loading finished.")