mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-16 06:47:14 +02:00
Compare commits
15 Commits
2021.01.26
...
5.1.0.rc2
Author | SHA1 | Date | |
---|---|---|---|
14cd8c5d4a | |||
09bd91028c | |||
209a228f74 | |||
d500f62852 | |||
e5c33cf04f | |||
5612eabfb1 | |||
6fc93beee1 | |||
638ef57082 | |||
da8bbc97d4 | |||
1ae8c5e464 | |||
e8fe203940 | |||
10b315c2bd | |||
f35de3bc2b | |||
4caf4cced2 | |||
1eb70f63ad |
@ -1,6 +1,6 @@
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
project(slsDetectorPackage)
|
||||
set(PROJECT_VERSION 5.0.0)
|
||||
set(PROJECT_VERSION 5.1.0)
|
||||
include(CheckIPOSupported)
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
|
||||
|
||||
|
@ -32,6 +32,14 @@ This document describes the differences between 5.1.0 and 5.x.x releases.
|
||||
------
|
||||
|
||||
1. Aded settings and threshold features for Mythen3.
|
||||
2. Internal modification of acquire for Mythen3.
|
||||
3. Added getMaster functio for M3
|
||||
|
||||
|
||||
Mythen3 server
|
||||
-----------------
|
||||
|
||||
1. Setting timing to auto, sets timing to trigger for slaves
|
||||
|
||||
|
||||
3. Resolved Issues
|
||||
|
Submodule libs/pybind11 updated: 4f72ef846f...8de7772cc7
103
python/setup.py
103
python/setup.py
@ -2,11 +2,12 @@
|
||||
Setup file for slsdet
|
||||
Build upon the pybind11 example found here: https://github.com/pybind/python_example
|
||||
"""
|
||||
from setuptools import setup, Extension, find_packages
|
||||
from setuptools.command.build_ext import build_ext
|
||||
import sys
|
||||
import setuptools
|
||||
|
||||
import os
|
||||
import sys
|
||||
sys.path.append('../libs/pybind11')
|
||||
from setuptools import setup, find_packages
|
||||
from pybind11.setup_helpers import Pybind11Extension, build_ext
|
||||
|
||||
__version__ = os.environ.get('GIT_DESCRIBE_TAG', 'developer')
|
||||
|
||||
@ -19,109 +20,29 @@ def get_conda_path():
|
||||
return os.environ['CONDA_PREFIX']
|
||||
|
||||
|
||||
# class get_pybind_include(object):
|
||||
# """Helper class to determine the pybind11 include path
|
||||
# The purpose of this class is to postpone importing pybind11
|
||||
# until it is actually installed, so that the ``get_include()``
|
||||
# method can be invoked. """
|
||||
|
||||
# def __init__(self, user=False):
|
||||
# self.user = user
|
||||
|
||||
# def __str__(self):
|
||||
# import pybind11
|
||||
# return pybind11.get_include(self.user)
|
||||
|
||||
|
||||
#TODO migrate to CMake build?
|
||||
ext_modules = [
|
||||
Extension(
|
||||
Pybind11Extension(
|
||||
'_slsdet',
|
||||
['src/main.cpp',
|
||||
'src/enums.cpp',
|
||||
'src/detector.cpp',
|
||||
'src/network.cpp'],
|
||||
'src/network.cpp',
|
||||
'src/pattern.cpp',
|
||||
'src/scan.cpp',],
|
||||
include_dirs=[
|
||||
# Path to pybind11 headers
|
||||
# get_pybind_include(),
|
||||
# get_pybind_include(user=True),
|
||||
os.path.join('../libs/pybind11/include'),
|
||||
os.path.join(get_conda_path(), 'include'),
|
||||
|
||||
],
|
||||
libraries=['SlsDetector', 'SlsReceiver', 'zmq'],
|
||||
libraries=['SlsDetector', 'SlsSupport', 'SlsReceiver', 'zmq'],
|
||||
library_dirs=[
|
||||
os.path.join(get_conda_path(), 'lib'),
|
||||
os.path.join(get_conda_path(), 'bin'),
|
||||
],
|
||||
|
||||
language='c++'
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
# As of Python 3.6, CCompiler has a `has_flag` method.
|
||||
# cf http://bugs.python.org/issue26689
|
||||
def has_flag(compiler, flagname):
|
||||
"""Return a boolean indicating whether a flag name is supported on
|
||||
the specified compiler.
|
||||
"""
|
||||
import tempfile
|
||||
with tempfile.NamedTemporaryFile('w', suffix='.cpp') as f:
|
||||
f.write('int main (int argc, char **argv) { return 0; }')
|
||||
try:
|
||||
compiler.compile([f.name], extra_postargs=[flagname])
|
||||
except setuptools.distutils.errors.CompileError:
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def cpp_flag(compiler):
|
||||
"""Return the -std=c++[11/14] compiler flag.
|
||||
The c++14 is prefered over c++11 (when it is available).
|
||||
"""
|
||||
if has_flag(compiler, '-std=c++14'):
|
||||
return '-std=c++14'
|
||||
elif has_flag(compiler, '-std=c++11'):
|
||||
return '-std=c++11'
|
||||
else:
|
||||
raise RuntimeError('Unsupported compiler -- at least C++11 support '
|
||||
'is needed!')
|
||||
|
||||
|
||||
class BuildExt(build_ext):
|
||||
"""A custom build extension for adding compiler-specific options."""
|
||||
c_opts = {
|
||||
'msvc': ['/EHsc'],
|
||||
'unix': [],
|
||||
}
|
||||
|
||||
if sys.platform == 'darwin':
|
||||
c_opts['unix'] += ['-stdlib=libc++', '-mmacosx-version-min=10.7']
|
||||
|
||||
def build_extensions(self):
|
||||
ct = self.compiler.compiler_type
|
||||
opts = self.c_opts.get(ct, [])
|
||||
if ct == 'unix':
|
||||
opts.append('-DVERSION_INFO="%s"' % self.distribution.get_version())
|
||||
opts.append(cpp_flag(self.compiler))
|
||||
if has_flag(self.compiler, '-fvisibility=hidden'):
|
||||
opts.append('-fvisibility=hidden')
|
||||
elif ct == 'msvc':
|
||||
opts.append('/DVERSION_INFO=\\"%s\\"' % self.distribution.get_version())
|
||||
for ext in self.extensions:
|
||||
ext.extra_compile_args = opts
|
||||
|
||||
print('**************************************************')
|
||||
print(ct)
|
||||
print(opts)
|
||||
print('**************************************************')
|
||||
build_ext.build_extensions(self)
|
||||
|
||||
|
||||
|
||||
def get_shared_lib():
|
||||
return [f for f in os.listdir('.') if '_slsdet' in f]
|
||||
|
||||
setup(
|
||||
name='slsdet',
|
||||
version=__version__,
|
||||
@ -132,6 +53,6 @@ setup(
|
||||
long_description='',
|
||||
packages=find_packages(exclude=['contrib', 'docs', 'tests']),
|
||||
ext_modules=ext_modules,
|
||||
cmdclass={'build_ext': BuildExt},
|
||||
cmdclass={"build_ext": build_ext},
|
||||
zip_safe=False,
|
||||
)
|
||||
|
@ -1132,6 +1132,10 @@ void init_det(py::module &m) {
|
||||
(Result<std::array<ns, 3>>(Detector::*)(sls::Positions) const) &
|
||||
Detector::getGateDelayForAllGates,
|
||||
py::arg() = Positions{})
|
||||
.def("getMaster",
|
||||
(Result<bool>(Detector::*)(sls::Positions) const) &
|
||||
Detector::getMaster,
|
||||
py::arg() = Positions{})
|
||||
.def("getNumberOfAnalogSamples",
|
||||
(Result<int>(Detector::*)(sls::Positions) const) &
|
||||
Detector::getNumberOfAnalogSamples,
|
||||
|
BIN
slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_5.1.0.rc1
Executable file
BIN
slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_5.1.0.rc1
Executable file
Binary file not shown.
Binary file not shown.
2
slsDetectorServers/eigerDetectorServer/bin/config_eiger.txt
Executable file
2
slsDetectorServers/eigerDetectorServer/bin/config_eiger.txt
Executable file
@ -0,0 +1,2 @@
|
||||
top 1
|
||||
master 1
|
BIN
slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_5.1.0.rc1
Executable file
BIN
slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_5.1.0.rc1
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
33
slsDetectorServers/gotthard2DetectorServer/bin/config_gotthard2.txt
Executable file
33
slsDetectorServers/gotthard2DetectorServer/bin/config_gotthard2.txt
Executable file
@ -0,0 +1,33 @@
|
||||
|
||||
|
||||
#onchip dacs chip index value (max 0x3ff)
|
||||
vchip_comp_fe -1 0x137
|
||||
vchip_opa_1st -1 0x000
|
||||
vchip_opa_fd -1 0x134
|
||||
vchip_comp_adc -1 0x3FF
|
||||
vchip_ref_comp_fe -1 0x180
|
||||
vchip_cs -1 0x0D0
|
||||
|
||||
#dacs value (max 4096)
|
||||
vref_h_adc 2116
|
||||
vb_comp_fe 0
|
||||
vb_comp_adc 0
|
||||
vcom_cds 705
|
||||
vref_rstore 150
|
||||
vb_opa_1st 0
|
||||
vref_comp_fe 0
|
||||
vcom_adc1 705
|
||||
vref_prech 869
|
||||
vref_l_adc 700
|
||||
vref_cds 700
|
||||
vb_cs 2799
|
||||
vb_opa_fd 0
|
||||
vcom_adc2 704
|
||||
|
||||
#configure adc chip index adc index value(max 0x7F)
|
||||
confadc -1 -1 0x22
|
||||
|
||||
#vetoreference gain index value(max 4095)
|
||||
vetoref 1 0
|
||||
|
||||
|
BIN
slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_5.1.0.rc1
Executable file
BIN
slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_5.1.0.rc1
Executable file
Binary file not shown.
Binary file not shown.
23
slsDetectorServers/gotthardDetectorServer/bin/config_gotthard.txt
Executable file
23
slsDetectorServers/gotthardDetectorServer/bin/config_gotthard.txt
Executable file
@ -0,0 +1,23 @@
|
||||
#masterflags (no_master, is_master, is_slave)
|
||||
masterflags no_master
|
||||
|
||||
#master default delay
|
||||
masterdefaultdelay 70
|
||||
|
||||
#patternphase
|
||||
patternphase 0
|
||||
|
||||
#adcphase
|
||||
adcphase 0
|
||||
|
||||
#slave pattern phase
|
||||
slavepatternphase 0
|
||||
|
||||
#slave adc phase
|
||||
slaveadcphase 0
|
||||
|
||||
#rst to sw1 delay
|
||||
rsttosw1delay 2
|
||||
|
||||
#start acquisition delay
|
||||
startacqdelay 1
|
BIN
slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_5.1.0.rc1
Executable file
BIN
slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_5.1.0.rc1
Executable file
Binary file not shown.
Binary file not shown.
BIN
slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_5.1.0.rc1
Executable file
BIN
slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_5.1.0.rc1
Executable file
Binary file not shown.
Binary file not shown.
@ -1396,11 +1396,8 @@ int setClockDivider(enum CLKINDEX ind, int val) {
|
||||
setPhase(ADC_CLK, adcPhase, 0);
|
||||
LOG(logINFO, ("\tSet ADC Phase Reg to %d\n", adcPhase));
|
||||
|
||||
// only implemented in the new boards now
|
||||
if (!isHardwareVersion2()) {
|
||||
setPhase(DBIT_CLK, dbitPhase, 0);
|
||||
LOG(logINFO, ("\tSet DBIT Phase Reg to %d\n", dbitPhase));
|
||||
}
|
||||
setPhase(DBIT_CLK, dbitPhase, 0);
|
||||
LOG(logINFO, ("\tSet DBIT Phase Reg to %d\n", dbitPhase));
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
#include "sls/sls_detector_defs.h"
|
||||
|
||||
#define MIN_REQRD_VRSN_T_RD_API 0x171220
|
||||
#define REQRD_FRMWRE_VRSN_BOARD2 0x200724 // 1.0 pcb
|
||||
#define REQRD_FRMWRE_VRSN_BOARD2 0x210218 // 1.0 pcb
|
||||
#define REQRD_FRMWRE_VRSN 0x200721 // 2.0 pcb
|
||||
|
||||
#define CTRL_SRVR_INIT_TIME_US (300 * 1000)
|
||||
@ -113,8 +113,8 @@ enum CLKINDEX { RUN_CLK, ADC_CLK, DBIT_CLK, NUM_CLOCKS };
|
||||
#define ADC_OFST_FULL_SPEED_VAL (0x10) // 2.0 pcb
|
||||
#define ADC_OFST_HALF_SPEED_VAL (0x08) // 2.0 pcb
|
||||
#define ADC_OFST_QUARTER_SPEED_VAL (0x04) // 2.0 pcb
|
||||
#define ADC_OFST_HALF_SPEED_BOARD2_VAL (0x13) // 1.0 pcb (2 resistor network)
|
||||
#define ADC_OFST_QUARTER_SPEED_BOARD2_VAL (0x0b) // 1.0 pcb (2 resistor network)
|
||||
#define ADC_OFST_HALF_SPEED_BOARD2_VAL (0x10) // 1.0 pcb (2 resistor network)
|
||||
#define ADC_OFST_QUARTER_SPEED_BOARD2_VAL (0x08) // 1.0 pcb (2 resistor network)
|
||||
|
||||
#define ADC_PORT_INVERT_VAL (0x5A5A5A5A)
|
||||
#define ADC_PORT_INVERT_BOARD2_VAL (0x453b2a9c)
|
||||
@ -140,8 +140,8 @@ enum CLKINDEX { RUN_CLK, ADC_CLK, DBIT_CLK, NUM_CLOCKS };
|
||||
#define ADC_PHASE_FULL_SPEED (150) // 2.0 pcb
|
||||
#define ADC_PHASE_HALF_SPEED (200) // 2.0 pcb
|
||||
#define ADC_PHASE_QUARTER_SPEED (200) // 2.0 pcb
|
||||
#define ADC_PHASE_HALF_SPEED_BOARD2 (75) // 1.0 pcb (2 resistor network)
|
||||
#define ADC_PHASE_QUARTER_SPEED_BOARD2 (75) // 1.0 pcb (2 resistor network)
|
||||
#define ADC_PHASE_HALF_SPEED_BOARD2 (110) // 1.0 pcb (2 resistor network)
|
||||
#define ADC_PHASE_QUARTER_SPEED_BOARD2 (220) // 1.0 pcb (2 resistor network)
|
||||
|
||||
#define DBIT_PHASE_FULL_SPEED (85) // 2.0 pcb
|
||||
#define DBIT_PHASE_HALF_SPEED (150) // 2.0 pcb
|
||||
|
288
slsDetectorServers/moenchDetectorServer/bin/DefaultPattern_moench.txt
Executable file
288
slsDetectorServers/moenchDetectorServer/bin/DefaultPattern_moench.txt
Executable file
@ -0,0 +1,288 @@
|
||||
patword 0x0000 0x0008599f0418503a
|
||||
patword 0x0001 0x0008599f0418503a
|
||||
patword 0x0002 0x000859960418503a
|
||||
patword 0x0003 0x000859960418503a
|
||||
patword 0x0004 0x000859960418503a
|
||||
patword 0x0005 0x000859960418503a
|
||||
patword 0x0006 0x000859960418503a
|
||||
patword 0x0007 0x000859960418503a
|
||||
patword 0x0008 0x000859960418503a
|
||||
patword 0x0009 0x000859960418503a
|
||||
patword 0x000a 0x000859960418503a
|
||||
patword 0x000b 0x000859960418503a
|
||||
patword 0x000c 0x000859960418503a
|
||||
patword 0x000d 0x000859960418503a
|
||||
patword 0x000e 0x000859960418503a
|
||||
patword 0x000f 0x000859960418503a
|
||||
patword 0x0010 0x000859960418503a
|
||||
patword 0x0011 0x000859960418503a
|
||||
patword 0x0012 0x000859960418503a
|
||||
patword 0x0013 0x000859960418503a
|
||||
patword 0x0014 0x000859960418503a
|
||||
patword 0x0015 0x000859960418503a
|
||||
patword 0x0016 0x000819960418501a
|
||||
patword 0x0017 0x000819960418501a
|
||||
patword 0x0018 0x000819960418501a
|
||||
patword 0x0019 0x000819960418501a
|
||||
patword 0x001a 0x000819960418501a
|
||||
patword 0x001b 0x000819960418501a
|
||||
patword 0x001c 0x000819960418501a
|
||||
patword 0x001d 0x000819960418501a
|
||||
patword 0x001e 0x000819960418501a
|
||||
patword 0x001f 0x000819960418501a
|
||||
patword 0x0020 0x000819960418501a
|
||||
patword 0x0021 0x000819960418501a
|
||||
patword 0x0022 0x000819960418501a
|
||||
patword 0x0023 0x000819960418501a
|
||||
patword 0x0024 0x000819960418501a
|
||||
patword 0x0025 0x000819960418501a
|
||||
patword 0x0026 0x000819960418501a
|
||||
patword 0x0027 0x000819960418501a
|
||||
patword 0x0028 0x000819960418501a
|
||||
patword 0x0029 0x000819960418501a
|
||||
patword 0x002a 0x000819960418501a
|
||||
patword 0x002b 0x000819960418501a
|
||||
patword 0x002c 0x000819960418501a
|
||||
patword 0x002d 0x000819960418501a
|
||||
patword 0x002e 0x000819960418501a
|
||||
patword 0x002f 0x000819960418501a
|
||||
patword 0x0030 0x000819960008501a
|
||||
patword 0x0031 0x000819960008501a
|
||||
patword 0x0032 0x000819960008501a
|
||||
patword 0x0033 0x000819960008501a
|
||||
patword 0x0034 0x000819960008501a
|
||||
patword 0x0035 0x000819960008501a
|
||||
patword 0x0036 0x000819960008501a
|
||||
patword 0x0037 0x000819960008501a
|
||||
patword 0x0038 0x000819960008501a
|
||||
patword 0x0039 0x000819960008501a
|
||||
patword 0x003a 0x000819960008501a
|
||||
patword 0x003b 0x000819960008501a
|
||||
patword 0x003c 0x000819960008501a
|
||||
patword 0x003d 0x000819960008501a
|
||||
patword 0x003e 0x000819960008501a
|
||||
patword 0x003f 0x000819960008501a
|
||||
patword 0x0040 0x000819960008501a
|
||||
patword 0x0041 0x000819960008501a
|
||||
patword 0x0042 0x000819960008501a
|
||||
patword 0x0043 0x000819960008501a
|
||||
patword 0x0044 0x0008199f0008501a
|
||||
patword 0x0045 0x0008199f0008501a
|
||||
patword 0x0046 0x0008199f0008501a
|
||||
patword 0x0047 0x0008199f0008501a
|
||||
patword 0x0048 0x0008199f0008501a
|
||||
patword 0x0049 0x0008199f0008501a
|
||||
patword 0x004a 0x0008199f0008501a
|
||||
patword 0x004b 0x0008199f0008501a
|
||||
patword 0x004c 0x0008199f0008501a
|
||||
patword 0x004d 0x0008199f0008501a
|
||||
patword 0x004e 0x0008199f0008501a
|
||||
patword 0x004f 0x0008199f0008501a
|
||||
patword 0x0050 0x0008199f0008501a
|
||||
patword 0x0051 0x0008199f0008501a
|
||||
patword 0x0052 0x0008199f0008501a
|
||||
patword 0x0053 0x0008199f0008501a
|
||||
patword 0x0054 0x0008199f0008501a
|
||||
patword 0x0055 0x0008199f0008501a
|
||||
patword 0x0056 0x0008199f0008501a
|
||||
patword 0x0057 0x0008199f0008501a
|
||||
patword 0x0058 0x0008599f0008503a
|
||||
patword 0x0059 0x0008599f0008503a
|
||||
patword 0x005a 0x000c599f000850ba
|
||||
patword 0x005b 0x000c599f000850ba
|
||||
patword 0x005c 0x000c599f000850ba
|
||||
patword 0x005d 0x000c599f000850ba
|
||||
patword 0x005e 0x000c599f000850ba
|
||||
patword 0x005f 0x000c599f000850ba
|
||||
patword 0x0060 0x000c599f000850ba
|
||||
patword 0x0061 0x000c599f000850ba
|
||||
patword 0x0062 0x000c599f000850ba
|
||||
patword 0x0063 0x000c599f000850ba
|
||||
patword 0x0064 0x000c599f000850ba
|
||||
patword 0x0065 0x000c599f000850ba
|
||||
patword 0x0066 0x000c599f000850ba
|
||||
patword 0x0067 0x000c599f000850ba
|
||||
patword 0x0068 0x000c599f000850ba
|
||||
patword 0x0069 0x000c599f000850ba
|
||||
patword 0x006a 0x000c599f000850ba
|
||||
patword 0x006b 0x000c599f000850ba
|
||||
patword 0x006c 0x000c599f000850ba
|
||||
patword 0x006d 0x000c599f000850ba
|
||||
patword 0x006e 0x000c799f010858ba
|
||||
patword 0x006f 0x000c799f010858ba
|
||||
patword 0x0070 0x000c599f000850ba
|
||||
patword 0x0071 0x000c599f000850ba
|
||||
patword 0x0072 0x000c599f000850ba
|
||||
patword 0x0073 0x000c599f000850ba
|
||||
patword 0x0074 0x000c599f000850ba
|
||||
patword 0x0075 0x000c599f000850ba
|
||||
patword 0x0076 0x000c599f000850ba
|
||||
patword 0x0077 0x000c599f000850ba
|
||||
patword 0x0078 0x000c599f000850ba
|
||||
patword 0x0079 0x000c599f000850ba
|
||||
patword 0x007a 0x000c599f000850ba
|
||||
patword 0x007b 0x000c599f000850ba
|
||||
patword 0x007c 0x000c599f000850ba
|
||||
patword 0x007d 0x000c599f000850ba
|
||||
patword 0x007e 0x000c599f000850ba
|
||||
patword 0x007f 0x000c599f000850ba
|
||||
patword 0x0080 0x000c599f000850ba
|
||||
patword 0x0081 0x000c599f000850ba
|
||||
patword 0x0082 0x000c599f000850ba
|
||||
patword 0x0083 0x000c599f000850ba
|
||||
patword 0x0084 0x000c599f000850ba
|
||||
patword 0x0085 0x000c599f000850ba
|
||||
patword 0x0086 0x000c599f400850ba
|
||||
patword 0x0087 0x000c599f400850ba
|
||||
patword 0x0088 0x000c599f600850ba
|
||||
patword 0x0089 0x000c599f400850ba
|
||||
patword 0x008a 0x000c599f400850ba
|
||||
patword 0x008b 0x000c599f400850ba
|
||||
patword 0x008c 0x840c599f682e50ba
|
||||
patword 0x008d 0x840c599f482850ba
|
||||
patword 0x008e 0x840c599f000e50ba
|
||||
patword 0x008f 0x840c599f000850ba
|
||||
patword 0x0090 0x840c599f000e50ba
|
||||
patword 0x0091 0x840c599f000850ba
|
||||
patword 0x0092 0x840c599f000e50ba
|
||||
patword 0x0093 0x840c599f000850ba
|
||||
patword 0x0094 0x840c599f000e50ba
|
||||
patword 0x0095 0x840c599f000850ba
|
||||
patword 0x0096 0x840c599f000e50ba
|
||||
patword 0x0097 0x840c599f000850ba
|
||||
patword 0x0098 0x840c599f000e50ba
|
||||
patword 0x0099 0x840c599f000850ba
|
||||
patword 0x009a 0x840c599f000e50ba
|
||||
patword 0x009b 0x840c599f000850ba
|
||||
patword 0x009c 0x840c599f000e50ba
|
||||
patword 0x009d 0x840c599f000850ba
|
||||
patword 0x009e 0x840c599f000e50ba
|
||||
patword 0x009f 0x840c599f000850ba
|
||||
patword 0x00a0 0x840c599f000e50ba
|
||||
patword 0x00a1 0x840c599f000850ba
|
||||
patword 0x00a2 0x840c599f000e50ba
|
||||
patword 0x00a3 0x840c599f000850ba
|
||||
patword 0x00a4 0x840c599f000e50ba
|
||||
patword 0x00a5 0x840c599f000850ba
|
||||
patword 0x00a6 0x840c599f200e50ba
|
||||
patword 0x00a7 0x840c599f000850ba
|
||||
patword 0x00a8 0x840c599f000e50ba
|
||||
patword 0x00a9 0x840c599f000850ba
|
||||
patword 0x00aa 0x840c599f000e50ba
|
||||
patword 0x00ab 0x840c599f000850ba
|
||||
patword 0x00ac 0x840c599f000e50ba
|
||||
patword 0x00ad 0x840c599f000850ba
|
||||
patword 0x00ae 0x840c599f000e50ba
|
||||
patword 0x00af 0x840c599f000850ba
|
||||
patword 0x00b0 0x840c599f000e50ba
|
||||
patword 0x00b1 0x840c599f000850ba
|
||||
patword 0x00b2 0x840c599f000e50ba
|
||||
patword 0x00b3 0x840c599f000850ba
|
||||
patword 0x00b4 0x840c599f000e50ba
|
||||
patword 0x00b5 0x840c599f000850ba
|
||||
patword 0x00b6 0x840c599f000e50ba
|
||||
patword 0x00b7 0x840c599f000850ba
|
||||
patword 0x00b8 0x840c599f000e50ba
|
||||
patword 0x00b9 0x840c599f000850ba
|
||||
patword 0x00ba 0x840c599f000e50ba
|
||||
patword 0x00bb 0x840c599f000850ba
|
||||
patword 0x00bc 0x840c599f000e50ba
|
||||
patword 0x00bd 0x840c599f000850ba
|
||||
patword 0x00be 0x840c599f282e50ba
|
||||
patword 0x00bf 0x840c599f082850ba
|
||||
patword 0x00c0 0x840c599f000e50ba
|
||||
patword 0x00c1 0x840c599f000850ba
|
||||
patword 0x00c2 0x840c599f000e50ba
|
||||
patword 0x00c3 0x840c599f000850ba
|
||||
patword 0x00c4 0x840c599f000e50ba
|
||||
patword 0x00c5 0x840c599f000850ba
|
||||
patword 0x00c6 0x840c599f000e50ba
|
||||
patword 0x00c7 0x840c599f000850ba
|
||||
patword 0x00c8 0x840c599f000e50ba
|
||||
patword 0x00c9 0x840c599f000850ba
|
||||
patword 0x00ca 0x840c599f000e50ba
|
||||
patword 0x00cb 0x840c599f000850ba
|
||||
patword 0x00cc 0x840c599f000e50ba
|
||||
patword 0x00cd 0x840c599f000850ba
|
||||
patword 0x00ce 0x840c599f000e50ba
|
||||
patword 0x00cf 0x840c599f000850ba
|
||||
patword 0x00d0 0x840c599f000e50ba
|
||||
patword 0x00d1 0x840c599f000850ba
|
||||
patword 0x00d2 0x840c599f000e50ba
|
||||
patword 0x00d3 0x840c599f000850ba
|
||||
patword 0x00d4 0x840c599f000e50ba
|
||||
patword 0x00d5 0x840c599f000850ba
|
||||
patword 0x00d6 0x840c599f000e50ba
|
||||
patword 0x00d7 0x840c599f000850ba
|
||||
patword 0x00d8 0x840c599f200e50ba
|
||||
patword 0x00d9 0x840c599f000850ba
|
||||
patword 0x00da 0x840c599f000e50ba
|
||||
patword 0x00db 0x840c599f000850ba
|
||||
patword 0x00dc 0x840c599f000e50ba
|
||||
patword 0x00dd 0x840c599f000850ba
|
||||
patword 0x00de 0x840c599f000e50ba
|
||||
patword 0x00df 0x840c599f000850ba
|
||||
patword 0x00e0 0x840c599f000e50ba
|
||||
patword 0x00e1 0x840c599f000850ba
|
||||
patword 0x00e2 0x840c599f000e50ba
|
||||
patword 0x00e3 0x840c599f000850ba
|
||||
patword 0x00e4 0x840c599f000e50ba
|
||||
patword 0x00e5 0x840c599f000850ba
|
||||
patword 0x00e6 0x840c599f000e50ba
|
||||
patword 0x00e7 0x840c599f000850ba
|
||||
patword 0x00e8 0x840c599f000e50ba
|
||||
patword 0x00e9 0x840c599f000850ba
|
||||
patword 0x00ea 0x840c599f000e50ba
|
||||
patword 0x00eb 0x840c599f000850ba
|
||||
patword 0x00ec 0x840c599f000e50ba
|
||||
patword 0x00ed 0x840c599f000850ba
|
||||
patword 0x00ee 0x840c599f000e50ba
|
||||
patword 0x00ef 0x840c599f000850ba
|
||||
patword 0x00f0 0x040c599f000850ba
|
||||
patword 0x00f1 0x040c599f000850ba
|
||||
patword 0x00f2 0x000c599f000850ba
|
||||
patword 0x00f3 0x000c599f000850ba
|
||||
patword 0x00f4 0x0008599f200e503a
|
||||
patword 0x00f5 0x0008599f0008503a
|
||||
patword 0x00f6 0x0008599f200e503a
|
||||
patword 0x00f7 0x0008599f0008503a
|
||||
patword 0x00f8 0x0008599f0008503a
|
||||
patword 0x00f9 0x0008599f0008503a
|
||||
patword 0x00fa 0x0008599f0008503a
|
||||
patword 0x00fb 0x0008599f0008503a
|
||||
patword 0x00fc 0x0008599f0008503a
|
||||
patword 0x00fd 0x0008599f0008503a
|
||||
patword 0x00fe 0x0008599f0008503a
|
||||
patword 0x00ff 0x0008599f0008503a
|
||||
patword 0x0100 0x0008599f0008503a
|
||||
patword 0x0101 0x0008599f0008503a
|
||||
patword 0x0102 0x0008599f0008503a
|
||||
patword 0x0103 0x0008599f0008503a
|
||||
patword 0x0104 0x0008599f0008503a
|
||||
patword 0x0105 0x0008599f0008503a
|
||||
patword 0x0106 0x0008599f0008503a
|
||||
patword 0x0107 0x0008599f0008503a
|
||||
patword 0x0108 0x0008599f0008503a
|
||||
patword 0x0109 0x0008599f0008503a
|
||||
patword 0x010a 0x0008599f0008503a
|
||||
patword 0x010b 0x0008599f0008503a
|
||||
patword 0x010c 0x0008599f0008503a
|
||||
patword 0x010d 0x0008599f0008503a
|
||||
patword 0x010e 0x0008599f0008503a
|
||||
patword 0x010f 0x0008599f0008503a
|
||||
patword 0x0110 0x0008599f0008503a
|
||||
patword 0x0111 0x0008599f0008503a
|
||||
patioctrl 0x8f0effff6dbffdbf
|
||||
patlimits 0x0000 0x0110
|
||||
patloop0 0x00be 0x00ef
|
||||
patnloop0 199
|
||||
patloop1 0x0400 0x0400
|
||||
patnloop1 0
|
||||
patloop2 0x0400 0x0400
|
||||
patnloop2 0
|
||||
patwait0 0x002e
|
||||
patwaittime0 800
|
||||
patwait1 0x0400
|
||||
patwaittime1 0
|
||||
patwait2 0x0400
|
||||
patwaittime2 0
|
BIN
slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_5.1.0.rc1
Executable file
BIN
slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_5.1.0.rc1
Executable file
Binary file not shown.
Binary file not shown.
256
slsDetectorServers/mythen3DetectorServer/bin/DefaultPattern_mythen3.txt
Executable file
256
slsDetectorServers/mythen3DetectorServer/bin/DefaultPattern_mythen3.txt
Executable file
@ -0,0 +1,256 @@
|
||||
patword 0x0000 0x0000000000000000
|
||||
patword 0x0001 0x0000000000000000
|
||||
patword 0x0002 0x0000000000000000
|
||||
patword 0x0003 0x0000000000000000
|
||||
patword 0x0004 0x0000000000000000
|
||||
patword 0x0005 0x0000000000000000
|
||||
patword 0x0006 0x0000000000c00000
|
||||
patword 0x0007 0x0000000000c00000
|
||||
patword 0x0008 0x0000000000c00000
|
||||
patword 0x0009 0x0000000000c00000
|
||||
patword 0x000a 0x0000000000c00000
|
||||
patword 0x000b 0x0000000000c00000
|
||||
patword 0x000c 0x0000000000000000
|
||||
patword 0x000d 0x0000000000000000
|
||||
patword 0x000e 0x0000000000000000
|
||||
patword 0x000f 0x0000000000000000
|
||||
patword 0x0010 0x0000000000000000
|
||||
patword 0x0011 0x0000000000000000
|
||||
patword 0x0012 0x0000000000200000
|
||||
patword 0x0013 0x0000000000200000
|
||||
patword 0x0014 0x0000000000e00000
|
||||
patword 0x0015 0x0000000000e00000
|
||||
patword 0x0016 0x0000000000e00000
|
||||
patword 0x0017 0x0000000000e00000
|
||||
patword 0x0018 0x0000000000e00000
|
||||
patword 0x0019 0x0000000000e00000
|
||||
patword 0x001a 0x0000000000e00000
|
||||
patword 0x001b 0x0000000000e00000
|
||||
patword 0x001c 0x0000000000200000
|
||||
patword 0x001d 0x0000000000200000
|
||||
patword 0x001e 0x0000000000200000
|
||||
patword 0x001f 0x0000000000200000
|
||||
patword 0x0020 0x0000000000200000
|
||||
patword 0x0021 0x0000000000200000
|
||||
patword 0x0022 0x0000000000200000
|
||||
patword 0x0023 0x0000000000200000
|
||||
patword 0x0024 0x0000000000200000
|
||||
patword 0x0025 0x0000000000200000
|
||||
patword 0x0026 0x0000000000200000
|
||||
patword 0x0027 0x0000000000200000
|
||||
patword 0x0028 0x0000000000200000
|
||||
patword 0x0029 0x0000000001200000
|
||||
patword 0x002a 0x0000000000200000
|
||||
patword 0x002b 0x0000000000200000
|
||||
patword 0x002c 0x0000000000200000
|
||||
patword 0x002d 0x0000000000200000
|
||||
patword 0x002e 0x0000000000200000
|
||||
patword 0x002f 0x0000000000200000
|
||||
patword 0x0030 0x0000000000200000
|
||||
patword 0x0031 0x0000000000200000
|
||||
patword 0x0032 0x0000000001200000
|
||||
patword 0x0033 0x0000000000200000
|
||||
patword 0x0034 0x0000000000200000
|
||||
patword 0x0035 0x0000000000200000
|
||||
patword 0x0036 0x0000000000200000
|
||||
patword 0x0037 0x0000000000200000
|
||||
patword 0x0038 0x0000000000200000
|
||||
patword 0x0039 0x0000000000200000
|
||||
patword 0x003a 0x0000000000200000
|
||||
patword 0x003b 0x0000000001200000
|
||||
patword 0x003c 0x0000000000200000
|
||||
patword 0x003d 0x0000000000200000
|
||||
patword 0x003e 0x0000000000200000
|
||||
patword 0x003f 0x0000000000200000
|
||||
patword 0x0040 0x0000000000200000
|
||||
patword 0x0041 0x0000000000200000
|
||||
patword 0x0042 0x0000000000200000
|
||||
patword 0x0043 0x0000000000200000
|
||||
patword 0x0044 0x0000000001200000
|
||||
patword 0x0045 0x0000000000200000
|
||||
patword 0x0046 0x0000000000200000
|
||||
patword 0x0047 0x0000000000200000
|
||||
patword 0x0048 0x0000000000200000
|
||||
patword 0x0049 0x0000000000200000
|
||||
patword 0x004a 0x0000000000200000
|
||||
patword 0x004b 0x0000000000200000
|
||||
patword 0x004c 0x0000000000200000
|
||||
patword 0x004d 0x0000000001200000
|
||||
patword 0x004e 0x0000000000200000
|
||||
patword 0x004f 0x0000000000200000
|
||||
patword 0x0050 0x0000000000200000
|
||||
patword 0x0051 0x0000000000200000
|
||||
patword 0x0052 0x0000000000200000
|
||||
patword 0x0053 0x0000000000200000
|
||||
patword 0x0054 0x0000000000200000
|
||||
patword 0x0055 0x0000000000200000
|
||||
patword 0x0056 0x0000000001200000
|
||||
patword 0x0057 0x0000000000200000
|
||||
patword 0x0058 0x0000000000200000
|
||||
patword 0x0059 0x0000000000200000
|
||||
patword 0x005a 0x0000000000280000
|
||||
patword 0x005b 0x0000000000280000
|
||||
patword 0x005c 0x0000000000280000
|
||||
patword 0x005d 0x0000000000280000
|
||||
patword 0x005e 0x0000000000280000
|
||||
patword 0x005f 0x0000000001280000
|
||||
patword 0x0060 0x0000000000280000
|
||||
patword 0x0061 0x0000000000200000
|
||||
patword 0x0062 0x0000000000200000
|
||||
patword 0x0063 0x0000000000200000
|
||||
patword 0x0064 0x0000000000200000
|
||||
patword 0x0065 0x0000000000200000
|
||||
patword 0x0066 0x0000000000200000
|
||||
patword 0x0067 0x0000000000200000
|
||||
patword 0x0068 0x0000000001200000
|
||||
patword 0x0069 0x0000000000200000
|
||||
patword 0x006a 0x0000000000200000
|
||||
patword 0x006b 0x0000000000200000
|
||||
patword 0x006c 0x0000000000200000
|
||||
patword 0x006d 0x0000000000200000
|
||||
patword 0x006e 0x0000000000200000
|
||||
patword 0x006f 0x0000000000200000
|
||||
patword 0x0070 0x0000000000200000
|
||||
patword 0x0071 0x0000000001200000
|
||||
patword 0x0072 0x0000000000200000
|
||||
patword 0x0073 0x0000000000200000
|
||||
patword 0x0074 0x0000000000200000
|
||||
patword 0x0075 0x0000000000200000
|
||||
patword 0x0076 0x0000000000200000
|
||||
patword 0x0077 0x0000000000200000
|
||||
patword 0x0078 0x0000000000200000
|
||||
patword 0x0079 0x0000000000200000
|
||||
patword 0x007a 0x0000000001200000
|
||||
patword 0x007b 0x0000000000200000
|
||||
patword 0x007c 0x0000000000200000
|
||||
patword 0x007d 0x0000000000200000
|
||||
patword 0x007e 0x0000000000280000
|
||||
patword 0x007f 0x0000000000280000
|
||||
patword 0x0080 0x0000000000280000
|
||||
patword 0x0081 0x0000000000280000
|
||||
patword 0x0082 0x0000000000280000
|
||||
patword 0x0083 0x0000000001280000
|
||||
patword 0x0084 0x0000000000280000
|
||||
patword 0x0085 0x0000000000200000
|
||||
patword 0x0086 0x0000000000200000
|
||||
patword 0x0087 0x0000000000200000
|
||||
patword 0x0088 0x0000000000200000
|
||||
patword 0x0089 0x0000000000200000
|
||||
patword 0x008a 0x0000000000200000
|
||||
patword 0x008b 0x0000000000200000
|
||||
patword 0x008c 0x0000000001200000
|
||||
patword 0x008d 0x0000000000200000
|
||||
patword 0x008e 0x0000000000200000
|
||||
patword 0x008f 0x0000000000200000
|
||||
patword 0x0090 0x0000000000200000
|
||||
patword 0x0091 0x0000000000200000
|
||||
patword 0x0092 0x0000000000200000
|
||||
patword 0x0093 0x0000000000200000
|
||||
patword 0x0094 0x0000000000200000
|
||||
patword 0x0095 0x0000000001200000
|
||||
patword 0x0096 0x0000000000200000
|
||||
patword 0x0097 0x0000000000200000
|
||||
patword 0x0098 0x0000000000200000
|
||||
patword 0x0099 0x0000000000200000
|
||||
patword 0x009a 0x0000000000200000
|
||||
patword 0x009b 0x0000000000200000
|
||||
patword 0x009c 0x0000000000200000
|
||||
patword 0x009d 0x0000000000200000
|
||||
patword 0x009e 0x0000000001200000
|
||||
patword 0x009f 0x0000000000200000
|
||||
patword 0x00a0 0x0000000000200000
|
||||
patword 0x00a1 0x0000000000200000
|
||||
patword 0x00a2 0x0000000000200000
|
||||
patword 0x00a3 0x0000000000200000
|
||||
patword 0x00a4 0x0000000000200000
|
||||
patword 0x00a5 0x0000000000200000
|
||||
patword 0x00a6 0x0000000000200000
|
||||
patword 0x00a7 0x0000000001200000
|
||||
patword 0x00a8 0x0000000000200000
|
||||
patword 0x00a9 0x0000000000200000
|
||||
patword 0x00aa 0x0000000000200000
|
||||
patword 0x00ab 0x0000000000200000
|
||||
patword 0x00ac 0x0000000000200000
|
||||
patword 0x00ad 0x0000000000200000
|
||||
patword 0x00ae 0x0000000000200000
|
||||
patword 0x00af 0x0000000000200000
|
||||
patword 0x00b0 0x0000000001200000
|
||||
patword 0x00b1 0x0000000000200000
|
||||
patword 0x00b2 0x0000000000200000
|
||||
patword 0x00b3 0x0000000000200000
|
||||
patword 0x00b4 0x0000000000200000
|
||||
patword 0x00b5 0x0000000000200000
|
||||
patword 0x00b6 0x0000000000200000
|
||||
patword 0x00b7 0x0000000000200000
|
||||
patword 0x00b8 0x0000000000200000
|
||||
patword 0x00b9 0x0000000001200000
|
||||
patword 0x00ba 0x0000000000200000
|
||||
patword 0x00bb 0x0000000000200000
|
||||
patword 0x00bc 0x0000000000200000
|
||||
patword 0x00bd 0x0000000000200000
|
||||
patword 0x00be 0x0000000000200000
|
||||
patword 0x00bf 0x0000000000200000
|
||||
patword 0x00c0 0x0000000000200000
|
||||
patword 0x00c1 0x0000000000200000
|
||||
patword 0x00c2 0x0000000001200000
|
||||
patword 0x00c3 0x0000000000200000
|
||||
patword 0x00c4 0x0000000000200000
|
||||
patword 0x00c5 0x0000000000200000
|
||||
patword 0x00c6 0x0000000000300000
|
||||
patword 0x00c7 0x0000000000300000
|
||||
patword 0x00c8 0x0000000000300000
|
||||
patword 0x00c9 0x0000000000300000
|
||||
patword 0x00ca 0x0000000000300000
|
||||
patword 0x00cb 0x0000000000200000
|
||||
patword 0x00cc 0x0000000000200000
|
||||
patword 0x00cd 0x0000000000200000
|
||||
patword 0x00ce 0x0000000000200000
|
||||
patword 0x00cf 0x0000000000200000
|
||||
patword 0x00d0 0x0000000000200000
|
||||
patword 0x00d1 0x0000000000200000
|
||||
patword 0x00d2 0x0000000000000000
|
||||
patword 0x00d3 0x0000000000000000
|
||||
patword 0x00d4 0x0000000000000000
|
||||
patword 0x00d5 0x0000000000000000
|
||||
patword 0x00d6 0x0000000000000000
|
||||
patword 0x00d7 0x0000000000000000
|
||||
patword 0x00d8 0x0000000000000000
|
||||
patword 0x00d9 0x0000000000000000
|
||||
patword 0x00da 0x0000000000c00000
|
||||
patword 0x00db 0x0000000000c00000
|
||||
patword 0x00dc 0x0000000000c00000
|
||||
patword 0x00dd 0x0000000000c00000
|
||||
patword 0x00de 0x0000000000c00000
|
||||
patword 0x00df 0x0000000000c00000
|
||||
patword 0x00e0 0x0000000000c00000
|
||||
patword 0x00e1 0x0000000000c00000
|
||||
patword 0x00e2 0x0000000000c00000
|
||||
patword 0x00e3 0x0000000000c00000
|
||||
patword 0x00e4 0x0000000000000000
|
||||
patword 0x00e5 0x0000000000000000
|
||||
patword 0x00e6 0x0000000000000000
|
||||
patword 0x00e7 0x0000000000000000
|
||||
patword 0x00e8 0x0000000000000000
|
||||
patword 0x00e9 0x0000000000000000
|
||||
patword 0x00ea 0x0000000000000000
|
||||
patword 0x00eb 0x0000000000000000
|
||||
patword 0x00ec 0x0000000000000000
|
||||
patword 0x00ed 0x0000000000000000
|
||||
patword 0x00ee 0x0000000000000000
|
||||
patword 0x00ef 0x0000000000000000
|
||||
patword 0x00f0 0x0000000000000000
|
||||
patword 0x00f1 0x0000000000000000
|
||||
patword 0x00f2 0x0000000000000000
|
||||
patlimits 0x0000 0x00f2
|
||||
patloop0 0x0400 0x0400
|
||||
patnloop0 0
|
||||
patloop1 0x0400 0x0400
|
||||
patnloop1 0
|
||||
patloop2 0x0400 0x0400
|
||||
patnloop2 0
|
||||
patwait0 0x0400
|
||||
patwaittime0 0
|
||||
patwait1 0x0400
|
||||
patwaittime1 0
|
||||
patwait2 0x0400
|
||||
patwaittime2 0
|
BIN
slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_5.1.0.rc2
Executable file
BIN
slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_5.1.0.rc2
Executable file
Binary file not shown.
Binary file not shown.
@ -1522,8 +1522,16 @@ int setHighVoltage(int val) {
|
||||
return highvoltage;
|
||||
}
|
||||
|
||||
int isMaster(){
|
||||
return !(bus_r(0x18) >> 31);
|
||||
}
|
||||
|
||||
/* parameters - timing */
|
||||
void setTiming(enum timingMode arg) {
|
||||
|
||||
if (!isMaster() && arg == AUTO_TIMING)
|
||||
arg = TRIGGER_EXPOSURE;
|
||||
|
||||
uint32_t addr = CONFIG_REG;
|
||||
switch (arg) {
|
||||
case AUTO_TIMING:
|
||||
|
@ -1,7 +1,7 @@
|
||||
#pragma once
|
||||
#include "sls/sls_detector_defs.h"
|
||||
|
||||
#define REQRD_FRMWRE_VRSN (0x200925)
|
||||
#define REQRD_FRMWRE_VRSN (0x210201)
|
||||
#define KERNEL_DATE_VRSN "Wed May 20 13:58:38 CEST 2020"
|
||||
#define ID_FILE "detid_mythen3.txt"
|
||||
|
||||
|
@ -352,6 +352,7 @@ void setTiming(enum timingMode arg);
|
||||
enum timingMode getTiming();
|
||||
#ifdef MYTHEN3D
|
||||
void setInitialExtSignals();
|
||||
int isMaster();
|
||||
#endif
|
||||
#if defined(GOTTHARDD) || defined(MYTHEN3D)
|
||||
void setExtSignal(int signalIndex, enum externalSignalFlag mode);
|
||||
|
@ -245,4 +245,5 @@ int set_default_dacs(int);
|
||||
int is_virtual(int);
|
||||
int get_pattern(int);
|
||||
int load_default_pattern(int);
|
||||
int get_all_threshold_energy(int);
|
||||
int get_all_threshold_energy(int);
|
||||
int get_master(int);
|
@ -368,6 +368,7 @@ void function_table() {
|
||||
flist[F_GET_PATTERN] = &get_pattern;
|
||||
flist[F_LOAD_DEFAULT_PATTERN] = &load_default_pattern;
|
||||
flist[F_GET_ALL_THRESHOLD_ENERGY] = &get_all_threshold_energy;
|
||||
flist[F_GET_MASTER] = &get_master;
|
||||
|
||||
// check
|
||||
if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) {
|
||||
@ -638,7 +639,9 @@ int set_timing_mode(int file_des) {
|
||||
}
|
||||
// get
|
||||
retval = getTiming();
|
||||
#ifndef MYTHEN3D
|
||||
validate((int)arg, (int)retval, "set timing mode", DEC);
|
||||
#endif
|
||||
LOG(logDEBUG1, ("Timing Mode: %d\n", retval));
|
||||
|
||||
return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
|
||||
@ -8365,3 +8368,18 @@ int get_all_threshold_energy(int file_des) {
|
||||
#endif
|
||||
return Server_SendResult(file_des, INT32, retvals, sizeof(retvals));
|
||||
}
|
||||
|
||||
int get_master(int file_des){
|
||||
ret = OK;
|
||||
memset(mess, 0, sizeof(mess));
|
||||
int retval = -1;
|
||||
|
||||
LOG(logDEBUG1, ("Getting master\n"));
|
||||
|
||||
#ifndef MYTHEN3D
|
||||
functionNotImplemented();
|
||||
#else
|
||||
retval = isMaster();
|
||||
#endif
|
||||
return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
|
||||
}
|
||||
|
@ -1305,6 +1305,9 @@ class Detector {
|
||||
/** [Mythen3] gate delay for all gates in auto or trigger timing mode
|
||||
* (internal gating). Gate index: 0-2, -1 for all */
|
||||
Result<std::array<ns, 3>> getGateDelayForAllGates(Positions pos = {}) const;
|
||||
|
||||
Result<bool> getMaster(Positions pos = {}) const;
|
||||
|
||||
///@{
|
||||
|
||||
/** @name CTB / Moench Specific */
|
||||
|
@ -674,7 +674,23 @@ void Detector::startReceiver() { pimpl->Parallel(&Module::startReceiver, {}); }
|
||||
void Detector::stopReceiver() { pimpl->Parallel(&Module::stopReceiver, {}); }
|
||||
|
||||
void Detector::startDetector() {
|
||||
pimpl->Parallel(&Module::startAcquisition, {});
|
||||
auto detector_type = getDetectorType().squash();
|
||||
if (detector_type == defs::MYTHEN3 && size() > 1){
|
||||
auto is_master = getMaster();
|
||||
std::vector<int> master;
|
||||
std::vector<int> slaves;
|
||||
for(int i=0; i<size(); ++i){
|
||||
if (is_master[i])
|
||||
master.push_back(i);
|
||||
else
|
||||
slaves.push_back(i);
|
||||
}
|
||||
pimpl->Parallel(&Module::startAcquisition, slaves);
|
||||
pimpl->Parallel(&Module::startAcquisition, master);
|
||||
}else{
|
||||
pimpl->Parallel(&Module::startAcquisition, {});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void Detector::startDetectorReadout() {
|
||||
@ -717,6 +733,9 @@ Result<defs::scanParameters> Detector::getScan(Positions pos) const {
|
||||
}
|
||||
|
||||
void Detector::setScan(const defs::scanParameters t) {
|
||||
if(getDetectorType().squash() == defs::MYTHEN3 && size()>1 && t.enable != 0){
|
||||
throw DetectorError("Scan is only allowed for single module Mythen 3 because of synchronization");
|
||||
}
|
||||
pimpl->Parallel(&Module::setScan, {}, t);
|
||||
}
|
||||
|
||||
@ -1592,6 +1611,11 @@ Detector::getGateDelayForAllGates(Positions pos) const {
|
||||
return pimpl->Parallel(&Module::getGateDelayForAllGates, pos);
|
||||
}
|
||||
|
||||
Result<bool> Detector::getMaster(Positions pos) const{
|
||||
return pimpl->Parallel(&Module::isMaster, pos);
|
||||
}
|
||||
|
||||
|
||||
// CTB/ Moench Specific
|
||||
|
||||
Result<int> Detector::getNumberOfAnalogSamples(Positions pos) const {
|
||||
|
@ -1056,11 +1056,15 @@ void DetectorImpl::registerDataCallback(void (*userCallback)(detectorData *,
|
||||
}
|
||||
|
||||
int DetectorImpl::acquire() {
|
||||
|
||||
// ensure acquire isnt started multiple times by same client
|
||||
if (!isAcquireReady()) {
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
// We need this to handle Mythen3 synchronization
|
||||
auto detector_type = Parallel(&Module::getDetectorType, {}).squash();
|
||||
|
||||
try {
|
||||
struct timespec begin, end;
|
||||
clock_gettime(CLOCK_REALTIME, &begin);
|
||||
@ -1088,7 +1092,25 @@ int DetectorImpl::acquire() {
|
||||
|
||||
// start and read all
|
||||
try {
|
||||
Parallel(&Module::startAndReadAll, {});
|
||||
if(detector_type == defs::MYTHEN3 && detectors.size() > 1){
|
||||
//Multi module mythen
|
||||
std::vector<int> master;
|
||||
std::vector<int> slaves;
|
||||
auto is_master = Parallel(&Module::isMaster, {});
|
||||
slaves.reserve(detectors.size()-1); //check this one!!
|
||||
for (size_t i = 0; i<detectors.size(); ++i){
|
||||
if(is_master[i])
|
||||
master.push_back(i);
|
||||
else
|
||||
slaves.push_back(i);
|
||||
}
|
||||
Parallel(&Module::startAcquisition, slaves);
|
||||
Parallel(&Module::startAndReadAll, master);
|
||||
}else{
|
||||
//Normal acquire
|
||||
Parallel(&Module::startAndReadAll, {});
|
||||
}
|
||||
|
||||
} catch (...) {
|
||||
if (receiver)
|
||||
Parallel(&Module::stopReceiver, {});
|
||||
|
@ -351,6 +351,38 @@ void Module::setAllThresholdEnergy(std::array<int, 3> e_eV,
|
||||
myMod.reg = isettings;
|
||||
std::copy(e_eV.begin(), e_eV.end(), myMod.eV);
|
||||
LOG(logDEBUG) << "ev:" << ToString(myMod.eV);
|
||||
|
||||
//check for trimbits that are out of range
|
||||
bool out_of_range = false;
|
||||
for(int i = 0; i!=myMod.nchan; ++i){
|
||||
if (myMod.chanregs[i]<0){
|
||||
myMod.chanregs[i] = 0;
|
||||
out_of_range = true;
|
||||
}else if(myMod.chanregs[i]>63){
|
||||
myMod.chanregs[i]=63;
|
||||
out_of_range = true;
|
||||
}
|
||||
}
|
||||
if (out_of_range){
|
||||
LOG(logWARNING) << "Some trimbits were out of range after interpolation, these have been replaced with 0 or 63.";
|
||||
}
|
||||
|
||||
//check dacs
|
||||
out_of_range = false;
|
||||
for (auto dac : {M_VTRIM,M_VTH1,M_VTH2, M_VTH3}){
|
||||
if (myMod.dacs[dac] < 600){
|
||||
myMod.dacs[dac] = 600;
|
||||
out_of_range = true;
|
||||
}else if(myMod.dacs[dac] > 2400){
|
||||
myMod.dacs[dac] = 2400;
|
||||
out_of_range = true;
|
||||
}
|
||||
}
|
||||
if (out_of_range){
|
||||
LOG(logWARNING) << "Some dacs were out of range after interpolation, these have been replaced with 600 or 2400.";
|
||||
}
|
||||
|
||||
|
||||
setModule(myMod, trimbits);
|
||||
if (getSettings() != isettings) {
|
||||
throw RuntimeError("setThresholdEnergyAndSettings: Could not set "
|
||||
@ -1962,6 +1994,10 @@ std::array<time::ns, 3> Module::getGateDelayForAllGates() const {
|
||||
return sendToDetector<std::array<time::ns, 3>>(F_GET_GATE_DELAY_ALL_GATES);
|
||||
}
|
||||
|
||||
bool Module::isMaster() const{
|
||||
return sendToDetector<int>(F_GET_MASTER);
|
||||
}
|
||||
|
||||
// CTB / Moench Specific
|
||||
int Module::getNumberOfAnalogSamples() const {
|
||||
return sendToDetector<int>(F_GET_NUM_ANALOG_SAMPLES);
|
||||
|
@ -425,6 +425,7 @@ class Module : public virtual slsDetectorDefs {
|
||||
int64_t getGateDelay(int gateIndex) const;
|
||||
void setGateDelay(int gateIndex, int64_t value);
|
||||
std::array<time::ns, 3> getGateDelayForAllGates() const;
|
||||
bool isMaster() const;
|
||||
|
||||
/**************************************************
|
||||
* *
|
||||
|
@ -220,6 +220,7 @@ enum detFuncs {
|
||||
F_GET_PATTERN,
|
||||
F_LOAD_DEFAULT_PATTERN,
|
||||
F_GET_ALL_THRESHOLD_ENERGY,
|
||||
F_GET_MASTER,
|
||||
|
||||
NUM_DET_FUNCTIONS,
|
||||
RECEIVER_ENUM_START = 256, /**< detector function should not exceed this
|
||||
@ -546,6 +547,7 @@ const char* getFunctionNameFromEnum(enum detFuncs func) {
|
||||
case F_GET_PATTERN: return "F_GET_PATTERN";
|
||||
case F_LOAD_DEFAULT_PATTERN: return "F_LOAD_DEFAULT_PATTERN";
|
||||
case F_GET_ALL_THRESHOLD_ENERGY: return "F_GET_ALL_THRESHOLD_ENERGY";
|
||||
case F_GET_MASTER: return "F_GET_MASTER";
|
||||
|
||||
case NUM_DET_FUNCTIONS: return "NUM_DET_FUNCTIONS";
|
||||
case RECEIVER_ENUM_START: return "RECEIVER_ENUM_START";
|
||||
|
@ -1,12 +1,12 @@
|
||||
/** API versions */
|
||||
#define GITBRANCH "developer"
|
||||
#define APILIB 0x201119
|
||||
#define APIRECEIVER 0x201119
|
||||
#define APIGUI 0x201119
|
||||
#define APICTB 0x201214
|
||||
#define APIGOTTHARD 0x201214
|
||||
#define APIGOTTHARD2 0x201214
|
||||
#define APIJUNGFRAU 0x201214
|
||||
#define APIMOENCH 0x201214
|
||||
#define APIEIGER 0x201214
|
||||
#define APIMYTHEN3 0x201214
|
||||
#define GITBRANCH "5.1.0.rc2"
|
||||
#define APICTB 0x210225
|
||||
#define APIGOTTHARD 0x210225
|
||||
#define APIGOTTHARD2 0x210225
|
||||
#define APIJUNGFRAU 0x210225
|
||||
#define APIMOENCH 0x210225
|
||||
#define APIEIGER 0x210225
|
||||
#define APIMYTHEN3 0x210225
|
||||
#define APILIB 0x210225
|
||||
#define APIRECEIVER 0x210225
|
||||
#define APIGUI 0x210225
|
||||
|
Reference in New Issue
Block a user