diff --git a/mxtools/fmx/__init__.py b/mxtools/fmx/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mxtools/fmx/bpm.py b/mxtools/fmx/bpm.py new file mode 100644 index 0000000..3ec97a9 --- /dev/null +++ b/mxtools/fmx/bpm.py @@ -0,0 +1,13 @@ +from ophyd import Device, EpicsSignal, EpicsSignalRO, Component as Cpt + +class Bpm(Device): + x = Cpt(EpicsSignalRO, 'PosX:MeanValue_RBV') + y = Cpt(EpicsSignalRO, 'PosY:MeanValue_RBV') + a = Cpt(EpicsSignalRO, 'Current1:MeanValue_RBV') + b = Cpt(EpicsSignalRO, 'Current2:MeanValue_RBV') + c = Cpt(EpicsSignalRO, 'Current3:MeanValue_RBV') + d = Cpt(EpicsSignalRO, 'Current4:MeanValue_RBV') + sum_x = Cpt(EpicsSignalRO, 'SumX:MeanValue_RBV') + sum_y = Cpt(EpicsSignalRO, 'SumY:MeanValue_RBV') + sum_all = Cpt(EpicsSignalRO, 'SumAll:MeanValue_RBV') + sum_all_precision = Cpt(EpicsSignal, 'SumAll:MeanValue_RBV.PREC') diff --git a/mxtools/fmx/utility.py b/mxtools/fmx/utility.py new file mode 100644 index 0000000..397fe99 --- /dev/null +++ b/mxtools/fmx/utility.py @@ -0,0 +1,50 @@ +import socket + +from ophyd import Component as Cpt +from ophyd import Device, EpicsSignal + + +class BeamlineCalibrations(Device): + LoMagCal = Cpt(EpicsSignal, "LoMagCal}") + HiMagCal = Cpt(EpicsSignal, "HiMagCal}") + + +class PuckSafety(Device): + On = Cpt(EpicsSignal, "On.PROC") + Off = Cpt(EpicsSignal, "Off.PROC") + + +def blStrGet(): + """ + Return beamline string + + blStr: 'AMX' or 'FMX' + + Beamline is determined by querying hostname + """ + hostStr = socket.gethostname() + if hostStr.startswith("xf17id2"): + blStr = "FMX" + elif hostStr.startswith("xf17id1"): + blStr = "AMX" + else: + print("Error - this code must be executed on one of the -ca1 machines") + blStr = -1 + + return blStr + + +def get_energy(vdcm=None, hdcm=None): + """ + Returns the current photon energy in eV derived from the DCM Bragg angle + """ + blStr = blStrGet() + if blStr == -1: + return -1 + + if blStr == "AMX": + energy = vdcm.e.user_readback.get() + elif blStr == "FMX": + energy = hdcm.e.user_readback.get() + + return energy