hkl_soleil E4CV with EPICS motors#

Following the hkl_soleil E4CV example, show how to setup the same diffractometer with EPICS motor PVs. For reference, Simulated motors are used with this setup:

fourc = hklpy2.creator(name="fourc", geometry="E4CV", solver="hkl_soleil")

To define EPICS PVs for each real axis, supply a Python dictionary. They keys are the motor names, values are the EPICS PV. (If supplying a prefix to the creator, don’t include it with each motor PV.).

import hklpy2


fourc = hklpy2.creator(
    prefix="gp:",
    name="fourc",
    geometry="E4CV",
    solver="hkl_soleil",
    reals=dict(
        omega="m30",
        chi="m31",
        phi="m32",
        tth="m29",
    )
)
fourc
Hklpy2Diffractometer(prefix='gp:', name='fourc', settle_time=0.0, timeout=None, egu='', limits=(0, 0), source='computed', read_attrs=['h', 'h.readback', 'h.setpoint', 'k', 'k.readback', 'k.setpoint', 'l', 'l.readback', 'l.setpoint', 'omega', 'omega.user_readback', 'omega.user_setpoint', 'chi', 'chi.user_readback', 'chi.user_setpoint', 'phi', 'phi.user_readback', 'phi.user_setpoint', 'tth', 'tth.user_readback', 'tth.user_setpoint'], configuration_attrs=['geometry', 'solver', 'wavelength', 'h', 'k', 'l', 'omega', 'omega.user_offset', 'omega.user_offset_dir', 'omega.velocity', 'omega.acceleration', 'omega.motor_egu', 'chi', 'chi.user_offset', 'chi.user_offset_dir', 'chi.velocity', 'chi.acceleration', 'chi.motor_egu', 'phi', 'phi.user_offset', 'phi.user_offset_dir', 'phi.velocity', 'phi.acceleration', 'phi.motor_egu', 'tth', 'tth.user_offset', 'tth.user_offset_dir', 'tth.velocity', 'tth.acceleration', 'tth.motor_egu'], concurrent=True)
print("Brief 'where' report:")
fourc.wh()
Brief 'where' report:
h=0, k=0, l=0
wavelength=1.0
omega=0, chi=0, phi=0, tth=0
print("Full 'where' report:")
fourc.wh(full=True)
Full 'where' report:
diffractometer='fourc'
HklSolver(name='hkl_soleil', version='5.1.2', geometry='E4CV', engine_name='hkl', mode='bissector')
Sample(name='sample', lattice=Lattice(a=1, system='cubic'))
Orienting reflections: []
U=[[1, 0, 0], [0, 1, 0], [0, 0, 1]]
UB=[[6.283185307179586, 0.0, 0.0], [0.0, 6.283185307179586, 0.0], [0.0, 0.0, 6.283185307179586]]
constraint: -180.0 <= omega <= 180.0
constraint: -180.0 <= chi <= 180.0
constraint: -180.0 <= phi <= 180.0
constraint: -180.0 <= tth <= 180.0
h=0, k=0, l=0
wavelength=1.0
omega=0, chi=0, phi=0, tth=0

Continue with the hkl_soleil E4CV Add a sample with a crystal structure example to investigate this diffractometer.