[WIP] Abstract diffarctometer
AbstractDiffractometer class:
- inherits from HardwareObject and uses wait_ready, abort methods and the state handling.
- defines some methods, properties and the DiffractometerHead, DiffractometerPhase enums.
- defines some scan types
- in the init method defines standard access to different equipment (motors, actuators and complex/compound equipment). The access relies on the roles, which are defined in the configuration file. To be discussed if checks are to be done. This is a typical xml configuration file:
<object class = "Microdiff"
<username>MD2S</username>
<exporter_address>wid30bmd2s:9001</exporter_address>
<motors>
<device role="phi" hwrid="/udiff_omega"/>
<device role="phiy" hwrid="/udiff_phiy"/>
<device role="phiz" hwrid="/udiff_phiz"/>
<device role="sampx" hwrid="/udiff_sampx"/>
<device role="sampy" hwrid="/udiff_sampy"/>
<device role="kappa" hwrid="/udiff_kappa"/>
<device role="kappa_phi" hwrid="/udiff_kappaphi"/>
<device role="focus" hwrid="/udiff_phix"/>
<device role="front_light" hwrid="/udiff_frontlight_intensity"/>
<device role="back_light" hwrid="/udiff_backlight_intensity"/>
<device role="horizontal_alignment" hwrid="/udiff_phiy"/>
<device role="vertical_alignment" hwrid="/udiff_phiz"/>
<device role="horizontal_centring" hwrid="/udiff_sampx"/>
<device role="vertical_centring" hwrid="/udiff_sampy"/>
</motors>
<actuators>
<object role="fast_shutter" href="/udiff_fastshut"/>
<object role="scintillator" href="/udiff_scint"/>
<object role="diode" href="/udiff_diode"/>
<object role="fluo_detector" href="/udiff_fluodet"/>
<object role="cryostream" href="/udiff_cryostream"/>
<object role="front_light" href="/udiff_frontlight_inout"/>
<object role="back_light" href="/udiff_backlight_inout"/>
</actuators>
<complex_equipment>
<object role="beamstop" href="/udiff_beamstop"/>
<object role="capillary" href="/udiff_capillary"/>
<object role="aperture" href="/udiff_aperturemot"/>
<object role="zoom" href="/udiff_zoom"/>
</complex_equipment>
</object>
MD2 implementation - overload or fill in the abstract methods.