Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
LimaGroup
Lima-camera-slsdetector
Commits
10bede9e
Commit
10bede9e
authored
Jan 05, 2021
by
Alejandro Homs Puron
Committed by
operator for beamline
Jan 05, 2021
Browse files
Add Jungfrau dual UDP interface support
parent
9d5cb233
Changes
6
Hide whitespace changes
Inline
Side-by-side
include/SlsDetectorModel.h
View file @
10bede9e
...
...
@@ -61,6 +61,9 @@ class Model
int
getNbDetModules
()
{
return
m_nb_det_modules
;
}
virtual
void
setNbUDPInterfaces
(
int
nb_udp_ifaces
);
virtual
void
getNbUDPInterfaces
(
int
&
nb_udp_ifaces
);
virtual
std
::
string
getName
()
=
0
;
virtual
void
getPixelSize
(
double
&
x_size
,
double
&
y_size
)
=
0
;
...
...
@@ -107,6 +110,7 @@ class Model
Camera
*
m_cam
;
Type
m_type
;
int
m_nb_det_modules
;
int
m_nb_udp_ifaces
;
protected:
AutoPtr
<
sls
::
Detector
>
m_det
;
...
...
sip/SlsDetectorModel.sip
View file @
10bede9e
...
...
@@ -44,6 +44,9 @@ public:
SlsDetector::Camera *getCamera();
SlsDetector::Type getType();
virtual void setNbUDPInterfaces(int nb_udp_ifaces);
virtual void getNbUDPInterfaces(int& nb_udp_ifaces /Out/);
virtual std::string getName() = 0;
virtual void getPixelSize(double& x_size /Out/,
double& y_size /Out/) = 0;
...
...
slsDetectorPackage
@
66605a5c
Compare
53ef69b5
...
66605a5c
Subproject commit
53ef69b518173783db09a3fd48fbf23568503b91
Subproject commit
66605a5c056cc42494397f5947931b82e1aea3ef
src/SlsDetectorCamera.cpp
View file @
10bede9e
...
...
@@ -427,6 +427,12 @@ void Camera::setModel(Model *model)
if
(
!
m_model
)
return
;
int
nb_udp_ifaces
;
m_model
->
getNbUDPInterfaces
(
nb_udp_ifaces
);
DEB_ALWAYS
()
<<
"Using "
<<
m_model
->
getName
()
<<
" with "
<<
getNbDetModules
()
<<
"x"
<<
nb_udp_ifaces
<<
" UDP interfaces"
;
int
nb_items
=
m_model
->
getNbFrameMapItems
();
m_frame_map
.
setNbItems
(
nb_items
);
m_model
->
updateFrameMapItems
(
&
m_frame_map
);
...
...
src/SlsDetectorJungfrau.cpp
View file @
10bede9e
...
...
@@ -171,7 +171,7 @@ void Jungfrau::getDACInfo(NameList& name_list, IntList& idx_list,
DEB_MEMBER_FUNCT
();
#define JUNGFRAU_DAC(x) {x, 0}
#define JUNGFRAU_DAC_MV(x)
{x, 1}
#define JUNGFRAU_DAC_MV(x) {x, 1}
static
struct
DACData
{
DACIndex
idx
;
...
...
@@ -240,9 +240,12 @@ void Jungfrau::getTimeRanges(TimeRanges& time_ranges)
{
DEB_MEMBER_FUNCT
();
double
min_exp
=
10
;
double
min_period
=
1000
;
double
min_lat
=
500
;
int
nb_udp_ifaces
;
getNbUDPInterfaces
(
nb_udp_ifaces
);
double
min_exp
=
0.1
;
double
min_period
=
1000
/
nb_udp_ifaces
;
double
min_lat
=
0.1
;
time_ranges
.
min_exp_time
=
min_exp
*
1e-6
;
time_ranges
.
max_exp_time
=
1e3
;
...
...
@@ -374,12 +377,17 @@ void Jungfrau::prepareAcq()
{
DEB_MEMBER_FUNCT
();
m_in_process
.
clear
();
FrameType
nb_frames
;
Camera
*
cam
=
getCamera
();
cam
->
getNbFrames
(
m_nb_frames
);
m_next_frame
=
0
;
m_last_frame
=
-
1
;
cam
->
getNbFrames
(
nb_frames
);
{
AutoMutex
l
=
lock
();
m_in_process
.
clear
();
m_nb_frames
=
nb_frames
;
m_next_frame
=
0
;
m_last_frame
=
-
1
;
}
ThreadList
::
iterator
tit
,
tend
=
m_thread_list
.
end
();
for
(
tit
=
m_thread_list
.
begin
();
tit
!=
tend
;
++
tit
)
...
...
src/SlsDetectorModel.cpp
View file @
10bede9e
...
...
@@ -34,6 +34,10 @@ Model::Model(Camera *cam, Type type)
DEB_PARAM
()
<<
DEB_VAR1
(
type
);
m_nb_det_modules
=
m_cam
->
getNbDetModules
();
sls
::
Result
<
int
>
res
;
EXC_CHECK
(
res
=
m_det
->
getNumberofUDPInterfaces
());
const
char
*
err_msg
=
"Numbers of UDP interfaces are different"
;
EXC_CHECK
(
m_nb_udp_ifaces
=
res
.
tsquash
(
err_msg
));
}
Model
::~
Model
()
...
...
@@ -47,9 +51,27 @@ Model::~Model()
void
Model
::
updateCameraModel
()
{
DEB_MEMBER_FUNCT
();
m_cam
->
setModel
(
this
);
m_cam
->
setModel
(
this
);
}
void
Model
::
setNbUDPInterfaces
(
int
nb_udp_ifaces
)
{
DEB_MEMBER_FUNCT
();
DEB_PARAM
()
<<
DEB_VAR1
(
nb_udp_ifaces
);
if
(
nb_udp_ifaces
!=
m_nb_udp_ifaces
)
THROW_HW_ERROR
(
NotSupported
)
<<
"Invalid number of UDP interfaces: "
<<
nb_udp_ifaces
<<
", only "
<<
m_nb_udp_ifaces
<<
" supported"
;
}
void
Model
::
getNbUDPInterfaces
(
int
&
nb_udp_ifaces
)
{
DEB_MEMBER_FUNCT
();
nb_udp_ifaces
=
m_nb_udp_ifaces
;
DEB_RETURN
()
<<
DEB_VAR1
(
nb_udp_ifaces
);
}
void
Model
::
updateTimeRanges
()
{
DEB_MEMBER_FUNCT
();
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment