Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//###########################################################################
// This file is part of LImA, a Library for Image Acquisition
//
// Copyright (C) : 2009-2011
// European Synchrotron Radiation Facility
// BP 220, Grenoble 38043
// FRANCE
//
// This is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, see <http://www.gnu.org/licenses/>.
//###########################################################################
namespace SlsDetector
{
%TypeHeaderCode
#include "SlsDetectorCamera.h"
%End
enum State {
Idle, Init, Starting, Running, StopReq, Stopping, Stopped,
};
class Camera
{
%TypeHeaderCode
#include "SlsDetectorCamera.h"
%End
public:
class FrameMap
{
public:
typedef std::set<int> List;
typedef std::map<int, std::set<int> > Map;
class Callback
{
public:
Callback();
virtual ~Callback();
protected:
virtual void frameFinished(int frame) = 0;
};
FrameMap();
~FrameMap();
void setCallback(Callback *cb);
void setNbItems(int nb_items);
void clear();
void frameItemFinished(int frame, int item);
int getLastSeqFinishedFrame() const;
const SlsDetector::Camera::FrameMap::List&
getNonSeqFinishedFrames() const;
const SlsDetector::Camera::FrameMap::Map&
getFramePendingItemsMap() const;
};
Camera(std::string config_fname);
virtual ~Camera();
void setBufferCbMgr(StdBufferCbMgr *buffer_cb_mgr);
Alejandro Homs Puron
committed
void setSaveRaw(bool save_raw);
void getSaveRaw(bool& save_raw /Out/);
void setNbFrames(int nb_frames);
void getNbFrames(int& nb_frames /Out/);
void setExpTime(double exp_time);
void getExpTime(double& exp_time /Out/);
void setFramePeriod(double frame_period);
void getFramePeriod(double& frame_period /Out/);
SlsDetector::State getState();
void waitState(SlsDetector::State state);
SlsDetector::State waitNotState(SlsDetector::State state);
void prepareAcq();
void startAcq();
void stopAcq();
Alejandro Homs Puron
committed
int getNbDetModules();
void getFrameDim(FrameDim& frame_dim, bool raw = false);
int getFramesCaught();
std::string getStatus();
const SlsDetector::Camera::FrameMap& getRecvMap();
};
}; // namespace SlsDetector