EigerCamera.sip 3.66 KB
Newer Older
Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
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
//###########################################################################
// This file is part of LImA, a Library for Image Acquisition
//
// Copyright (C) : 2009-2014
// 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 Eiger
{
  class Camera
  {
%TypeHeaderCode
#include <EigerCamera.h>
%End
  public:

31
    enum ApiGeneration { Eiger1, Eiger2 };
32
    enum Status { Initializing, Ready, Armed, Exposure, Fault };
33
    enum CompressionType {NoCompression,LZ4,BSLZ4};
Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
34

35
    Camera(const std::string& detector_ip,
36
           Eiger::Camera::ApiGeneration api = Eiger::Camera::Eiger1);
Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
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
80
    ~Camera();

    void initialize();

    void startAcq();
    void stopAcq();
    void prepareAcq();

    // -- detector info object
    void getImageType(ImageType& type /Out/);
    void setImageType(ImageType type);

    void getDetectorType(std::string& type /Out/);
    void getDetectorModel(std::string& model /Out/);
    void getDetectorImageSize(Size& size /Out/);
    void getDetectorMaxImageSize(Size& size /Out/);

    //-- Synch control object
    bool checkTrigMode(TrigMode trig_mode);
    void setTrigMode(TrigMode  mode);
    void getTrigMode(TrigMode& mode /Out/);

    void setExpTime(double  exp_time);
    void getExpTime(double& exp_time /Out/);

    void setLatTime(double  lat_time);
    void getLatTime(double& lat_time /Out/);

    void getExposureTimeRange(double& min_expo /Out/, double& max_expo /Out/) const;
    void getLatTimeRange(double& min_lat /Out/, double& max_lat /Out/) const;

    void setNbFrames(int  nb_frames);
    void getNbFrames(int& nb_frames /Out/);
    void getNbHwAcquiredFrames(int &nb_acq_frames /Out/);

    bool isBinningAvailable();

    void getPixelSize(double& sizex /Out/, double& sizey /Out/);

    Status getStatus();
    std::string getCamStatus();
    //			void reset();

    // -- Eiger specific
81
82
    void getApiGeneration(ApiGeneration& /Out/);

Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
83
84
85
86
87
88
89
    void getTemperature(double& /Out/);
    void getHumidity(double& /Out/);

    void setCountrateCorrection(const bool);
    void getCountrateCorrection(bool& /Out/);
    void setFlatfieldCorrection(const bool);
    void getFlatfieldCorrection(bool& /Out/);
90
91
    void setAutoSummation(bool);
    void getAutoSummation(bool& /Out/);
Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
92
93
94
95
96
97
98
99
100
101
102
103
104
    void setEfficiencyCorrection(const bool);
    void getEfficiencyCorrection(bool& value /Out/);
    void setPixelMask(const bool);
    void getPixelMask(bool& /Out/);
    void setThresholdEnergy(const double);
    void getThresholdEnergy(double& /Out/);
    void setVirtualPixelCorrection(const bool);
    void getVirtualPixelCorrection(bool& /Out/);
    void setPhotonEnergy(const double);
    void getPhotonEnergy(double& /Out/);			

    void getCompression(bool& /Out/);
    void setCompression(const bool);
105
    void getCompressionType(CompressionType& /Out/);
106
107
    void setCompressionType(CompressionType);   

Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
108
109
    void getSerieId(int& /Out/);
    void deleteMemoryFiles();
110
    void disarm();
Samuel Debionne's avatar
Samuel Debionne committed
111
112
113
    
    private:
      Camera(const Eiger::Camera&);
Sebastien Petitdemange's avatar
Sebastien Petitdemange committed
114
115
 };
};