Skip to content

First mythen controller implementation

Vincent Michel requested to merge mythen into master

Closes issue #292 (closed).

Example of mythen configuration

name: mythenid101
module: mythen
class: Mythen
plugin: bliss
hostname: mythenid101
apply_defaults: True           # Reset all the settings to their default value
energy: 8.0                    # keV
threshold: 4.0                 # keV
continuous_trigger_mode: True  # Expect a trigger for each frame

Full list of settings:

    _settings = [
        # General configuration
        "nmodules",
        # Acquisition configuration
        "delay_after_frame",
        "nframes",
        "nbits",
        "exposure_time",
        # Detector configuration
        "energy",
        "threshold",
        # Data correction settings
        "bad_channel_interpolation",
        "flat_field_correction",
        "rate_correction",
        "rate_correction_deadtime",
        # Trigger / Gate settings
        "continuous_trigger_mode",
        "single_trigger_mode",
        "delay_before_frame",
        "gate_mode",
        "ngates",
        "input_polarity",
        "output_polarity",
    ]

Software trigger in step-by-step scan is currently not supported (other than ct).

Example scan usage in scan:

from matplotlib import pyplot as plt

mythen = config.get('mythenid101')
scan = scans.ct(0.1, mythen)
plt.plot(scan.get_data()['spectrum'][0])
plt.show()

The underlying library has been tested on actual hardware. The bliss controller has not.

Include a copy of the python-mythen library.

The timeout for the socket currently defaults to 15 seconds. Since the readout command waits for the next frame, an integration of more than 15 seconds is likely to cause timeouts. This should get managed properly in future versions.

Edited by Sebastien Petitdemange

Merge request reports