First mythen controller implementation
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