mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-14 13:57:13 +02:00
Compare commits
42 Commits
5.1.0
...
2021.01.20
Author | SHA1 | Date | |
---|---|---|---|
7aeb394514 | |||
f9f50f1d84 | |||
a62e068a9a | |||
85bc37f04d | |||
a3f5315015 | |||
d63a182996 | |||
f147c7bfcb | |||
4218fe5f2f | |||
511f5a7ca5 | |||
a5ab5c1fa0 | |||
8b7023d9a3 | |||
c8c7bca6e0 | |||
8ddc407e62 | |||
7a2827f693 | |||
f4be0b8efa | |||
a6e23b0509 | |||
9048e7f6c4 | |||
1ce56764fa | |||
8c091eece2 | |||
d69e238e67 | |||
95fe1720c0 | |||
69f558c072 | |||
e382df21b9 | |||
8e773c97dd | |||
c043e74c07 | |||
d4518b2ca3 | |||
fd3108a61b | |||
e8fedfa55f | |||
0eb204bfd3 | |||
d9b2a90651 | |||
8ca1d9c50c | |||
baff0518bb | |||
2e669c585b | |||
ca0bc3e0f3 | |||
557cab9c50 | |||
a12dd153ef | |||
8bf9f974a3 | |||
e63fa1d7c2 | |||
9e8c8f4bbc | |||
c120c70678 | |||
10fa57ebb9 | |||
0ca9115cb8 |
53
RELEASE.txt
53
RELEASE.txt
@ -1,13 +1,14 @@
|
|||||||
SLS Detector Package 5.0.1 released on 25.11.2020 (Bug Fix Release)
|
SLS Detector Package 5.1.0 released on xx.xx.2020 (Minor Release)
|
||||||
===================================================================
|
===================================================================
|
||||||
|
|
||||||
This document describes the differences between 5.0.1 and 5.0.0 releases.
|
This document describes the differences between 5.1.0 and 5.x.x releases.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CONTENTS
|
CONTENTS
|
||||||
--------
|
--------
|
||||||
1. Topics Concerning
|
1. Topics Concerning
|
||||||
|
2. New Features
|
||||||
2. Resolved Issues
|
2. Resolved Issues
|
||||||
3. Known Issues
|
3. Known Issues
|
||||||
4. Firmware Requirements
|
4. Firmware Requirements
|
||||||
@ -18,53 +19,57 @@ This document describes the differences between 5.0.1 and 5.0.0 releases.
|
|||||||
1. Topics Concerning
|
1. Topics Concerning
|
||||||
====================
|
====================
|
||||||
|
|
||||||
- Python bindings
|
- potentital memory leak in receiver
|
||||||
- CMake improvements
|
- scanParameters in Python
|
||||||
|
- cmk.sh refactored
|
||||||
|
- m3 settings and threshold
|
||||||
|
|
||||||
|
|
||||||
|
2. New Features
|
||||||
|
===============
|
||||||
|
|
||||||
2. Resolved Issues
|
Client
|
||||||
|
------
|
||||||
|
|
||||||
|
1. Aded settings and threshold features for Mythen3.
|
||||||
|
|
||||||
|
|
||||||
|
3. Resolved Issues
|
||||||
==================
|
==================
|
||||||
|
|
||||||
Python bindings
|
|
||||||
---------------
|
|
||||||
|
|
||||||
1. Fixed function signatures for getRxUDPSocketBufferSize,
|
Receiver
|
||||||
setRxUDPSocketBufferSize and getRxRealUDPSocketBufferSize.
|
--------
|
||||||
|
|
||||||
2. Updated pybind11 to v2.6.1 to remove warnings with Python 3.9 and
|
1. Current code only calls Implementation::setDetectorType from constructor,
|
||||||
better handling of C++ standard.
|
but potential memory leak if called out of constructor context. Fixed.
|
||||||
|
|
||||||
3. Added missing properties in Python.
|
Client
|
||||||
|
------
|
||||||
|
|
||||||
|
1. Fixed missing scanParameters class in Python
|
||||||
|
|
||||||
CMake improvements
|
2. cmk.sh refactored to have better option handling
|
||||||
------------------
|
|
||||||
|
|
||||||
1. Explicitly state Python 3.6 or greater.
|
|
||||||
|
|
||||||
2. Finds the Python of the activated environment when using conda
|
|
||||||
without having to supply additional arguments.
|
|
||||||
|
|
||||||
3. Removed redundant libraries for linking targets.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
3. Firmware Requirements
|
|
||||||
|
|
||||||
|
4. Firmware Requirements
|
||||||
========================
|
========================
|
||||||
|
|
||||||
No updates from 5.0.0
|
No updates from 5.0.0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
4. Known Issues
|
5. Known Issues
|
||||||
===============
|
===============
|
||||||
|
|
||||||
No updates from 5.0.0
|
No updates from 5.0.0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
5. Download, Documentation & Support
|
6. Download, Documentation & Support
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
Download
|
Download
|
||||||
|
Submodule libs/pybind11 updated: f1abf5d915...4f72ef846f
@ -4,6 +4,8 @@ pybind11_add_module(_slsdet
|
|||||||
src/enums.cpp
|
src/enums.cpp
|
||||||
src/detector.cpp
|
src/detector.cpp
|
||||||
src/network.cpp
|
src/network.cpp
|
||||||
|
src/pattern.cpp
|
||||||
|
src/scan.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(_slsdet PUBLIC
|
target_link_libraries(_slsdet PUBLIC
|
||||||
@ -28,6 +30,7 @@ set( PYTHON_FILES
|
|||||||
enums.py
|
enums.py
|
||||||
errors.py
|
errors.py
|
||||||
gotthard.py
|
gotthard.py
|
||||||
|
pattern.py
|
||||||
gotthard2.py
|
gotthard2.py
|
||||||
moench.py
|
moench.py
|
||||||
proxy.py
|
proxy.py
|
||||||
|
14
python/examples/manipulate_pattern.py
Normal file
14
python/examples/manipulate_pattern.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
|
||||||
|
from slsdet import Detector, patternParameters
|
||||||
|
|
||||||
|
d = Detector()
|
||||||
|
pat = patternParameters()
|
||||||
|
|
||||||
|
#Access to members of the structure using numpy arrays
|
||||||
|
pat.patlimits = 0x0, 0xa
|
||||||
|
|
||||||
|
d.setPattern(pat)
|
||||||
|
|
||||||
|
#Load pattern from file
|
||||||
|
pat.load("/some/dir/some.pat")
|
@ -6,7 +6,7 @@ d = Detector()
|
|||||||
d.fformat = fileFormat.BINARY
|
d.fformat = fileFormat.BINARY
|
||||||
|
|
||||||
# Altough not recommended for convenience all enums
|
# Altough not recommended for convenience all enums
|
||||||
# and some other things can be impored using *
|
# and some other things can be imported using *
|
||||||
|
|
||||||
from slsdet import *
|
from slsdet import *
|
||||||
d.speed = speedLevel.FULL_SPEED
|
d.speed = speedLevel.FULL_SPEED
|
||||||
@ -15,6 +15,6 @@ d.speed = speedLevel.FULL_SPEED
|
|||||||
|
|
||||||
import slsdet.enums
|
import slsdet.enums
|
||||||
for enum in dir(slsdet.enums):
|
for enum in dir(slsdet.enums):
|
||||||
# filter out special memebers
|
# filter out special members
|
||||||
if not enum.startswith('_'):
|
if not enum.startswith('_'):
|
||||||
print(enum)
|
print(enum)
|
||||||
|
19
python/examples/using_scan.py
Normal file
19
python/examples/using_scan.py
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
from slsdet import Mythen3, scanParameters, dacIndex
|
||||||
|
|
||||||
|
#Configure scan
|
||||||
|
sp = scanParameters()
|
||||||
|
sp.enable = 1
|
||||||
|
sp.dacInd = dacIndex.VTH1
|
||||||
|
sp.startOffset = 0
|
||||||
|
sp.stopOffset = 1000
|
||||||
|
sp.stepSize = 100
|
||||||
|
sp.dacSettleTime_ns = int(1e9)
|
||||||
|
|
||||||
|
|
||||||
|
# Send scan to detector
|
||||||
|
d = Mythen3()
|
||||||
|
d.setScan(sp)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -10,6 +10,8 @@ from slsdet.lookup import view, find
|
|||||||
import slsdet
|
import slsdet
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
d = Detector()
|
d = Detector()
|
||||||
e = Eiger()
|
e = Eiger()
|
||||||
c = Ctb()
|
c = Ctb()
|
||||||
|
@ -55,7 +55,7 @@ def generate_enum_string(enums):
|
|||||||
data.append('.export_values();\n\n')
|
data.append('.export_values();\n\n')
|
||||||
return ''.join(data)
|
return ''.join(data)
|
||||||
|
|
||||||
with open('../../slsSupportLib/include/sls_detector_defs.h') as f:
|
with open('../../slsSupportLib/include/sls/sls_detector_defs.h') as f:
|
||||||
data = f.read()
|
data = f.read()
|
||||||
|
|
||||||
data = remove_comments(data)
|
data = remove_comments(data)
|
||||||
|
@ -8,6 +8,8 @@ from .mythen3 import Mythen3
|
|||||||
from .gotthard2 import Gotthard2
|
from .gotthard2 import Gotthard2
|
||||||
from .gotthard import Gotthard
|
from .gotthard import Gotthard
|
||||||
from .moench import Moench
|
from .moench import Moench
|
||||||
|
from .pattern import Pattern, patternParameters
|
||||||
|
|
||||||
|
|
||||||
import _slsdet
|
import _slsdet
|
||||||
xy = _slsdet.xy
|
xy = _slsdet.xy
|
||||||
@ -18,3 +20,4 @@ from .enums import *
|
|||||||
|
|
||||||
IpAddr = _slsdet.IpAddr
|
IpAddr = _slsdet.IpAddr
|
||||||
MacAddr = _slsdet.MacAddr
|
MacAddr = _slsdet.MacAddr
|
||||||
|
scanParameters = _slsdet.scanParameters
|
@ -1696,6 +1696,8 @@ class Detector(CppDetectorApi):
|
|||||||
To change settings as well or set threshold without trimbits, use setThresholdEnergy.
|
To change settings as well or set threshold without trimbits, use setThresholdEnergy.
|
||||||
:setter: It loads trim files from settingspath.
|
:setter: It loads trim files from settingspath.
|
||||||
"""
|
"""
|
||||||
|
if self.type == detectorType.MYTHEN3:
|
||||||
|
return self.getAllThresholdEnergy()
|
||||||
return self.getThresholdEnergy()
|
return self.getThresholdEnergy()
|
||||||
|
|
||||||
@threshold.setter
|
@threshold.setter
|
||||||
|
53
python/slsdet/pattern.py
Normal file
53
python/slsdet/pattern.py
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
import _slsdet
|
||||||
|
|
||||||
|
from _slsdet import Pattern
|
||||||
|
|
||||||
|
|
||||||
|
class patternParameters(_slsdet.patternParameters):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self.view = self.numpy_view()
|
||||||
|
self.names = self.view.dtype.names
|
||||||
|
|
||||||
|
def __getattr__(self, name):
|
||||||
|
if name in self.names:
|
||||||
|
return self.view[name][0]
|
||||||
|
else:
|
||||||
|
raise KeyError(f"Key: {name} not found")
|
||||||
|
|
||||||
|
def __setattr__(self, name, value):
|
||||||
|
if name in ["view", "names"]:
|
||||||
|
self.__dict__[name] = value
|
||||||
|
elif name in self.names:
|
||||||
|
self.view[name] = value
|
||||||
|
else:
|
||||||
|
raise KeyError(f"Key: {name} not found")
|
||||||
|
|
||||||
|
# Provide custom dir for tab completion
|
||||||
|
def __dir__(self):
|
||||||
|
return self.names
|
||||||
|
|
||||||
|
|
||||||
|
class Pattern(_slsdet.Pattern):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self.view = self.data().numpy_view()
|
||||||
|
self.names = self.view.dtype.names
|
||||||
|
|
||||||
|
def __getattr__(self, name):
|
||||||
|
if name in self.names:
|
||||||
|
return self.view[name][0]
|
||||||
|
else:
|
||||||
|
raise KeyError(f"Key: {name} not found")
|
||||||
|
|
||||||
|
def __setattr__(self, name, value):
|
||||||
|
if name in ["view", "names"]:
|
||||||
|
self.__dict__[name] = value
|
||||||
|
elif name in self.names:
|
||||||
|
self.view[name] = value
|
||||||
|
else:
|
||||||
|
raise KeyError(f"Key: {name} not found")
|
||||||
|
|
||||||
|
# Provide custom dir for tab completion
|
||||||
|
def __dir__(self):
|
||||||
|
return self.names
|
@ -102,6 +102,34 @@ void init_det(py::module &m) {
|
|||||||
(void (Detector::*)(defs::detectorSettings, sls::Positions)) &
|
(void (Detector::*)(defs::detectorSettings, sls::Positions)) &
|
||||||
Detector::setSettings,
|
Detector::setSettings,
|
||||||
py::arg(), py::arg() = Positions{})
|
py::arg(), py::arg() = Positions{})
|
||||||
|
.def("getThresholdEnergy",
|
||||||
|
(Result<int>(Detector::*)(sls::Positions) const) &
|
||||||
|
Detector::getThresholdEnergy,
|
||||||
|
py::arg() = Positions{})
|
||||||
|
.def("getAllThresholdEnergy",
|
||||||
|
(Result<std::array<int, 3>>(Detector::*)(sls::Positions) const) &
|
||||||
|
Detector::getAllThresholdEnergy,
|
||||||
|
py::arg() = Positions{})
|
||||||
|
.def("setThresholdEnergy",
|
||||||
|
(void (Detector::*)(int, defs::detectorSettings, bool,
|
||||||
|
sls::Positions)) &
|
||||||
|
Detector::setThresholdEnergy,
|
||||||
|
py::arg(), py::arg() = defs::STANDARD, py::arg() = true,
|
||||||
|
py::arg() = Positions{})
|
||||||
|
.def("setThresholdEnergy",
|
||||||
|
(void (Detector::*)(std::array<int, 3>, defs::detectorSettings,
|
||||||
|
bool, sls::Positions)) &
|
||||||
|
Detector::setThresholdEnergy,
|
||||||
|
py::arg(), py::arg() = defs::STANDARD, py::arg() = true,
|
||||||
|
py::arg() = Positions{})
|
||||||
|
.def("getSettingsPath",
|
||||||
|
(Result<std::string>(Detector::*)(sls::Positions) const) &
|
||||||
|
Detector::getSettingsPath,
|
||||||
|
py::arg() = Positions{})
|
||||||
|
.def("setSettingsPath",
|
||||||
|
(void (Detector::*)(const std::string &, sls::Positions)) &
|
||||||
|
Detector::setSettingsPath,
|
||||||
|
py::arg(), py::arg() = Positions{})
|
||||||
.def("loadTrimbits",
|
.def("loadTrimbits",
|
||||||
(void (Detector::*)(const std::string &, sls::Positions)) &
|
(void (Detector::*)(const std::string &, sls::Positions)) &
|
||||||
Detector::loadTrimbits,
|
Detector::loadTrimbits,
|
||||||
@ -114,6 +142,14 @@ void init_det(py::module &m) {
|
|||||||
(void (Detector::*)(int, sls::Positions)) &
|
(void (Detector::*)(int, sls::Positions)) &
|
||||||
Detector::setAllTrimbits,
|
Detector::setAllTrimbits,
|
||||||
py::arg(), py::arg() = Positions{})
|
py::arg(), py::arg() = Positions{})
|
||||||
|
.def("getTrimEnergies",
|
||||||
|
(Result<std::vector<int>>(Detector::*)(sls::Positions) const) &
|
||||||
|
Detector::getTrimEnergies,
|
||||||
|
py::arg() = Positions{})
|
||||||
|
.def("setTrimEnergies",
|
||||||
|
(void (Detector::*)(std::vector<int>, sls::Positions)) &
|
||||||
|
Detector::setTrimEnergies,
|
||||||
|
py::arg(), py::arg() = Positions{})
|
||||||
.def("getGapPixelsinCallback",
|
.def("getGapPixelsinCallback",
|
||||||
(bool (Detector::*)() const) & Detector::getGapPixelsinCallback)
|
(bool (Detector::*)() const) & Detector::getGapPixelsinCallback)
|
||||||
.def("setGapPixelsinCallback",
|
.def("setGapPixelsinCallback",
|
||||||
@ -783,24 +819,6 @@ void init_det(py::module &m) {
|
|||||||
(void (Detector::*)(sls::ns, sls::Positions)) &
|
(void (Detector::*)(sls::ns, sls::Positions)) &
|
||||||
Detector::setSubDeadTime,
|
Detector::setSubDeadTime,
|
||||||
py::arg(), py::arg() = Positions{})
|
py::arg(), py::arg() = Positions{})
|
||||||
.def("getThresholdEnergy",
|
|
||||||
(Result<int>(Detector::*)(sls::Positions) const) &
|
|
||||||
Detector::getThresholdEnergy,
|
|
||||||
py::arg() = Positions{})
|
|
||||||
.def("setThresholdEnergy",
|
|
||||||
(void (Detector::*)(int, defs::detectorSettings, bool,
|
|
||||||
sls::Positions)) &
|
|
||||||
Detector::setThresholdEnergy,
|
|
||||||
py::arg(), py::arg() = defs::STANDARD, py::arg() = true,
|
|
||||||
py::arg() = Positions{})
|
|
||||||
.def("getSettingsPath",
|
|
||||||
(Result<std::string>(Detector::*)(sls::Positions) const) &
|
|
||||||
Detector::getSettingsPath,
|
|
||||||
py::arg() = Positions{})
|
|
||||||
.def("setSettingsPath",
|
|
||||||
(void (Detector::*)(const std::string &, sls::Positions)) &
|
|
||||||
Detector::setSettingsPath,
|
|
||||||
py::arg(), py::arg() = Positions{})
|
|
||||||
.def("getOverFlowMode",
|
.def("getOverFlowMode",
|
||||||
(Result<bool>(Detector::*)(sls::Positions) const) &
|
(Result<bool>(Detector::*)(sls::Positions) const) &
|
||||||
Detector::getOverFlowMode,
|
Detector::getOverFlowMode,
|
||||||
@ -816,14 +834,6 @@ void init_det(py::module &m) {
|
|||||||
.def("setBottom",
|
.def("setBottom",
|
||||||
(void (Detector::*)(bool, sls::Positions)) & Detector::setBottom,
|
(void (Detector::*)(bool, sls::Positions)) & Detector::setBottom,
|
||||||
py::arg(), py::arg() = Positions{})
|
py::arg(), py::arg() = Positions{})
|
||||||
.def("getTrimEnergies",
|
|
||||||
(Result<std::vector<int>>(Detector::*)(sls::Positions) const) &
|
|
||||||
Detector::getTrimEnergies,
|
|
||||||
py::arg() = Positions{})
|
|
||||||
.def("setTrimEnergies",
|
|
||||||
(void (Detector::*)(std::vector<int>, sls::Positions)) &
|
|
||||||
Detector::setTrimEnergies,
|
|
||||||
py::arg(), py::arg() = Positions{})
|
|
||||||
.def("getRateCorrection",
|
.def("getRateCorrection",
|
||||||
(Result<sls::ns>(Detector::*)(sls::Positions) const) &
|
(Result<sls::ns>(Detector::*)(sls::Positions) const) &
|
||||||
Detector::getRateCorrection,
|
Detector::getRateCorrection,
|
||||||
@ -1271,9 +1281,17 @@ void init_det(py::module &m) {
|
|||||||
(void (Detector::*)(const std::string &, sls::Positions)) &
|
(void (Detector::*)(const std::string &, sls::Positions)) &
|
||||||
Detector::setPattern,
|
Detector::setPattern,
|
||||||
py::arg(), py::arg() = Positions{})
|
py::arg(), py::arg() = Positions{})
|
||||||
|
.def("setPattern",
|
||||||
|
(void (Detector::*)(const sls::Pattern &, sls::Positions)) &
|
||||||
|
Detector::setPattern,
|
||||||
|
py::arg(), py::arg() = Positions{})
|
||||||
.def("savePattern",
|
.def("savePattern",
|
||||||
(void (Detector::*)(const std::string &)) & Detector::savePattern,
|
(void (Detector::*)(const std::string &)) & Detector::savePattern,
|
||||||
py::arg())
|
py::arg())
|
||||||
|
.def("loadDefaultPattern",
|
||||||
|
(void (Detector::*)(sls::Positions)) &
|
||||||
|
Detector::loadDefaultPattern,
|
||||||
|
py::arg() = Positions{})
|
||||||
.def("getPatternIOControl",
|
.def("getPatternIOControl",
|
||||||
(Result<uint64_t>(Detector::*)(sls::Positions) const) &
|
(Result<uint64_t>(Detector::*)(sls::Positions) const) &
|
||||||
Detector::getPatternIOControl,
|
Detector::getPatternIOControl,
|
||||||
|
@ -2,10 +2,12 @@
|
|||||||
* warning */
|
* warning */
|
||||||
|
|
||||||
#include <pybind11/chrono.h>
|
#include <pybind11/chrono.h>
|
||||||
|
#include <pybind11/numpy.h>
|
||||||
#include <pybind11/operators.h>
|
#include <pybind11/operators.h>
|
||||||
#include <pybind11/pybind11.h>
|
#include <pybind11/pybind11.h>
|
||||||
#include <pybind11/stl.h>
|
#include <pybind11/stl.h>
|
||||||
|
|
||||||
|
#include "sls/Pattern.h"
|
||||||
#include "sls/sls_detector_defs.h"
|
#include "sls/sls_detector_defs.h"
|
||||||
namespace py = pybind11;
|
namespace py = pybind11;
|
||||||
void init_enums(py::module &m) {
|
void init_enums(py::module &m) {
|
||||||
|
@ -1,18 +1,19 @@
|
|||||||
#include <pybind11/chrono.h>
|
#include <pybind11/chrono.h>
|
||||||
|
#include <pybind11/numpy.h>
|
||||||
#include <pybind11/operators.h>
|
#include <pybind11/operators.h>
|
||||||
#include <pybind11/pybind11.h>
|
#include <pybind11/pybind11.h>
|
||||||
#include <pybind11/stl.h>
|
#include <pybind11/stl.h>
|
||||||
|
|
||||||
#include "sls/sls_detector_defs.h"
|
#include "sls/sls_detector_defs.h"
|
||||||
|
#include "sls/Pattern.h"
|
||||||
namespace py = pybind11;
|
namespace py = pybind11;
|
||||||
void init_enums(py::module &m) {
|
void init_enums(py::module &m) {
|
||||||
py::class_<slsDetectorDefs> Defs(m, "slsDetectorDefs");
|
py::class_<slsDetectorDefs> Defs(m, "slsDetectorDefs");
|
||||||
py::class_<slsDetectorDefs::xy> xy(m, "xy");
|
py::class_<slsDetectorDefs::xy> xy(m, "xy");
|
||||||
xy.def(py::init());
|
xy.def(py::init());
|
||||||
xy.def(py::init<int,int>());
|
xy.def(py::init<int, int>());
|
||||||
xy.def_readwrite("x", &slsDetectorDefs::xy::x);
|
xy.def_readwrite("x", &slsDetectorDefs::xy::x);
|
||||||
xy.def_readwrite("y", &slsDetectorDefs::xy::y);
|
xy.def_readwrite("y", &slsDetectorDefs::xy::y);
|
||||||
|
|
||||||
[[ENUMS]]
|
[[ENUMS]]
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,8 @@ void init_enums(py::module &);
|
|||||||
void init_experimental(py::module &);
|
void init_experimental(py::module &);
|
||||||
void init_det(py::module &);
|
void init_det(py::module &);
|
||||||
void init_network(py::module &);
|
void init_network(py::module &);
|
||||||
|
void init_pattern(py::module &);
|
||||||
|
void init_scan(py::module &);
|
||||||
PYBIND11_MODULE(_slsdet, m) {
|
PYBIND11_MODULE(_slsdet, m) {
|
||||||
m.doc() = R"pbdoc(
|
m.doc() = R"pbdoc(
|
||||||
C/C++ API
|
C/C++ API
|
||||||
@ -33,6 +35,8 @@ PYBIND11_MODULE(_slsdet, m) {
|
|||||||
init_enums(m);
|
init_enums(m);
|
||||||
init_det(m);
|
init_det(m);
|
||||||
init_network(m);
|
init_network(m);
|
||||||
|
init_pattern(m);
|
||||||
|
init_scan(m);
|
||||||
// init_experimental(m);
|
// init_experimental(m);
|
||||||
|
|
||||||
|
|
||||||
|
29
python/src/pattern.cpp
Normal file
29
python/src/pattern.cpp
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#include <pybind11/chrono.h>
|
||||||
|
#include <pybind11/numpy.h>
|
||||||
|
#include <pybind11/operators.h>
|
||||||
|
#include <pybind11/pybind11.h>
|
||||||
|
#include <pybind11/stl.h>
|
||||||
|
|
||||||
|
#include "sls/Pattern.h"
|
||||||
|
#include "sls/sls_detector_defs.h"
|
||||||
|
namespace py = pybind11;
|
||||||
|
void init_pattern(py::module &m) {
|
||||||
|
|
||||||
|
using pat = sls::patternParameters;
|
||||||
|
py::class_<pat> patternParameters(m, "patternParameters");
|
||||||
|
|
||||||
|
PYBIND11_NUMPY_DTYPE(pat, word, ioctrl, limits, loop, nloop, wait,
|
||||||
|
waittime);
|
||||||
|
|
||||||
|
patternParameters.def(py::init());
|
||||||
|
patternParameters.def("numpy_view", [](py::object &obj) {
|
||||||
|
pat &o = obj.cast<pat &>();
|
||||||
|
return py::array_t<pat>(1, &o, obj);
|
||||||
|
});
|
||||||
|
|
||||||
|
py::class_<sls::Pattern> Pattern(m, "Pattern");
|
||||||
|
Pattern.def(py::init());
|
||||||
|
Pattern.def("load", &sls::Pattern::load);
|
||||||
|
Pattern.def("data", (pat * (sls::Pattern::*)()) & sls::Pattern::data,
|
||||||
|
py::return_value_policy::reference);
|
||||||
|
}
|
39
python/src/scan.cpp
Normal file
39
python/src/scan.cpp
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#include <pybind11/chrono.h>
|
||||||
|
#include <pybind11/numpy.h>
|
||||||
|
#include <pybind11/operators.h>
|
||||||
|
#include <pybind11/pybind11.h>
|
||||||
|
#include <pybind11/stl.h>
|
||||||
|
#include <sstream>
|
||||||
|
#include "sls/sls_detector_defs.h"
|
||||||
|
namespace py = pybind11;
|
||||||
|
void init_scan(py::module &m) {
|
||||||
|
|
||||||
|
using sp = slsDetectorDefs::scanParameters;
|
||||||
|
py::class_<sp> scanParameters(m, "scanParameters");
|
||||||
|
|
||||||
|
scanParameters.def(py::init());
|
||||||
|
|
||||||
|
scanParameters.def(py::init<slsDetectorDefs::dacIndex, int, int, int>());
|
||||||
|
scanParameters.def(py::init<slsDetectorDefs::dacIndex, int, int, int, std::chrono::nanoseconds>());
|
||||||
|
scanParameters.def_readwrite("enable", &sp::enable);
|
||||||
|
scanParameters.def_readwrite("dacInd", &sp::dacInd);
|
||||||
|
scanParameters.def_readwrite("startOffset", &sp::startOffset);
|
||||||
|
scanParameters.def_readwrite("stopOffset", &sp::stopOffset);
|
||||||
|
scanParameters.def_readwrite("stepSize", &sp::stepSize);
|
||||||
|
scanParameters.def_readwrite("dacSettleTime_ns", &sp::dacSettleTime_ns);
|
||||||
|
scanParameters.def("__repr__", [](const sp &a){
|
||||||
|
std::ostringstream oss;
|
||||||
|
auto indent = " ";
|
||||||
|
oss << "<scanParameters>\n";
|
||||||
|
oss << indent << "enable: " << a.enable << '\n';
|
||||||
|
oss << indent << "dacInd: " << a.dacInd << '\n';
|
||||||
|
oss << indent << "startOffset: " << a.startOffset << '\n';
|
||||||
|
oss << indent << "stopOffset: " << a.stopOffset << '\n';
|
||||||
|
oss << indent << "stepSize: " << a.stepSize << '\n';
|
||||||
|
oss << indent << "dacSettleTime_ns: " << a.dacSettleTime_ns;
|
||||||
|
return oss.str();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
1
serverBin/ctbDetectorServer_developer
Symbolic link
1
serverBin/ctbDetectorServer_developer
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer
|
@ -1 +0,0 @@
|
|||||||
../slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServerv5.0.0
|
|
1
serverBin/eigerDetectorServer_developer
Symbolic link
1
serverBin/eigerDetectorServer_developer
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer
|
@ -1 +0,0 @@
|
|||||||
../slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServerv5.0.0
|
|
1
serverBin/gotthard2DetectorServer_developer
Symbolic link
1
serverBin/gotthard2DetectorServer_developer
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer
|
@ -1 +0,0 @@
|
|||||||
../slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServerv5.0.0
|
|
1
serverBin/gotthardDetectorServer_developer
Symbolic link
1
serverBin/gotthardDetectorServer_developer
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer
|
@ -1 +0,0 @@
|
|||||||
../slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServerv5.0.0
|
|
1
serverBin/jungfrauDetectorServer_developer
Symbolic link
1
serverBin/jungfrauDetectorServer_developer
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer
|
@ -1 +0,0 @@
|
|||||||
../slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServerv5.0.0
|
|
1
serverBin/moenchDetectorServer_developer
Symbolic link
1
serverBin/moenchDetectorServer_developer
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer
|
@ -1 +0,0 @@
|
|||||||
../slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServerv5.0.0
|
|
1
serverBin/mythen3DetectorServer_developer
Symbolic link
1
serverBin/mythen3DetectorServer_developer
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer
|
@ -1 +0,0 @@
|
|||||||
../slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServerv5.0.0
|
|
@ -1 +0,0 @@
|
|||||||
800 10
|
|
@ -1 +0,0 @@
|
|||||||
829 9.3
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1 +0,0 @@
|
|||||||
800 10
|
|
@ -1 +0,0 @@
|
|||||||
804 15.0
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1 +0,0 @@
|
|||||||
800 10
|
|
File diff suppressed because it is too large
Load Diff
@ -1 +0,0 @@
|
|||||||
817 11.6
|
|
File diff suppressed because it is too large
Load Diff
BIN
settingsdir/mythen3/fast/11200eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/fast/11200eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/fast/11200eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/fast/11200eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/fast/4500eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/fast/4500eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/fast/4500eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/fast/4500eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/fast/5400eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/fast/5400eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/fast/5400eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/fast/5400eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/fast/6400eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/fast/6400eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/fast/6400eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/fast/6400eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/fast/8000eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/fast/8000eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/fast/8000eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/fast/8000eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/fast/9900eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/fast/9900eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/fast/9900eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/fast/9900eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/highgain/11200eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/highgain/11200eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/highgain/11200eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/highgain/11200eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/highgain/4500eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/highgain/4500eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/highgain/4500eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/highgain/4500eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/highgain/5400eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/highgain/5400eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/highgain/5400eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/highgain/5400eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/highgain/6400eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/highgain/6400eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/highgain/6400eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/highgain/6400eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/highgain/8000eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/highgain/8000eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/highgain/8000eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/highgain/8000eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/highgain/9900eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/highgain/9900eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/highgain/9900eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/highgain/9900eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/standard/11200eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/standard/11200eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/standard/11200eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/standard/11200eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/standard/4500eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/standard/4500eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/standard/4500eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/standard/4500eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/standard/5400eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/standard/5400eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/standard/5400eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/standard/5400eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/standard/6400eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/standard/6400eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/standard/6400eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/standard/6400eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/standard/8000eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/standard/8000eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/standard/8000eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/standard/8000eV/trim.snxxxx
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/standard/9900eV/trim.sn0000
Normal file
BIN
settingsdir/mythen3/standard/9900eV/trim.sn0000
Normal file
Binary file not shown.
BIN
settingsdir/mythen3/standard/9900eV/trim.snxxxx
Normal file
BIN
settingsdir/mythen3/standard/9900eV/trim.snxxxx
Normal file
Binary file not shown.
@ -32,17 +32,23 @@
|
|||||||
<string>Form</string>
|
<string>Form</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_2">
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
<item row="1" column="2">
|
<item row="1" column="4">
|
||||||
<widget class="QSpinBox" name="spinThreshold">
|
<widget class="QSpinBox" name="spinThreshold3">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>0</width>
|
<width>140</width>
|
||||||
<height>25</height>
|
<height>25</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>140</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="keyboardTracking">
|
<property name="keyboardTracking">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
@ -63,10 +69,69 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="1" column="2">
|
||||||
<spacer name="horizontalSpacer">
|
<widget class="QSpinBox" name="spinThreshold">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>140</width>
|
||||||
|
<height>25</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>140</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="keyboardTracking">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="suffix">
|
||||||
|
<string> eV</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>-100000</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>100000</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>100</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>-1</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="lblDynamicRange">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>110</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>110</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Dynamic Range:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="2">
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeType">
|
<property name="sizeType">
|
||||||
<enum>QSizePolicy::Fixed</enum>
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
@ -74,7 +139,7 @@
|
|||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>20</width>
|
<width>20</width>
|
||||||
<height>20</height>
|
<height>190</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
@ -86,10 +151,16 @@
|
|||||||
</property>
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>0</width>
|
<width>140</width>
|
||||||
<height>25</height>
|
<height>25</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>140</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>1.67772e+07</string>
|
<string>1.67772e+07</string>
|
||||||
@ -112,21 +183,102 @@
|
|||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="3">
|
<item row="1" column="6">
|
||||||
<spacer name="horizontalSpacer_2">
|
<widget class="QPushButton" name="btnSetThreshold">
|
||||||
<property name="orientation">
|
<property name="enabled">
|
||||||
<enum>Qt::Horizontal</enum>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeType">
|
<property name="sizePolicy">
|
||||||
<enum>QSizePolicy::Expanding</enum>
|
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>20</width>
|
<width>100</width>
|
||||||
<height>20</height>
|
<height>30</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>30</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="palette">
|
||||||
|
<palette>
|
||||||
|
<active>
|
||||||
|
<colorrole role="Shadow">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>20</red>
|
||||||
|
<green>20</green>
|
||||||
|
<blue>20</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</active>
|
||||||
|
<inactive>
|
||||||
|
<colorrole role="Shadow">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>20</red>
|
||||||
|
<green>20</green>
|
||||||
|
<blue>20</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</inactive>
|
||||||
|
<disabled>
|
||||||
|
<colorrole role="Shadow">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>20</red>
|
||||||
|
<green>20</green>
|
||||||
|
<blue>20</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</disabled>
|
||||||
|
</palette>
|
||||||
|
</property>
|
||||||
|
<property name="focusPolicy">
|
||||||
|
<enum>Qt::TabFocus</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Set</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../include/icons.qrc">
|
||||||
|
<normaloff>:/icons/images/rightArrow.png</normaloff>:/icons/images/rightArrow.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="flat">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="lblSettings">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>110</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>110</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Settings:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="2">
|
<item row="0" column="2">
|
||||||
<widget class="QComboBox" name="comboSettings">
|
<widget class="QComboBox" name="comboSettings">
|
||||||
@ -141,10 +293,16 @@
|
|||||||
</property>
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>0</width>
|
<width>140</width>
|
||||||
<height>25</height>
|
<height>25</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>140</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Settings of the detector.
|
<string>Settings of the detector.
|
||||||
#settings#</string>
|
#settings#</string>
|
||||||
@ -266,40 +424,10 @@
|
|||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="0" column="1">
|
||||||
<widget class="QLabel" name="lblThreshold">
|
<spacer name="horizontalSpacer">
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Threshold:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="lblDynamicRange">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Dynamic Range:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="lblSettings">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Settings:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="2">
|
|
||||||
<spacer name="verticalSpacer">
|
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeType">
|
<property name="sizeType">
|
||||||
<enum>QSizePolicy::Fixed</enum>
|
<enum>QSizePolicy::Fixed</enum>
|
||||||
@ -307,7 +435,82 @@
|
|||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>20</width>
|
<width>20</width>
|
||||||
<height>190</height>
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="lblThreshold">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>110</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>110</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Threshold:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="3">
|
||||||
|
<widget class="QSpinBox" name="spinThreshold2">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>140</width>
|
||||||
|
<height>25</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>140</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="keyboardTracking">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="suffix">
|
||||||
|
<string> eV</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>-100000</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>100000</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>100</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>-1</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="7">
|
||||||
|
<spacer name="horizontalSpacer_2">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Expanding</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>20</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
@ -317,6 +520,9 @@
|
|||||||
<tabstops>
|
<tabstops>
|
||||||
<tabstop>comboSettings</tabstop>
|
<tabstop>comboSettings</tabstop>
|
||||||
<tabstop>spinThreshold</tabstop>
|
<tabstop>spinThreshold</tabstop>
|
||||||
|
<tabstop>spinThreshold2</tabstop>
|
||||||
|
<tabstop>spinThreshold3</tabstop>
|
||||||
|
<tabstop>btnSetThreshold</tabstop>
|
||||||
<tabstop>comboDynamicRange</tabstop>
|
<tabstop>comboDynamicRange</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources>
|
<resources>
|
||||||
|
@ -14,6 +14,7 @@ class qTabSettings : public QWidget, private Ui::TabSettingsObject {
|
|||||||
void SetSettings(int index);
|
void SetSettings(int index);
|
||||||
void SetDynamicRange(int index);
|
void SetDynamicRange(int index);
|
||||||
void SetThresholdEnergy(int index);
|
void SetThresholdEnergy(int index);
|
||||||
|
void SetThresholdEnergies();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void SetupWidgetWindow();
|
void SetupWidgetWindow();
|
||||||
@ -23,6 +24,7 @@ class qTabSettings : public QWidget, private Ui::TabSettingsObject {
|
|||||||
void GetSettings();
|
void GetSettings();
|
||||||
void GetDynamicRange();
|
void GetDynamicRange();
|
||||||
void GetThresholdEnergy();
|
void GetThresholdEnergy();
|
||||||
|
void GetThresholdEnergies();
|
||||||
|
|
||||||
sls::Detector *det;
|
sls::Detector *det;
|
||||||
enum {
|
enum {
|
||||||
|
@ -14,14 +14,24 @@ qTabSettings::~qTabSettings() {}
|
|||||||
|
|
||||||
void qTabSettings::SetupWidgetWindow() {
|
void qTabSettings::SetupWidgetWindow() {
|
||||||
|
|
||||||
|
spinThreshold2->hide();
|
||||||
|
spinThreshold3->hide();
|
||||||
|
btnSetThreshold->hide();
|
||||||
|
btnSetThreshold->setEnabled(false);
|
||||||
// enabling according to det type
|
// enabling according to det type
|
||||||
slsDetectorDefs::detectorType detType = det->getDetectorType().squash();
|
slsDetectorDefs::detectorType detType = det->getDetectorType().squash();
|
||||||
if (detType == slsDetectorDefs::MYTHEN3) {
|
if (detType == slsDetectorDefs::MYTHEN3) {
|
||||||
lblSettings->setEnabled(false);
|
|
||||||
comboSettings->setEnabled(false);
|
|
||||||
|
|
||||||
lblDynamicRange->setEnabled(true);
|
lblDynamicRange->setEnabled(true);
|
||||||
comboDynamicRange->setEnabled(true);
|
comboDynamicRange->setEnabled(true);
|
||||||
|
|
||||||
|
spinThreshold2->show();
|
||||||
|
spinThreshold3->show();
|
||||||
|
lblThreshold->setEnabled(true);
|
||||||
|
spinThreshold->setEnabled(true);
|
||||||
|
spinThreshold2->setEnabled(true);
|
||||||
|
spinThreshold3->setEnabled(true);
|
||||||
|
btnSetThreshold->setEnabled(true);
|
||||||
|
btnSetThreshold->show();
|
||||||
// disable dr
|
// disable dr
|
||||||
QStandardItemModel *model =
|
QStandardItemModel *model =
|
||||||
qobject_cast<QStandardItemModel *>(comboDynamicRange->model());
|
qobject_cast<QStandardItemModel *>(comboDynamicRange->model());
|
||||||
@ -34,7 +44,6 @@ void qTabSettings::SetupWidgetWindow() {
|
|||||||
item = model->itemFromIndex(index);
|
item = model->itemFromIndex(index);
|
||||||
item->setEnabled(false);
|
item->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (detType == slsDetectorDefs::EIGER) {
|
} else if (detType == slsDetectorDefs::EIGER) {
|
||||||
lblDynamicRange->setEnabled(true);
|
lblDynamicRange->setEnabled(true);
|
||||||
comboDynamicRange->setEnabled(true);
|
comboDynamicRange->setEnabled(true);
|
||||||
@ -48,6 +57,10 @@ void qTabSettings::SetupWidgetWindow() {
|
|||||||
SetupDetectorSettings();
|
SetupDetectorSettings();
|
||||||
}
|
}
|
||||||
spinThreshold->setValue(-1);
|
spinThreshold->setValue(-1);
|
||||||
|
if (detType == slsDetectorDefs::MYTHEN3) {
|
||||||
|
spinThreshold2->setValue(-1);
|
||||||
|
spinThreshold3->setValue(-1);
|
||||||
|
}
|
||||||
Initialization();
|
Initialization();
|
||||||
// default for the disabled
|
// default for the disabled
|
||||||
GetDynamicRange();
|
GetDynamicRange();
|
||||||
@ -104,6 +117,11 @@ void qTabSettings::SetupDetectorSettings() {
|
|||||||
item[(int)G4_HIGHGAIN]->setEnabled(true);
|
item[(int)G4_HIGHGAIN]->setEnabled(true);
|
||||||
item[(int)G4_LOWGAIN]->setEnabled(true);
|
item[(int)G4_LOWGAIN]->setEnabled(true);
|
||||||
break;
|
break;
|
||||||
|
case slsDetectorDefs::MYTHEN3:
|
||||||
|
item[(int)STANDARD]->setEnabled(true);
|
||||||
|
item[(int)FAST]->setEnabled(true);
|
||||||
|
item[(int)HIGHGAIN]->setEnabled(true);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
LOG(logDEBUG) << "Unknown detector type. Exiting GUI.";
|
LOG(logDEBUG) << "Unknown detector type. Exiting GUI.";
|
||||||
qDefs::Message(qDefs::CRITICAL,
|
qDefs::Message(qDefs::CRITICAL,
|
||||||
@ -126,7 +144,13 @@ void qTabSettings::Initialization() {
|
|||||||
SLOT(SetDynamicRange(int)));
|
SLOT(SetDynamicRange(int)));
|
||||||
|
|
||||||
// Threshold
|
// Threshold
|
||||||
if (spinThreshold->isEnabled())
|
// m3
|
||||||
|
if (btnSetThreshold->isEnabled()) {
|
||||||
|
connect(btnSetThreshold, SIGNAL(clicked()), this,
|
||||||
|
SLOT(SetThresholdEnergies()));
|
||||||
|
}
|
||||||
|
// eiger
|
||||||
|
else if (spinThreshold->isEnabled())
|
||||||
connect(spinThreshold, SIGNAL(valueChanged(int)), this,
|
connect(spinThreshold, SIGNAL(valueChanged(int)), this,
|
||||||
SLOT(SetThresholdEnergy(int)));
|
SLOT(SetThresholdEnergy(int)));
|
||||||
}
|
}
|
||||||
@ -169,7 +193,7 @@ void qTabSettings::SetSettings(int index) {
|
|||||||
CATCH_HANDLE("Could not set settings.", "qTabSettings::SetSettings", this,
|
CATCH_HANDLE("Could not set settings.", "qTabSettings::SetSettings", this,
|
||||||
&qTabSettings::GetSettings)
|
&qTabSettings::GetSettings)
|
||||||
// threshold
|
// threshold
|
||||||
if (spinThreshold->isEnabled()) {
|
if (det->getDetectorType().squash() == slsDetectorDefs::EIGER) {
|
||||||
SetThresholdEnergy(spinThreshold->value());
|
SetThresholdEnergy(spinThreshold->value());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -233,6 +257,23 @@ void qTabSettings::SetDynamicRange(int index) {
|
|||||||
&qTabSettings::GetDynamicRange)
|
&qTabSettings::GetDynamicRange)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void qTabSettings::GetThresholdEnergies() {
|
||||||
|
LOG(logDEBUG) << "Getting theshold energies";
|
||||||
|
disconnect(btnSetThreshold, SIGNAL(clicked()), this,
|
||||||
|
SLOT(SetThresholdEnergies()));
|
||||||
|
try {
|
||||||
|
auto retval = det->getAllThresholdEnergy().tsquash(
|
||||||
|
"Inconsistent threhsold energies for all detectors.");
|
||||||
|
spinThreshold->setValue(retval[0]);
|
||||||
|
spinThreshold2->setValue(retval[1]);
|
||||||
|
spinThreshold3->setValue(retval[2]);
|
||||||
|
}
|
||||||
|
CATCH_DISPLAY("Could not get threshold energy.",
|
||||||
|
"qTabDataOutput::GetThresholdEnergies")
|
||||||
|
connect(btnSetThreshold, SIGNAL(clicked()), this,
|
||||||
|
SLOT(SetThresholdEnergies()));
|
||||||
|
}
|
||||||
|
|
||||||
void qTabSettings::GetThresholdEnergy() {
|
void qTabSettings::GetThresholdEnergy() {
|
||||||
LOG(logDEBUG) << "Getting theshold energy";
|
LOG(logDEBUG) << "Getting theshold energy";
|
||||||
disconnect(spinThreshold, SIGNAL(valueChanged(int)), this,
|
disconnect(spinThreshold, SIGNAL(valueChanged(int)), this,
|
||||||
@ -248,6 +289,23 @@ void qTabSettings::GetThresholdEnergy() {
|
|||||||
SLOT(SetThresholdEnergy(int)));
|
SLOT(SetThresholdEnergy(int)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void qTabSettings::SetThresholdEnergies() {
|
||||||
|
std::array<int, 3> eV = {spinThreshold->value(), spinThreshold2->value(),
|
||||||
|
spinThreshold3->value()};
|
||||||
|
slsDetectorDefs::detectorSettings sett =
|
||||||
|
static_cast<slsDetectorDefs::detectorSettings>(
|
||||||
|
comboSettings->currentIndex());
|
||||||
|
LOG(logINFO) << "Setting Threshold Energies to " << sls::ToString(eV)
|
||||||
|
<< " (eV)";
|
||||||
|
try {
|
||||||
|
det->setThresholdEnergy(eV, sett);
|
||||||
|
}
|
||||||
|
CATCH_DISPLAY("Could not get threshold energies.",
|
||||||
|
"qTabSettings::SetThresholdEnergies")
|
||||||
|
// set the right value anyway (due to tolerance)
|
||||||
|
GetThresholdEnergies();
|
||||||
|
}
|
||||||
|
|
||||||
void qTabSettings::SetThresholdEnergy(int index) {
|
void qTabSettings::SetThresholdEnergy(int index) {
|
||||||
LOG(logINFO) << "Setting Threshold Energy to " << index << " eV";
|
LOG(logINFO) << "Setting Threshold Energy to " << index << " eV";
|
||||||
try {
|
try {
|
||||||
@ -270,8 +328,14 @@ void qTabSettings::Refresh() {
|
|||||||
GetDynamicRange();
|
GetDynamicRange();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (spinThreshold->isEnabled())
|
// m3
|
||||||
|
if (btnSetThreshold->isEnabled())
|
||||||
|
GetThresholdEnergies();
|
||||||
|
// eiger
|
||||||
|
else if (spinThreshold->isEnabled()) {
|
||||||
|
LOG(logINFOBLUE) << "calling it!";
|
||||||
GetThresholdEnergy();
|
GetThresholdEnergy();
|
||||||
|
}
|
||||||
|
|
||||||
LOG(logDEBUG) << "**Updated Settings Tab";
|
LOG(logDEBUG) << "**Updated Settings Tab";
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ add_executable(ctbDetectorServer_virtual
|
|||||||
include_directories(
|
include_directories(
|
||||||
../slsDetectorServer/include
|
../slsDetectorServer/include
|
||||||
../../slsSupportLib/include
|
../../slsSupportLib/include
|
||||||
|
../../slsDetectorSoftware/include/sls/
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(ctbDetectorServer_virtual
|
target_include_directories(ctbDetectorServer_virtual
|
||||||
|
@ -2,10 +2,11 @@ current_dir = $(shell pwd)
|
|||||||
main_inc = ../slsDetectorServer/include/
|
main_inc = ../slsDetectorServer/include/
|
||||||
main_src = ../slsDetectorServer/src/
|
main_src = ../slsDetectorServer/src/
|
||||||
support_lib = ../../slsSupportLib/include/
|
support_lib = ../../slsSupportLib/include/
|
||||||
|
det_lib = ../../slsDetectorSoftware/include/sls/
|
||||||
|
|
||||||
CROSS = bfin-uclinux-
|
CROSS = bfin-uclinux-
|
||||||
CC = $(CROSS)gcc
|
CC = $(CROSS)gcc
|
||||||
CFLAGS += -Wall -std=gnu99 -DCHIPTESTBOARDD -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(current_dir) #-DDEBUG1 #-DVERBOSEI #-DVERBOSE
|
CFLAGS += -Wall -std=gnu99 -DCHIPTESTBOARDD -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(det_lib) -I$(current_dir) #-DDEBUG1 #-DVERBOSEI #-DVERBOSE
|
||||||
LDLIBS += -lm -lrt -pthread
|
LDLIBS += -lm -lrt -pthread
|
||||||
PROGS = ctbDetectorServer
|
PROGS = ctbDetectorServer
|
||||||
DESTDIR ?= bin
|
DESTDIR ?= bin
|
||||||
|
BIN
slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer
Executable file
BIN
slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer
Executable file
Binary file not shown.
Binary file not shown.
BIN
slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer
Executable file
BIN
slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer
Executable file
Binary file not shown.
Binary file not shown.
@ -669,7 +669,9 @@ void allocateDetectorStructureMemory() {
|
|||||||
(detectorModules)->reg = 0;
|
(detectorModules)->reg = 0;
|
||||||
(detectorModules)->iodelay = 0;
|
(detectorModules)->iodelay = 0;
|
||||||
(detectorModules)->tau = 0;
|
(detectorModules)->tau = 0;
|
||||||
(detectorModules)->eV = 0;
|
(detectorModules)->eV[0] = 0;
|
||||||
|
(detectorModules)->eV[1] = 0;
|
||||||
|
(detectorModules)->eV[2] = 0;
|
||||||
thisSettings = UNINITIALIZED;
|
thisSettings = UNINITIALIZED;
|
||||||
|
|
||||||
// if trimval requested, should return -1 to acknowledge unknown
|
// if trimval requested, should return -1 to acknowledge unknown
|
||||||
@ -1090,8 +1092,8 @@ int setModule(sls_detector_module myMod, char *mess) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// threshold
|
// threshold
|
||||||
if (myMod.eV >= 0)
|
if (myMod.eV[0] >= 0)
|
||||||
setThresholdEnergy(myMod.eV);
|
setThresholdEnergy(myMod.eV[0]);
|
||||||
else {
|
else {
|
||||||
// (loading a random trim file) (dont return fail)
|
// (loading a random trim file) (dont return fail)
|
||||||
setSettings(UNDEFINED);
|
setSettings(UNDEFINED);
|
||||||
@ -2554,8 +2556,8 @@ int copyModule(sls_detector_module *destMod, sls_detector_module *srcMod) {
|
|||||||
destMod->iodelay = srcMod->iodelay;
|
destMod->iodelay = srcMod->iodelay;
|
||||||
if (srcMod->tau >= 0)
|
if (srcMod->tau >= 0)
|
||||||
destMod->tau = srcMod->tau;
|
destMod->tau = srcMod->tau;
|
||||||
if (srcMod->eV >= 0)
|
if (srcMod->eV[0] >= 0)
|
||||||
destMod->eV = srcMod->eV;
|
destMod->eV[0] = srcMod->eV[0];
|
||||||
LOG(logDEBUG1, ("Copying register %x (%x)\n", destMod->reg, srcMod->reg));
|
LOG(logDEBUG1, ("Copying register %x (%x)\n", destMod->reg, srcMod->reg));
|
||||||
|
|
||||||
if (destMod->nchan != 0) {
|
if (destMod->nchan != 0) {
|
||||||
|
BIN
slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer
Executable file
BIN
slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer
Executable file
Binary file not shown.
Binary file not shown.
@ -409,9 +409,9 @@ void setupDetector() {
|
|||||||
|
|
||||||
// pll defines
|
// pll defines
|
||||||
ALTERA_PLL_C10_SetDefines(REG_OFFSET, BASE_READOUT_PLL, BASE_SYSTEM_PLL,
|
ALTERA_PLL_C10_SetDefines(REG_OFFSET, BASE_READOUT_PLL, BASE_SYSTEM_PLL,
|
||||||
PLL_RESET_REG, PLL_RESET_REG,
|
PLL_RESET_REG, PLL_RESET_READOUT_MSK,
|
||||||
PLL_RESET_READOUT_MSK, PLL_RESET_SYSTEM_MSK,
|
PLL_RESET_SYSTEM_MSK, READOUT_PLL_VCO_FREQ_HZ,
|
||||||
READOUT_PLL_VCO_FREQ_HZ, SYSTEM_PLL_VCO_FREQ_HZ);
|
SYSTEM_PLL_VCO_FREQ_HZ);
|
||||||
ALTERA_PLL_C10_ResetPLL(READOUT_PLL);
|
ALTERA_PLL_C10_ResetPLL(READOUT_PLL);
|
||||||
ALTERA_PLL_C10_ResetPLL(SYSTEM_PLL);
|
ALTERA_PLL_C10_ResetPLL(SYSTEM_PLL);
|
||||||
// hv
|
// hv
|
||||||
|
BIN
slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer
Executable file
BIN
slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer
Executable file
Binary file not shown.
Binary file not shown.
BIN
slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer
Executable file
BIN
slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer
Executable file
Binary file not shown.
Binary file not shown.
@ -20,6 +20,7 @@ add_executable(moenchDetectorServer_virtual
|
|||||||
include_directories(
|
include_directories(
|
||||||
../slsDetectorServer/include
|
../slsDetectorServer/include
|
||||||
../../slsSupportLib/include
|
../../slsSupportLib/include
|
||||||
|
../../slsDetectorSoftware/include/sls/
|
||||||
)
|
)
|
||||||
|
|
||||||
target_include_directories(moenchDetectorServer_virtual
|
target_include_directories(moenchDetectorServer_virtual
|
||||||
|
@ -2,10 +2,11 @@ current_dir = $(shell pwd)
|
|||||||
main_inc = ../slsDetectorServer/include/
|
main_inc = ../slsDetectorServer/include/
|
||||||
main_src = ../slsDetectorServer/src/
|
main_src = ../slsDetectorServer/src/
|
||||||
support_lib = ../../slsSupportLib/include/
|
support_lib = ../../slsSupportLib/include/
|
||||||
|
det_lib = ../../slsDetectorSoftware/include/sls/
|
||||||
|
|
||||||
CROSS = bfin-uclinux-
|
CROSS = bfin-uclinux-
|
||||||
CC = $(CROSS)gcc
|
CC = $(CROSS)gcc
|
||||||
CFLAGS += -Wall -std=gnu99 -DMOENCHD -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(current_dir)#-DVERBOSEI #-DVERBOSE
|
CFLAGS += -Wall -std=gnu99 -DMOENCHD -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(det_lib) -I$(current_dir)#-DVERBOSEI #-DVERBOSE
|
||||||
LDLIBS += -lm -lrt -pthread
|
LDLIBS += -lm -lrt -pthread
|
||||||
PROGS = moenchDetectorServer
|
PROGS = moenchDetectorServer
|
||||||
DESTDIR ?= bin
|
DESTDIR ?= bin
|
||||||
|
BIN
slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer
Executable file
BIN
slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer
Executable file
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user