CameraSetting.h 2.34 KB
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
/*
 * Nomad Instrument Control Software
 *
 * Copyright 2011 Institut Laue-Langevin
 *
 * Licensed under the EUPL, Version 1.1 only (the "License");
 * You may not use this work except in compliance with the Licence.
 * You may obtain a copy of the Licence at:
 *
 * http://joinup.ec.europa.eu/software/page/eupl
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the Licence is distributed on an "AS IS" basis,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the Licence for the specific language governing permissions and
 * limitations under the Licence.
 */

/*!
 * \brief Class described the camera setting
 * \author elaazzouzi
 * \date 02-11-2016
 */

#ifndef CameraSETTING_H
#define CameraSETTING_H

#include "controllers/common/acquisition/detector/DetectorElement.h"
#include "controllers/common/acquisition/detector/DetectorController.h"
#include "drivers/andor/ikon/IKonDriver.h"

namespace camera {

/**
 * Class providing the Camera parameters.
 */
class CameraSetting : public ExperimentController, public controller::Start {

public:
	//! Type of controller
	static const std::string TYPE;
	static const string BINNING[5];
	static const string MODE[5];

	/**
	 * Constructor.
	 */
	CameraSetting(const std::string& name);

	/**
	 * Destructor.
	 */
	virtual ~CameraSetting();

	/**
	 * Configuration after controller assignments.
	 */
	virtual void postConfiguration();

	/**
	 * Start command.
	 */
	virtual void start();


	/**
	 * Refreshes binning.
	 */
	void refreshBinning(int32 value);
	void refreshMode(int32 value);
	void updateBinning();
	void updateMode();
	void updateTemperature();
Jerome Locatelli's avatar
Jerome Locatelli committed
74
75
76
77
78
79
//
//	Property<int32> hflip;
//	Property<int32> vflip;
//	Property<int32> rotate;


80
81
82
83

	Property<int32, SETPOINT> mode;
	Property<float64> kineTime;
	Property<int32> nbKine;
Jerome Locatelli's avatar
Jerome Locatelli committed
84
85
86

	Property<bool > modeFVB;

87
	Property<int32, SETPOINT> temperature;
Jerome Locatelli's avatar
Jerome Locatelli committed
88
89
	Property<string, SETPOINT> stringhbinning;
	Property<string, SETPOINT> stringvbinning;
90
91
	Property<string, SETPOINT> stringmode;

Jerome Locatelli's avatar
Jerome Locatelli committed
92
93
	Property<int32, SETPOINT> hbinning;
	Property<int32, SETPOINT> vbinning;
94
95
96
97
98
	DriverPtr<ikon::IKonDriver> m_CamDriver;
	ControllerPtr<acquisition::DetectorElement> detectorElement;
	ControllerPtr<acquisition::DetectorController> detectorController;

#define MAX_XSIZE 	2048
Jerome Locatelli's avatar
Jerome Locatelli committed
99
100
#define MAX_YSIZE 	2088
#define MAX_TOTALSIZE 	4276224
101
102
103
104
105
106

};

}

#endif