SlsDetector Tango device
This is the reference documentation of the PSI SlsDetector Tango device.
You can also find some useful information about the camera models/prerequisite/installation/configuration/compilation in the SlsDetector camera plugin section.
Properties
Property name |
Mandatory |
Default value |
Description |
---|---|---|---|
config_fname |
Yes |
Path to the SlsDetector config file |
|
apply_corrections |
No |
True |
Perform corrections on each frame |
high_voltage |
No |
0 |
Initial detector high voltage (V) (set to 150 if already tested) |
fixed_clock_div |
No |
0 |
Initial detector fixed-clock-div |
threshold_energy |
No |
0 |
Initial detector threshold energy (eV) |
tolerate_lost_packets |
No |
True |
Initial tolerance to lost packets |
pixel_depth_cpu_affinity_map |
No |
[] |
Default PixelDepthCPUAffinityMap as Python string(s) defining a dict: {<pixel_depth>: <global_affinity>}, being global_affinity a tuple: (<recv_list>, <model_threads>, <lima>, <other>, <netdev_grp_list>), where recv_list is a list of tuples of listeners affinities, model_threads a tuple of affinities, lima and other are affinities, and netdev_grp_list is a list of tuples in the form: (<comma_separated_netdev_name_list>, <rx_queue_affinity_map>), the latter in the form of: {<queue>: (<irq>, <processing>)}. Each affinity can be expressed by one of the functions: Mask(mask) or CPU(<cpu1>[, …, <cpuN>]) for independent CPU enumeration |
Attributes
Attribute name |
RW |
Type |
Description |
---|---|---|---|
config_fname |
ro |
DevString |
Path to the SlsDetector config file |
hostname_list |
ro |
DevVarStringArray |
The list of the Eiger half-modules’ hostnames |
apply_corrections |
ro |
DevBoolean |
Pixel software corrections are applied on each frame |
dac_name_list |
ro |
DevVarStringArray |
The list of the DAC signals’ names |
dac_<signal_name> |
rw |
DevVarLongArray |
Array with the DAC <signal_name> value for each half-module, in A/D units |
dac_name_list_mv |
ro |
DevVarStringArray |
The list of the DAC signals’ names supporting milli-volt units |
dac_<signal_name>_mv |
rw |
DevVarLongArray |
Array with the DAC <signal_name> value for each half-module, in milli-volt units |
adc_name_list |
ro |
DevVarStringArray |
The list of the ADC signals’ names |
adc_<signal_name> |
rw |
DevVarDoubleArray |
Array with the ADC <signal_name> value for each half-module, in user units (deg C, etc.) |
pixel_depth |
rw |
DevString |
|
raw_mode |
rw |
DevBoolean |
Publish image as given by the Receivers (no SW reconstruction) |
threshold_energy |
rw |
DevLong |
The energy (in eV) the pixel discriminator thresholds (Vcmp & Trim bits) is set at |
high_voltage |
rw |
DevShort |
The detector high voltage (in V) |
tx_frame_delay |
rw |
DevLong |
Frame Tx delay (6.2 ns units) |
all_trim_bits |
rw |
DevVarLongArray |
Array with the pixel trimming value [0-63] for each half-module, if all the pixels in the half-module have the same trimming value, -1 otherwise |
clock_div |
rw |
DevString |
|
fixed_clock_div |
rw |
DevBoolean |
If active, will try to keep the same clock_div when changing pixel_depth |
readout_flags |
rw |
DevString |
|
max_frame_rate |
ro |
DevDouble |
Maximum number of frames per second (kHz) |
tolerate_lost_packets |
rw |
DevBoolean |
Allow acquisitions with incomplete frames due to overrun |
pixel_depth_cpu_affinity_map |
rw |
DevString |
PixelDepth -> CPUAffinity map as a Python string (see description of corresponding device property) |
Please refer to the PSI/SLS Eiger User’s Manual for more information about the above specfic configuration parameters.
Note: CPU-affinity control now acts, in a per-pixel_depth basis, on the following execution elements:
Receiver listener threads
Receiver writer threads
Lima control & processing threads
Other processes in the OS
Network devices’ processing tasks (kernel space)
Network devices can be grouped, each group will have the same CPU-affinity for the processing tasks.
Commands
Command name |
Arg. in |
Arg. out |
Description |
---|---|---|---|
Init |
DevVoid |
DevVoid |
Do not use |
State |
DevVoid |
DevLong |
Return the device state |
Status |
DevVoid |
DevString |
Return the device state as a string |
getAttrStringValueList |
DevString: Attribute name |
DevVarStringArray: String value list |
Return the authorized string value list for a given attribute name |
putCmd |
DevString |
DevVoid |
Command setting a SlsDetector parameter (no response) |
getCmd |
DevString: get command |
DevString: command result |
Command getting a SlsDetector parameter (with response) |
getNbBadFrames |
DevLong: port_idx |
DevLong: nb_bad_frames |
Get the number of bad frames in the current (or last) acquisition for the given receiver port (-1=all) |
getBadFrameList |
DevLong: port_idx |
DevVarLongArray: bad_frame_list |
Get the list of bad frames in the current (or last) acquisition for the given receiver port (-1=all) |